본문 바로가기

책 내용 정리15

2장. 도구 선택 및 시작 이번 장에서 확인 할 항목들 빌드 시스템 프로그래밍 언어 도구 모음(toolchains) 코드 편집기 2.1 메이븐 vs 그레이들 2.1.1 아파치 메이븐 XML 형식의 pom.xml 파일에 프로젝트에서 사용할 의존성과 플러그인을 적기만 하면 된다. mvn 명령어를 실행할 때, 어떤 단계를 완료할지 지정해서 컴파일, 패키징 등 원하는 작업 수행한다. 메이븐은 컨벤션에 따라 특정한 프로젝트 구조를 생성한다. 빌드 도구와 씨름하지 않으려면 정해진 프로젝트 구조에서 크게 벗어나지 않아야 한다. 즉 메이븐이 만든 프로젝트 구조를 그대로 사용하지 않으면 메이븐을 쓰는 게 역효과를 낸다. 2.1.2 그레이들 메이븐의 프로젝트 규칙과 엄격한 구조의 빌드 방식이 맞지 않는 프로젝트일 경우 사용 가능한 빌드 시스템 JV.. 2023. 9. 14.
1장. 스프링 부트 스프링 부트의 3가지 핵심 기능 의존성 관리 간소화 배포 간소화 자동 설정 1.1.1 스프링 부트 스타터는 특정 기능을 사용하기 위해 의존성이 맞는 라이브러리 버전들 묶음을 제공해서, 특정 기능 사용을 위한 외부 라이브러리 관리를 수월하게 해준다. ex : spring-boot-starter-web 같은 스타터를 추가하면, 기능 사용을 위해 라이브러리 호환 체크(테스트)가 완료된 의존성들을 수월하게 가져온다. -> 전반적으로 스프링 부트의 스타터 개념은 의존성을 간소화하고 애플리케이션에 기능 전체를 추가하는 데 필요한 작업을 줄여준다. 그리고 테스트, 유지보수, 업그레이드에 드는 오버헤드를 크게 줄여준다. 1.1.2 배포 간소화 - 실행 가능한 JAR 예전 데이터베이스 엑세스가 가능한 애플리케이션을 만들.. 2023. 9. 14.
12장 메서드: 좋은 클래스에는 좋은 메서드가 있다. 12.1 반드시 현재 클래스의 인스턴스 변수 사용하기 메서드는 반드시 현재 클래스의 인스턴스 변수를 사용하도록 설계하는 것이 기본 원칙이다. 다른 클래스의 인스턴스 변수를 변경하는 메서드는 좋지 않다. (응집도가 낮은 구조가 될 수 있끼 때문이다.) 12.2 불변을 활용해서 예상할 수 있는 메서드 만들기 12.3 묻지 말고 명령하라 12.4 커맨드/쿼리 분리 아래 메서드는 상태 변경과 추출을 동시에 하고 있다. int gainAndGetPoint(){ point += 10; return point; } 상태 변경과 추출을 동시에 하는 메서드는 여러 문제의 원인이 된다고 한다. 커맨드-쿼리 분리라는 패턴이 있다. 메서드는 커맨드 또는 쿼리 중에 하나만 하도록 설계해야 한다는 패턴이다. 메서드 종류 구분 설.. 2023. 7. 28.
7장 컬렉션: 중첩을 제거하는 구조화 테크닉 https://link.coupang.com/a/37DdD 내 코드가 그렇게 이상한가요? : 좋은 코드/나쁜 코드로 배우는 설계 입문 COUPANG www.coupang.com ↑ 정말 재밌게 봤고 좋은 책 7.1 이미 존재하는 기능을 다시 구현하지 말기 자바 표준 컬렉션 라이브러리에는 여러 가지 검증된 메서드들을 다양하게 제공하고 있다. 그러니 for문 반복문을 사용해서 컬렉션을 직접 조작하고 있다면, 표준 라이브러리에 같은 기능을 제공하는 메서드가 있는지 확인 먼저 해보고 있다면 사용하는 것이 좋다. ※ 바퀴의 재발명을 하지 말라! 7.2 반복 처리 내부의 조건 분기 중첩 7.2.1 조기 컨티뉴로 조건 분기 중첩 제거하기 7.2.2 조기 브레이크로 중첩 제거하기 7.3 응집도가 낮은 컬렉션 처리 컬렉.. 2023. 7. 27.