Article - 깊게 탐구하기/모-던한 프로그래밍 2

테스트 주도 개발(TDD)의 적용

코드의 우아함을 신경쓰다보면, 코드 한줄을 짜더라도 이게 잘 구조화된 코드인가 하고 한참을 고민하게 되는데, 이게 좋은 방식인가?그렇다고 아무렇게나 막 짜니, 코드가 지저분해지고 리팩토링하긴 무서워진다.그래서 TDD를 학습했다.후기TDD 적용 방법먼저, 요구사항을 제대로 이해하자.TDD로 일단 돌아가게 만들고, 중복을 제거하자.삼각측량 기법을 적극 활용하자.모든 중복을 제거하기 전까진 테스트 코드를 통과한 것으로 치지 말자.리팩토링을 수행하지 않으면, 단편적인 기능 구현의 연속만 하게되고, 결과적으로는 유지보수하기 어려운 '단순하고 파편화된' 코드 덩어리가 만들어진다.탑다운/바텀업 둘중 하나가 정답은 아니다.막힐때마다 TDD도 해보고, OOD도 해보고 번갈아가며 접근해야 한다.한가지 방식에 얽메이지 말기..

[모-던한 프로그래밍] 람다/스트림/Optional, 지연 평가와 flatMap

본 글은 스트림에 어느정도 익숙한 사용자를 대상으로 작성된 게시글로, IDE를 통해 어찌저찌 사용하는 수준의 개발자를 대상으로 작성된 게시글입니다.IDE가 추천해주는 기능을 넘어서, 능동적으로 스트림을 사용하기 위한 기본 동작 구조를 살펴봅시다.목차스트림(Stream)이란?람다 vs 익명 클래스스트림의 Lazy Operationmap vs flatMapOptional기본형 특화 람다/스트림그 외 주요 기능스트림(Stream)이란?스트림의 정의데이터의 흐름을 추상화해서 다루는 도구로, 컬렉션 또는 배열 등의 요소들을 연산 파이프라인을 통해 연속적인 형태로 처리할 수 있게 해줍니다. 이때, 연산들의 체이닝을 적극 활용합니다. 파이프라인 (컴퓨팅) - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과..