기록/스프링 부트와 AWS로 혼자 구현하는 웹 서비스 (8) 썸네일형 리스트형 Chapter 3. Spring Data JPA 테스트 코드 작성하기 package com.jojoldu.book.springboot.domain.posts; import org.junit.After; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; @R.. Chapter 3. 프로젝트에 Spring Data JPA 적용하기 build.gradle에 다음과 같이 의존성들을 등록 compile('org.springframework.boot:spring-boot-starter-data-jpa') // 스프링 부트용 Spring Data JPA 추상화 라이브러리. 자동으로 JPA관련 라이브러리 버전을 관리 compile('com.h2database:h2') // 인메모리 관계형 데이터베이스. 별도의 설치가 필요없이 의존성만으로 관리 가능. h2 : 메모리에서 실행되기 때문에 애플리케이션을 재시작할 때마다 초기화된다는 점을 이용하여 테스트 용도로 많이 사용된다 이 프로젝트에서는 JPA의 테스트, 로컬 환경에서의 구동에서 사용할 예정 domain 패키지 생성 : 도메인을 담을 패키지 -> 도메인 : 게시글, 댓글, 회원, 정산, 결제.. Chapter 3. 스프링 부트에서 JPA로 데이터베이스 다뤄보기 MyBatis와 같은 SQL 매퍼를 이용해서 데이터베이스의 쿼리 작성 -> 실제로 개발하는 시간보다 SQL을 다루는 시간이 더 많아진다 -> 객체 모델링 보다는 테이블 모델링에 집중하게 됨 해결책 : JPA라는 자바 표준 ORM SQL 매퍼 - 쿼리 매핑 ORM - 객체 매핑 3.1 JPA 소개 현대의 웹 애플리케이션에서 관계형 데이터베이스는 빠질 수 없는 요소 -> 객체를 관계형 데이터베이스에서 관리하는 것이 중요 문제점 : 단순 반복 작업 -> 관계형 데이터베이스는 SQL만 인식할 수 있기 때문에 코드가 SQL 중심인 경우가 많다. (각 테이블마다 기본적인 CRUD SQL을 매번 생성해야하는 번거로움) -> 현업에서의 수십, 수백 개의 테이블의 몇 배의 반복적인 SQL을 만들고 유지 보수해야함 : 패.. Chapter 2. Hello Controller 코드를 롬복으로 전환하기 큰 규모의 프로젝트라도 롬복으로 전환 가능 -> 테스트 코드가 기존의 코드를 지켜주기 때문 web 패키지에 dto 패키지 추가 후 HelloReponseDto 생성 package com.jojoldu.book.springboot.web; import lombok.Getter; import lombok.RequiredArgsConstructor; @Getter // 선언된 모든 필드의 get 메소드를 생성해준다. @RequiredArgsConstructor // 선언된 모든 final 필드가 포함된 생성자를 생성해준다. final이 없는 필드는 생성자에 포함되지 않는다. public class HelloResponseDto { private final String name; private final int.. Chapter 2. 스프링 부트에서 테스트 코드 작성 2.1 테스트 코드 소개 TDD =/= 단위 테스트(Unit Test) TDD : 테스트가 주도하는 개발 레드 그린 사이클 1. 항상 실패하는 테스트를 먼저 작성 - Red 2. 테스트가 통과하는 프로덕션 코드를 작성 - Green 3. 테스트가 통과하면 코드를 리팩토링 - Refactor 단위 테스트 : TDD의 첫 번째 단계 - 기능 단위의 테스트 코드를 작성하는 것 리팩토링 포함 X 테스트 코드의 장점 - 개발단계 초기에 문제를 발견하게 도와준다 (빠른 피드백) - 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인할 수 있다(ex.회귀 테스트) (자동검증) - 기능에 대한 불확실성을 감소 (기존 기능 보호 및 보장) - 시스템에 대한 실제 문서 .. Chapter 2 - 롬복 소개 및 설치하기 Lombok 롬복 : 자바 개발자들의 필수 라이브러리 Getter, Setter, 기본생성자, toString 등을 어노테이션으로 자동 생성해준다. 이클립스 - 롬복 설치 번거로움 인텔리제이 - 플러그인 덕에 쉽게 설치 가능 build.gradle 파일에 롬복 등록 후 새로고침해서 라이브러리(의존성)을 내려받는다. 라이브러리를 다 받은 후 플러그인을 설치한다. cmd + shift + A 단축키로 Action을 켠 후 Plugins - Marketplace에서 lombok을 검색했는데 어쩐 일인지 설치가 되어있다. 설치한 적이 있나보다. Preferences - Build, Execution, Deployment - Annotation Processor - Enable annotation processi.. Chapter 1. 인텔리제이에서 깃과 깃허브 사용하기 대부분의 IT 서비스 회사는 깃을 통해 버전 관리를 하고 있다. 깃의 원격 저장소 역할을 하는 서비스는 대표적으로 깃허브 (Github)과 깃랩 (Gitlab)이 있는데, 지금은 가장 대중적인 깃허브를 사용할 것이다. 맥 단축키인 command+shift+A 를 사용해 Action 검색창을 열어 share project on github 를 선택한다. share 버튼을 눌러 깃허브 저장소와 동기화한다. 프로젝트 첫 번째 커밋을 위한 팝업창이 등장하는데, .idea 디렉토리는 커밋하지 않는다. 인텔리제이에서 프로젝트 실행 시 자동으로 생성되는 파일들이기 때문에 깃허브에 올리기에는 불필요하기 때문이다. 커밋 메시지를 쓰고 add 버튼을 누르면 커밋과 푸시가 진행된다. 깃허브 계정을 확인해보면 프로젝트가 생성.. Chapter 1. 인텔리제이로 스프링 부트 시작하기 젯브레인 툴박스 - 젯브레인의 제품 전체의 버전 관리와 JVM 옵션 등 조정 가능 https://www.jetbrains.com/toolbox-app/ JetBrains Toolbox App: Manage Your Tools with Ease Open any of your projects in any of the IDEs with one click. www.jetbrains.com * PC 메모리 4G 이하 - 750MB , 8G - 1024 ~ 2048, 16G - 2048 ~ 4096 권장 - gradle 프로젝트를 스프링 부트로 변경 buildscript { ext { springBootVersion = '2.1.9.RELEASE' } // 전역변수 설정 repositories { mavenCent.. 이전 1 다음