1. 예시 프로젝트 구조
김영한님의 강의를 그대로 따라하는 것보단, 조금 내용을 바꿔가며 학습해야 생각을 하면서 학습할 수 있을 것 같다. 강의에서는 회원들의 정보를 다루는 도메인을 예시로 든다. 이와 유사하게 동물원을 만든다고 생각하고, 동물원에 포함된 생물들(Creature)을 관리하는 도메인을 만들어보자. 구조는 아래 그림과 같이 강의 내용과 동일하다.
Service와 Repository는 기본적으로 Interface 형태로 만든다. 여기서 핵심은, 객체를 interface로 만들어서 다형성을 활용하여 코드의 변경이 용이하게 한다는 점이다. CreatureRepository를 상속받는 구현체가 CreatureRepositoryAnimals가 되든, CreatureRepositoryPlants가 되든 설정값만 변경하면 바로 Repository를 갈아끼울(?) 수 있게 된다.
처음에는 직접 코드를 수정하는 SOLID 원칙에 맞지 않는 방식으로, 나중엔 설정 파일을 수정하는 방식으로, 최종적으로는 어노테이션만 수정하는 방식으로 변경에 유연한 객체지향 프로그래밍을 해본다.
2. 프로젝트 생성
1. Java 11, intelliJ로 진행한다.
2. 아래 사진과 같은 구성으로 https://start.spring.io 에서 프로젝트를 생성한다.
-> Spring Boot는 SNAPSHOT, M 버전 등은 정식 릴리즈 버전이 아니기 때문에, 표시가 없는 버전 중 가장 최신 버전을 선택한다.
3. Generate 후 다운로드 받은 프로젝트를 intelliJ에서 열면 된다.
※ File-Settings 에서 Gradle 검색 후 Build and Run 주체를 Gradle에서 IntelliJ로 바꿔준다. intelliJ에서 직접 하는 것이 속도가 빠르다고 한다.
참조
1. 인프런_스프링 핵심 원리 기본편_김영한 님 강의
'Programming-[Backend] > Spring' 카테고리의 다른 글
[스프링 기초] 5. 예제만들기2 : SRP 원칙 및 객체 주입, 의존에 대한 이해 (0) | 2021.06.06 |
---|---|
[스프링 기초] 4. 예제 만들기 (0) | 2021.05.25 |
[TIL] BeanUtils.copyProperties, 엔티티 객체 복사하기 (0) | 2021.05.25 |
[스프링 기초] 2. 객체 지향 프로그래밍의 특징. 자바 스프링 (0) | 2021.05.13 |
[스프링 기초] 1. 스프링의 탄생, 기본 개념 (0) | 2021.05.06 |