Spring 개발 교육

ApexSoft

Day 3 - SpringBoot

Day 2 - Review

- Test

  - Unit Test

  - JUnit, assert

 

- Git

  - commit message

  - merge, rebase

  - 충돌 해소

  - Git Workflow

Contents

1. SpringProject 생성

 

2. Hello SpringBoot

 

3. SpringBoot 환경 이해

 

4. Logging, Debugging

 

5. SpringMVC

SpringProject 생성

1. http://start.spring.io/

 

2. 컴포넌트 선택

    - Web, JPA, H2, Lombok, DevTools, Actuator

 

3. 다운로드

 

4. IntelliJ에서 Import

    - New > Project from Existing Sources... > build.gradle 선택

SpringProject 생성

5. build.gradle 내용 확인

    - 선택한 컴포넌트가 없으면, mvnrepository에서 찾아서 직접 작성

    - import

 

Hello SpringBoot

1. 날 것 그대로 실행

 

2. HelloController 생성

 

3. 브라우저에서 확인

 

SpringBoot 환경 이해

1. build.gradle

  - spring-starter-*

  - Lombok: annotation processor

    - 인텔리J에서 Lombok 플러그인 설치

  - test, compile

 

2. application.[properties | yml]

  - profile

  - 우선 순위

  - @Value, @ConfigurationProperties

Lombok 설정

1. 플러그인 설치

  - 인텔리J에서 Lombok 플러그인 설치

  

 

2. Enable Annotation Processing

  - Preferences > annotation processors 로 검색

  - enable...

 

Logging

1. SLF4J concepts

 

애플리케이션

코드

SLF4J API

logback

log4j

java.util.logging

Logging

1. SLF4J

  - private static final Logger logger =

        LoggerFactory.getLogger(HelloController.class);

  - @SLF4J

  - Parameterized Logging: {}


2. 로깅 실습

Debugging

1. IntelliJ Debugger

  - 디버그 모드로 실행

 

2. BreakPoint

  - 일반 breakpoint

  - 조건부 breakpoint

 

3. Stack 탐색

  - step into, step over, ...

SpringMVC

1. DispatcherServlet

 

2. Controller

 

3. Service

 

4. DB  handling(JPA, MyBatis, SpringJdbcTemplate)

 

참고자료: http://www.slideshare.net/hanmomhanda/spring-mvc-fullflow

SpringBoot Dev Flow

어쨌든 데이터 먼저

SpringBoot Dev Flow

어쨌든 데이터 먼저

 

애플리케이션에서는 도메인 먼저

(회원 관리를 개발한다면 회원 객체가 도메인 객체)

SpringBoot Dev Flow

1. Repository(DAO) First

  - Repository(DAO)-DB

  - 서비스-도메인, Repository(DAO)

  - 컨트롤러-서비스

 

 

2. Controller First

  - 컨트롤러-Mock서비스

  - 서비스-MockRepository(DAO), 도메인

  - Repository(DAO)-DB

 

SpringBoot Dev Flow

1. Repository(DAO) First

  - Repository(DAO)-DB

  - 서비스-도메인, Repository(DAO)

  - 컨트롤러-서비스

  - 의존 관계 흐름에 순응, Mock부담 낮음

 

2. Controller First

  - 컨트롤러-Mock서비스

  - 서비스-MockRepository(DAO), 도메인

  - Repository(DAO)-DB

  - Frontend, Backend 분업 동시 개발 시 적합, Mock부담 높음

SpringBoot Dev Flow

1. Repository First

  - Repository-DB

  - 서비스-도메인, Repository

  - 컨트롤러-서비스

  - 의존 관계 흐름에 순응, Mock부담 낮음

 

2. Controller First

  - 컨트롤러-Mock서비스

  - 서비스-MockRepository(DAO), 도메인

  - Repository(DAO)-DB

  - Frontend, Backend 분업 동시 개발 시 적합, Mock부담 높음

Day 3 End

Day 4

JPA

Q&A

 

Made with Slides.com