-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path스프링파일 설명
79 lines (64 loc) · 4.65 KB
/
스프링파일 설명
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
1. src/main/java 디렉터리
기존의 스프링 프로젝트와 마찬가지로 클래스, 인터페이스 등 자바 파일이 위치하는 디렉터리이다..
2. Application 클래스
파일을 열어보면, 메서드 선언부에는 딸랑 main 메서드 하나만 선언되어 있는데요,
main 메서드는 SpringApplication.run 메서드를 호출해서 웹 애플리케이션을 실행하는 역할을 한다.
@EnableAutoConfiguration
스프링 부트는 개발에 필요한 몇 가지 필수적인 설정들의 처리가 되어 있고 ,
해당 애너테이션에 의해 다양한 설정들의 일부가 자동으로 완료된다.
@ComponentScan
기존의 XML 설정 방식의 스프링은 빈(Bean)의 등록 및 스캔을 위해
수동으로 ComponentScan을 여러 개 선언하는 방식을 사용하고,
스프링 부트는 해당 애너테이션에 의해 자동으로 컴포넌트 클래스를 검색하고,
스프링 애플리케이션 콘텍스트(IoC 컨테이너)에 빈(Bean)으로 등록한다 .
쉽게 이야기하면, 의존성 주입 과정이 더욱 간편해졌다고 생각할 수 있다 .
@Configuration
해당 애너테이션이 선언된 클래스는 자바 기반의 설정 파일로 인식된다 .
스프링 4 버전부터 자바 기반의 설정이 가능하게 되었으며,
XML 설정에 어마 무시한 시간을 소모하지 않아도 됨.
3. src/main/resources 디렉터리
기존의 스프링은 프로젝트가 생성되면, 해당 디렉터리에는 log4.xml 파일만 떡하니 생성되었다 .
스프링 부트는 templates 폴더, static 폴더, application.properties 파일이 기본적으로 생성된다 .
templates
기존의 스프링은 HTML 내에 자바 코드를 삽입하는 방식의 JSP를 사용했다 .
디렉터리의 위치도 웹 디렉터리에 해당하는 src/main/webapp 안에 존재하고 .
하지만, 이러한 방식은 war 파일로 패키지화되었을 경우에만
정적 리소스를 정상적으로 사용할 수 있음 .
그러한 이유로 스프링 부트는 src/main/resources 디렉터리 내에서
화면과 관련된 파일을 관리하는 것으로 생각할 수 있다 .
스프링 부트는 타임리프(Thymeleaf) 템플릿 엔진의 사용을 권장함 .
타임리프는 JSP와 마찬가지로 HTML 내에서 데이터를 처리하는 데 사용된다.
static
해당 폴더에는 css, fonts, images, plugin, scripts 등의 정적 리소스 파일이 위치한다 .
application.properties
해당 파일은 웹 애플리케이션을 실행하면서 자동으로 로딩되는 파일이다 .
예를 들어 톰캣(Tomcat)과 같은 WAS(포트 번호, 콘텍스트 패스 등)의 설정이나,
데이터베이스 관련 정보 등 각각으로 분리되어 있는 XML 또는 자바 기반의 설정을\
해당 파일에 Key-Value 형식으로 지정해서 처리할 수 있다 .
4. src/test/java 디렉터리
최초로 application 클래스가 생성된다.
해당 클래스를 이용해서 각각의 개발 단계에 알맞은 테스트를 진행할 수 있다 .
기존의 스프링과 달리, 복잡한 설정 없이 곧바로 테스트가 가능하다 .
5. build.gradle
기존의 스프링은 pom.xml에 여러 개의 dependency를 추가해서 라이브러리를 관리하는 방식의
메이븐(Maven)을 사용하였는데 ,라이브러리의 버전 문제, 충돌 문제, 종속적인 문제 등
메이븐을 사용하면서 너무나도 골치 아픈 상황을 여러 번 겪어보았을것이다 .
이러한 이유로 요즘에는 그레이들을 선호하는 추세라고 함 .
메이븐은 하나의 라이브러리를 추가하려면 평균적으로 네 줄 이상의 코드를 작성해야 하는데,
그레이들은 단 한 줄의 코드로 라이브러리를 추가할 수 있다 .
6. MVC 패턴
스프링 부트라고 해서 다른 개발 패턴을 사용하는건 아니다 .
기존의 스프링과 마찬가지로 MVC 패턴으로 개발을 진행한다.
모델, Model - (M)
데이터를 처리하는 영역으로,
흔히 비즈니스 로직을 처리하는 영역이라고 이야기한다 .
해당 영역은 데이터베이스와 통신하고,
사용자가 원하는 데이터를 가공하는 역할을 한다 .
뷰, View - (V)
사용자가 보는 화면을 의미하며, HTML과 타임리프를 사용해서 화면을 처리한다 .
(뷰 = 화면 = 사용자)
컨트롤러, Controller - (C)
쉽게 이야기하면, 모델 영역과 뷰 영역의 중간 다리 역할을 하는 영역이다 .
사용자가 웹에서 어떠한 요청을 하면, 가장 먼저 컨트롤러를 경유한다 .
컨트롤러는 사용자의 요청을 처리할 어떠한 로직을 호출하고,
호출한 결과를 사용자에게 전달하는 역할을 한다 .