본문 바로가기
Java Web/Spring Boot

[Spring Boot] 프로젝트 초기 세팅

by 스응 2023. 4. 14.
728x90
728x90

1. 워크 스페이스 생성 + 깃 허브 등록

  [이클립스 환경 설정]
      - UTF-8 설정
      - 다크 모드
      - 폰트 (D2 Coding)
      - File Associations에 *.css, *.js, *.jsp 있는지 확인하고 없으면 add
          → Text Editor를 Default로  (*.css는 css Editor를 Default로)
 
  [플러그인]
      (설치하지 않은 경우에만)
      - [Help] - [Eclipse Marketplace]
          1) jsp 검색 → [Eclipse Enterprise Java and Web Developer Tools] 설치
          2) sql 검색 → [SQL Editor] 설치
 

2. Spring Starter Project 생성

  [프로젝트 설정]
      - 프로젝트 이름 설정
      - 패키지 이름 설정
      - Type : Gradle - Groovy
      - Packaging : Jar
      - Java Version : 11
      - Language : Java
 
  [의존성 설정]
      - Spring Boot Version : 2.7.10 선택
      - Spring Boot DevTools
          · 코드 변경사항이 있을 때마다 자동으로 리스타트됨
      - Lombok 
          · setter, getter, toString, builder 등을 자동으로 생성해주는 어노테이션 추가
      - Spring Web
          · MVC 패턴을 자동으로 만들어줌
      - H2 Database
          · H2 DB 메모리 접근하기 : http://localhost:8080/h2-console 
 

3. 외부 라이브러리 의존성 추가

  - https://young0105.tistory.com/209
  

4. application.yml 설정

  - https://young0105.tistory.com/210
 

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
server:
  port: 8080 # 포트 번호
  servlet: 
    encoding:
      charset: utf-8 # 인코딩 표준
      force: true
      
# 첫 줄 시작 : 루트 로드
spring: 
  mvc:
    view: # JSP 사용 설정
      prefix: /WEB-INF/view/ # jsp 파일 경로
      suffix: .jsp # 확장자
  datasource: # DB 설정
    url: jdbc:h2:mem:testdb;MODE=MySQL
    driver-class-name: org.h2.Driver
    username: sa # 유저 이름
    password: # 비밀번호 (비워두면 비밀번호 X)
  sql: 
    init: # 초기 sql 파일 읽기 
      schema-locations: # 스키마 (테이블 생성 등)
      - classpath:db/table.sql # 콜론 띄어쓰기 X, db 폴더 아래 table.sql 파일 읽으라는 뜻
      data-locations: # 샘플 데이터
      - classpath:db/data.sql
  h2: # H2 Database 설정
    console: 
      enabled: true
  output: 
    ansi: # 쿼리문 표준
      enabled: always
 
mybatis:
  mapper-locations:         # **.xml : 해당 경로 아래 모든 xml 파일
  - classpath:mapper/**.xml # classpath는 src/main/resources/ 아래부터 시작
  configuration:
    map-underscore-to-camel-casetrue # DB의 underscore(snake case) 방식을 Java의 camel case 방식과 매핑
cs

 

5. 네이밍 컨벤션 결정

  - 폴더 및 패키지 : 스네이크 케이스
  - 정적 파일 (css, image, xml) : 스네이크 케이스
  - jsp 파일 : 카멜 케이스
  - java 파일 : 파스칼 케이스
  - HTML 태그의 id, name 속성 : 카멜 케이스
  - css의 클래스명 : xxx--xxx (단어 사이에 하이픈 2개)
      · 외부 라이브러리(부트스트랩 등)와의 충돌 방지를 위함
  - DTO 클래스 : 카멜 케이스
  - DB 테이블명 : 스네이크 케이스 + _tb    ex) user_tb
  - DB 컬럼명 : 스네이크 케이스
  - Service 메서드명 (DAO 메서드명과 구분할 것임)
      · CRUD 기능 메서드는 create, read, update, delete로 시작
        or
      · 목적에 따라 findBy, findAllBy, countBy 등의 접두어로 시작
  - Service Layer에서 SELECT 문을 통해 받아온 Model 객체의 변수명 : 'Model명 + Entity'
  - session에 저장할 정보 변수의 이름 : 'principal (접근 주체)'
 
  - 표기법 설명 :  https://young0105.tistory.com/123
 

반응형

 

6. 패키지 설정

  [정적 자원 관리 : src/main/resources/static 아래]
      - css 폴더 생성
      - images 폴더 생성
          : 서버가 기본적으로 가지고 있어야 하는 앱 아이콘 등
      - js 폴더 생성
 
  [개발에 필요한 패키지 관리 : src/main/resources 아래]
      - db 패키지 생성
          : .sql 파일 저장 (초기 데이터 관리)
      - mapper 패키지 생성
          : MyBatis를 사용하기 위한 xml 파일 저장
 
  [템플릿 엔진 jsp에서 사용할 폴더 설정 : src/main/webapp/WEB-INF 까지 생성 후 그 아래]
      - view 폴더 생성
          → view 아래에 layout 폴더 등 생성
 
  [자바 코드를 담을 패키지 설정 : src/main/java/메인패키지 아래]
      - dto 패키지 생성
          : dto.request와 dto.response로 분리할 수 있음
      - controller 패키지 생성
      - service 패키지 생성
      - repository 패키지 생성
          · repository 아래에 model 패키지 생성
          · respository 아래에 interfaces 패키지 생성
              : DAO에 사용할 표준 (MyBatis mapper 연동)
      - handler 패키지 생성
          · handler 아래에 exception 패키지 생성
               : 사용자 정의 예외 클래스
          · 인터셉터 클래스
          · ExceptionHandler 클래스
      - config 패키지 생성
          · WebMvcConfigurer 구현 클래스
      - utils 패키지 생성
          · 상수를 선언하는 Define 클래스
 

 

7. 모델링

  - TRM 기반 모델링 : https://young0105.tistory.com/212
 
 

320x100
반응형

댓글