no image
[모던 자바 인 액션] 2. 동작 파라미터화 코드 전달하기
우리가 어떤 상황에서 일을 하든 소비자 요구사항은 항상 바뀐다. ⇒ 변화하는 요구사항은 불가피한 문제 ❓변화하는 요구사항의 대처 엔지니어링적인 비용 최소화 새로 추가한 기능 → 쉽게 구현 장기적인 관점 → 유지보수 용이 동작 파라미터화(behavior parameterization) 자주 바뀌는 요구사항에 효과적으로 대응 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록⇒ 코드 블록의 실행은 나중으로 미뤄진다. ⇒ 나중에 프로그램에서 호출 e.g. 나중에 실행될 메서드의 인수로 “코드 블록”을 전달 ⭐ 메서드의 동작이 파라미터화된다. - 리스트의 모든 요소에 대해서 ‘어떤 동작’을 수행 - 리스트의 관련 작업을 끝낸 다음에 ‘어떤 다른 동작’을 수행할 수 있음 - 에러가 발생하면 ‘정해진 어떤 다른 ..
2024.01.29
no image
[모던 자바 인 액션] 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가?
자바 역사를 통틀어 가장 큰 변화가 자바 8에서 일어났다. 1.1 역사의 흐름은 무엇인가? 자바 8을 이용하면 자연어에 더 가깝게 간단한 방식으로 코드를 구현할 수 있다. 지금까지의 대부분의 자바 프로그램은 코어 중 하나만을 사용했다. 나머지 코어는 유휴 idle 상태로 두거나, 운영체제나 바이러스 검사 프로그램과 프로세스 파워를 나눠서 사용 자바 8 등장 이전 : 나머지 코어 활용 → 스레드 스레드 사용은 관리가 어렵고 많은 문제가 발생할 수 있음 자바 1.0 : 스레드, 락, 메모리 모델 지원 자바 5 : 스레드 풀(thread pool), 병렬 실행 컬렉션(concurrent collection) 자바 7 : 포크/조인 프레임워크 자바 8 : 스트림 API, 동작 파라미터화, 인터페이스의 디폴트 메..
2024.01.25
no image
[헤드 퍼스트 디자인 패턴] 1. 전략 패턴
e.g. SimUduck 구현 맨 위 상위 클래스 Duck 으로 부터 상속 받는 하위 클래스 MallardDuck , RedheadDuck Duck { quack() swim() display() } fly() 라는 메소드를 추가하고 일부 서브 클래스에서 해당 메서드를 구현해야한다. 상위 클래스에 fly() 를 추가한다. Duck { quack() swim() display() fly() // 새로 추가된 코드 } 상속을 통한 해결 하위 클래스에서도 모두 해당 메서드를 구현해야 하므로 해당 사항이 없는 클래스의 경우 아무런 행위를 하지 않도록 오버라이드한다. 인터페이스 해결 💡 디자인 원칙 1 바뀌는 부분은 따로 뽑아서 캡슐화한다. 그러면 나중에 바뀌지 않는 부분에는 영향을 미치지 않고 그 부분만 고치거..
2024.01.15
no image
[구글 엔지니어는 이렇게 일한다] Overview
- 서명 : 구글 엔지니어는 이렇게 일한다 구글러가 전하는 문화, 프로세스, 도구의 모든 것 - 저자 : 타이터스 윈터스 , 톰 맨쉬렉 , 하이럼 라이트 - 번역 : 개앞맵시 - 출판 : 한빛미디어 - 출간일 : 2022년 05월 10일 ☀️ Introduction 장기간 IT 분야 베스트셀러를 차지하고 있길래 어떤 책인지 궁금해졌다. 무려 700페이지로,, 엄청나게 두꺼운 책이다... 책으로나마 개발 프로세스를 느끼고 싶어서 이 책을 선택하게 되었다. ☁️ Overview 소프트웨어 엔지니어링 '단순히 코드를 작성하는 행위' + ''시간의 흐름에 발맞춰 한 조직이 그 코드를 구축하고 유지보수하는 데 이용하는 모든 도구와 프로세스' '흐르는 시간 위에서 순간순간의 프로그래밍을 모두 합산한 것이다.' 소프..
2022.08.08