inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

비즈니스 요구사항 정리

서비스 계층좀 여쭈보고 싶습니다.

298

전지윤

작성한 질문수 13

0


=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예

[질문 내용]
여기에 질문 내용을 남겨주세요.
안녕하세요 김영한 선생님 강의항상잘듣고 있습니다.^^,,,, 웹 애플리케이션을 개발할 떄 컨트롤러- 서비스 - 레포지토리 이렇게 계층을 나누어서 코딩을 하는 경우가 많다고말씀하셨는데 서빅스 계층에서 직접 데이터 베이스에 접근하지 않고 굳이 레포지토리 계층을 또 만들어서 그것을 통해 접근하는 이유가 뭔지좀 여쭤볼 수 있을까요?
감사합니다

MVC spring java spring-boot

답변 1

3

OMG

안녕하세요. 전지윤님, 공식 서포터즈 OMG입니다.

각 계층 별로 역할을 '분담' 해놓았다고 생각하시면 됩니다.

DB와 관련된 로직과 처리가 서비스 계층에 포함되어 있다면

기존 서비스 계층에서 하던 역할과 DB와 관련된 역할을 다 처리하게 되어

문제가 발생했을 때 혹은 새로운 로직이 추가 되었을 때 코드 구현과 관리가 힘들어 집니다.

반면 역할을 분리해 놓으면 새로 추가 되거나 문제가 발생한 부분을 '명확히' 짚어내어 해당 계층의 코드 구현 부분을 살펴볼 수 있습니다.

쉽게 생각하면 자바를 처음 공부할 때 main 함수에 모든 로직을 작성하다 '메서드' 혹은 '함수'에 대해 배울 때 함수의 유용함과 역할을 생각해보시면 될 것 같습니다.

감사합니다.

0

전지윤

답변 감사합니다!!

인텔리제이 오류

0

49

1

..

0

112

2

Unused property.....

0

121

2

project JDK is misconfigured

0

165

2

외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석

0

101

2

단위/통합 테스트 버전충돌 문제

0

102

2

❗️springboot 4.0.2 버전 aspectj dependency 설정❗️

0

255

1

왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?

0

124

2

윈도우 build test오류 질문

1

121

2

테스트 관련 공부에 대한 조언을 얻고 싶습니다

0

111

2

테스트 실행 시 에러 질문

0

312

1

name을 통한 비교와 객체를 통한 비교

0

81

1

빌드 후 libs 없음

1

148

1

윈도우 gradlew.bat 에러

0

186

1

@PostMapping("/members/new")가 동작하지 않습니다

0

98

1

java static class와 kotlin class

0

89

1

스프링 DB연결

0

145

1

소요 시간

0

96

2

ddl.sql에 빨간 밑줄

1

117

2

welcome page 에러

0

200

3

잘 모르겠습니다.

0

172

2

fail을 똑같이 쳤는데 오류가 발생해요

0

173

2

index.html Welcome page

0

137

1

프로젝트 gradle-groovy ?

0

403

1