Giter Club home page Giter Club logo

tech-interview's Introduction

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 요청/응답 헤더
  • 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, 반복) 방식에 대한 시간복잡도와 공간복잡도 차이
  • 정렬 알고리즘의 종류와 개념
  • 최소 신장 트리(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) 이란

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의 차이
  • Container란
  • IOC(Inversion of Control, 제어의 역전)란
  • MVC 패턴이란
  • DI(Dependency Injection, 의존성 주입)란
  • AOP(Aspect Oriented Programming)란
  • POJO
  • DAO와 DTO의 차이
  • Spring JDBC를 이용한 데이터 접근

10. Security

▶️ 답변 내용

  • 대칭키와 비대칭키 차이
  • 패스워드 암호화 방법
  • SQL Injection 공격
  • CSRF 공격
  • XSS 공격

11. ETC

▶️ 답변 내용

  • TDD란
  • 웹 브라우저에서 서버로 어떤 페이지를 요청하면 일어나는 일련의 과정을 설명
    • Ex. url에 'www.naver.com' 을 입력했다. 일어나는 현상에 대해 아는대로 설명하라.
  • 컴파일러와 인터프리터
  • 분산락
  • 프레임워크와 라이브러리의 차이
  • 64bit CPU와 32bit CPU 차이
  • CVS, SVN, Git
  • Git Branch 종류(5가지)
  • 웹 서버(Web Server)와 웹 어플리케이션 서버(WAS)의 차이
  • 애자일 방법론이란
  • Servlet과 JSP
  • Memcached와 Redis의 차이
  • Maven과 Gradle의 차이

Reference

tech-interview's People

Contributors

gmlwjd9405 avatar doooyeon avatar delf-lee avatar madplay avatar pphhss avatar seungrokoh avatar

Stargazers

전지환 avatar  avatar  avatar 이인재 avatar PARK JEONG HEE avatar  avatar  avatar KyoungSeok Kim avatar Yeongseop avatar Jiyeon Kang avatar Soyeon Park avatar Sun Min avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.