면접을 위한 CS 전공지식 노트
기술면접을 준비하는 사람들에게 매우 추천하는 책이다.
특히 신입 기술면접을 준비하는 사람들 중에 기본 개념을 정리해야겠다는 사람이 있다면
이 책부터 보기를 추천한다.
우연히 서점 가서 이 책을 보고
와 이 책이 내가 면접을 준비할 때도 있었으면 얼마나 좋았을까! 하는 생각이 들었다.
그래서 얼른 기술면접을 준비하고 있는 동생에게 추천해줬다ㅎㅎㅎ
주요 주제를 잘 다루고 있고, 무엇보다 그림과 예시, 코드도 있어서 좋다.
일부 인터넷에 떠돌아다니는 기술 면접 노트들은, 예시가 빠져 있거나 그림이 빠져 있어서
개념 그 자체만을 설명하고 있는 경우가 많은데
초보자가 보기에 어려운 경우가 많다.
그런데 이 책은 그림과 예시를 들어가며 개념을 설명하고 있어서 이해하기 쉽다.
사진 설명을 입력하세요.
-이 책에서 다루는 주제
디자인패턴, 네트워크, 운영체제, 데이터베이스, 자료구조
모두 개발자 1차 기술면접에서 물어보는 주제들이다.
굳이 우선순위를 두자면, 자료구조, 데이터베이스, 네트워크, 운영체제는 꼭 보고
디자인패턴은 시간 남으면 보면 될 것 같다.
예상질문은 좀 아쉬운데,
각 챕터의 예상질문이 적다는 점과 '운영체제의 역할은 무엇인가?' 등 빈출이 적은 질문이 적혀 있다는 점이 아쉬웠다.
그래서 후기 겸 이 책을 리뷰하면서 보면 좋은 질문들을 적어본다.
컴퓨터공학 수업의 일반적인 커리큘럼은 자료구조 -> 데이터베이스 -> 운영체제 -> 네트워크 -> 디자인패턴을 따르지만
이 순을 반대로 해서 책을 기술한 것을 보면
비장하게 면접을 준비하겠다고 책을 꺼내놓고
결국 자료구조만 보다가 면접장에 가는 독자들을 위한 것 같다.
책의 순서는 위와 같지만 예상질문은 역순으로 해서 적어본다.
크게 기술면접에서 물어보는 건,
-00 개념은 무엇인가?
-00개념을 왜 쓰는지? 언제 쓰는지?
-00개념과 **개념의 차이, 장단점 비교
-00개념을 써본 적 있는지?
이 정도 물어보는 것 같다!
5장. 자료구조
AVL 트리(253쪽), 레드 블랙 트리(254쪽) 같은 건 물어보지 않는다.
물론 질문을 하다가 언급하면 물어볼 수 있겠지만
면접자가 먼저 이 내용을 떠올려서 물어봐야겠다고 생각하는 경우는 거의 없는 것 같다.
하지만 이 책에서 여기까지 다루고 있으니 자료구조 수업 전체를 책에 담으려고 얼마나 저자가 노력했는지가 보인다.
중요한 건,
-해시 테이블이란 무엇인가?
-그래프와 트리의 차이점은?
-이진탐색트리의 시간 복잡도
-스택과 큐의 차이
이 4가지는 이 책을 보고 나면, 꼭 답할 수 있어야 한다.
자주 물어보는 주제다.
그리고 파생 질문으로,
-코딩테스트를 봤을 경우 본인 답안의 시간복잡도
-시간복잡도를 더 줄일 수 있는 방법
이런 질문을 더 해볼 수 있겠고,
좀더 나아가면,
-00000인 경우에는 어떤 자료구조를 써야할까?
이런 질문을 해볼 수도 있다.
4장. 데이터베이스
-1:1관계, 1:N관계, N:M 관계 설명
-Primary Key, Foreign Key + candidate key, alternate key super key
-정규화 과정
-트랜잭션
-원자성, 일관성, 격리성, 지속성, 무결성 설명
-격리수준과 격리수준에 따라 발생하는 현상 (phantom read, non-repeatable read, dirty read 등)
-sql vs nosql
-인덱스가 필요한 이유, 인덱스 만드는 방법
-inner join, left join, outer join
이 정도 질문은 답할 수 있어야겠다.
3장. 운영체제
-프로세스 vs 스레드
-멀티프로세싱 vs 멀티스레딩
-프로세스의 상태 (create, read, running, blocked, terminated 등)
-contest switching
-뮤텍스 vs 세마포어
-deadlock 원인, 해결방법
-CPU 스케줄링 알고리즘 (FCFS, SJF, 우선순위, 라운드로빈, SRF, 다단계 큐)
-interrupt
-메모리 계층 (레지스터, 캐시, 메모리, 저장장치)
-cache hit, cache miss, cache mapping, swapping, page fault, thrashing 등)
-paging vs segmentation
-페이지 교체 알고리즘 (FIFO, LRU, NUR, LFU)
-컴파일 과정
2장. 네트워크
-OSI 7계층
-가상회선 패킷 교환 방식 vs 데이터그램 패킷 교환 방식
-3-way handshake, 4-way handshake
-L4 스위치 vs L7 스위치
-로드 밸런싱
-L3 스위치(라우터) vs L2 스위치
-IP
-HTTP (SSL은 네트워크 관련 직무일 경우)
-www.naver.com을 주소창에 입력하면 어떤 현상이 일어나는지?
1장. 디자인패턴
-싱글톤 패턴 개념, 장단점
-의존성 주입 원칙, 장단점
-팩토리 패턴(factory pattern), 개념, 장단점
-전략 패턴(strategy pattern)
-옵저버 패턴(observer pattern)
-프록시 패턴
-이터레이터 패턴
-노출모듈 패턴
-MVC 패턴 (Model, View, Controller) 개념, 장단점
-MVP 패턴
-MVM 패턴
-절자치향 vs 객체지향 프로그래밍
-객체지향 프로그래밍 특징 (추상화, 캡슐화, 상속성, 다형성)
-오버로딩 vs 오버라이딩
개념이 뭐고 언제 쓰는지, 장단점 중심으로 보자.
정말 기술면접을 준비하는 사람들에게 도움이 많이 되는 책이다.
개념을 모르면 사실 앞단에서 대답이 막혀버리고
그러면 꼬리질문도 나올 수가 없다.
그래서 깊이 알고 있는 사람이든, 아닌 사람이든
어떤 개념을 명료하게 면접관이 원하는 방식으로 대답하는 게 중요한데
이 책은 정말 기술면접을 준비하는 사람들을 위한 책인 것 같다.
그리고 이외에 가장 마지막 챕터에는 포트폴리오를 쓰는 법, 인성 면접 질문들도 있으니
all-in-one인 책이다.
사진 설명을 입력하세요.
이 책을 시작으로 주요 기술면접 개념과 질문들 정리하고,
포트폴리오 정리한 다음에
자신이 포트폴리오에 썼던 프로젝트들 설명해보는 연습,
그리고 해당 직무에서 요구하는 skill set 관련해서 좀더 deep하게 준비하면(spring을 쓰는 백엔드 개발자 포지션이라면 java spring을 추가로 예상질문 뽑아서 준비해본다든지 등) 기술면접 통과는 무리없이 할 것 같다.
정말 추천하는 책이다.
*길벗 IT개발자 리뷰어 활동을 위해 책을 제공받아 작성된 서평입니다.
'Review' 카테고리의 다른 글
데이터 직무 관련 글 업데이트 일정 (0) | 2023.10.13 |
---|---|
길벗 책 "스태프 엔지니어" 후기 - 관리자가 아닌 기술 리더로 성장하고 싶다면 (0) | 2022.11.30 |
[면접] Q. 마지막 할 말/질문 (0) | 2022.05.08 |
[면접] Q. 친구들이 보는 장점/단점 (0) | 2022.05.08 |
[면접] Q. 1분 자기소개 (0) | 2022.05.08 |