Advanced Search
Search Results
11 total results found
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 오류 코드보다 예외를 사용하라 논리가 오류 처리 코드와 뒤섞이지 않아 호출자 코드가 더욱 깔끔해진다. Try-Catch-finally 문부터 작성하라. try 블록은 트랜잭션과 비슷하다. try블록과 별개로 catch 블록은 프로그램 상태를 일관성 있게 유지해야 하기 때문. try 블록에서 무슨 일이 생기든지 호출자가 기대하는 상태를 정의하기 쉬워짐 미확인 예외를 사용하라 자바 초장기에는 메서드 선언...
이정우
8. 📌 경계 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 외부 코드 사용하기 인터페이스 제공자 더 많은 고객을 얻기 위해 가용성과 적용성을 높인다. 인터페이스 사용자 자신의 요구에 집중하는 인터페이스를 바란다. 이러한 긴장으로 시스템 경계에서 문제 발생 소지가 많다. 경계 살피고 익히기 외부 코드 사용시 적은 시간에 더 많은 기능 출...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 TDD 법칙 세 가지 실패하는 단위 테스트를 작성할 떄까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 위 세가지 규칙을 따르면 개발과 테스트가 대략 30초 주기로 묶인다. 테스트 코드와 실제 코드가 함께 나올뿐더러 테스트 코드가 실제 코드보다 불과 몇 초 전에 나온다. 하지만 과한 양의 테스트 ...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 클래스 체계 변수목록 1️⃣ 정적 공개 상수 2️⃣ 정적 비공개 변수 3️⃣ 비공개 인스턴스 4️⃣ 공개 변수 (필요한 경우 거의 없음) 공개 함수 비공개 함수 추상화 단계가 순차적으로 내려가기에 프로그램은 신문기사처럼 읽힌다. 캡슐화 변수와 유틸리티 함수는 가능한 공개x 패키지 ...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 시스템 제작과 시스템 사용을 분리하라 제작(constructio) 과 사용(use)은 다르다. 소프트웨어 시스템은 준비과정과 런타임 로직을 분리해야 한다. 1️⃣ 관심사 관심사 분리는 가장 오래되고 가장 중요한 설계 기법 중 하나이다. public Service getServi...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 창발적 설계로 깔끔한 코드를 구현하자 < 단순한 설계 - 켄트 벡 > 모든 테스트를 실행한다. 중복을 없앤다. 프로그래머 의도를 표현한다. 클래스와 메서드 수를 최소로 줄인다. 단순한 설계 규칙 1 : 모든 테스트를 실행하라 설계는 의도한 대로 돌아가는 시스템을 내놓아야 한다...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 동시성이 필요한 이유 동시성이란? 동시성은 결합(coupling)을 줄이는 전략이다. 프로그램에서 무엇(what)과 언제(when)를 분리하는 역할을 한다. 단일 스레드 프로그램은 무엇과 언제가 강하게 결합되어 있어 상태 관리가 어렵다. 반면, 동시성을 도입하면 프로그램이 독립적인 작...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. Args 구현 종종 명령행 인수의 구문을 분석할 필요가 생긴다. 적절한 유틸리티가 없는 경우 직접 작성하게 된다. Args는 생성자에 인수 문자열과 형식 문자열을 넘겨 Args 인스턴스 생성 후 Args 인스턴스에 인수 값을 질의한다. Args 클래스 package com.objectme...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. JUnit 프레임워크 import junit.framework.ComparisonCompactor; import junit.framework.TestCase; public class ComparisonCompactorTest extends TestCase { public void...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 첫째, 돌려보자 SerialDateTest라는 클래스는 단위 테스트 케이스를 몇 개 포함한다. 실패하는 케이스는 없지만 모든 경우를 점검하지 않는다는 사실을 알 수 있다.. 저자는 SerialDateTest.java에 있는 모든 테스트 케이스가 통과할 수 있게 만들었다. Clover라는...
이정우
1. 📌 핵심 개념 정리 ✅ 요약하기 각자 해당 챕터에서 중요하다고 느낀 개념이나 아이디어를 간략하게 정리하고 개선 전, 후에 대한 예시 코드를 비교하며 개념을 설명합니다. 주석 C1: 부적절한 정보 다른 시스템에 저장할 정보는 주석은 적절하지 못하다. 주석은 코드와 설계에 기술적인 설명을 부연하는 수단이다. C2: 쓸모없는 주석 오래된 주석, 엉뚱한 주석, 잘못된 주석은 더 이상 쓸모가 없다. 쓸모 없어진 주석은 재빨리 삭제하는 편이 가장 좋다. ...