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

125 total results found

박수완

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

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

CleanCode
로버트 C. 마틴

김시용

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

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

김주엽

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

1. 📌 핵심 개념 정리 ✅ 요약하기 JUnit 프레임워크 JUnit은 저자가 많지만 켄트 벡과 에릭 감마 두 사람이 아틀란타 행 비행기를 타고 가다 만들었다. 저자가 챕터에서 소개할 코드는 ComparisonCompactor모듈로 문자열 비교 오류를 파악할 때 유용한 모듈이다. 예를 들어 ABCDE, ABXDE를 입력받으면 <...B[X]D...>를 반환한다 ComparisonCompactor 모듈 코드 package junit.framework; pub...

진소희

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

1. 📌 핵심 개념 정리 ✅ 요약하기 JUnit 프레임워크 문자열 비교 오류를 파악할 때 유용한 코드. Com-parisonCompactior라는 모듈로, 영리하게 짜인 코드이다. 아래는 테스트 코드이다. ComparisonCompactorTest.java package junit.tests.framework; import junit.framework.ComparisonCompactor; import junit.framework.TestCase; pub...

김주엽

Clean Code 초안 16장 SerialDate 리팩터링

1. 📌 핵심 개념 정리 ✅ 요약하기 첫째 돌려보자 SerialDateTests 클래스는 모든 경우를 점검하지 않는다는 사실이 드러난다. MonthCodeToQuarter 메서드를 전혀 호출하지 않는다. 코드 커버리지 분석 도구인 클로버를 이용해 단위 테스트가 실행하는 코드, 그렇지 않은 코드를 조사한 결과 185개 중 50% 만 실행하고 있었다. 클래스를 절저히 이해하고 리팩터링하려면 높은 테스트 커버리지가 필요하다. 둘째, 고쳐보자 코드의...

김시용

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

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

김시용

Clean Code 초안 16장 SerialDate 리팩터링

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

진소희

Clean Code 초안 16장 SerialDate 리팩터링

1. 📌 핵심 개념 정리 ✅ 요약하기 첫째, 돌려보자 SerialDateTests라는 클래스는 단위 테스트 케이스 몇 개를 포함한다. 돌려보면 실패하는 케이스는 없다. 하지만 테스트 케이스를 훑어보면 모든 경우를 점검하지 않는다는 사실이 드러난다. 코드 커버리지 분석 도구인 클로버를 이용해 단위 테스트가 실행하는 코드와 실행하지 않는 코드를 조사했다. 대략 50% 정도였다. 클래스를 철저히 이해하고 리팩터링하려면 훨씬 높은 테스트 커버리지가 필요했다. ...

이정우

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

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. JUnit 프레임워크 import junit.framework.ComparisonCompactor; import junit.framework.TestCase; public class ComparisonCompactorTest extends TestCase { public void...

이정우

Clean Code 초안 16장 SerialDate 리팩터링

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 첫째, 돌려보자 SerialDateTest라는 클래스는 단위 테스트 케이스를 몇 개 포함한다. 실패하는 케이스는 없지만 모든 경우를 점검하지 않는다는 사실을 알 수 있다.. 저자는 SerialDateTest.java에 있는 모든 테스트 케이스가 통과할 수 있게 만들었다. Clover라는...

박수완

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. 📌 핵심 개념 정리 ✅ 요약하기 주석 부적절한 정보 변경 이력과 같은 주석은 적절하지 못하다. 일반적으로 작성자, 최종 수정일, SPR(Software Problem Report) 번호 등과 같은 메타 정보를 주석으로 남긴다. 주석은 코드와 설계에 기술적인 설명을 부연하는 수단이다. 쓸모 없는 주석 오래된 주석, 엉뚱한 주석, 잘못된 주석은 쓸모가 없다. 쓸모 없어질 주석을 작성하지 않는 것이 가장 좋지만 작성했다면 재빨리 삭제하는 것이 좋다. ...

진소희

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

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

김시용

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

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

이정우

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

1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 주석 C1: 부적절한 정보 다른 시스템에 저장할 정보는 주석은 적절하지 못하다. 주석은 코드와 설계에 기술적인 설명을 부연하는 수단이다. C2: 쓸모없는 주석 오래된 주석, 엉뚱한 주석, 잘못된 주석은 더 이상 쓸모가 없다. 쓸모 없어진 주석은 재빨리 삭제하는 편이 가장 좋다. ...

박수완

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

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

CleanCode
로버트 C. 마틴

12장 창발성

Clean Code 완성본

1. 📌 핵심 개념 정리 ✅ 요약하기 1. 창발적 설계로 깔끔한 코드를 구현하자 대다수는 켄트 벡이 제시한 단순한 설계 규칙 네 가지가 소프트웨어 설계 품질을 크게 높여준다고 믿는다. 켄트 벡은 다음 규칙을 따르면 설계는 단순하다고 말한다: 모든 테스트를 실행한다 중복을 없앤다 프로그래머 의도를 표현한다 클래스와 메서드 수를 최소로 줄인다 2. 단순한 설계 규칙 1 : 모든 테스트를 실행하라 설계는 의도한 대로 돌아가는 시스템을 내놓아야 한다. 테스...

13장 동시성

Clean Code 완성본

1. 📌 핵심 개념 정리 ✅ 요약하기 객체는 처리의 추상화다. 스레드는 일정의 추상화다. 제임스 O. 코플리엔 1. 동시성이 필요한 이유 동시성이란? 동시성은 결합(coupling)을 줄이는 전략이다. 즉, 무엇(what)과 언제(when)를 분리하는 역할을 한다. 스레드가 하나인 프로그램은 무엇과 언제가 강하게 결합되어 있어 상태 관리가 어렵다. 디버깅 시 중단점을 찍었을 때 어디서 언제 멈추는지 확인이 가능하다. 반면, 동시성을 도입하면 프로그램이 독...

14장 점진적인 개선

Clean Code 완성본

1. 📌 핵심 개념 정리 ✅ 요약하기 이 챕터에서는 저자가 겪은 점진적인 개선을 보여주는 사례를 다룬다. main 함수에서 인수 문자열을 다루는 Args 관련 코드를 살펴보자. 간단한 예시 public static void main(String[] args) { try { Args arg = new Args("l,p#,d*", args); boolean logging = arg.getBoolean('l'); in...