CS

면접 질문

challnum 2022. 9. 6. 10:47

1. @Transactional 어노테이션에 readOnly 속성의 사용 이유

  • 영속성 컨텍스트를 관리 하지 않고 읽기 참조만 하기 때문에 Entity의 관리가 들어가지 않으며 캐시가 날라가지 않기 때문에 변경 감지를 위한 스냅샷을 저장하지 않기에 성능이 향상된다.

2. JPA Entity Class에서 @Setter를 지양하는 이유는? (Entity에서 Setter 함수를 사용하지 않는 이유?)

  • 객체의 일관성을 보장할 수 없고 그 의도를 파악하기 힘들기 때문 그렇기에 메서드를 생성해주거나 객체 생성시 값 세팅에서 빌더 패턴을 사용하면 좋다.

3. OOP(객체지향 프로그래밍) 의 특징을 설명해 보세요.

  1. 캡슐화:
    • 필드와 메소드를 클래스로 묶는 데이터 캡슐화
    • 외부에서 객체의 상태를 변경하는것을 막기위한 은닉화(접근제어자, setter, getter의 사용)
    • 낮은 결합도로 다른 클래스들의 간섭이 낮아야 하며 높은 응집도로 변경시 해당 클래스만 변경이 되어야 한다.
  2. 추상화: 
    • 필요성에 의해 있어야 할 정보들만 구성하는것으로 추상메소드 인터페이스가 있다.
    • 자동차를 비유하면 공통적인 바퀴 엔진 핸들 같은것을을 하나로 묶는다는것을 의미한다,
  3. 다형성 : 
    • 오버라이딩, 오버로딩이 해당하며 오버로딩의 경우 슈퍼클래스에서 구현한 메소드를 서브 클래스에서 동일한 이름으로 재작성하는것이며
    • 오버로딩은 이름이 같은 서로 다른 메소드를 여러개 만들어 작성하는 것이다.
  4. 상속 : 
    • 자식 클래스가 부모를 물려받아 기능을 확장하는 것으로 코드 작성에 드는 시간과 비용을 줄이는 효과가 있다.

4. Get과 Post 방식 에 대해서 설명해 보세요. 그 둘의 차이점도 설명해 보세요.

  1. GET방식의 경우 쿼리 스트링으로 값을 전달하며 특정 페이지를 링크하거나 북마크 할 수 있다.
    • 캐시가 가능하다
    • GET요청은 브라우저 히스토리에 남는다.
    • 길이 제한이 있다.
  2. POST방식의 경우 리소르를 생성/변경을 위해 설계
    • HTTP 바디에 담아서 값을 전달하며 길이 제한이 없다.
    • 헤더의 데이터 타입을 표시해야 한다.
  3. GET , POST차이점
    • GET은 서버의 리소스에 요청을 할 때, POST는 리소스를 생성 또는 업데이트 할 때 사용
    • GET은 멱등이며 POST의 경우 멱등성이 없다.
  4. 멱등성이란
    • 연산을 여러 번 적용하더라도 결과가 달라지지 않는 것을 의미한다.

'CS' 카테고리의 다른 글

CS  (0) 2022.09.14
면접 질문  (0) 2022.09.07
면접 질문  (0) 2022.09.05
면접 질문  (0) 2022.09.02
ORM, JPA, Spring Data JPA  (1) 2022.09.01