지금까지 공부한 spring, jpa를 기반으로 프로젝트를 진행해볼까 합니다.
제 첫 프로젝트이기 때문에 쉽지 않을걸 알지만 많은 시행착오 속에서 성장할 수 있기를 기대합니다.
시작일 : 2022.09.15
Spring framework와 JPA로 할 수 있는 간단한 CRUD 프로젝트 중 ToDoList를 선택했습니다.
회원가입, 로그인 기능과 ToDo CRUD를 중심으로 애플리케이션을 개발합니다.
개발 순서는 핵심 로직을 먼저 구현한 후 테스트 코드 작성, web(Controller, templates) 계층을 개발하고 검증, 스프링 인터셉터 등을 추가해 나갈 예정입니다.
os : window10 | ide : IntelliJ | Database : H2 | 버전관리 : Git, GitHub
Library
Spring Web : apache Tomcat 서버를 내장하고 있어 별도로 서버를 사용하지 않아도 됨
Spring Data Jpa : 표준 ORM JPA를 스프링 MVC에서 더 편리하게 사용할 수 있는 인터페이스 제공
H2 Database : H2 db 라이브러리를 추가하고 persistence.xml 파일을 자동으로 생성
Validation : 검증 관련 편의 로직 제공
Thymeleaf : html5에서 동작하는 자바 기반 템플릿 엔진
Lombok : 자바 편의 어노테이션 제공
Spring Security : 스프링 제공 인증 라이브러리 // 프로젝트 도중에 추가
회원 관련
Id, Paswword와 name을 기반으로 회원가입을 할 수 있으며 스프링 시큐리티(세션쿠키)를 사용하여 로그인 할 수 있음
ToDo 관련
회원별로 ToDo를 따로 가지며 제목, 설명, 생성일, 마감일을 기반으로 기본적인 CRUD 로직을 개발해야 함
lombok setting
application.yml
스프링부트 기본값이 application.properties인데 yml 사용 (src/main/resources)
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/example-todo # db 경로
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create # 애플리케이션 시작 시 모든 table drop하고 새로 create / 개발 단계에서만 사용
properties:
hibernate:
format_sql: true # 표시되는 sql 정렬
logging.level:
org.hibernate.SQL: debug # sql 표시
실행
TodoApplication.class의 메인 메서드 실행
(h2 db를 실행시키지 않으면 오류 발생, C:\Users\xxx 경로에 example-todo.mv.db가 있어야 함)
위와 같은 에러페이지가 나오면 성공! (html파일을 등록하지 않았으므로 스프링이 제공하는 에러페이지가 출력됨)
기본 세팅을 완료했으니 이제 본격적으로 개발을 시작합니다.
요구사항을 구체화하고 개략적인 db, 애플리케이션 구조를 설계한 후 개발에 들어가겠습니다.
개발하며 참고한 자료들은 모두 해당 블로그에 출처를 첨부하겠습니다.