
스프링 부트와 JPA만 사용해도 개발 생산성이 정말 많이 증가하고, 개발해야할 코드도 확연히 줄어든다. 여기에 Spring Data JPA를 사용하면, 기존의 한계를 넘어 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있다. 그리고 반복 개발해 온 기본 CRUD 기능도 스프링 데이터 JPA가 모두 제공한다. 스프링 부트와 JPA라는 기반 위에, 스프링 데이터 JPA라는 프레임워크를 더하면, 지금까지 조금이라도 단순하고 반복이라고 생각했던 개발 코드들이 확연하게 줄어든다. 따라서 개발자는 핵심 비즈니스 로직을 개발하는데 집중할 수 있다. 실무에서 관계형 데이터베이스를 사용한다면 스프링 데이터 JPA는 이제 선택이 아닌 필수라고해도 과언이 아니다 ! 이제 구현을 진행해 보자. 기본 초기 ..

오늘은 DB와 직접 연동하는 것을 해보려고 한다. 나는 open source인 MariaDB를 사용할 예정이다. db tool로는 DBeaver를 사용한 것이다. db 설치와 tool 사용법 등은 여기에 적진 않겠다. 우선 member 테이블을 하나 생성해 보도록 하자. 사용하는 db 문법에 맞게 sql문을 작성해 주면 된다. 그러면 아래와 같이 테이블이 생성된 것을 확인할 수 있을 것이다. create table member ( id bigint AUTO_INCREMENT, name VARCHAR(255), PRIMARY KEY (id) ); 위 SQL문에서 AUTO_INCREMENT는 값을 세팅하지 않고 insert 하면 자동으로 값이 증가하는 일련번호가 매겨 진다. 이제 데이터를 조금 넣어 보자. ..

오늘은 화면과 함께 Controller를 통해서 회원을 등록하고 조회하는 예제를 만들어 보자. 우선 홈 화면을 추가한다. 이때 HomeController도 생성해 준다. 소스는 아래와 같이 구성하고 8080 도메인만 입력했을 때 진입하는 화면이 될 것이다. package com.demoproject.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } ret..

오늘은 어제에 이어 스프링 빈을 등록하는 또다른 방법에 대해 알아보자. 자바 코드로 직접 스프링 빈을 등록하는 방법으로 기존 소스에서 @Service, @Repository, @Autowired 어노테이션을 제거하고 시작하자. 어노테이션을 지우고 아래 경로에 SpringConfig.java 파일을 하나 생성한다. 그리고 내용을 아래와 같이 채워준다. package com.demoproject.demo; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.demoproject.demo.repository.MemberRepository; i..

오늘은 스프링 빈을 등록하는 방법에 대해 알아보도록 하자. 스프링 빈을 등록하는 2가지 방법이 있다. 컴포넌트 스캔과 자동 의존관계 설정 자바 코드로 직접 스프링 빈 등록 이중에서 1번 컴포넌트 스캔과 자동으로 의존관계를 어떻게 설정하는지 알아보도록 하자. service에서 돌아간 로직을 화면에 뿌려줄 것이다. 그러려면 controller와 view가 필요하다. 그래서 MemberController를 만들건데 MemberController는 MemberService를 통해 데이터를 등록하고 조회할 수 있어야 한다. 이러한 것을 의존관계가 있다고 표현하고 MemberController가 MemberService를 의존하고 있다고 표현한다. 이제 이러한 작업을 구현해보자. 먼저 Controller 경로에 M..

어제 생성했던 MemberService class 를 테스트 해 보도록 하겠다. test 경로에 폴더를 생성하고 파일을 생성하는 과정이 너무 귀찮던 와중 VSCode에서 test 파일을 자동으로 만들어 주는 기능을 발견하였다. 하나씩 따라해보자! 1. test 파일을 만들고자 하는 소스에서 우클릭한 후 Go To Test를 클릭한다. 2. 그럼 아래와 같은 화면이 나타나고 Generate tests...를 클릭한다. 3. 아래와 같이 package와 Test 파일 이름이 설정된 것을 확인하고 Enter를 누른다. 4. Test에 추가하고자 하는 메서드를 모두 체크한 후 확인을 누른다. 5. 잘 생성된 것을 확인할 수 있다. 이제 테스트 케이스를 작성해 보도록하자. package com.demoprojec..

오늘은 회원 서비스를 만들어 보도록 하자. controller와 같은 경로에 service 폴더를 생성한다. 그리고 MemberService class를 하나 생성한다. 회원가입 로직을 추가하여 내용을 구성해 보자. package com.demoproject.demo.service; import java.util.Optional; import com.demoproject.demo.domain.Member; import com.demoproject.demo.repository.MemberRepository; import com.demoproject.demo.repository.MemoryMemberRepository; public class MemberService { private final Member..

어제에 이어 회원 리포지토리에 작성한 사항을 테스트 해 볼수 있는 테스트 케이스를 작성해 보려고 한다. 개발한 기능을 실행해서 테스트를 할 때 자바의 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행한다. 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고 여러 테스트를 한번에 실행하기 어렵다는 단점이 있다. 자바는 JUnit이라는 프레임워크로 테스트를 실행하서 이러한 문제를 해결한다. 우선 테스트는 기존의 main 경로가 아닌 test 경로에서 진행한다, test 경로에 repository 폴더를 생성하고 MemoryMemberRepository를 테스트 하기 위한 MemoryMemberRepositoryTest 파일을 하나 생성해준다. 코드는..