본문 바로가기

분류 전체보기590

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.
[2] 스프링 mvc 테스트 환경 설정 이어서.. 메모리 DB 설정 및 연결 확인 application.yml server: port: 8081 spring: application: name: demo datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:testdb jpa: hibernate: ddl-auto: create-drop show-sql: true generate-ddl: true defer-datasource-initialization: true h2: console: enabled: true settings: web-allow-others: true path: /h2-console 일반적인 스프링 패키지 구조 Client ---> 서블릿 컨테이너(= 톰캣 = .. 2023. 7. 24.
[1] 스프링 부트 프로젝트 생성부터 환경설정 & 서버 실행까지 1. 기본 스프링 부트 프로젝트 생성 https://start.spring.io/ 2. 인텔리제이에서 생성한 스프링 부트 프로젝트 여는 방법 Open File or Project / 프로젝트의 build.gradle 클릭하면 프로젝트 열림 2-1. 프로젝트 실행 환경설정 필요 (Settings, Project Structure) 주로 자바 버전 설정이 잘 되어 있는지와 기타 설정 일부 확인해 주어야 한다. Settings java 버전 맞는지 확인 Enable annotation processing 체크되어 있는지 확인 intellj IDEA 설정, Gradle JVM 자바 버전 확인 Project Structure 자바 버전 확인 자바 버전 확인 자바 버전 확인 3. 서버 정상 실행 되는지 확인 정상 .. 2023. 7. 24.