🙋 Springboot, JPA를 활용하여 프로젝트를 만들 때 어떤 순서로 생성할지 참고해보기.

 

1. 프로젝트 생성 :

  • IntelliJ IDEA에서 새로운 스프링 부트 프로젝트를 생성한다. IntelliJ IDEA에서는 "File" -> "New" -> "Project..."를 선택한 후, "Spring Initializr"를 선택하여 프로젝트를 생성할 수 있다.
  • (또는 https://start.spring.io/ 가서 Spring Initializr 직접 사용하여 가져오기는 방법도 있다.)

2.프로젝트 구성 :

  • 프로젝트 구성에서는 사용할 언어, 스프링 부트 버전, 그리고 프로젝트의 기본 설정을 지정한다. JPA를 사용하기 위해 "Spring Data JPA"를 선택하고, 필요에 따라 다른 의존성도 추가한다.(ex. Spring Web)

3. 데이터베이스 설정 :

  • application.properties 또는 application.yml 파일을 이용하여 데이터베이스 연결 정보를 설정한다. 데이터베이스 종류, URL, 사용자명, 암호 등을 지정한다.

4. 엔티티 클래스 생성 :

  • JPA를 사용하여 데이터베이스와 상호작용하기 위해 엔티티 클래스를 생성한다. 이 클래스는 데이터베이스의 테이블과 매핑되어야 한다.
  • 예시 코드(ex. 게시글을 나타내는 Post 엔티티)
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Post {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String title;
    private String content;

    // Getters and setters, constructors, and other methods

}

 

5. 리포지토리 인터페이스 생성 :

  • JPA 리포지토리 인터페이스를 생성하여 데이터베이스 조작을 위한 메서드를 정의한다. 스프링 부트의 Spring Data JPA는 이 인터페이스를 구현해주는 프록시 객체를 생성한다.
  • 예시 코드
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;

public interface PostRepository extends JpaRepository<Post, Long> {
    
    // 제목에 특정 키워드가 포함된 게시글 검색
    List<Post> findByTitleContaining(String keyword);

    // 사용자명으로 게시글 찾기
    List<Post> findByAuthor(String author);

    // 제목과 내용에 특정 키워드가 포함된 게시글 찾기
    List<Post> findByTitleContainingOrContentContaining(String title, String content);
}
  • 여기서 PostRepository는 JpaRepository를 확장하고 있어서, 별도의 구현체 없이도 기본적인 CRUD 기능을 사용할 수 있습니다. JpaRepository는 기본적인 CRUD 외에도 다양한 메서드들을 제공합니다.
  • 위의 코드에서 Post는 엔터티 클래스이며, Long은 엔터티의 식별자(ID)의 타입입니다. 

6. 서비스 및 컨트롤러 생성 :

  • 서비스 클래스에서는 비즈니스 로직을 정의하고, 컨트롤러에서는 클라이언트 요청에 대한 핸들링을 수행한다.

7. 웹 페이지 작성 :

  • Thymeleaf, FreeMarker 등을 사용하여 웹 페이지를 작성하고, 컨트롤러에서 이를 렌더링하여 사용자에게 보여준다.

8. 프로젝트 실행 및 테스트 :

  • IntelliJ IDEA에서 스프링 부트 애플리케이션을 실행하고, 브라우저 또는 API 테스트 도구를 사용하여 게시판이 제대로 작동하는지 확인한다.

9. 기능 확장 :

  • 기본적인 CRUD(Create, Read, Update, Delete) 기능을 구현한 후, 검색, 정렬, 페이징과 같은 추가적인 기능을 구현해본다.

+ Recent posts