저자

주홍철

AI핀테크스타트업,어비스의리드개발자이자설립자이다.이전에는네이버의로그플랫폼쪽에서일했으며,대한민국공항,공군에서쓰는실시간모니터링시스템을만들었다.국방부등에서군SW발전에기여한공로로참모총장상,사령관상,단장상을수상했으며카카오프런트엔드챌린지6위,스타트업해커톤1위,백준알고리즘상위1%의실력을보유하고있다.자바스크립트테스트프레임워크Mocha.js의...

목차

1장.디자인패턴과프로그래밍패러다임

1.1디자인패턴

__1.1.1싱글톤패턴
__1.1.2팩토리패턴
__1.1.3전략패턴
__1.1.4옵저버패턴
__1.1.5프록시패턴과프록시서버
__1.1.6이터레이터패턴
__1.1.7노출모듈패턴
__1.1.8MVC패턴
__1.1.9MVP패턴
__1.1.10MVVM패턴

1.2프로그래밍패러다임

__1.2.1선언형과함수형프로그래밍
__1.2.2객체지향프로그래밍
__1.2.3절차형프로그래밍
__1.2.4패러다임의혼합

예상질문

2장.네트워크

2.1네트워크의기초

__2.1.1처리량과지연시간
__2.1.2네트워크토폴로지와병목현상
__2.1.3네트워크분류
__2.1.4네트워크성능분석명령어
__2.1.5네트워크프로토콜표준화

2.2TCP/IP4계층모델

__2.2.1계층구조
__2.2.2PDU

2.3네트워크기기

__2.3.1네트워크기기의처리범위
__2.3.2애플리케이션계층을처리하는기기
__2.3.3인터넷계층을처리하는기기
__2.3.4데이터링크계층을처리하는기기
__2.3.5물리계층을처리하는기기

2.4IP주소

__2.4.1ARP
__2.4.2홉바이홉통신
__2.4.3IP주소체계
__2.4.4IP주소를이용한위치정보

2.5HTTP

__2.5.1HTTP/1.0
__2.5.2HTTP/1.1
__2.5.3HTTP/2
__2.5.4HTTPS
__2.5.5HTTP/3

예상질문

3장.운영체제

3.1운영체제와컴퓨터

__3.1.1운영체제의역할과구조
__3.1.2컴퓨터의요소

3.2메모리

__3.2.1메모리계층
__3.2.2메모리관리

3.3프로세스와스레드

__3.3.1프로세스와컴파일과정
__3.3.2프로세스의상태
__3.3.3프로세스의메모리구조
__3.3.4PCB
__3.3.5멀티프로세싱
__3.3.6스레드와멀티스레딩
__3.3.7공유자원과임계영역
__3.3.8교착상태

3.4CPU스케줄링알고리즘

__3.4.1비선점형방식
__3.4.2선점형방식

예상질문

4장.데이터베이스

4.1데이터베이스의기본

__4.1.1엔터티
__4.1.2릴레이션
__4.1.3속성
__4.1.4도메인
__4.1.5필드와레코드
__4.1.6관계
__4.1.7키

4.2ERD와정규화과정

__4.2.1ERD의중요성
__4.2.2예제로배우는ERD
__4.2.3정규화과정

4.3트랜잭션과무결성

__4.3.1트랜잭션
__4.3.2무결성
__4.4데이터베이스의종류
__4.4.1관계형데이터베이스
__4.4.2NoSQL데이터베이스

4.5인덱스

__4.5.1인덱스의필요성
__4.5.2B-트리
__4.5.3인덱스만드는방법
__4.5.4인덱스최적화기법

4.6조인의종류

__4.6.1내부조인
__4.6.2왼쪽조인
__4.6.3오른쪽조인
__4.6.4합집합조인

4.7조인의원리

__4.7.1중첩루프조인
__4.7.2정렬병합조인
__4.7.3해시조인

예상질문

5장.자료구조

5.1복잡도

__5.1.1시간복잡도
__5.1.2공간복잡도
__5.1.3자료구조에서의시간복잡도

5.2선형자료구조

__5.2.1연결리스트
__5.2.2배열
__5.2.3벡터
__5.2.4스택
__5.2.5큐

5.3비선형자료구조

__5.3.1그래프
__5.3.2트리
__5.3.3힙
__5.3.4우선순위큐
__5.3.5맵
__5.3.6셋
__5.3.7해시테이블

예상질문

6장.포트폴리오와면접

6.1포트폴리오

__6.1.1첫문장이중요하다
__6.1.2숫자로말하라
__6.1.3기술의숙련도를나눠서표기하라
__6.1.4리드미를잘작성하라
__6.1.5오픈소스컨트리뷰터가되자
__6.1.6블로깅을하자

6.2면접

__6.2.1꼬리에꼬리를무는질문
__6.2.2대답을바꾸지말자
__6.2.3모르는것은모르는것
__6.2.4압박을버텨라
__6.2.5공식사이트를봐라
__6.2.6또렷한발음으로
__6.2.7장점,단점,차이는필수다
__6.2.8업무를예측하라
__6.2.9체크리스트를만들어준비하라
__6.2.10인성면접

출판사 서평

디자인패턴,네트워크,운영체제,데이터베이스,자료구조,개발자면접과포트폴리오까지!
CS전공지식습득과면접대비,이책한권이면충분하다!

개발자면접에서큰비중을차지하는CS(ComputerScience)전공지식!디자인패턴부터자료구조까지알아야할게너무많은데,어떻게준비해야할까?이책은디자인패턴,네트워크,운영체제,데이터베이스,자료구조등면접에필요한CS전공지식을모두담고있다.200여개의그림과코드로이론을자세히설명하고,실제라이브러리에서사용된디자인패턴등으로실무활용법을함께다뤄이론과실무를놓치지않고학습할수있도록구성했다.또한,중요한내용은깊게,덜중요한내용은핵심만설명하며,책곳곳에70여개의용어풀이도담고있다.마지막으로구글,네이버,카카오등탑티어급의회사에합격한저자의경험을기반으로한포트폴리오작성법과챕터별예상질문,면접준비노하우도알려준다.개발자면접을준비하거나더나은개발자가되기위해CS전공지식을배우고싶다면이책으로시작하자.

필자는IT대기업면접을준비할때“탄탄한CS전공지식이필요하다.”라는말을듣고수많은전공서적과전공강의들을보며CS전공지식을쌓으려고노력했습니다.그때는무엇이필요하고필요없는지식인지알수없어다외우려고했지만정말많은양이었기때문에너무힘들었습니다.또한,인터넷에있는CS전공지식들은몇개씩은틀리기마련이라공부하다가헷갈려서다시찾아보는등의어려움도겪었습니다.

이책은그러한문제점들을해결하는책입니다.한권만으로CS전공지식의전반적인내용을학습할수있으며,더나아가실제로개발할때필요한CS전공지식을담았습니다.

이책의장점은다음과같습니다.

면접에나올법한CS전공지식을포함한CS전공지식의전반을다룹니다.

필자의실제개발경험이녹아있어이론에만치우친CS전공지식이아닌이론과실무가아우러진전공지식을선사합니다.

필자의수많은면접경험을바탕으로한면접노하우가책곳곳에녹아있습니다.

구글,네이버,카카오등탑티어급의회사에합격한필자의포트폴리오가소개되며포트폴리오작성노하우를알려줍니다.

각장은다음과같은내용을담고있습니다.

1장에서는디자인패턴을다룹니다.이론뿐만아니라실제로어떻게디자인패턴이쓰이고있는지를서술했습니다.예를들어‘전략패턴은passport라이브러리에서사용된다’처럼실무에서어떻게사용되고있는지를구체적으로알려줍니다.예시코드로는자바,자바스크립트두가지의언어로구성했고,코드의난이도를최대한낮추면서도디자인패턴을잘표현하도록노력했습니다.

2장에서는네트워크를다룹니다.네트워크의전반적인내용을설명하며네트워크에서중요한IP,HTTP부분은따로빼서좀더자세하게설명하여중요한부분은깊게,중요하지않은부분은핵심만설명합니다.

3장에서는운영체제를다룹니다.운영체제의핵심요소중하나인시스템콜이나커널을조금더쉽게설명하고자노력했으며,프로세스와스레드를중심으로설명합니다.

4장에서는데이터베이스를다룹니다.ERD나트랜잭션,인덱싱등데이터베이스에서의중요한부분들을중점적으로설명합니다.

5장에서는자료구조를설명합니다.먼저시간복잡도와공간복잡도를설명하여자료구조의기초를알아보고큐,스택등필수적인자료구조를전부다룹니다.

6장에서는필자의포트폴리오를중심으로포트폴리오를쓰는팁과인성면접을준비하는팁을알려줍니다.

이책이탄탄한CS전공지식을갖춘훌륭한개발자가되기위한첫걸음이되길바랍니다.

“이책을만들기까지총13명의개발자최범석(네이버리서치엔지니어),김찬호(라인백엔드개발자),이성준(쿠팡시니어소프트웨어엔지니어),남승원(당근마켓백엔드개발자),이태훈(배달의민족백엔드개발자),이태우(휴먼스케이프CTO),송성빈(삼성전자소프트웨어엔지니어),이승철(NHN백엔드개발자),김인범(CNCITY데이터엔지니어/MongoDBKorea운영진),김재엽(스타트업데이터엔지니어),김건우(클래스101백엔드개발자),조유빈(이스트소프트IOS개발자),오규영(한전KDN소프트웨어엔지니어)님이도와주셨습니다.