이곳은 신입 개발자로 취업을 준비하면서 공부했던 지식을 정리하는 공간입니다. 
지식의 확장을 넘어서 기술 면접을 준비함에 있어서 도움이 되기를 바랍니다.
이 곳은 개인적인 공간이 아닌 여러분들과 함께 채워나갈 수 있기에,
issue와 Pull Request를 통해 이 레퍼지토리의 컨트리뷰터가 되어주세요.
내용이 마음에 들거나 유용하다면 Star를 한번씩 눌러주시면 감사하겠습니다. 🙏
지식의 확장을 넘어서 기술 면접을 준비함에 있어서 도움이 되기를 바랍니다.
이 곳은 개인적인 공간이 아닌 여러분들과 함께 채워나갈 수 있기에,
issue와 Pull Request를 통해 이 레퍼지토리의 컨트리뷰터가 되어주세요.
내용이 마음에 들거나 유용하다면 Star를 한번씩 눌러주시면 감사하겠습니다. 🙏
💡 Java Link
- Java 장단점
 - Kotlin 장단점
 - 코루틴 CPS 패턴
 - OOP(객체 지향 프로그래밍) 특징
 - SOLID 원칙
 - JVM 실행과정
 - JVM 구조
 - 가비지 컬렉터
 - 접근 제한자
 - String vs Char
 - ==과 equals
 - 데이터 타입
 - Call By Value와 Call By Reference
 - hashcode
 - Wrapper class
 - 박싱, 언방식
 - non-static vs static
 - main이 static인 이유
 - final vs finally vs finalize
 - try with resources
 - 제네릭
 - 직렬화와 역직렬화
 - 오버로딩, 오버라이딩
 - 추상 클래스와 인터페이스 차이
 - Error, Exception
 - Checked Exception, Unchecked Exception
 - Java Collections
 - String, StringBuilder, StringBuffer
 - Blocking vs Non-Blocking
 - Sync vs Async
 - 리플렉션
 - Stream
 - Fork Join Pool
 - 람다식
 - Optional
 - 자바8 추가된 내용
 - 함수형 프로그래밍
 - 멀티스레드 프로그래밍
 - Java 동기화 방식
 
💡 Spring & JPA Link
- 세션과 쿠키
 - 프레임워크와 라이브러리
 - Spring 정의 및 장점
 - DI (Dependency Injection)
- 주입 방식
 
 - IoC
 - 스프링 컨테이너
 - Bean 정의
- 생명주기
 - 스코프
 
 - Spring Annotation
 - 웹 서버와 웹 애플리케이션 서버
 - 서블릿
 - 서블릿 컨테이너
 - MVC 패턴
 - AOP(Aspect Oriented Programming)
 - AOP 적용 시점
 - AOP 적용 방식
 - JDK 동적 프록시 vs CGLIB
 - DAO, DTO, VO
 - Filter vs Interceptor
 - AOP vs Interceptor
 - 레이어드 아키텍처
 - OSIV
 - 커넥션 풀
 - DataSource
 - 트랜잭션을 추상화하는 이유
 - 트랜잭션 동기화 매니저
 - @Transactional 동작 방식
 - Propagation 전파단계
 - ORM
 - 영속성 컨텍스트
 - N+1 문제
 - fetch join 한계
- OneToMany fetch join 페이징 쿼리 성능 이슈
 - MultipleBagFetchException
 
 - OneToOne 양방향 관계 Lazy 로딩 주의
 - 상속관계 매핑
 - QueryDsl을 사용하는 이유
 - Spring batch
 - MSA vs Monolithic(모놀리식)
 
💡 Database Link
- 트랜잭션
 - 트랜잭션 ACID
 - 트랜잭션 격리수준
 - Commit
 - Rollback
 - 갱신 분실 문제
 - Locking
 - 스토리지 엔진 락
 - MVCC(다중 버전 동시성 제어)과 락
 - 조인
 - DDL, DML, DCL
 - 힌트
 - 인덱스
- Cluster 인덱스
 - Non-Cluster 인덱스
 - 멀티 인덱스
 - 커버링 인덱스
 - B 트리
 
 - 정규화, 반정규화
 - 커넥션 풀
 - 관계형 DB vs NoSQL
 - 클러스터링
 - 레플리케이션
 - 수직 파티셔닝
 - 샤딩(수평 파티셔닝)
 - SQL Injection
 - 대용량 테이블 고려
 - Statement, PreparedStatement
 - Redis, Memcached
 - Elastic search
 
💡 Network Link
- OSI 7계층
 - DNS
 - www.google.com에 접속할 때 일어나는 일
 - 4 way-hand shaking
 - 포트와 소켓
 - CIDR(사이더)
 - 서브넷
 - TCP, UDP
 - HTTP, HTTPS
 - HTTP 1.0 vs HTTP 1.1 vs HTTP 2.0
 - HTTP Method
 - HTTP Code
 - CORS
 - REST API
 - 쿠키, 세션
 - JWT
 - OAuth
 - WebSocket과 Socket.io
 - 중간자 공격
 - CSRF
 
💡 Operating System Link
- 커널
 - 메모리구조
 - 스택과 힙의 차이점
 - 힙영역을 크게 잡으면 안되는 이유
 - 프로세스와 스레드
 - 멀티 스레드 vs 멀티 프로세스
 - 크롬 탭은 프로세스인지 쓰레드인지
 - 스레드마다 스택을 독립적으로 할당하는 이유
 - 스레드마다 PC 레지스터를 독립적으로 할당하는 이유
 - 컨텍스트 스위칭
 - 프로세스 종류
 - Deadlock
 - Critical Section(임계영역)
 - 경쟁 상태(Race Condition)
 - 사용자 모드와 커널 모드
 - 커널 수준, 사용자 수준 스레드
 - CPU Scheduling
 - 인터럽트
 - 시스템 콜
 - 메모리 관리 전략
 - 가상 메모리
 - Trashing
 - 캐시의 지역성
 
💡 Algorithm & SQL Link
- 코딩 테스트에서 사용하는 파이썬 API
 - 코딩 테스트에서 사용하는 파이썬 정규식
 - 코딩 테스트에서 사용하는 자바 API
 - 프로그래머스 알고리즘
 - 리트코드 알고리즘
 - 프로그래머스 SQL
 - HackerRank SQL