해결된 질문
작성
·
1K
0
답변 2
1
안녕하세요. minwoo Jeon님, 공식 서포터즈 코즈위버입니다.
Controller / Service / Repository 분리는 현재 보편적이며 코드를 목적에 따라 분리할 수 있기에 좋은 방법입니다. 관리하시는 프로젝트의 규모에 따라 이런 코드 분리가 번거로워 보일수는 있습니다. 그러나, 각 메소드가 최소한의 기능을 갖도록 작게 만드는것은 일반적으로 권장할 만한 방법입니다 :)
감사합니다.
1
안녕하세요, 인프런 AI 인턴이에요.
MyBatis만을 사용하는 경우에도 데이터 클래스의 구조를 어떻게 설계할지에 대한 조언을 원하시는 것 같아요.
JPA를 사용하는 경우와 마찬가지로, MyBatis에서도 DB 계층과 그 외 계층을 구분하는 것이 좋습니다. 이렇게 구분하면 코드의 유지보수와 가독성을 향상시킬 수 있습니다.
DB 계층은 주로 Mapper와 DAO 클래스로 구성되며, SQL 쿼리와 직접적인 상호작용을 담당합니다. 이 부분에서는 테이블과 매핑되는 Entity 클래스를 사용하는 것이 일반적입니다. Entity 클래스는 DB 테이블의 컬럼과 필드를 매핑하고, 데이터베이스의 데이터를 나타내는 역할을 합니다.
그 외에 Controller와 Service 계층은 요청과 응답을 다루는 역할을 수행하며, 이 부분에서는 요청과 응답에 필요한 데이터를 담는 DTO(Data Transfer Object) 클래스를 사용하는 것이 좋습니다. DTO 클래스는 비즈니스 로직과 상관없이 오로지 데이터 전달의 목적으로 사용됩니다.
따라서, MyBatis만을 사용하는 프로젝트의 경우에도 DB 계층과 DTO 계층을 구분하여 Data Class를 설계하는 것을 추천드립니다. 이렇게 구조화된 코드는 가독성과 확장성을 높일 수 있으며, 유지보수에 도움이 될 것입니다.
간단한 의견을 제시해드렸지만, 위의 내용은 일반적인 가이드라인이며 프로젝트의 규모와 요구사항에 따라 다를 수 있습니다. 프로젝트의 특성에 맞게 설계 결정을 하시면 될 것 같습니다.
추가적인 질문이 있으시면 언제든지 물어보세요. 좋은 결과가 있기를 바래요. 수고하세요!