본문 바로가기
Memo/우테코 4기

[우테코] 레벨2 인터뷰

by 연로그 2022. 6. 30.
반응형

우아한테크코스에서 진행되는 레벨로그의 경험을 기록한 글입니다.

 


목차

1. 레벨 로그

2. 피드백


 

img: Flaticon


📚 레벨 로그

제출한 레벨 로그를 바탕으로 좀 더 디테일하게 풀어냈다.

 

JDBC

  • 과거 DB마다 다른 연결 방법이 달라 어려움을 겪던 개발자들을 위해 등장
  • JDBC 기능
    • Connection: 연결
    • Statement: SQL을 담은 내용
    • ResultSet: SQL 요청 응답
  • JDBC를 구현한 것이 JDBC 드라이버 (각 DB 사에서 제공)
  • 일반적으로 자주 사용하는 부분만 공통화 -> 한계 -> SQL Mapper와 ORM 등장

 

SQL Mapper

  • ex: Spring의 JdbcTemplate
  • JDBC 사용으로 인한 반복되는 코드 제거
  • SQL 응답 결과를 편하게 객체로 변환
  • SQL 수동 작성

 

ORM; Object Relational Mapping

  • ex: JPA - Hibernate
  • 반복적인 SQL을 직접 작성하지 않음
  • 러닝 커브가 높음

 

@ExceptionHandler

  • 특정 예외를 공통적으로 처리할 수 있음
  • controller 내부에서 사용하면 해당 컨트롤러만 처리

 

의존성 주입

  • 생성자 주입
    • final 키워드 사용 가능
    • 테스트 코드 작성 용이
    • 초기화하지 않은 값을 사용해 NullPointerException이 발생하는 경우 방지
  • 세터 주입
    • 의존 관계 수정 쉬움
  • 필드 주입
    • 의존 관계 파악 어려움
  • 여러개 사용하는 경우 생성자 -> 세터 -> 필드 순으로 호출됨


@RequestBody와 빈 생성자

  • 클라이언트로부터 값을 받으면 해당 값을 읽을 수 있는 Converter 찾음
  • JSON은 Jackson2HttpMessageConverter 사용
  • 내부에서 ObjectMapper를 이용해 객체로 변환
  • ObjectMapper는 Reflection을 이용해 객체로 변환
  • Reflection은 빈 생성자 필요

 

트랜잭션

  • DB 상태를 변환 시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
  • 비즈니스 로직과 트랜잭션 코드를 분리하기 위해 Spring은 아래 기술 지원
    • TransactionTemplate: 트랜잭션에 대환 추상화 지원
      • getTransaction()
      • commit()
      • rollback()
    • @Transactional

 

컴포넌트 스캔

  • 스프링이 직접 클래스를 검색해 빈으로 등록해주는 기능
  • @Component로 빈 등록 가능
  • 특정 어노테이션을 컴포넌트 스캔이 가능하도록 설정 가능

 

CORS 에러

  • 출처: 스킴 + 호스트 + 포트
  • 다른 출처에 존재하는 자원에 접근하고 싶다면 CORS를 이용
  • CORS: 접근 권한을 줄 수 있도록 브라우저에 알려줄 수 있는 체제

 

  1. 브라우저 -> 서버 Origin에 출처 포함
  2. 서버 -> 브라우저 Access-Control-Allow-Origin 허용된 출처 포함
  3. 브라우저에서 1과 2 값 비교해 유효성 검증

 

Optional은 메서드 반환 값으로만 사용하라

  • Optional은 null 반환 시 오류 발생 가능성이 높은 경우에 '결과 없음'을 명확하게 드러내기 위해 설계
    -> 메서드 반환 타입으로 사용되도록 매우 제한적으로 생성
  • 파라미터로 사용 시 메서드에 조건부 로직 유도
  • 직렬화 시 필요한 Serializable 인터페이스 미구현

 


💡 피드백

 

받은 피드백

브라운, 배카라, 마루, 리차드, 썬, 헌치 감사해용 <3
  • 본인의 생각을 잘 말해줌
  • 코드나 경험 기반 설명 굿
  • 시선 처리나 면접관과 아이컨택 굿
  • 상황 대처 능력이 좋음

  • 너무 빨리 대답하려 하지 말고 텀을 두고 대답하기
  • 당황하면 말이 빨라짐
  • 목소리 떨림
  • ~에 따르면 이라기보다는 내 생각을 말하기

 

셀프 피드백

  • 긴장 -> 목소리 톤이 높아짐 -> 목 아파서 자꾸 떨림 (악순환)

 

기타

  • 면접은 지식 뽐내기가 아닌 내가 어떤 사람인지 뽐내는 시간
  • 면접관으로서 내가 어떤 사람과 동료가 되고 싶은지 생각할 수 있는 질문생각해보기
  • 긴장을 푸는 제스쳐를 정하고 긴장될 때마다 제스쳐 하기
  • 못하는거 보충하는 것도 좋지만 잘하는 것을 어필할 방법 생각해보기

 

학습할 것

  • Spring bean이 어떤 식으로 등록되는지 과정
    (추가 키워드: 프록시)
반응형