HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
기술면접 4일차 (인수)

기술면접 4일차 (인수)

발표

11:13 ~11:22
  • 과제 소개 (3분 30초)
    • 기존 성과리포트 문제점
      • 좀 더 빠르게 + 대충 설명해도 될듯
  • 개발 과정 요약 (3분 30초)
  • 주요 개발 이슈 (2분)
    • 리렌더링 관련 최적화
    • 캐싱
      • 같은 쿼리 → recoil selector로 불필요한 API call 방지

11 : 36 ~ 12 : 00

프로젝트 질문

  • 상태관리 라이브러리로 recoil 사용 이유?
    • props drilling ..
    • 다른 것과 비교해본 건지?
      • redux는 사용 경험이 있어서 새로운 스택을 사용해보고 싶었다
      • recoil은 hooks랑 비슷하게 상태를 관리할 수 있어서
        • useState, useEffect.. 처럼 사용가능해서 redux보다 사용하는데 장점이 있었다 (러닝커브가 낮다, 가독성 있다)
        • → 요거만 말하면될듯
  • e2e 테스트를 왜 해야한다고 생각?
    • 기능이 리팩토링 전후에 같은 기능을 하는지 확인 용도
      • jest로 유닛테스트
      • '사용자가 사용하는 환경'에서 잘 작동하는지 확인하려고 사용했다
        • 과제가 사용자 요청에 따라 그래프에 잘 반영되는지 '시각적'인 부분을 확인하는게 좋을 것 같았다.
  • React useMemo, useCallback으로 어떻게 리렌더링
    • props 변경 없으면 메모이제이션해둔 기존 컴포넌트를 반환
    • 함수는 렌더링 될때마다 생성됨 → 계속 리렌더링 발생
      • 메모이제이션된 함수 사용하도록
  • 클린코드 읽으면서 가장 인상깊던 부분?
    • 구체적으로 어떤거 적용했는지
      • 클린코드란 유지보수 비용을 낮추기 위해 코드의 가독성을 높이기 위한 작업이라는 생각이 들었다.
      • 적용 : 추상화 수준을 맞추는 작업
        • 핵심 부분만 남고, 세부 구현은 모듈화 → 코드 읽을 때 핵심 부분만 빨리 읽을 수 있도록
        • 한 컴포넌트에서 추상화하는 수준을 공통적으로 맞춤
        • 한눈에 주요로직을 파악할 수 있도록 함
          • 헤더 컴포넌트 → datepicker 부분이 상당수를 차지, '날짜'라는 부분만 남기고 추상화함
  • 프로젝트하면서 가장 성장했다고 생각하는 부분?

기술질문

  • Array, Linked List 차이점?
    • 배열 : 나열
      • 탐색 : O(1)
      • 삽입/삭제 : O(n) → 메모리 공간 확보 필요
    • 링크드 리스트 : 다음요소 정보까지 가짐
      • 탐색 : O(n)
      • 삽입/삭제 : O(1) → 해당 메모리 주소만 변경
  • 해시맵, 해시충돌 해결방법?
    • 해시맵
      • 유동적인 데이터를 고정적인 크기로 맞추는 자료구조
      • 해시화 과정 거침 = 해시함수에 인자를 넣어 변환하는 것
    • 해시 충돌
      • 해시화 결과가 같은 것 (같은 메모리 반환)
    • 해시 충돌 해결법
      • 좋은 해시함수 만들기 : 다양한 요소를 받았을 때, 값들이 골고루 분포되도록
      • 선형 탐사법 : 인접한 메모리 공간에 저장
      • 개방주소법
      • Linked List 사용
  • Set, Map, List 차이점
    • Set
      • 하나의 집합을 표현하기 위한 자료구조
      • 유일한 요소만 허용
    • Map
      • 객체와 유사하지만, key로 다양한 자료형을 받을 수 있다
      • Object는 key로 string, symbol
  • MVC 패턴이란?
    • Model : 데이터
    • View : User Interface
    • Controller : Model-View 상호작용
    • React는 MVC 패턴?
    • MVVM 패턴도 아는지?