kotlin/[Book] Code Readability
-
[CodeReadability] 8장 Code Reivewkotlin/[Book] Code Readability 2025. 11. 9. 16:13
Objective코드 리뷰(Code Review)를 통해 코드의 가독성, 품질, 생산성을 높인다.코드 자체만이 아니라 “리뷰 과정” 또한 효율적이고 협력적으로 설계해야 한다.Key Results[KR1] 리뷰 요청자는 리뷰하기 쉬운 Pull Request(PR)을 만든다.[KR2] 리뷰 수행자는 코드를 “비판”이 아닌 “협업”의 관점에서 검토한다.[KR3] 리뷰의 핵심은 “변경의 의도와 책임 범위”를 명확히 하는 것이다.[KR4] PR의 크기와 구조를 조절해 리뷰 생산성을 높인다.[KR5] 리뷰 코멘트의 목적은 코드 품질 향상이 아니라 지속 가능한 팀 협업이다.Part 1. 리뷰의 필요성과 본질개념코드 리뷰는 단순히 오류를 찾는 과정이 아니라,가독성(Readability)논리적 정확성(Logic corr..
-
[Code Readability] 7장 Dependency (의존성의 가독성 설계)kotlin/[Book] Code Readability 2025. 11. 9. 13:15
Objective코드의 가독성을 해치는 가장 큰 요인은 “불투명한 의존성” 이다.좋은 코드란 “무엇이 무엇에 의존하는지”를 한눈에 알 수 있어야 한다.이를 위해 결합도(coupling)를 줄이고, 방향(direction)을 정하며, 중복(redundancy)을 없애고, 명시성(explicitness)을 높인다.Key Results[KR1] 의존성은 가능한 한 비순환(acyclic) 구조로 유지한다.[KR2] 강결합(content/common/control coupling) 을 피하고, 데이터 중심 결합(data coupling) 을 선호한다.[KR3] caller → callee, concrete → abstract, complex → simple 방향을 지킨다.[KR4] 중복된 의존성 관계를 제거해, ..
-
[Code Readability] 5장 읽기 쉬운 함수(function)kotlin/[Book] Code Readability 2025. 11. 9. 12:07
Objective**“읽기 쉬운 함수(Readability)”**란,이름만 봐도 동작을 예측할 수 있고,한 번 훑기만 해도 전체 흐름이 보이는 함수를 말한다.이 문서는 함수의 책임, 흐름, 구조화 원칙을 통해 이를 달성하는 방법을 설명한다.Key Results[KR1] 한 문장으로 요약되지 않는 함수는 반드시 분리한다.[KR2] Command와 Query는 분리하여 예측 가능한 동작을 보장한다.[KR3] 중첩 호출이나 체이닝을 줄이고, 의미 있는 이름으로 정의 기반 프로그래밍(Definition-based Programming) 을 수행한다.[KR4] Happy Path 중심 구조로 설계하여, 비정상 케이스를 초기에 걸러낸다.[KR5] 조건이 아닌 객체(Object) 를 기준으로 분기와 책임을 분리한다...
-
[Code Readability] 3장 코드 가독성을 높이는 주석(Comment) 작성 원칙kotlin/[Book] Code Readability 2025. 11. 9. 10:33
Objective코드의 가독성(Readability) 과 유지보수성(Maintainability) 을 높이기 위해 주석(Comment)을 의미 있게, 필요한 곳에만, 명확하게 작성하는 원칙을 이해하고 실천한다.Key Results[KR1] 코드 자체로 설명 가능한 경우, 주석을 생략한다.[KR2] 주석은 “무엇을 하는가(What)”보다 “왜 이렇게 하는가(Why)”에 집중한다.[KR3] 주석의 종류(Documentation / Informal / TODO 등)에 따라 목적과 사용 위치를 구분한다.[KR4] 불필요한 주석을 없애기 위해 코드 리팩토링을 적극적으로 수행한다.[KR5] 주석이 코드의 “행동”이 아닌 “의도”를 설명하도록 작성한다.Part 1. 주석의 개념과 목적개념주석(Comment)은 코드 ..
-
[Code Readability] 4장 상태(State)kotlin/[Book] Code Readability 2025. 11. 9. 10:16
Objective코드의 가독성과 안정성을 향상시키기 위해, 상태(State)와 변수 관계를 명확히 설계하고 유지한다.Key Results변수 간 관계를 독립적(orthogonal)으로 유지한다.불변성(immutability)과 멱등성(idempotence)을 통해 상태 전이의 일관성을 확보한다.순환적(cyclic) 상태는 최소화하고, 가능한 한 비순환(acyclic) 구조를 유지한다.KR1. 변수 간 관계 관리 (Relationship between Variables)문제서로 종속적인 변수가 존재하면 잘못된 상태(illegal state)가 발생할 수 있다.class CoinState(val coinCount: Int, val coinText: String)// 잘못된 상태 가능val state = Co..
-
[Code Readability] 6장 의존 관계와 결합도(Coupling)kotlin/[Book] Code Readability 2025. 10. 31. 00:07
1. 의존 관계(Dependency)한 클래스나 모듈이 다른 클래스나 모듈의 존재에 의존할 때 발생합니다.예시:class UserRepository { fun getUser(id: Int): User = ...}class UserService( private val repository: UserRepository // 🔸 UserService는 UserRepository에 의존) { fun loadUser(id: Int) = repository.getUser(id)}2. 결합도(Coupling)의존 관계의 강도(strength) 를 나타냅니다.결합도가 높을수록 코드 변경 시 영향 범위가 커집니다.따라서 “약한 결합(Loose Coupling)”이 바람직합니다. 3. 결합도의 종류 및..
-
[Code Readability] 2장 Namingkotlin/[Book] Code Readability 2025. 10. 24. 23:58
Objective읽기 쉬운 이름을 통해 코드의 의도와 책임을 명확히 표현하고, 협업 시 오해를 줄이며 유지보수를 쉽게 만든다.Key ResultsKR1. 좋은 이름의 기본 원칙개념이름은 정확하고(Accurate), 설명적(Descriptive) 이어야 한다.이름이 곧 문서 역할을 한다.문제약어나 모호한 단어(flag, tmp, data)는 맥락을 잃게 만든다.잘못된 문법 순서나 축약어는 코드의 의미를 흐린다.해결 방법정확한 문법을 따르고,“무엇(what)”을 설명하며,의미가 좁고 구체적인 단어를 선택하고,축약어 대신 전체 단어를 사용하며,단위(type/unit)를 명시하고,긍정적인 단어를 사용한다.KR2. 올바른 문법 사용 (Use correct grammar)개념이름의 품사(naming type)에 따..
-
[Code Readability] 1장 도입과 원칙kotlin/[Book] Code Readability 2025. 10. 24. 23:58
가독성이 좋은 코드란?분명해야하고, 간단해야 하고 독립적이어야 하고, 구조적이어야 한다.프로덕트의 규모가 커질수록 코드를 작성하는 것보다 읽는 시간이 더 많아진다.쓰기 편한코드보다 읽기 쉬운 코드가 더 중요하다.프로덕트의 규모가 큰 경우에만 중요하고, 일시적으로 사용하는 코드는 괜찮다.가독성을 개선하는 방법기술, 지식을 목적을 생각해서 선택해야 한다.기술 자체를 사용해보고 싶어서 사용하면 안된다.가치가 있다면 복잡해도 된다.자동 검증을 최대한 활용한다.컴파일러, 테스트 등을 더 신뢰된다.더 자주 논의 하라팀원들과 만들면서 계속 이야기한다.계속 배우자가독성이 높은 코드를 작성하려면 여러 공부가 필요하다.강의, 훈련, 책, 온라인 기사, 코드 리뷰, 페어 프로그래밍Objective대규모 소프트웨어 개발에서도..