Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

17 total results found

김시용

Clean Code 초안 1장 깨끗한 코드

1. 📌 핵심 개념 정리 ✅ 요약하기 나쁜 코드 제대로 짤 시간이 없다고 생각해서, 코드를 다듬느라 오랜 시간이 걸릴까봐 등의 핑계로 대충 짠 코드 초반에는 생산성이 높지만, 후반부로 갈수록 생산성이 0에 수렴하게 됨 관리자, 고객보단 전적으로 프로그래머의 잘못 (환자가 의사한테 손을 씻지 않고 수술하라 요청했어도 질병과 감염의 위험은 환자보다 의사가 더 잘 아니까 환자 말을 그대로 따르는 행동은 전문가 답지 못하기 때문) 좋은 코드 간단하게, 읽...

김시용

Clean Code 초안 2장 의미 있는 이름

1. 📌 핵심 개념 정리 ✅ 요약하기 의도 분명히 밝히기 주석을 통한 설명이 필요한 변수명 짓지 말기. -> 코드의 함축성이 문제이다. 코드 맥락이 코드 자체에 명시적이여야 한다. 그릇된 정보 피하기 일관성이 떨어지는 변수명 표기법 피하기 특히, 'l' (알파벳 소문자 엘), 'O' (알파벳 대문자 오) 등의 사용 피하기 의미 있게 구분하자 noise word (a, an, the 등), 의미가 비슷한 단어 (info, data 등) 피하기...

김시용

Clean Code 초안 3장 함수

1. 📌 핵심 개념 정리 ✅ 요약하기 함수를 작게 만들어라 가독성을 위하여 블록과 들여쓰기는 1단~2단이 적당하다 함수는 한 가지 기능만 하게해라 > 지정된 함수 이름 아래 추상화 수준이 하나인 단계 > 의미 있는 이름을 가진 함수 추출 더 이상 불가한 단계 switch 문 추상 팩토리에 숨긴다 -> 다른 클래스에 노출하지 않는다 다형적 객체를 생성하는 코드 안에서만 해당 (불가피한 상황 존재) 함수 이름 잘 짓기 서술적인 이름 사용 (동사) : 같...

김시용

Clean Code 초안 4장 주석

1. 📌 핵심 개념 정리 ✅ 요약하기 주석은 나쁜 코드를 보완하지 못한다. 나쁜 코드에 주석을 달지마라. 코드를 다시 짜라 주석은 최대한 자제하기 주석으로 설명한 부분 함수로 만들어 표현 가능한지 살펴보기 주석으로 설명하는 부분 (개선 전) if ((employee.flags & HOURLY_FLAG) && (employee.age > 65)) 함수로 표현한 부분 (개선 후) if(employee.isEligibleForFullBenefits()...

김시용

Clean Code 초안 5장 형식 맞추기

1. 📌 핵심 개념 정리 ✅ 요약하기 코드 형식의 목적 코드 형식은 의사소통의 일환이다. 코드는 재사용이나 재구현의 경우가 많기에 가독성이 상당히 중요 -> 코드 형식 자체가 가독성에 지대한 영향 권장하는 코드 형식 적절한 행 길이 유지 (대부분 200줄) 신문 기사처럼 작성 -> 큰 개념부터 아래로 내려갈수록 의도를 세세하게 묘사 개념은 빈 행으로 분리 (새로운 개념 시작 부분 행 하나 비우기) 세로 밀집도 : 연관성 높은 개념들 밀집시키기 (연관성 ...

김시용

Clean Code 초안 6장 객체와 자료 구조

1. 📌 핵심 개념 정리 ✅ 요약하기 자료 추상화 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다. (인터페이스나 조회/설정 함수만으로는 추상화가 이뤄지지 않는다) 자료/객체 비대칭 객체는 동작을 공개하고 자료를 숨긴다. 그래서 기존 동작을 변경하지 않으면서 새 객체 타입을 추가하기 쉽다. 반면, 기존 객체에 새 동작을 추가하기는 어렵다. 자료 구조는 별다른 동작 없이 자료를 노출한다. 그래서 기존...

김시용

Clean Code 초안 7장 오류 처리

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 오류 코드보다 예외를 사용 오류 코드 사용할 때는 if-else로 오류 처리해서 가독성이 떨어져 호출자 코드가 복잡해진다. 예외를 사용시, 동작과 오류 처리를 분리하여 가독성을 높인다. try-catch-finally 예외가 발생할 코드를 짤 때는 try-catch-finally 문으...

김시용

Clean Code 초안 8장 경계

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 경계 명확히 하기 외부 라이브러리를 직접 사용하는 대신 적절한 인터페이스를 정의하여 내부 코드와 분리하기 경계를 명확히 하면, 외부 라이브러리가 변경되거나 교체될 경우에도 코드 수정 범위를 최소활 수 있음 경계 테스트 작성 외부 코드 사용시, 테스트 케이스 통해 사용법 미리 익...

김시용

Clean Code 초안 9장 단위 테스트

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. TDD 법칙 세가지 실패 하는 단위 테스트를 작성할 때까지 실제 코드 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 저도로만 단위 테스트 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 이렇게 하면 방대한 테스트 코드가 나오므로 심각한 관리 문제를 ...

김시용

Clean Code 초안 10장 클래스

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 캡슐화 클래스 내 선언된 변수, 함수 등은 외부에서 접근 못하게 private 선언으로 숨기는 것을 의미. 테스트 코드 등을 이유로 같은 패키지에서 접근이 가능하도록 protected로 선언하여 접근 가능하게 하기도 함. 단, 비공개 상태를 유지할 온갖 방법을 강구한 후에 캡슐화를 풀어주는...

김시용

Clean Code 초안 11장 시스템

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 시스템 제작과 사용을 분리하라 관심사 분리 : 준비 과정 (객체 제작 및 의존성 연결) <-> 런타임 로직 분리하기 관심사 분리 안된 예시 : 초기화 지연 / 계산 지연 public Service getService() { if (service == null) service ...

김시용

Clean Code 초안 12장 창발성(創發性)

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 모든 테스트를 실행하라 시스템은 검증이 가능해야 한다 = 테스트가 가능한 시스템 모든 테스트를 실행하기 위해선 SRP 및 DIP 준수하게 된다. -> 의존성 주입, 인터페이스, 추상화 등과 같은 도구를 사용해 결합도를 낮춘다. 즉, 시스템은 낮은 결합도와 높은 응집력을 가져야 한다. ...

김시용

Clean Code 초안 13장 동시성

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 동시성이 필요한 이유 동시성은 결합을 없애는 전략이다. 즉, 무엇과 언제를 분리하는 전략이다. -> 애플리케이션 구조와 효율이 극적으로 나아진다. 작은 협력 프로그램 여럿으로 보인다. = 시스템을 이해하기 쉽고 문제를 분리하기도 쉽다. 응답시간과 작업 처리량 개선으로 인해 동시성이 불가피한...

김시용

Clean Code 초안 14장 점진적인 개선

1. 📌 핵심 개념 정리 ✅ 요약하기 해당 챕터에서는 Args 클래스를 개선해 나가는 과정을 보여준다. 초기 Args 클래스 Args 단일 클래스가 너무 많은 역할을 함 스키마 해석, 인자 파싱, 값 저장, 타입 구분 모두 한 클래스에서 처리 타입별 처리 로직이 중복 Boolean, String, Integer 타입이 각각 따로 존재하며 중복된 방식으로 처리됨 확장성 부족 새로운 타입을 추가하려면 여러 곳을 직접 수정해야 함 -> OCP 위...

김시용

Clean Code 초안 15장 JUnit 들여다보기

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. JUnit 프레임워크 JUnit 프레임워크 중 문자열 비교 오류를 파악할 때 유용한 ComparisonCompactor 모듈을 개선해나가는 내용을 단계별로 보여준다. 테스트 코드 작성 개선하고자 하는 모듈에 대한 코드 커버리지가 100%인 테스트 코드를 작성한다. -> 테스트 케이스가...

김시용

Clean Code 초안 16장 SerialDate 리팩터링

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 개선 시작 전 SerialDate를 리팩터링하는 과정을 통해 어떻게 깨끗한 코드로 정리해나가는지를 보여준다. 개선 시작 전, 테스트 코드를 돌려보고 클로버를 이용해 커버리지를 분석 한다. 테스트 코드 수정을 통한 커버리지 높이기. 개선 시작 주석 내용 올바르게 수정 변경 이력 ...

김시용

Clean Code 초안 17장 냄새와 휴리스틱

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 냄새와 휴리스틱 해당 챕터에서는 책의 전체 내용을 정리하는 느낌으로 아래와 같은 내용들을 설명과 간단한 예시들을 들어 설명해준다. - 냄새 : 코드에 문제가 있음을 나타내는 경고 신호. 버그는 아니지만, 유지보수성, 가독성, 확장성에 악영향을 미침. - 휴리스틱 : 코드를 개선할 때 참고할 ...