스프링 프레임워크를 기반으로 한 개발 플랫폼
단독실행이 가능한 스프링 어플리캐이션 생성
프로젝트 환경을 구출 할 때 필요한 톰캣, 제티, 언더토우 내장
XML 기반설정이나 코드없이 환경설정을 자동화 기능
스프링 프레임워크 개발 접근성 용이
소프트웨어 디자인 패턴 중 하나
M (Model) / V (view) / C (Controller)
Model : 어플리케이션 정보, 데이터, DB 등 이다.
View : 사용자에게 보여지는 화면, UI를 말한다,
모델로부터 정보를 얻고 표시한다.
Controller : 데이터와 비즈니스 로직사이 상호동작을 관리한다.
모델과 뷰를 통제하며, MVC패턴에서 View와 Model이 직접적인 소통을 하지않도록 관리한다.
JSP -> View, Controller 모두 담당
하나의 JSP로 유저 요청, 응답 처리 (구현의 난이도는 쉽다)
단순한 작은규모의 프로젝트에는 이 방법이 빠르고 쉽지만,
큰 프로젝트에서는 확실히 나눠주는 게 좋다.
JSP 하나에서 MVC가 모두 이루어지게되면 재사용성이 떨어지고,
읽기도 힘들다. = 유지보수가 힘들다.
그래서 주소요청, 화면구현 따로따로 하기위해 MVC가 나온것이다.
재사용이 가능한 최소단위, 독립적인 소프트웨어 모듈 (교체가능한 부품)
컴포넌트는 인터페이스를 통해서만 접근이 가능하다.
컴포넌트 내 정보는 외부로부터 모두 숨겨진다. (정보 은닉)
요청을 하나의 컨트롤러(Servlet)가 먼저 받는다.
MVC 1과 다르게 역할이 분리되어있으며, M,V,C 중 수정할 부분이 생기면 그것만 꺼내어 수정하면된다. = 유지보수에 있어 장점이 있다.
스프링에서는 유저의 요청을 받는 DispathcerServlet이 핵심이다.
이것이 Front Controller의 역할을 맡는다.
Front Controller -> 우선 먼저 유저(클라이언트)의 모든 요청을 받고, 그 요청을 분석하여 세부 컨트롤러들에게 필요한 작업을 나눠주게 된다.
요청
브라우저 특정 URL에 요청을 DispathcerServlet이 받는다.
요청에 매핑되는 컨트롤러를 검색요청
java언어로 웹을 구현하는 기술이며,
클라이언트의 요청에 제일 먼저 반응한다.
(주소요청을 받고 응답해주는 역할이다.)
ex) 브라우저에서 사용자가 입력하고, 전송하면 다시 결과값을 돌려주는데 여기가 서블릿이라 생각하면된다.
MVC 에서는 model(비즈니스로직), view(화면), controller(주소분기) 중 controller의 역할을 담당한다.
C 드라이브 sts4.zip 압축풀기
D 드라이브 springboot 폴더 내 workspace 로 선택하기
인코딩 설정하기
-스프링 프로퍼티 -> 어플리케이션 프로퍼티 + add (*properties)
-UTF-8
-텍스트 -> UTF-8
-나머지 workspace/웹/xml = UTF-8 바꿔주기
new spring starter project
✏️패키지가 가장 중요하다. (그룹.네임)을 무조건 지켜줘야한다.
다시 수정하면 나중에 못찾을 수 있다!
-원래 그룹이름을 도메인의 역순으로 적지만, 길어지니 지금은 짧게hong까지만 한 것임!
-Type : Maven
-pakaging : War
-Java Version : 8
-lang : java
스냅샷 X (안정화 버전으로 택)
멤버에 대한 멤버컨트롤러 생성,
localhost -> /hongView 직접 입력 후 받아온 값 확인
자바 프로젝트의 빌드를 자동화 해주는 빌드 툴 + 라이브러리 관리
pom.xml-> maven 에 대한 설정정보가 들어가있다.
프로젝트 정보가 표시되며, 스프링에서 사용되는 여러 라이브러리를 설정하여 다운로드가 가능하다.
라이브러리는 추가하다가 빨간색이 뜨면
오른쪽키 - Maven- add dependency 해도 되긴하는데
프로젝트에서 오른쪽키 - 업데이트가 더 낫다. (Alt+F5)
만약에 그것도 안되면
C 폴더 - 사용자 - repository 폴더까지 들어가서
aopall~ 여기 폴더에서 삭제를 해준다.
하지만 최후의 방법인 것으로, 업데이트가 더 빠르다!
자바 소스파일이 위치한다.
프로퍼티 파일이나 xml 파일 등 리소스 파일이 위치한다.
WEB_INF 등 웹 어플리케이션 리소스 파일이 위치한다.
Junit 등 테스트 파일이 위치한다.
테스트 시에 필요한 resource 파일이 위치한다.