작성일
20230703
20230710
Spring은 계층으로 이루어져 있다. 여기서 계층이라는 것은 소프트웨어의 구성 요소를 역할별로 구별한 것을 말하며, 각 계층은 데이터를 통해 소통은 한다.
클라이언트 즉, HTTP Request를 받고 이 요청을 비즈니스 계층으로 전송하는 역할
이 컨트롤러는 스프링 부트 프로젝트 내에 여러 개 있을 수 있다.
@RestController
public class TestController {
@Autowired
TestService testService;
@GetMapping("/test")
public List<Member> getAllMembers() {
//
}
}
모든 백엔드 즉, 비즈니스 로직을 통해 하나의 서비스를 만들어 내는 역할
EX. 데이터, 예외처리 로직, etc.
모든 데이터베이스 관련 로직을 처리하는 역할
데이터베이스의 테이블과 대응하는 자바소스 파일의 클래스를 실제로 매핑하는 코드가 여기에 포함된다.
@Repository
public interface MemberRepository extends JpaRepository<Member, Long> {
}
매핑 작업을 위해, JpaRepository 인터페이스 파일이 필요하므로 상속받은 인터페이스를 작성한다.
위 코드 즉, 인터페이스가 데이터베이스에서 데이터를 가져오는 퍼시프턴스 계층 역할을 수행하는 것이다.
CF. Model 객체
: https://velog.io/@song-eojin/SpringBoot%EC%9D%98-Controller-Model-%EA%B0%9D%EC%B2%B4
1) 웹 브라우저나 포스트맨에서 URL 입력 : Spring Boot에 내장되어 있는 WAS인 톰캣에 요청
2) 요청한 URL을 처리할 수 있는 Controller 찾기
3) Dispatcher Servlet이 해당되는 Controller에게 요청을 전달
4) Controller는 비지니스 계층과 퍼시스턴스 계층을 통해 필요한 데이터를 가져와 전달
5) 뷰 리졸버가 템플릿 엔진을 사용해서 HTML 문서를 만들거나 JSON, XML 등의 데이터를 생성하여 전달
6) 웹 브라우저나 포스트맨 등에서 데이터를 받아 사용자가 볼 수 있게 된다.
[블로그]
https://dmsvk01.tistory.com/30