Advanced Search
Search Results
125 total results found
진소희
1. 📌 핵심 개념 정리 ✅ 요약하기 TDD 법칙 세 가지 첫째 법칙: 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 둘째 법칙: 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 셋째 법칙: 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 위 세가지 규칙을 따르면 개발과 테스트가 대략 30초 주기로 묶인다. 테스트 코드와 실제 코드가 함께 나올뿐더러 테스트 코드가 실제 코드보다 불과 몇 초 전에...
5장 형식 맞추기
1. 📌 핵심 개념 정리 ✅ 요약하기 1. 코드 형식의 목적 코드 형식은 의사소통의 일환이다. 오늘 구현한 기능이 다음 버전에서 바뀔 확률은 매우 높지만, 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 원래 코드는 사라질지라도 개발자의 스타일과 규율은 지속되며, 유지보수와 확장성에 결정적인 역할을 한다. 2. 적절한 행 길이 및 파일 크기 조사된 여러 프로젝트(JUnit, FitNesse, testNG, Time and Money, JD...
6장 객체와 자료 구조
1. 📌 핵심 개념 정리 ✅ 요약하기 변수를 비공개로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶기 때문이다. 그렇다면 어째서 수많은 프로그래머가 조회 함수와 설정 함수를 당연하게 공개해 비공개 변수를 외부에 노출할까? 1. 자료 추상화 변수 사이에 함수라는 계층을 넣는다고 구현이 저절로 감춰지지는 않는다. 구현을 감추려면 추상화가 필요하다. 그저 조회 함수와 설정 함수로 변수를 다룬다고 클래스가 되지는 않는다. 그보다는 추상 인터페이스를 제...
김주엽
1. 📌 핵심 개념 정리 ✅ 요약하기 오류 코드보다 예외를 사용하라 알고리즘과 오류를 처리하는 알고리즘을 분리하기 위해 예외를 사용하라 개선 전 public void shutDown() { DeviceHandle handle - getHandle(DEV1); if (handle != DeviceHandle.INVALID) { ... } } 개선 후 public void shutDown() { try { tryToShut...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 오류 코드보다 예외를 사용하라 논리가 오류 처리 코드와 뒤섞이지 않아 호출자 코드가 더욱 깔끔해진다. Try-Catch-finally 문부터 작성하라. try 블록은 트랜잭션과 비슷하다. try블록과 별개로 catch 블록은 프로그램 상태를 일관성 있게 유지해야 하기 때문. try 블록에서 무슨 일이 생기든지 호출자가 기대하는 상태를 정의하기 쉬워짐 미확인 예외를 사용하라 자바 초장기에는 메서드 선언...
김시용
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 오류 코드보다 예외를 사용 오류 코드 사용할 때는 if-else로 오류 처리해서 가독성이 떨어져 호출자 코드가 복잡해진다. 예외를 사용시, 동작과 오류 처리를 분리하여 가독성을 높인다. try-catch-finally 예외가 발생할 코드를 짤 때는 try-catch-finally 문으...
김주엽
1. 📌 핵심 개념 정리 ✅ 요약하기 경계 살피고 익히기 외부 코드를 통합하기 전에 간단한 테스트 케이스를 작성해 외부 코드를 익히자. 짐 뉴커크는 이를 학습 테스트라고 부르는데 학습 테스트는 프로그램에서 사용하려는 방식대로 외부 API를 호출한다. 학습 테스트는 API를 사용하려는 목적에 초점을 맞춘다. 학습 테스트는 공짜 이상이다 학습 테스트는 투자하는 노력보다 얻는 성과가 더 크다. 학습 테스트는 패키지가 실제로 예상대로 도는지 검증한다. 사...
김주엽
1. 📌 핵심 개념 정리 ✅ 요약하기 TDD 법칙 세 가지 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 깨끗한 테스트 코드 유지하기 테스트 코드가 복잡할수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸릴 수 있다. 지저분한 테스트 코드는 개발자 사이에서 점점 큰 불만...
김시용
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 경계 명확히 하기 외부 라이브러리를 직접 사용하는 대신 적절한 인터페이스를 정의하여 내부 코드와 분리하기 경계를 명확히 하면, 외부 라이브러리가 변경되거나 교체될 경우에도 코드 수정 범위를 최소활 수 있음 경계 테스트 작성 외부 코드 사용시, 테스트 케이스 통해 사용법 미리 익...
이정우
8. 📌 경계 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 외부 코드 사용하기 인터페이스 제공자 더 많은 고객을 얻기 위해 가용성과 적용성을 높인다. 인터페이스 사용자 자신의 요구에 집중하는 인터페이스를 바란다. 이러한 긴장으로 시스템 경계에서 문제 발생 소지가 많다. 경계 살피고 익히기 외부 코드 사용시 적은 시간에 더 많은 기능 출...
김시용
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. TDD 법칙 세가지 실패 하는 단위 테스트를 작성할 때까지 실제 코드 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 저도로만 단위 테스트 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 이렇게 하면 방대한 테스트 코드가 나오므로 심각한 관리 문제를 ...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 TDD 법칙 세 가지 실패하는 단위 테스트를 작성할 떄까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 위 세가지 규칙을 따르면 개발과 테스트가 대략 30초 주기로 묶인다. 테스트 코드와 실제 코드가 함께 나올뿐더러 테스트 코드가 실제 코드보다 불과 몇 초 전에 나온다. 하지만 과한 양의 테스트 ...
박수완
1. 📌 핵심 개념 정리 ✅ 요약하기 클래스 체계 클래스를 정의하느 표준 자바 관례에 따르면, 가장 먼저 변수 목록이 나온다. 정적 공개 상수가 있다면 맨 처음에 나온다. 다음으로 정적 비공개 변수가 나오며 이어서 비공개 인스턴스 변수가 나온다. 캡술화 변수와 유탈리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야한다는 법칙도 없다. 때로는 변수나 유틸리티 함수를 protected로 선언해 테스트 코드에 접근을 허용하기도 한다. 클래...
박수완
1. 📌 핵심 개념 정리 ✅ 요약하기 도사룰 세운다면? 도시가 돌아가는 또 다른 이유는 적절한 추상화와 모듈화 때문이다. 그래서 큰 그림을 이해하지 못할지라도 개인과 개인이 관리하는 구성요소는 효율적으로 돌아간다. 깨끗한 코드를 구현하면 낮은 추상화 수준에서 관심사를 분리하기 쉬워진다. 시스템 제작과 시스템 사용을 분리하라 public Service getService() { if (service == null) service ...
진소희
1. 📌 핵심 개념 정리 ✅ 요약하기 클래스 체계 정적 공개 상수가 있다면 맨 처음에 나온다. 다음으로 정적 비공개 함수가 나오며, 이어서 비공개 인스턴스 변수가 나온다. 공개 변수가 필요한 경우는 거의 없다. 변수 목록 다음에는 공개 함수가 나온다. 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다. 즉, 추상화 단계가 순차적으로 내려간다. 캡슐화 변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야 한다는 법칙도 없다. 때로는 변...
진소희
1. 📌 핵심 개념 정리 ✅ 요약하기 도시를 세운다면? 도시를 세운다면? 온갖 세세한 사항을 혼자서 직접 관리할 수 있을까? 불가능하다. 수도 관리 팀, 전력 관리 팀, 교통 관리 팀, 치안 관리 팀, 건축물 관리 팀 등 각 분야를 관리하는 팀이 있기 때문에 잘 돌아간다. 도시가 잘 돌아가는 또 다른 이유는 적절한 추상화와 모듈화 때문이다. 그래서 큰 그림을 이해하지 못할지라도 개인과 개인이 관리하는 구성요소는 효율적으로 돌아간다. 시스템 제작과 시...
김시용
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 캡슐화 클래스 내 선언된 변수, 함수 등은 외부에서 접근 못하게 private 선언으로 숨기는 것을 의미. 테스트 코드 등을 이유로 같은 패키지에서 접근이 가능하도록 protected로 선언하여 접근 가능하게 하기도 함. 단, 비공개 상태를 유지할 온갖 방법을 강구한 후에 캡슐화를 풀어주는...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 클래스 체계 변수목록 1️⃣ 정적 공개 상수 2️⃣ 정적 비공개 변수 3️⃣ 비공개 인스턴스 4️⃣ 공개 변수 (필요한 경우 거의 없음) 공개 함수 비공개 함수 추상화 단계가 순차적으로 내려가기에 프로그램은 신문기사처럼 읽힌다. 캡슐화 변수와 유틸리티 함수는 가능한 공개x 패키지 ...
김주엽
1. 📌 핵심 개념 정리 ✅ 요약하기 클래스는 작아야 한다! 클래스를 만들 때 가장 중요한 것은 클래스가 맡은 책임을 작게 만드는 것이다. 클래스의 이름은 해당 클래스의 책임을 기술해야 한다. 클래스의 설명은 if, and, or, but을 사용하지 않고 25단어 내외로 가능해야 한다. 메서드의 수가 적어도 좋은 클래스인가? public class SuperDashboard extends JFrame implements MetaDataUser ...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 시스템 제작과 시스템 사용을 분리하라 제작(constructio) 과 사용(use)은 다르다. 소프트웨어 시스템은 준비과정과 런타임 로직을 분리해야 한다. 1️⃣ 관심사 관심사 분리는 가장 오래되고 가장 중요한 설계 기법 중 하나이다. public Service getServi...