Kim-Baek 개발자 이야기

[카카오 면접] @Service,@Controller,@Component 차이 본문

개발/Spring

[카카오 면접] @Service,@Controller,@Component 차이

김백개발자 2020. 9. 8. 16:38
카카오 면접을 준비하면서, 공부했던 내용을 정리해놓고 다시 기억하기 위한 포스팅

 

 

@Component

Spring에서 관리되는 객체임을 표시하기 위해 사용하는 가장 기본적인 annotation이다. 즉, scan-auto-detection과 dependency injection을 사용하기 위해서 사용되는 가장 기본 어노테이션이다.

 

@Controller

Web MVC 코드에 사용되는 어노테이션이다. @RequestMapping 어노테이션을 해당 어노테이션 밑에서만 사용할 수 있다. 

 

@Repository

이것은 Annotation based Configuration, @Repository의 작업은 플랫폼 별 예외를 잡아서 Spring의 통합 검사되지 않은 예외 중 하나로 다시 던지는 것입니다. 이를 위해 PersistenceExceptionTranslationPostProcessor이 제공되며 다음과 같이 Spring의 애플리케이션 컨텍스트에 추가해야합니다.

 

<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>

이 빈 포스트 프로세서는 @Repository로 주석이 달린 모든 빈에 권고자를 추가하여 플랫폼 별 예외를 포착 한 다음 Spring의 확인되지 않은 데이터 액세스 예외 중 하나로 다시 발생시킵니다.

 

@Service

비즈니스 로직이나 respository layer 호출하는 함수에 사용된다. 다른 어노테이션과 다르게 @Component에 추가된 기능은 없다. 하지만 나중에 Spring 측에서 추가적인 exception handling을 해줄 수도 있으니 비즈니스 로직에는 해당 어노테이션을 사용하자.

 


일반적으로 컴포넌트 클래스들에 @Component를 붙일 수 있지만, @Repository, @Service, @Controller를 붙인다면  도구들이 클래스들을 처리하는데 더 적합하도록 할 수 있고 관점(aspects)에 더 연관성을 부여할 수 있다. - AOP 를 통한 처리가 쉽게 가능하다



IT기업 취업을 준비하는데 막막하신 분들을 위해 네이버 공채 합격자도 배출하고, 수강생들이 추천하는 원데이클래스를 소개해드릴게요.

취업준비가 막막하시고 어떻게 공부를 해야하고 시작해야할지 답답하신 분들에게 추천드려요!

전체적인 취업 프로세스에 대한 설명, 준비 방법, 공부 방향성을 제시해드려요. 수강생 모두 평점 만점을 준 만족도 높은 강의입니다 :)

 

네 & 카 개발자가 알려주는 IT기업/대기업 취업의 모든것! #서류 #코테 #면접 | 탈잉

# 진행방식 모든 수업은 온라인 라이브로 진행됩니다. 튜터들의 현재 경력 및 이력 사항에 대한 내용을 확인하고 수업을 진행합니다. 코로나로 인해 오프라인으로 진행하던 수업을 "20% 할인된

taling.me

반응형
Comments