WeareSoft / tech-interview

:loudspeaker:๐Ÿ™ tech interview

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tech Interview

๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ์ •๋ฆฌํ•˜๋Š” Repository ์ž…๋‹ˆ๋‹ค.

โญ ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•  ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด Pull Request๋ฅผ ํ†ตํ•ด์„œ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
โญ Star๋‚˜ Watching๋ฅผ ํ†ตํ•œ ๋งŽ์€ ๊ด€์‹ฌ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. :)

author HeeBlog DoyBlog NesoyBlog DelfBlog contributors HitCount

๐Ÿ“– Contents

  1. Data Structure
  2. Network
  3. Operating System
  4. Database
  5. Design Pattern
  6. Algorithm
  7. Java
  8. JavaScript
  9. Spring
  10. Security
  11. ETC

1. Data Structure

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • Array
  • LinkedList
  • HashTable
  • Stack
  • Queue
  • Graph
  • Tree
  • ๊ทธ๋ž˜ํ”„(Graph)์™€ ํŠธ๋ฆฌ(Tree)์˜ ์ฐจ์ด์ 
  • Binary Heap
  • Red-Black Tree
  • B+ Tree

2. Network

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • OSI 7๊ณ„์ธต
  • TCP/IP์˜ ๊ฐœ๋…
  • TCP์™€ UDP
  • TCP์™€ UDP์˜ ํ—ค๋” ๋ถ„์„
  • TCP์˜ 3-way-handshake์™€ 4-way-handshake
    • Q. TCP์˜ ์—ฐ๊ฒฐ ์„ค์ • ๊ณผ์ •(3๋‹จ๊ณ„)๊ณผ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ๊ณผ์ •(4๋‹จ๊ณ„)์ด ๋‹จ๊ณ„๊ฐ€ ์ฐจ์ด๋‚˜๋Š” ์ด์œ ?
    • Q. ๋งŒ์•ฝ Server์—์„œ FIN ํ”Œ๋ž˜๊ทธ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— ์ „์†กํ•œ ํŒจํ‚ท์ด Routing ์ง€์—ฐ์ด๋‚˜ ํŒจํ‚ท ์œ ์‹ค๋กœ ์ธํ•œ ์žฌ์ „์†ก ๋“ฑ์œผ๋กœ ์ธํ•ด FIN ํŒจํ‚ท๋ณด๋‹ค ๋Šฆ๊ฒŒ ๋„์ฐฉํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?
    • Q. ์ดˆ๊ธฐ Sequence Number์ธ ISN์„ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ  ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด์„œ ์„ค์ •ํ•˜๋Š” ์ด์œ ?
  • HTTP์™€ HTTPS
  • HTTP ์š”์ฒญ/์‘๋‹ต ํ—ค๋”
  • HTTP์™€ HTTPS ๋™์ž‘ ๊ณผ์ •
  • CORS๋ž€
  • GET ๋ฉ”์„œ๋“œ์™€ POST ๋ฉ”์„œ๋“œ
  • ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)
  • DNS
  • REST์™€ RESTful์˜ ๊ฐœ๋…
  • ์†Œ์ผ“(Socket)์ด๋ž€
  • Socket.io์™€ WebSocket์˜ ์ฐจ์ด
  • Frame, Packet, Segment, Datagram

3. Operating System

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด(Process vs Thread)
  • ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ๋Œ€์‹  ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 
  • Thread-safe
  • ๋™๊ธฐํ™” ๊ฐ์ฒด์˜ ์ข…๋ฅ˜
  • ๋ฎคํ…์Šค์™€ ์„ธ๋งˆํฌ์–ด์˜ ์ฐจ์ด
  • ์Šค์ผ€์ค„๋Ÿฌ
  • ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ
  • ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™”
  • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ „๋žต
  • ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ
  • ์บ์‹œ์˜ ์ง€์—ญ์„ฑ
  • ๊ต์ฐฉ์ƒํƒœ(๋ฐ๋“œ๋ฝ, Deadlock)์˜ ๊ฐœ๋…๊ณผ ์กฐ๊ฑด
  • ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ์™€ ์ปค๋„ ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ
  • ์™ธ๋ถ€ ๋‹จํŽธํ™”์™€ ๋‚ด๋ถ€ ๋‹จํŽธํ™”
  • Context Switching
  • Swapping

4. Database

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’€
  • ์ •๊ทœํ™”(1์ฐจ 2์ฐจ 3์ฐจ BCNF)
  • ํŠธ๋žœ์žญ์…˜(Transaction) ์ด๋ž€
  • ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Transaction Isolation Level)
  • Join
  • SQL injection
  • Index๋ž€
  • Statement์™€ PrepareStatement
  • RDBMS์™€ NoSQL
  • ํšจ๊ณผ์ ์ธ ์ฟผ๋ฆฌ ์ €์žฅ
  • ์˜ตํ‹ฐ๋งˆ์ด์ €(Optimizer)๋ž€
  • Replication
  • ํŒŒํ‹ฐ์…”๋‹(Partitioning)
  • ์ƒค๋”ฉ(Sharding)
  • ๊ฐ์ฒด ๊ด€๊ณ„ ๋งคํ•‘(Object-relational mapping, ORM)์ด๋ž€
  • java JDBC

5. Design Pattern

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • ๋””์ž์ธ ํŒจํ„ด์˜ ๊ฐœ๋…๊ณผ ์ข…๋ฅ˜
  • Singleton ํŒจํ„ด
  • Strategy ํŒจํ„ด
  • Template Method ํŒจํ„ด
  • Factory Method ํŒจํ„ด
  • MVC1 ํŒจํ„ด๊ณผ MVC2 ํŒจํ„ด

6. Algorithm

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • BigO
  • DFS์™€ BFS์˜ ์ฐจ์ด
  • Fibonacci์—์„œ์˜ ์„ธ ๊ฐ€์ง€(Recursion, Dynamic Programming, ๋ฐ˜๋ณต) ๋ฐฉ์‹์— ๋Œ€ํ•œ ์‹œ๊ฐ„๋ณต์žก๋„์™€ ๊ณต๊ฐ„๋ณต์žก๋„ ์ฐจ์ด
  • ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ข…๋ฅ˜์™€ ๊ฐœ๋…
  • Greedy ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST, Minimum Spanning Tree)๋ž€
  • Kruskal MST ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • Prim MST ์•Œ๊ณ ๋ฆฌ์ฆ˜

7. Java

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • java ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€
  • Java SE์™€ Java EE ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฐจ์ด
  • java์™€ c/c++์˜ ์ฐจ์ด์ 
  • java ์–ธ์–ด์˜ ์žฅ๋‹จ์ 
  • java์˜ ์ ‘๊ทผ ์ œ์–ด์ž์˜ ์ข…๋ฅ˜์™€ ํŠน์ง•
  • java์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…
  • Wrapper class
  • OOP์˜ 4๊ฐ€์ง€ ํŠน์ง•
    • ์ถ”์ƒํ™”(Abstraction), ์บก์Šํ™”(Encapsulation), ์ƒ์†(Inheritance), ๋‹คํ˜•์„ฑ(Polymorphism)
  • OOP์˜ 5๋Œ€ ์›์น™ (SOLID)
  • ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์ ˆ์ฐจ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ฐจ์ด
  • ๊ฐ์ฒด์ง€ํ–ฅ(Object-Oriented)์ด๋ž€
  • java์˜ non-static ๋ฉค๋ฒ„์™€ static ๋ฉค๋ฒ„์˜ ์ฐจ์ด
    • Q. java์˜ main ๋ฉ”์„œ๋“œ๊ฐ€ static์ธ ์ด์œ 
  • java์˜ final ํ‚ค์›Œ๋“œ (final/finally/finalize)
  • java์˜ ์ œ๋„ค๋ฆญ(Generic)๊ณผ c++์˜ ํ…œํ”Œ๋ฆฟ(Template)์˜ ์ฐจ์ด
  • java์˜ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection) ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•
  • java ์ง๋ ฌํ™”(Serialization)์™€ ์—ญ์ง๋ ฌํ™”(Deserialization)๋ž€ ๋ฌด์—‡์ธ๊ฐ€
  • ํด๋ž˜์Šค, ๊ฐ์ฒด, ์ธ์Šคํ„ด์Šค์˜ ์ฐจ์ด
  • ๊ฐ์ฒด(Object)๋ž€ ๋ฌด์—‡์ธ๊ฐ€
  • ์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์˜ ์ฐจ์ด(Overloading vs Overriding)
  • Call by Reference์™€ Call by Value์˜ ์ฐจ์ด
  • ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒ ํด๋ž˜์Šค์˜ ์ฐจ์ด(Interface vs Abstract Class)
  • JVM ๊ตฌ์กฐ
  • Java Collections Framework
    • java Map ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์ฒด์˜ ์ข…๋ฅ˜
    • java Set ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์ฒด์˜ ์ข…๋ฅ˜
    • java List ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์ฒด์˜ ์ข…๋ฅ˜
  • Annotation
  • String, StringBuilder, StringBuffer
  • ๋™๊ธฐํ™”์™€ ๋น„๋™๊ธฐํ™”์˜ ์ฐจ์ด(Syncronous vs Asyncronous)
  • java์—์„œ '=='์™€ 'equals()'์˜ ์ฐจ์ด
  • java์˜ ๋ฆฌํ”Œ๋ ‰์…˜(Reflection) ์ด๋ž€
  • Stream์ด๋ž€?
  • Lambda๋ž€?

8. JavaScript

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • JavaScript Event Loop
  • ํ•จ์ˆ˜ ์„ ์–ธ์‹๊ณผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹
  • ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Arrow Function)
  • ํ–ฅ์ƒ๋œ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด(Enhanced Object Literals)
  • Modules
  • ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง(Destructuring)
  • ์ „๊ฐœ ์—ฐ์‚ฐ์ž(Spread Operator)
  • ํ˜ธ์ด์ŠคํŒ…(Hoisting)
  • Closure
  • this
  • Promise
  • Async/Await

9. Spring

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ž€
  • Spring, Spring MVC, Spring Boot์˜ ์ฐจ์ด
  • Bean์ด๋ž€
  • Container๋ž€
  • IOC(Inversion of Control, ์ œ์–ด์˜ ์—ญ์ „)๋ž€
  • MVC ํŒจํ„ด์ด๋ž€
  • DI(Dependency Injection, ์˜์กด์„ฑ ์ฃผ์ž…)๋ž€
  • AOP(Aspect Oriented Programming)๋ž€
  • POJO
  • DAO์™€ DTO์˜ ์ฐจ์ด
  • Spring JDBC๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ
  • Filter์™€ Interceptor ์ฐจ์ด

10. Security

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • ๋Œ€์นญํ‚ค์™€ ๋น„๋Œ€์นญํ‚ค ์ฐจ์ด
  • ํŒจ์Šค์›Œ๋“œ ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•
  • SQL Injection ๊ณต๊ฒฉ
  • CSRF ๊ณต๊ฒฉ
  • XSS ๊ณต๊ฒฉ
  • OAuth

11. ETC

โ–ถ๏ธ ๋‹ต๋ณ€ ๋‚ด์šฉ

  • TDD๋ž€
  • ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋ฒ„๋กœ ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋ฉด ์ผ์–ด๋‚˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ์„ค๋ช…
    • Ex. url์— 'www.naver.com' ์„ ์ž…๋ ฅํ–ˆ๋‹ค. ์ผ์–ด๋‚˜๋Š” ํ˜„์ƒ์— ๋Œ€ํ•ด ์•„๋Š”๋Œ€๋กœ ์„ค๋ช…ํ•˜๋ผ.
  • ์ปดํŒŒ์ผ๋Ÿฌ์™€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ
  • ๋ถ„์‚ฐ๋ฝ
  • ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฐจ์ด
  • 64bit CPU์™€ 32bit CPU ์ฐจ์ด
  • CVS, SVN, Git
  • Git Branch ์ข…๋ฅ˜(5๊ฐ€์ง€)
  • ์›น ์„œ๋ฒ„(Web Server)์™€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAS)์˜ ์ฐจ์ด
  • ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก ์ด๋ž€
  • Servlet๊ณผ JSP
  • Redis์™€ Memcached์˜ ์ฐจ์ด
  • Maven๊ณผ Gradle์˜ ์ฐจ์ด
  • Blocking๊ณผ Non-Blocking
  • ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€
  • ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€
  • Mock์ด๋ž€

Reference

About

:loudspeaker:๐Ÿ™ tech interview