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-case: true # 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
'Java > Spring Boot' 카테고리의 다른 글
[Spring Boot] MyBatis 설정 및 DAO 구현 (1) | 2023.04.18 |
---|---|
[Spring Boot] TRM (Table Relational Mapping) 기반 모델링 (0) | 2023.04.14 |
[Spring Boot] yml 파일 (0) | 2023.04.14 |
[Spring Boot] Gradle 빌드 라이브러리 의존성 추가 (0) | 2023.04.14 |
[Spring Boot] 인터셉터 구현 예시 (0) | 2023.04.13 |