Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MVC #10

Open
mic050r opened this issue Sep 11, 2024 · 0 comments
Open

MVC #10

mic050r opened this issue Sep 11, 2024 · 0 comments
Assignees
Labels
개념 정리 Good for newcomers

Comments

@mic050r
Copy link
Member

mic050r commented Sep 11, 2024

1. ModelAttribute & DTO

  • @ModelAttribute : 사용자가 보낸 데이터를 DTO(Data Transfer Object)에 바인딩하는 역할을 한다.
  • DTO : 데이터를 담는 객체로, 사용자의 입력 데이터를 담아서 Controller로 전달한다. 여기서는 write라는 함수가 있고, 이를 통해 콘텐츠 데이터를 받아 처리하는 것?

2. Controller

  • @controller: 클라이언트의 요청을 받아서 처리하는 계층이다. Service 객체를 @Autowired를 통해 주입받고, 비즈니스 로직을 서비스에게 위임한다. 여기서는 write 메소드가 서비스로부터 데이터를 전달받는 과정이 있다.

3. Service

  • Service: 비즈니스 로직을 처리하는 계층이다. 여기서는 DAO를 주입받아(@Autowired) DB 작업을 처리한다.
  • DAO: 데이터베이스와의 통신을 담당하는 계층으로, 데이터베이스 CRUD 작업을 처리한다.

4. DAO 및 Mapper

  • DAO에서는 실제 DB와의 연동을 수행하며, 여기서는 MyBatis 프레임워크를 사용하고 있는 것으로 보인다. Mapper를 통해 SQL 쿼리를 작성하고, 이를 데이터베이스와 매핑하여 작업을 수행한다.

5. Database & Query

  • DAO와 Mapper를 통해 실행된 SQL 쿼리들은 데이터베이스에 반영되며, 여기서 CRUD 작업을 처리한다.

전체적인 흐름:

  1. 클라이언트가 데이터를 전송하면 @ModelAttribute를 통해 데이터를 DTO에 바인딩.
  2. Controller는 이 DTO를 받아서 Service 계층으로 전달.
  3. ServiceDAO를 통해 DB에 CRUD 작업을 수행.
  4. DAOMapper와 연동되어 MyBatisJPA를 통해 SQL 쿼리를 실행하여 DB와 통신.

필기 내용 요약

  • MVC 패턴에서 각 계층(Controller, Service, DAO)의 역할을 설명한 필기.
  • MyBatis를 이용한 DB 연동, CRUD 쿼리 실행, 매퍼의 역할 설명.
  • 데이터 흐름: 사용자 → DTO → Controller → Service → DAO → Mapper → DB.

image

@mic050r mic050r added the 개념 정리 Good for newcomers label Sep 11, 2024
@mic050r mic050r self-assigned this Sep 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
개념 정리 Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant