SOLID
SRP, OCP, LSP, ISP, DIP 다섯 가지 객체지향 설계 원칙을 주문 유효성 검사, 도형 넓이, 새 클래스 Java 예제와 흐름도로 정리합니다.
SRP, OCP, LSP, ISP, DIP 다섯 가지 객체지향 설계 원칙을 주문 유효성 검사, 도형 넓이, 새 클래스 Java 예제와 흐름도로 정리합니다.
레거시 QnaService의 질문 삭제 로직에서 단위 테스트 가능한 비즈니스 로직을 도메인 모델로 옮기는 리팩터링 미션의 요구사항과 리뷰 피드백을 정리합니다.
들여쓰기 depth와 메서드 크기 제한, else 금지 조건 아래 문자열 사칙연산 계산기를 구현하고, 리뷰 피드백에 따라 if-else 분기를 연산자 enum으로 바꾼 과정을 정리합니다.
문자열 덧셈 계산기를 TDD로 구현하고, 리뷰 피드백에 따라 상수화, 멤버 변수의 지역 변수 전환, 들여쓰기를 줄이는 메서드 분리, 테스트 개선을 적용한 기록입니다.
로또 자동 구매 기능을 TDD로 구현하고, 리뷰를 반영해 당첨 상수를 enum 안으로 옮기고 전략 인터페이스 이름을 구체적으로 바꾼 기록입니다.
보너스 볼로 2등을 판정하는 로또 3단계를 enum과 일급 컬렉션으로 구현하고, 리뷰를 반영해 enum 상수 정리, 서비스 객체 싱글톤, 스트림 리팩터링을 적용한 기록입니다.
사다리 미션 4단계에서 코드를 리팩터링하며 받은 방어적 복사, 메서드 이름과 역할, 내부에서만 쓰는 enum, 전략 인터페이스 주입에 대한 리뷰 피드백을 정리합니다.
for문 대신 자바 Stream으로 리스트·맵 변환, enum 값 찾기, 합계, 중복 체크, null 처리, 문자열 합치기, reduce를 작성한 예제를 정리합니다.
자바의 익명 클래스가 무엇인지 정리하고, 조건만 다른 합계 함수의 중복을 조건 전달로 줄이는 예제, 인터페이스를 이름 없이 구현하는 방법과 람다와의 관계, 사용할 때의 이점을 흐름도와 함께 정리합니다.
Track에서 Cars를 만들던 반복문을 Cars.from()으로 옮기는 예제로 정적 팩토리 메서드가 객체 생성 로직을 감추는 방식을 살펴보고, from·of·getInstance 등 네이밍 컨벤션을 정리합니다.
자동차 경주 코드에서 이동 여부를 정하는 랜덤 값 생성을 MoveStrategy 인터페이스로 분리하고, 구현 클래스를 주입받아 바꿔 끼우는 전략 패턴 적용 방법을 정리합니다.
클린 코드 2장을 읽고 의도를 분명히 드러내는 이름, 그릇된 정보를 피하는 이름, 클래스·메서드 이름, 해법·문제 영역에서 가져온 이름, 의미 있는 맥락을 더하는 방법을 정리합니다.
클린 코드 3장을 읽고 함수를 작게 만들어 한 가지만 하게 하는 방법과 추상화 수준, switch 문, 함수 인수, 부수 효과, 명령과 조회 분리, try/catch 블록 분리를 예제와 함께 정리합니다.
인프런 워밍업 클럽 백엔드 스터디 2기 2주차 Readable Code 강의를 들으며 배운 추상화 레벨과 데이터 중심 설계 개념을 정리합니다.
중복이 있던 AppConfig를 리팩터링해 역할과 구현이 한눈에 드러나도록 정리하고, 그 과정에서 지켜지는 SOLID 원칙을 살펴봅니다.