MVC 패턴 1) 사용자가 게시글을 작성한 후 등록 요청 2) 컨트롤러는 게시글에 있는 데이터를 전달받아 유효성을 검증. 3) 검증 완료 후, 모델영역에 데이터의 가공을 요청. 4) 가공 완료 후, 데이터베이스에 데이터를 저장하고, 모델은 저장의 성공/실패 여부를 컨트롤러에게 전달. 5) 컨트롤러는 등록 요청에 대한 결과를 뷰로 전달.
Model : 데이터를 처리하는 영역으로, 데이터베이스와 통신하고 사용자가 원하는 데이터를 가공하는 역할. View : 사용자가 보이는 화면을 의미. HTML과 타임리프를 사용해서 화면을 처리함. Controller : Model과 View 사이에서 중간 다리 역할을 하는 영역. 사용자가 웹에서 요청을 하면 가장 먼저 컨트롤러를 경유한다. 컨트롤러는 사용자의 요청을 처리할 로직을 호축하고, 호출한 결과를 사용자에게 전달하는 역할 수행.
스프링부트 프로젝트 구조
1) src/main/java
클래스, 인터페이스 등 자바 파일이 위치하는 디렉토리
2) src/main/resource
내부에 static, templates 폴더와 application.properties 파일이 자동 생성됨
-templates 폴더 : 화면과 관련된 파일이 위치 (html)
-static 폴더 : 정적 리소스 파일이 위치 (css, script, images, fonts 등)
-application.properties : 웹 어플리케이션을 실행하면서 자동으로 로딩되는 파일. WAS(포트 번호, 콘텐스트 패스 등) 설정이나
데이터베이스 관련 정보 관련 설정을 해당 파일에 Key-Value 형식으로 지정해서 처리 가능.
3) src/test/java
각각의 단계에 알맞은 테스트를 진행 할 수 있음. (기존 스프링과 달리 복잡한 설정 없이 테스트 가능)
4) build.gradle
plugin, dependency 정보를 담고 있음.
메이븐에 비해 그레이들은 단 한 줄의 코드로 라이브러리를 추가할 수 있다는 장점이 있음. *메이븐은 라이브러리 버전 문제, 충돌 문제 등 다양한 문제를 발생시키므로 요즘은 그레이들을 사용하는 추세