DAY 12,13 오늘 읽은 범위: 6장. 동시성 📚 책에서 기억하고 싶은 내용? '동시성'이란 동시에 실행 중인 것처럼 행동하는 것을 의미하고, '병렬성'이란 실제로 동시에 실행되는 것이다. 동시성은 파이퍼, 스레드, 프로세스 등을 사용 병렬성은 멀티코어나 여러 대의 컴퓨터를 이용 작업흐름 분석을 통해 동시성을 개선하라. 시간적 결함 → 동시성, 순서 활동 다이어그램을 사용하면서 동시에 수행할 수 있는데도 아직 동시에 하고 있지 않은 활동들을 찾아내서 병렬성을 극대화할 수 있다. 엘릭서의 컴파일러 시작할 때 빌드 프로젝트를 여러 모듈로 쪼갠 후, 각각을 병렬로 컴파일한다. 가장 바깥쪽 모듈의 컴파일이 완료되었다는 것은 모든 코드가 컴파일되었다는 것이다. 동시성을 고려한 설계 자바의 멀티 쓰레드 기능으로..
DAY 10, 11 Mission 2: 5장까지 총 23개의 연습문제가 있습니다. 이 중 한 문제를 골라 풀이과정을 작성해 주세요. 💡 연습문제 23번 Q. 일부 자바 개발자들은 어떤 객체를 사용한 다음에는 반드시 그 객체의 변수에 NULL을 넣곤 한다. 왜 이것이 좋은 생각일까? ✅ 풀이과정 나의 답변 객체 사용후 NULL 값을 넣는 것은 그 객체가 어떤 값을 가지고 메모리를 사용하는 것을 방지한다. 그리고 이렇게 객체를 관리하는 것은 사용되지 않을 객체의 리소스 할당을 없애 리소스 균형을 유지하는데에 있다. Java의 메모리 관리 레퍼런스(Package java.lang.ref) 객체 생성이 빈번한 큰 프로그램에서는 객체에 사용 후 null 값을 넣는게 효율적이다. 그 이유는 null 값이 할당된 객..
DAY 9 오늘 읽은 범위: 5장. 구부러지거나 부러지거나 📚 책에서 기억하고 싶은 내용? 모듈간의 결합도를 최소화하라. 한 모듈이 변경되거나 교체된다하더라도 다른 모듈들은 변경없이 수행될 수 있을 것이다. 디미터의 법칙 한 객체가 제공하는 메서드에 접근하기 위해 또 다른 객체들을 통하는 것을 허용하지 않는다. 논리적 설계와 물리적 설계가 함께 고려되어야 한다. 통합하지 말고 설정하라. 아무리 뛰어난 천재라도 세부사항에 집착하면 그 재능이 발휘되지 않는다. 메타데이터를 이용하여 반환 매개 변수, 사용자 선호사항, 설치 디렉터리와 같은 애플리케이션 설정 옵션을 기술하라. 코드에는 추상화, 메타데이터에는 세부 내용 메타데이터는 범용 프로그래밍 언어보다 문제 도메인에 가까운 방식으로 표현될 수 있다. 메타데이..
DAY 7 오늘 읽은 범위: 4장. 실용주의 편집증 📚 책에서 기억하고 싶은 내용? 완벽한 소프트웨어는 만들 수 없다. 실용주의 프로그래머들은 자신의 실수에 대비해 방어적으로 코드를 짠다. 계약에 따른 설계를 하라. Design By Contract, DBC 정확한 프로그램이란 무엇인가? 스스로 자신이 하는 일이라고 주장하는 것보다 많거나 적지도 않게 딱 그만큼만 하는 프로그램을 말한다. 1) 선행조건: 루틴이 호출되기 위해 참이어야 하는 것. 2) 후행조건: 루틴이 자기가 할 것이라고 보장하는 것. 무한 반복은 허용되지 않는다. 3) 클래스 불변식: 호출자의 입자에서 볼 때는 이 조건이 언제나 참이라고 클라스가 보장한다. 루틴이 종료하고 호출자로 제어권이 반환되는 때에는 불변식이 참이어야 한다. iCo..
DAY 6 오늘 읽은 범위: 3장. 기본적인 도구 📚 책에서 기억하고 싶은 내용? 지식을 일반 텍스트로 저장하라. → 최소공통분모 암호를 암호화하라. 사용자가 설정매개 변수들을 바꾸는 걸 원치 않는다면 모든 매개 변수 값의 보안용 해시를 해당 파일에 체크섬으로 포함시켜라. 1) 원래의 어플리케이션이 소멸한 뒤에서 파싱가능, 복구를 위한 최소한의 환경밖에 없을 때를 상상해보자. 2) 거의 모든 도구들은 일반 텍스트와 호환된다. 3) 분석 및 테스트가 간단하다. 명령어 셸의 힘을 사용하라. GUI 환경의 기능은 일반적으로 설계자의 의도에 따른 제약을 받는다. 명령어를 재빨리 결합하려 할 때 사용하기 좋다. 윈도우에서 유닉스 도구 사용하기 하나의 에디터를 잘 사용하라. 선택한 에디터가 사용하는 모든 플랫폼에서..
DAY 2 오늘 읽은 범위: 2장. 실용주의 접근법 책에서 기억하고 싶은 내용? Don't repeat yourself. 반복하지 마라. 재사용하기 쉽게 만들어라. 관련 없는 것들 간에 서로 영향이 없도록 하라. 컴포넌트 간 독립적인 직교적인 시스템을 만들어야 한다. AOP으로 로깅되고 있는 코드와 직교적으로 로깅을 구현이 가능하다. 모든 코드에 분산적으로 동일한 로그 체킹을 하지 않고 별도의 클래스를 엮어주는 것이다. 최종 결정이란 없다. 시스템 배치의 가변성을 고려하자. (독립형, 클라이언트-서버, n-티어 모델) 목표물을 찾기 위해 예광탄을 써라. 우리를 요구사항으로부터 최종 시스템의 일부 측면에까지 빨리, 눈에 보이게, 반복적으로 도달하게 해줄 무언가를 찾아야 한다. 예광탄 코드는 프로토타입과 달..
- 노마드코더
- 배포
- JIRA
- IT 5분 잡학사전
- SQLD
- 정보처리기사 필기
- 오늘의코딩
- 개발도서
- putty
- gradle
- 실용주의프로그래머
- 웹페이지만들기
- 기술블로그
- 독서후기
- intellij
- ubuntu
- 정보처리기사
- AWS
- 노개북
- git연동
- spring
- 호스팅영역
- 북클럽
- 정보처리기사 실기
- jdbc
- filezila
- gradle build
- java
- LifecycleException
- EC2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |