[기술면접] 230111

박채은·2023년 1월 11일
0

회고록

목록 보기
6/8

4번 - Controller에서 응답 객체로 사용하는 ResponseEntity에 대해서 설명해 주세요.

ResponseEntity는 사용자의 응답 데이터와 HTTP 응답 상태가 포함된 클래스입니다.
정확히 말하자면, 이 두 값외에도 Http 응답 헤더 정보도 포함됩니다.
즉 Controller에서 응답 객체로 ResponseEntity를 사용하면 응답 데이터만을 전달해주는 것에 그치지 않고 클라이언트쪽에 서버가 어떤 식으로 동작했는지, 어떤 상태인지를 명시적으로 알려줄 수 있어 클라이언트가 이후에 어떻게 처리를 할지 결정하는 것에 도움을 줄 수 있습니다.
또한, 응답 데이터, HTTP 응답 상태, 헤더 정보를 보다 깔끔하고 세련되게 리턴할 수 있다는 장점이 있습니다.

11번 - ORM이 무엇인지 설명해 주세요.

ORM이란 Object Relational Mapping으로 그대로 해석해보면 객체-관계 맵핑입니다.
즉, 객체와 관계형 데이터베이스를 자동으로 매핑해주는 것을 말합니다.
대표적인 ORM 기술로는 저희가 배운 JPA가 있습니다.

ORM은 객체 중심 기술으로, 데이터베이스에 접근할 때 SQL 쿼리문이 아닌 객체를 이용하는 기술입니다.
ORM을 이용하면 애플리케이션 내부에서 객체를 SQL 쿼리문으로 자동 변환한 후에 데이터베이스에 접근하도록 해줍니다.

ORM의 장점으로는 데이터베이스에 접근할 때도 객체 지향적으로 코드를 짤 수 있어 직관적이며 유지보수가 편리하여 생산성이 증가한다는 것입니다.

31번 - @SpringBootTest와 @WebMvcTest의 차이점을 설명해 주세요.

@SpringBootTest와 @WebMvcTest는 모두 Controller를 테스트할 때 사용되는 애너테이션입니다.
둘 다 Test 시에 Application Context를 구성해서 해당 AC에 빈을 등록하는 역할을 합니다.

하지만 여기에서 차이점이 있는데요.
@SpringBootTest는 프로젝트에서 사용하는 등록된 모든 빈을 가져와서 AC에 저장하는 반면 @WebMvcTest는 필요한 빈만을 가져와서 AC에 저장합니다.
@WebMvcTest는 필요한 빈만 저장하기 때문에 @SpringBootTest에 비해 상대적으로 가볍고 빠릅니다.
하지만 필요한 빈을 일일이 작성해줘야 한다는 불편함이 있습니다.

따라서 @SpringBootTest는 다른 계층들과 연동되는 통합 테스트에서 주로 사용하고, @WebMvcTest는 Controller 슬라이스 테스트에서 주로 사용됩니다.


1번 - Spring MVC 프레임워크의 요청처리 과정에 대해서 설명해 주세요.

13번 - Spring Data JDBC에서의 애그리거트와 애그리거트 루트에 대해서 설명해 주세요.

  • 애그리거트 선정 기준은 무엇인가요?
  • 애그리거트 객체 매핑 규칙에 대해서 설명해주세요.

28번 - Mock이 무엇인지 설명해 주세요.

  • 테스트에서 Mock을 사용하는 이유는 무엇일까요?

0개의 댓글