~/tech-blog/tag/클린 코드 — zsh
지금 --명이 보고 있습니다오늘 --누적 --

#클린 코드 30 posts

카테고리를 가로질러 클린 코드를 다룬 글을 모았습니다.

클린 코드 WITH JAVA · 1/16

레거시 코드 리팩터링 — 1단계

레거시 QnaService의 질문 삭제 로직에서 단위 테스트 가능한 비즈니스 로직을 도메인 모델로 옮기는 리팩터링 미션의 요구사항과 리뷰 피드백을 정리합니다.

2023.06.18 · 50a770f · 클린 코드 with Java — 3 min
클린 코드 WITH JAVA · 2/16

스트림, 람다, Optional — 1단계

익명 클래스를 람다로 바꾸고, 람다로 합계 로직의 중복을 없애고, 스트림의 map, filter, reduce와 Optional로 조건 반환·기본값·예외 처리를 구현한 미션 기록입니다.

f31faa2 · 클린 코드 with Java — 9 min
클린 코드 WITH JAVA · 3/16

Set 컬렉션으로 배우는 학습 테스트 — 1단계

Set 컬렉션의 size()와 contains()를 학습 테스트로 확인하고, JUnit5의 @ValueSource·@CsvSource로 중복 코드를 제거한 뒤 받은 리뷰 피드백까지 정리한 미션 기록입니다.

50a770f · 클린 코드 with Java — 5 min
클린 코드 WITH JAVA · 4/16

문자열 계산기 — 1단계

들여쓰기 depth와 메서드 크기 제한, else 금지 조건 아래 문자열 사칙연산 계산기를 구현하고, 리뷰 피드백에 따라 if-else 분기를 연산자 enum으로 바꾼 과정을 정리합니다.

2023.04.25 · 50a770f · 클린 코드 with Java — 4 min
클린 코드 WITH JAVA · 5/16

문자열 덧셈 계산기로 배우는 TDD — 2단계

문자열 덧셈 계산기를 TDD로 구현하고, 리뷰 피드백에 따라 상수화, 멤버 변수의 지역 변수 전환, 들여쓰기를 줄이는 메서드 분리, 테스트 개선을 적용한 기록입니다.

50a770f · 클린 코드 with Java — 11 min
클린 코드 WITH JAVA · 6/16

로또 자동 — 2단계

로또 자동 구매 기능을 TDD로 구현하고, 리뷰를 반영해 당첨 상수를 enum 안으로 옮기고 전략 인터페이스 이름을 구체적으로 바꾼 기록입니다.

50a770f · 클린 코드 with Java — 8 min
클린 코드 WITH JAVA · 7/16

로또 게임 2등 — 3단계

보너스 볼로 2등을 판정하는 로또 3단계를 enum과 일급 컬렉션으로 구현하고, 리뷰를 반영해 enum 상수 정리, 서비스 객체 싱글톤, 스트림 리팩터링을 적용한 기록입니다.

f31faa2 · 클린 코드 with Java — 6 min
클린 코드 WITH JAVA · 8/16

로또 수동 — 4단계

로또 수동 구매 기능을 값 객체와 일급 컬렉션으로 구현하고, 리뷰를 반영해 view 쪽 입력 객체, 수동·자동 로또를 합치는 메소드, 스트림으로 구조를 바꾼 기록입니다.

50a770f · 클린 코드 with Java — 7 min
클린 코드 WITH JAVA · 9/16

사다리 생성 — 2단계

사다리 미션 2단계에서 참여자 이름과 함께 사다리를 출력하는 기능을 구현하고, 생성자 책임 분리, Object 대신 제네릭과 Supplier 활용, 오버엔지니어링 기준에 대한 리뷰 피드백을 정리합니다.

50a770f · 클린 코드 with Java — 9 min
클린 코드 WITH JAVA · 10/16

사다리 게임 실행 — 3단계

사다리 미션 3단계에서 실행 결과를 출력하는 기능을 구현하고, Utils 이름과 논리적 의존성, 명령과 조회 분리, enum 패키지 위치, 메서드 응집도에 대한 리뷰 피드백을 정리합니다.

50a770f · 클린 코드 with Java — 7 min
클린 코드 WITH JAVA · 11/16

사다리 리팩터링 — 4단계

사다리 미션 4단계에서 코드를 리팩터링하며 받은 방어적 복사, 메서드 이름과 역할, 내부에서만 쓰는 enum, 전략 인터페이스 주입에 대한 리뷰 피드백을 정리합니다.

50a770f · 클린 코드 with Java — 6 min
클린 코드 WITH JAVA · 12/16

자동차 경주 — 3단계

자동차 경주 게임을 처음 구현하며 받은 View 책임 분리, 축약어 지양, 경계값 테스트, 생성자에서 자동차 생성, 유틸리티 클래스의 private 생성자에 대한 리뷰 피드백을 정리합니다.

50a770f · 클린 코드 with Java — 14 min
클린 코드 WITH JAVA · 13/16

자동차 경주 우승자 — 4단계

자동차 이름과 우승자 판별 기능을 추가하며 받은 클래스 변수 작성 순서, 원시값 포장, String.format, stream 활용에 대한 리뷰 피드백과 일급 컬렉션으로 정리한 코드를 기록합니다.

50a770f · 클린 코드 with Java — 13 min
클린 코드 WITH JAVA · 14/16

자동차 경주 리팩터링 — 5단계

자동차 경주 코드를 MVC 패턴으로 리팩터링하며 받은 사용자 정의 예외, 실패하는 테스트, 정적 팩토리 메서드, 전략 패턴에 대한 리뷰 피드백을 정리합니다.

50a770f · 클린 코드 with Java — 7 min
클린 코드 WITH JAVA · 15/16

수강신청 도메인 모델 — 2단계

넥스트스텝 수강신청 미션 2단계에서 DB 테이블 설계 없이 강의(Session)의 도메인 모델부터 TDD로 구현하며 받은 수강 인원 검증 위치, enum에 메시지 보내기 리뷰 피드백을 정리합니다.

2023.06.18 · 50a770f · 클린 코드 with Java — 3 min
클린 코드 WITH JAVA · 16/16

수강신청 DB 적용 — 3단계

수강신청 미션 3단계에서 2단계의 도메인 구조를 유지하며 DB 테이블과 매핑하고, 도메인 의도가 드러나는 메서드 이름과 SessionUserMapping 목록에 대한 리뷰 피드백을 정리합니다.

2023.07.18 · 50a770f · 클린 코드 with Java — 3 min
객체지향 · 설계

일급컬렉션

Collection을 감싸고 그 외의 멤버 변수를 두지 않는 일급 컬렉션의 정의와 장점 일곱 가지를, 로또 번호를 정렬해 보관하는 LottoNumbers 예제 코드와 함께 정리합니다.

2023.04.22 · 1354ac5 · 객체지향 · 설계 — 3 min
객체지향 · 설계

원시값 포장

자동차 이름을 String 대신 Name 객체로 감싸는 예제로, 원시 타입 변수를 포장하면 유효성 검증 책임이 값 객체 안으로 옮겨져 Car의 역할이 분명해지는 이유를 정리합니다.

2023.04.22 · 1354ac5 · 객체지향 · 설계 — 2 min
CLEAN CODE · 1/11

2장 의미있는 이름

클린 코드 2장을 읽고 의도를 분명히 드러내는 이름, 그릇된 정보를 피하는 이름, 클래스·메서드 이름, 해법·문제 영역에서 가져온 이름, 의미 있는 맥락을 더하는 방법을 정리합니다.

2022.04.29 · 5d545b0 · Clean Code — 4 min
CLEAN CODE · 2/11

3장 함수

클린 코드 3장을 읽고 함수를 작게 만들어 한 가지만 하게 하는 방법과 추상화 수준, switch 문, 함수 인수, 부수 효과, 명령과 조회 분리, try/catch 블록 분리를 예제와 함께 정리합니다.

2022.04.29 · 5d545b0 · Clean Code — 11 min
CLEAN CODE · 3/11

4장 주석

클린 코드 4장을 읽고 주석이 나쁜 코드를 보완하지 못하는 이유와 코드로 의도를 표현하는 방법, 법적인 주석·결과를 경고하는 주석·TODO 주석·중요성을 강조하는 주석 같은 좋은 주석을 정리합니다.

2022.04.29 · 5d545b0 · Clean Code — 3 min
CLEAN CODE · 4/11

5장 형식맞추기

클린 코드 5장을 읽고 파일 길이, 신문 기사 같은 위→아래 구성, 빈 행과 세로 밀집도, 수직 거리, 가로 공백 등 코드 형식을 잡는 기준과 팀 규칙의 중요성을 정리합니다.

2022.04.30 · 5d545b0 · Clean Code — 6 min
CLEAN CODE · 5/11

6장 객체와 자료구조

클린 코드 6장을 읽고 자료 추상화, 절차적 코드와 객체지향 코드의 확장 방향이 반대인 자료/객체 비대칭, 기차 충돌 예제로 본 디미터 법칙을 정리합니다.

2022.04.30 · 5d545b0 · Clean Code — 6 min
CLEAN CODE · 6/11

7장 오류처리

클린 코드 7장을 읽고 오류 코드 대신 예외를 쓰는 이유, try-catch-finally부터 작성하는 방법, checked 예외가 캡슐화를 깨는 문제, 외부 API 감싸기, 특수 사례 객체와 null을 반환하지 않는 방법을 정리합니다.

2022.04.30 · 5d545b0 · Clean Code — 12 min
CLEAN CODE · 7/11

8장 경계

외부 패키지나 프레임워크를 사용할 때 생기는 경계 문제를, java.util.Map을 Sensors 클래스로 감싸 필요한 기능만 노출하는 예제로 정리합니다.

2022.05.01 · 5d545b0 · Clean Code — 4 min
CLEAN CODE · 8/11

10장 클래스

클린 코드 10장을 읽고 클래스 체계와 클래스를 작게 유지해야 하는 이유, 단일 책임 원칙, 응집도, OCP로 변경하기 쉬운 클래스, 인터페이스로 변경에서 격리하는 방법을 정리합니다.

2022.05.02 · 5d545b0 · Clean Code — 13 min
CLEAN CODE · 9/11

11장 시스템 (1)

클린 코드 11장을 읽고 시스템 제작과 사용의 분리, Main 분리, 추상 팩토리, 의존성 주입 개념을 예제와 함께 정리합니다.

2022.05.02 · 5d545b0 · Clean Code — 9 min
CLEAN CODE · 10/11

11장 시스템 (2)

클린 코드 11장 후반부를 읽고 시스템 확장과 횡단 관심사, 자바 프록시와 스프링 AOP 예제를 비교해 관심사를 분리하는 방법, POJO 시스템이 주는 기민함을 정리합니다.

2022.05.02 · 5d545b0 · Clean Code — 8 min
인프런 워밍업 클럽 발자국 · 1/4

1주차 발자국

인프런 워밍업 클럽 백엔드 스터디 2기 1주차 회고로, 추상화와 이름 짓기, SOLID 원칙을 적용해 주문 검증 로직을 리팩터링한 과정을 정리합니다.

af4ee5d · 회고 — 9 min
● main 231 posts UTF-8 LF © 2026 코징 RSS · GitHub