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

21 total results found

Clean Code 초안

클린 코드(Clean Code) - 로버트 C. 마틴을 기반으로 수업에서 배운 실습 코드나 개인 프로젝트에 적용하며 클린 코드의 원칙과 중요성을 학습하고 이를 기록합니다.

CleanCode
로버트 C. 마틴

Clean Code 완성본

클린 코드(Clean Code) - 로버트 C. 마틴을 기반으로 작성된 책 요약 정리 문서입니다.

CleanCode
로버트 C. 마틴

📢 챕터 템플릿 (1) 📢

Clean Code 초안 템플릿

1. 📌 핵심 개념 정리 가이드라인 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 한 줄 요약 내용 개선 전 개선 전 코드 개선 전 코드의 문제점을 작성합니다. 개선 후 개선 후 코드 개선 후의 코드에 대한 설명을 작성합니다. 한 줄 요약 내용 . . . 한 줄 요약 내용 . . . 아래는 초안 작성 예시입니다...

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 1장 깨끗한 코드

1. 📌 핵심 개념 정리 ✅ 요약하기 나쁜 코드 일정에 쫒겨 나쁘게 구현한 코드는 개발자의 발목을 잡는다. 바쁠때는 나중에 다시 리팩토링하겠다고 다짐하지만 다음은 오지 않는다. 나쁜코드와 생산성은 반비례한다. 깨끗한 코드란? 우아하고 효율적인 코드를 작성하자. 가독성이 좋은 코드를 작성하자. 다른 사람이 고치기 쉬운 코드를 작성하자. 코드를 주의깊게 작성하라. 중복이 없...

CleanCode
로버트 C. 마틴

박수완

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

1. 📌 핵심 개념 정리 ✅ 요약하기 의도를 분명히 밝혀라 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 개선 전 public List<int[]> getThem() { List<int[]> list1 = new ArrayList<int[]>(); for (int[] x: theList) if (x[0] == 4) list1.add(x); return list1; } theList에 무엇이 들었는가?...

CleanCode
로버트 C. 마틴

📢 챕터 템플릿 (2) 📢

Clean Code 초안 템플릿

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 한 줄 요약 내용 개선 전 개선 전 코드 개선 전 코드의 문제점을 작성합니다. 개선 후 개선 후 코드 개선 후의 코드에 대한 설명을 작성합니다. 한 줄 요약 내용 . . . 한 줄 요약 내용 . . . 2. 🤔 이해가 어려운 부분 🔍 질문하기 책을 읽으며 이해하기 ...

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 4장 주석

1. 📌 핵심 개념 정리 ✅ 요약하기 주석은 나쁜 코드를 보완하지 못한다 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 코드로 의도를 표현하라 확실히 코드만으로 의도를 설명하기 어려운 경우가 존재한다. 불행히도 많은 개발자가 이름 코드는 휼륭한 수단이 아니라는 의미로 해석한다. 분명히 잘못된 생각이다. 개선 전 if ((employee.flags & HOURLY_FLAG)) && (employee.age > 65) ...

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 3장 함수

1. 📌 핵심 개념 정리 ✅ 요약하기 작게 만들어라 함수를 만드는 첫째 규칙은 '작게'다. 함수를 만드는 둘째 규칙은 '더 작게'다. 이 규칙은 근거를 대기가 곤란하다. 리팩토링 한 버전 public static String renderPageWithSetupsAndTeardowns( PageData pageData, boolean isSuite ) throws Exception { boolean isTestPage = pag...

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 5장 형식 맞추기

1. 📌 핵심 개념 정리 ✅ 요약하기 형식을 맞추는 목적 오랜 시간이 지나 원래 코드의 흔적의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. 적절한 행 길이를 유지하라 신문 기사 처럼 직성하라 신문은 다양한 기사로 이뤄진다. 대다수 기사가 아주 짧다. 어떤 기사는 조금 길다. 한 면을 채우는 기사는 거의 없다. 신문이 읽을 만한 이유는 여기에 있다...

CleanCode
로버트 C. 마틴

박수완

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

1. 📌 핵심 개념 정리 ✅ 요약하기 변수를 비공개private로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다. 충동이든 변덕이든, 변수 타입이나 구현을 맘대로 바꾸고 싶어서다. 그렇다면 어째서 수많은 프로그래머가 조회get 함수와 설정set 함수를 당연하게 공개public해 비공개 변수를 외부에 노출할까? 자료 추상화 구체적인 Point 클래스 public class Point { public double x; public d...

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 7장 오류 처리

1. 📌 핵심 개념 정리 ✅ 요약하기 오류 코드보다 예외를 사용해라 오류가 발생하면 예외를 던지는 편이 낫다. 그러면 호출자 코드가 더 깔끔해진다. 논리가 오류 처리 코드와 뒤섞이지 않으니까 개선 전 // Bad public class DeviceController { ... public void sendShutDown() { DeviceHandle handle = getHandle(DEV1); // Check the state ...

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 8장 경계

1. 📌 핵심 개념 정리 ✅ 요약하기 경계 살피고 익히기 외부 코드를 사용하면 적은 시간에 더 많은 기능을 출시하기 쉬워진다. 만약 외부에서 가져온 패키지를 사용하고 싶다면 어디사 어떻게 시작해야 좋을까? 외부 패키지 테스트가 우리 책임은 아니다. 하지만 우리 자신을 위해 우리가 사용할 코드를 테스트하는 편이 바람직하다. log4j 익히기 개선 전 // 1. // 우선 log4j 라이브러리를 다운받자. // 고민 많이 하지 말고 본능에 따라...

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 9장 단위 테스트

1. 📌 핵심 개념 정리 ✅ 요약하기 TDD 법칙 세 가지 첫째 법칙 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 둘째 법칙 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 셋째 법칙 헌재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 이렇게 일하면 매일 수십 개, 매달 수백 개, 매년 수천 개에 달하는 테스트 케이스가 나온다. 이렇게 일하면 실제 코드를 사실상 전부 테스트하는 ...

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 10장 클래스

1. 📌 핵심 개념 정리 ✅ 요약하기 클래스 체계 클래스를 정의하느 표준 자바 관례에 따르면, 가장 먼저 변수 목록이 나온다. 정적 공개 상수가 있다면 맨 처음에 나온다. 다음으로 정적 비공개 변수가 나오며 이어서 비공개 인스턴스 변수가 나온다. 캡술화 변수와 유탈리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야한다는 법칙도 없다. 때로는 변수나 유틸리티 함수를 protected로 선언해 테스트 코드에 접근을 허용하기도 한다. 클래...

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 11장 시스템

1. 📌 핵심 개념 정리 ✅ 요약하기 도사룰 세운다면? 도시가 돌아가는 또 다른 이유는 적절한 추상화와 모듈화 때문이다. 그래서 큰 그림을 이해하지 못할지라도 개인과 개인이 관리하는 구성요소는 효율적으로 돌아간다. 깨끗한 코드를 구현하면 낮은 추상화 수준에서 관심사를 분리하기 쉬워진다. 시스템 제작과 시스템 사용을 분리하라 public Service getService() { if (service == null) service ...

CleanCode
로버트 C. 마틴

박수완

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

1. 📌 핵심 개념 정리 ✅ 요약하기 창발적 설계로 깔끔한 코드를 구현하자 모든 테스트를 실행한다 중복을 없앤다 프로그래머 의도를 표현한다. 클래스와 메서드 수를 최소로 줄인다 단순한 설계 규칙 1: 모든 테스트를 실행하라 테스트가 가능한 시스템을 만들려고 애쓰면 설계 품질이 더불어 높아진다. 크기가 작고 목적 하나만 수행하는 클래스가 하나만 수행하는 클래스가 나온다. 결합도가 높으면 테스트를 작성하기 어렵다. 그러므로 앞서와 마찬가지로 테스트 ...

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 13장 동시성

1. 📌 핵심 개념 정리 ✅ 요약하기 이 장에서는 여러 스레드를 동시에 돌리는 이유를 논한다. 여러 스레드를 동시에 돌리는 어려움도 논한다. 이런 어려움에 대처하고 깨끗한 코드를 작성하는 방법도 몇 가지 제안한다. 동시성이 필요한 이유? 동시성은 결합을 없애는 전략이다. 즉, 무엇과 언제를 분리하는 전략이다. 스레드가 하나인 프로그램은 무엇과 언제가 서로 밀접하다. 그래서 호출 스택을 살펴보면 프로그램 상태가 곧바로 드러난다. 컨테이너는 동시성을 부분적으로 ...

CleanCode
로버트 C. 마틴

박수완

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

1. 📌 핵심 개념 정리 ✅ 요약하기 Args 구현 목록 14-2는 Args 클래스다. 아주 주의 깊게 읽어보기 바란다. 스타일과 구조에 신경을 썼으므로 흉내 낼 가치가 있다고 믿는다. 이름을 붙인 방법, 함수 크기, 코드 형식에 각별히 주목한다. 노련한 프로그래머라면 여기저기 자잘한 구조나 스타일이 거슬릴지 모르지만 전반적으로 깔끔한 구조에 잘 짜인 프로그램으로 여겨주면 좋겠다. 목록 14-2 Args.java package com.objectmen...

CleanCode
로버트 C. 마틴

박수완

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

1. 📌 핵심 개념 정리 ✅ 요약하기 Junit 공통적인 접두어를 모두 제거하자. 명확한 표현을 위해 조건문을 캡슐화하자. (조건문을 메서드로 뽑아내 적절한 이름을 붙이자.) 이름을 명확하게 붙이자. 부정문은 긍정문보다 이해하기 약간 더 어렵다. 부정문을 긍정문으로 표현해 조건문을 반전하자. 함수에 적합한 이름을 주어 가독성을 높이자. 함수를 분리하자 함수를 일관적으로 사용하자.

CleanCode
로버트 C. 마틴

박수완

Clean Code 초안 16장 SerialDate 리팩터링

1. 📌 핵심 개념 정리 ✅ 요약하기 첫째, 둘러보자 클래스를 철저히 이해하고 리팩터링하려면 훨씬 높은 테스트 커버리지가 필요하다. 둘째, 고쳐보자 주석 법적인 정보는 필요하므로 라이선스 정보와 저작권은 보존한다. 소스 코드 제어 도구를 사용하므로 변경 이력은 없애도 괜찮다. import 문 java.text.* 와 java.util.*로 줄여도 된다. Javadoc 주석 여러 언어를 사용하면 제대로 모양새를 맞추기 어렵다. 주석 전부를 pr...

CleanCode
로버트 C. 마틴

박수완

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

1. 📌 핵심 개념 정리 ✅ 요약하기 주석 C1: 부적절한 정보 다른 시스템에 (예를 들어, 소스 코드 관리 시스템, 버그 추적 시스템, 이슈 추적 시스템, 기타 기록 관리 시스템에) 저장할 정보는 주석으로 적절하지 못하다. 일반적으로 작성자, 최종 수정일, SPR(Software Problem Report) 번호 등과 같은 메타 정보만 주석으로 넣는다. 주석은 코드와 설계에 기술적인 설명을 부연하는 수단이다. C2: 쓸모 없는 주석 오래된 주석, 엉뚱한 주석,...

CleanCode
로버트 C. 마틴