코딩요
쉬운코드 기술 블로그
코딩요
전체 방문자
오늘
어제
  • 분류 전체보기 (54)
    • 개발자로 성장하기 (11)
    • 컴공 (25)
      • 운영체제 (12)
      • 알고리즘 (1)
      • 데이터베이스 (11)
      • 네트워크 (1)
    • 쉬운코드 (15)
      • 쉬운코드 소개 (6)
      • 쉬운코드 영상 보는 법 (3)
      • 쉬운코드 정정 보고서 (1)
      • 쉬운코드 스토리 (4)
      • 기타 이것저것 (1)
    • 면접 tip (3)

공지사항

  • 아이폰 앱에서는 슈퍼땡스 보내지 말아주세요ㅠㅠ
  • 쉬운코드 멤버십을 소개합니다
  • 쉬운코드 운영 철학

인기 글

hELLO · Designed By 정상우.
글쓰기 / 관리자
코딩요
면접 tip

기술 면접에서 list와 set의 차이를 물어보는 이유

기술 면접에서 list와 set의 차이를 물어보는 이유
면접 tip

기술 면접에서 list와 set의 차이를 물어보는 이유

2022. 10. 4. 12:21

기술 면접에서 자주 등장하는 질문 중에 하나가 
'list와 set의 차이' 인데요,
오늘은 왜 이 질문이 자주 등장하는지 설명드리도록 하겠습니다

 

 


 

 

우선 이 질문은 기술 면접 초입부에 가볍게 질문하기 딱 좋아요
list와 set은 둘 다 실무에서 자주 사용되는 자료 구조고 간결하게 대답하기에도 좋기 때문에
기술 면접 시작할 때 몸풀기로 딱 좋은 질문이죠



그러면서도 지원하신 분의 기본기를 확인할 수 있는 아주 좋은 질문입니다
list와 set은 진짜 진짜 기본적인 개념이면서도 동시에 개발할 때 자주 사용되는 타입이기 때문에
당연히 알고 있어야 하는 개념이에요



범죄 신고는 112, 화재 신고는 119
요거 모르는 분 없잖아요, 이거랑 똑같아요
그만큼 기본 중에 기본이라는 거죠



그래서 이걸 대답 못하면
'기본기가 부족하신 분'으로 평가받을 수 있기 때문에 
반드시 개념을 잘 알고 계시는 게 중요합니다

 

 

 


 

 

만약에 이 질문에 대답을 잘했어요
그러면 이어서 이런 질문이 들어올 수 있습니다

'혹시 set이 어떻게 구현되는지 아시나요?'



면접관 분이 이 질문을 하는 이유는
지원자 분이 얼마나 깊게 파고 들어가는 분인지 알고 싶어서에요



set의 개념을 잘 알고 있고, 이미 여러 번 사용한 적이 있다 할지라도
내부적으로 set이 어떻게 구현되는지 모를 수 있습니다
이걸 모른다고 해서 아주 큰 문제가 생기거나 그렇지는 않아요

하지만 평소에 호기심이 많거나 혹은 좀 더 깊게 알고 싶어 하는 분들은
set이 어떻게 구현되는지도 찾아봤을 가능성이 있단 말이죠



그렇기 때문에 set이 어떻게 구현되는지를 잘 대답한다면
'깊게 파고드는 분' 
'제대로 알고 쓰려고 노력하는 분'
이라는 인상을 줄 수 있습니다
그러니까 플러스 효과를 주는 거죠

 

 

 

 
 

 

 

그러면, set이 어떻게 구현되는지 잘 대답했다면
이어서 여러 종류의 추가 질문들이 나올 수 있습니다



set은 보통 hash table로 구현이 되기 때문에
자연스럽게 hash table과 관련된 추가 질문이 나올 수도 있고요,
아니면 '언제 set을 쓰면 좋은지 그리고 왜 그런지'를 물어볼 수도 있습니다



여기서 '언제 set을 쓰면 좋은지 그리고 왜 그런지'에 대해 묻는 질문은
set에 대한 질문처럼 보이지만 사실은 hash table과 연계된 질문이에요



자, set은 데이터 중복을 허용하지 않고
데이터들의 순서도 보장하지 않는다는 특징을 가지고 있는데요,
이런 특징을 가진 set이 hash table로 구현이 되는 이유는
hash table이 set과 같은 특징을 가지고 있기 때문입니다



이게 무슨 말이냐면 hash table에서는 key가 중복될 수 없어요
그리고 데이터는 순차적이 아니라 랜덤 하게 저장됩니다
hash table의 이런 특징은 set의 특징과 일치하기 때문에
set을 구현할 때는 hash table의 key에 데이터를 저장하는 형태로 구현을 하게 되는 거죠



그리고 hash table에서는 key를 검색할 때의 시간 복잡도는 O(1) 입니다
즉, 얼마나 많은 데이터들을 hash table에 저장하고 있는지와 상관없이 늘 빠르게 key를 검색할 수 있기 때문에
데이터 검색을 list에서 하는 것보다는 hash table로 구현된 set에서 하는 것이 시간적으로 훨씬 유리합니다



그러니까 '언제 set을 쓰면 좋은지 그리고 왜 그런지'를 묻는 이유는
이런 성능 차이를 알고 적재적소에 쓰는 분인지 확인하고 싶어서 그런 거예요



그래서 이 질문에 대한 대답을 잘한다면
'이런 분은 코드를 짤 때 분명히 성능도 고려하면서 코드를 짜실 것 같다'
이런 기대감을 줄 수 있는 거죠

 

 

 

 
 
 

 

 

 

이처럼 list와 set의 차이를 묻는 질문은 표면적으로는 간단해 보이지만 
실제로는 많은 것을 확인해 볼 수 있는 질문입니다



그래서 이런 배경을 이해하신 후에 면접을 준비하시면
그냥 모른 채로 준비하시는 것보다는 
아무래도 더 탄탄하게 준비하실 수 있지 않을까 생각을 하고요,



개인적으로 바라는 것이 있다면
단지 면접을 잘 보기 위함만이 아니라
근본적으로는 좋은 개발자가 되기 위한 목적으로
오늘 내용을 봐주셨으면 좋겠습니다



왜냐하면
잘 알고 잘 쓰는 것,
그리고 성능을 고려하면서 코드를 짜는 것은
훌륭한 개발자라면 갖추고 있는 기본 자세기 때문에 그래요

 


그래서 오늘의 핵심 !!
잘 알고 잘 쓰고 성능도 챙기는 개발자가 되자

 

 

 

 

 

👉 면접 tip도 알려주는 쉬운코드 영상 보러 가기

 

 
저작자표시 비영리 변경금지
    '면접 tip' 카테고리의 다른 글
    • [기술 면접 tip] 스레드를 많이 쓰면 무조건 성능이 좋아질까요?
    • 기술 면접에서 모르는 질문을 만났을 때
    코딩요
    코딩요
    8년차 백엔드 개발자가 이해하기 쉽게 설명합니다. 배워서 남주는 블로그! 이해하기 쉬운 기술 블로그! 쉬운코드입니다 :)

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.