[레벨2] 웹 자동차 경주 미션 로그

오잉·2023년 4월 27일
0

우아한테크코스

목록 보기
6/7

230424 레벨 인터뷰 스터디를 위해 작성한 레벨 로그

Spring

  • 스프링 생태계
    • 스프링 프레임워크
    • 스프링 부트

Spring Core

  • IoC (제어의 역전) : 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것
  • DI (의존관계 주입) : 의존관계를 외부에서 결정(주입)해주는 것
    • 생성자 주입
    • 수정자 주입
    • 필드 주입
  • 스프링 컨테이너 : 스프링에서 자바 객체(스프링 빈)들을 관리하는 공간
  • 스프링 컨테이너에 스프링 빈을 등록하는 법
    • @ComponentScan - @Component을 이용한 자동 등록
    • @Configuration - @Bean 을 이용한 수동 등록

Spring JDBC

  • Jdbc : 자바 프로그램이 DB와 연결되어 데이터를 주고 받을 수 있게 해주는 인터페이스
    • connection
    • statement
    • resultSet
  • JdbcTemplate : jdbc를 편리하게 사용하기 위한 기술
    • 기존 jdbc의 반복 작업을 대신 처리
    • RowMapper : resultSet에서 값을 추출하여 원하는 객체로 타입을 변환
    • NamedParameterJdbcTemplate : sql 쿼리 속 파라미터에 ?대신 이름을 붙여서 지정할 수 있다
    • SimpleJdbcInsert : 직접 insert 쿼리를 쓰지 않고도 db에 데이터를 저장할 수 있다
  • Connection pool : connection을 미리 생성해두고 사용
  • DataSource : connection을 획득하는 방법을 추상화

Spring MVC

  • @RestController = @Controller + @ResponseBody
  • 요청을 메서드에 연결하는 방법
    • @RequestMapping : controller에 request를 매핑 (@GetMapping, @PostMapping 이런식으로 Http메소드를 축약한 매핑도 가능하다)
    • @PathVariable : URL에 들어간 변수(식별자)를 조회
  • 요청 데이터를 읽는 방법
    • 요청 파라미터 조회 : @RequestParam, @ModelAttribute
    • HTTP 메서드 바디 조회 : RequestEntity, @RequestBody
  • 응답 데이터를 만드는 방법
    • 정적 리소스 : 해당 파일을 변경 없이 그대로 서비스 하는 것
      • src/main/resources/static 이 경로에 리소스를 넣어두면된다
    • 뷰 템플릿 : 사용자가 요청하는 정보에 따라 서버에서 다양한 처리를 하여 보여주는 동적인 페이지
      • src/main/resources/templates 이 경로에 뷰 템플릿을 넣어두면된다
      • @ResponseBody가 없으면 뷰를 찾고, 해당 뷰를 렌더링 한다
    • 직접 HTTP 응답 : HTML이 아니라 데이터를 전달
      • ResponseEntity : HTTP 메시지 + HTTP 응답 코드
      • @ResponseBody : HTTP 메시지 (HTTP응답 코드를 사용하고 싶다면 @ResponseStatus 추가 사용)
  • API 예외처리
    • @ExceptionHandler : controller에서 발생하는 에러를 잡아서 메서드로 처리해주는 기능
    • @ControllerAdvice : controller에서 발생한 예외를 한 곳에서 관리하고 처리할 수 있게 도와주는 기능
profile
오잉이라네 오잉이라네 오잉이라네 ~

0개의 댓글