용어 개념 정리

이정훈·2023년 11월 22일
  1. @GetMapping() (이)란?
  • URL 데이터를 통해 요청이 들어오면 그에 맞는 데이터를 보여준다.
  • URL에 데이터가 노출되어 보안에 취약하다.

  1. @ResponseBody (이)란?
  • 클라이언트에서 서버로 요청 메세지가 오면 서버가 클라이언트로 부터 응답을 보낼때 사용된다.

  1. JPA 란? 무엇이고 왜 쓰는가?
  • SQL쿼리를 작성하지 않고도 객체를 통해 DB를 조작할 수 있다.
  • 가독성이 좋고, 유지보수가 쉽다.

  1. JPA 에서 엔티티 란?
  • @Entity 가 붙은 자바의 클래스와 DB의 테이블 정보와 매핑되어 관리하기 쉽다.

  1. JPA 에서 레포지토리에 아무런 코드가 없어도 save 같은 메서드를 쓸 수 있는 이유?-
  • 내부적으로 알아서 호출해준다.?

  1. Optional 객체란 ?
  • 값이 없는 경우를 표현하기 위한 클래스
  • NPE(NullPointException) 오류를 발생시키는 것을 방지하기 위한것으로 Optional 객체로 래핑 되어 반환되기에 보다 안전하다.

  1. 타임리프 설치 후 어떤 경로 폴더 안의 파일의 이름과 매칭이 되는지? (폴더이름)
  • 템플릿안의 파일들과 매칭된다.

  1. Model 객체란 무엇이고 왜 쓰는지
  • model 객체를 파라미터로 선언해주면 스프링이 알아서 생성된 데이터를 view로 전달해준다

  1. 의존성 주입 방법 3가지와 권장하는 방법 1가지를 서술하세요.
    1. 생성자 주입 2. 필드 주입 3. 수정자 주입(Setter)
  • 생성자 주입: 순환참조를 방지하고, final 선언으로 객체가 변하지 않는다.

  1. @RequiredArgsConstructor 란 무엇인지?
  • final 키워드 객체 생성자를 자동 호출 해준다.

  1. 타임리프에서 반복문은 어떤 키워드로 쓰는지 예제 코드를 작성하세요
<tr th:each="question : ${questionList}">
    <td th:text="${question.subject}"></td>
</tr>

  1. 서비스 레이어를 만드는 이유 ?
  • 각 계층의 역할을 분명히 하여 코드 가독성을 높이고, 유지보수성을 향상시키게 된다.

  1. @RequestMapping() 을 쓰는 이유
  • 중복되는 mapping 값을 최소화 하기 위해

  1. HTTP 에서 GET VS POST 요청의 차이, 메서드 맵핑 차이도 설명
  • GET: 클라이언트가 서버로부터 정보를 요청할때 사용되고 캐시가 가능하다
    그러나 URL 주소에 히스토리가 남고 정보가 노출된다.
  • POST: 캐시되지 않고 URL에 남지 않기 때문에 보안에 좋다.

  1. form 태그 에서 데이터 이름을 식별하기 위한 요소는? @RequestParam 으로 받아야하는 이름의 기준
  • @RequestParam 사용하면 HTTP 요청으로 들어온 값을 파라미터 이름으로 바인딩하여 그 값을 변수에 저장한다.
  • 변수를 파라미터로 받고 뷰로 반환하기 까지의 로직이 간소화 된다.

  1. @PathVariable() 이란?
  • 경로변수라는 뜻으로 {id} 안에 둘러 쌓인 값을 나타낸다.
    ex) @GetMapping("question/list/{id}")
  • URL 경로에서 변수 값을 추출하여 매개변수로 전해준다.

  1. @RequestParam 이란?
  • URL에서 파라미터 값을 받을수 있는 어노테이션 이다.

  1. Form 객체를 쓰는 이유
  • 전송하는 폼 데이터가 복잡해도 거기에 맞춘 별도의 폼 객체를 사용해서 데이터를 전달 받을 수 있다.
  • 보통 등록과 수정용으로 별도의 폼 객체를 만들기 때문에 검증이 중복되지 않는다.
profile
공부일지

0개의 댓글