Spring Example: ToDo List #0 기획

함형주·2022년 9월 15일
0

Spring Example: ToDo

목록 보기
1/16

지금까지 공부한 spring, jpa를 기반으로 프로젝트를 진행해볼까 합니다.
제 첫 프로젝트이기 때문에 쉽지 않을걸 알지만 많은 시행착오 속에서 성장할 수 있기를 기대합니다.
시작일 : 2022.09.15

github , 배포 URL (첫 접속 시 로딩이 걸릴 수 있습니다.)

1. 개요

1) 기획

Spring framework와 JPA로 할 수 있는 간단한 CRUD 프로젝트 중 ToDoList를 선택했습니다.
회원가입, 로그인 기능과 ToDo CRUD를 중심으로 애플리케이션을 개발합니다.
개발 순서는 핵심 로직을 먼저 구현한 후 테스트 코드 작성, web(Controller, templates) 계층을 개발하고 검증, 스프링 인터셉터 등을 추가해 나갈 예정입니다.

2) 프로젝트 환경

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 : 스프링 제공 인증 라이브러리 // 프로젝트 도중에 추가

3) 구현 요구사항

회원 관련

Id, Paswword와 name을 기반으로 회원가입을 할 수 있으며 스프링 시큐리티(세션쿠키)를 사용하여 로그인 할 수 있음

ToDo 관련

회원별로 ToDo를 따로 가지며 제목, 설명, 생성일, 마감일을 기반으로 기본적인 CRUD 로직을 개발해야 함

4) 초기 설정

  1. start.spring.io에서 다운받은 프로젝트의 build.gradle을 IntelliJ에서 실행, 관련 라이브러리 자동 추가
  2. Git, GitHub 연동
  3. encoding : utf-8
  4. Build and run using, Run test using : IntelliJ (애플리케이션 구동 속도 향상)
    (settings-Build, Execution, Development-Build Tools-Gradle)

lombok setting

  1. lombok plugin 다운 (settings-Plugins에서 lombok 검색)
  2. Enable annotation processing 활성화
    (settings-Build, Execution, Development-Compiler-Annotation Processors)

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파일을 등록하지 않았으므로 스프링이 제공하는 에러페이지가 출력됨)

2. 다음으로

기본 세팅을 완료했으니 이제 본격적으로 개발을 시작합니다.
요구사항을 구체화하고 개략적인 db, 애플리케이션 구조를 설계한 후 개발에 들어가겠습니다.
개발하며 참고한 자료들은 모두 해당 블로그에 출처를 첨부하겠습니다.

profile
평범한 대학생의 공부 일기?

0개의 댓글