참고:
- https://github.com/gyoogle/tech-interview-for-developer
- https://github.com/WooVictory/Ready-For-Tech-Interview
- 매주 과목을 정함
- 정한 과목의 주제 3가지를 각자 담당
- 금요일까지 담당한 주제를 공부한 내용 정리본 및 인터뷰 예상 질문을 작성해 commit
- repository README.md에 정리본 링크 연결하기
- 주말 동안 올라온 예상 질문들에 대한 답을 작성해 PR로 제출
- 답변에 대해 필요하다면 코멘트를 남기고, 주제 담당자가 확인해서 merge
- 파일 구조
- 각 과목에 주제명으로 폴더를 만든 후, 정리한 내용을 README.md로 올리기
- 질문지는 주제명 폴더 내에 workbook 폴더 속에 README.md로 올리기
- 답변 제출할 때는 workbook 폴더에 자신의 이름.md로 올리기
- 커밋 컨벤션
- [과목명/정리] 주제 로 commit
- 예시: [OS/정리] 운영체제란
- workbook 올릴 땐, [과목명/워크북] 로 commit
- workbook 제출할 땐, [과목명/워크북 제출] 로 commit
- 수정할 땐, 수정하고 싶은 커밋 메세지 앞에 "fix: "를 붙여서 fix: [과목명/워크북] 로 commit
- [과목명/정리] 주제 로 commit
- 브랜치 컨벤션
- workbook/이름
- 예시: workbook/gyurim
- workbook/이름
-
OS
-
Network
-
Algorithm
- 거품 정렬(Bubble Sort)
- 선택 정렬(Selection Sort)
- 삽입 정렬(Insertion Sort)
- 퀵 정렬(Quick Sort)
- 병합 정렬(Merge Sort)
- 힙 정렬(Heap Sort)
- 기수 정렬(Radix Sort)
- 계수 정렬(Count Sort)
- 이분 탐색(Binary Search)
- 해시 테이블 구현
- DFS & BFS
- 최장 증가 수열(LIS)
- 최소 공통 조상(LCA)
- 동적 계획법(Dynamic Programming)
- 다익스트라(Dijkstra) 알고리즘
- 비트마스크(BitMask)
-
Database
- 키(Key) 정리
- SQL - JOIN
- SQL Injection
- SQL vs NoSQL
- 정규화(Nomalization)
- 이상(Anomaly)
- 인덱스(INDEX)
- 트랜잭션(Transaction)
- 트랜잭션 격리 수준(Transaction Isolation Level)
- 저장 프로시저(Stored PROCEDURE)
- 레디스(Redis)
-
Java
- Call by value ve Call by Reference
- String, StringBuilder, StringBuffer 차이
- 객체지향 프로그래밍
- 접근 제어 지시자
- ==와 equals() 차이
- Wrapper Class
- 기본형과 참조형의 차이점
- 오버라이딩과 오버로딩
- final 키워드
- non-static 멤버와 static 멤버 차이
- 추상 클래스
- 인터페이스
- 추상 클래스와 인터페이스의 차이
- 변수의 종류와 메모리 구조
- Reflection
- Garbage Collection
- Java에서 Thread
- Java의 String
- int와 short
- JVM
- equals() 메소드 동작 원리
- Integer vs int size 비교
- SOLID 원칙
- 자바의 컬렉션 프레임워크