happy-developers / dev-interview

1 stars 1 forks source link

dev-interview

스터디 소개

스터디 진행 기록

주차 일시 주제
1주차 2022.12.19 운영체제
2주차 2022.12.26 네트워크
3주차 2023.1.2 데이터베이스
4주차 2023.1.9 Java
5주차 2023.1.16 Spring
6주차 2023.1.30 운영체제
7주차 2023.2.6 네트워크
8주차 2023.2.13 현용님 모의 면접
9주차 2023.2.20 경오님 모의 면접
10주차 2023.2.27 세훈님 모의 면접
11주차 2023.3.6 이호님 모의 면접
12주차 2023.3.13 기술 세션
13주차 2023.3.21 기술 세션

👉 이후 활동은 다른 repository로 이전했습니다.

Repository 작성 Rule

키워드에 해당하는 질문을 면접 리스트에 추가, 질문을 issue에 추가 및 링크, Comment로 답변

질문 리스트

운영체제
### 핵심 키워드 - 프로세스 & 스레드 - [프로세스의 메모리 구조에 대해서 설명해주세요](https://github.com/happy-developers/dev-interview/issues/3) - [프로세스와 스레드의 차이점은 무엇인가요?](https://github.com/happy-developers/dev-interview/issues/4) - [멀티스레드와 멀티프로세스의 차이는 무엇인가요?](https://github.com/happy-developers/dev-interview/issues/5) - [사용자 스레드와 커널 스레드의 차이점은 무엇인가요?](https://github.com/happy-developers/dev-interview/issues/6) - [Context Switch에 대해서 설명해주세요.](https://github.com/happy-developers/dev-interview/issues/2) - CPU 스케줄링 - 프로세스 동기화 - [Race Condition에 대해서 설명해주세요](https://github.com/happy-developers/dev-interview/issues/7) - deadlock - 물리 메모리 관리 - 가상 메모리 관리 - [가상 메모리 관리 전략에 대해서 설명해주세요](https://github.com/happy-developers/dev-interview/issues/8)
네트워크
### 핵심 키워드 - Read Timeout / Connection Timeout - 비잔틴문제 - http - [http란 무엇인가요?](https://github.com/happy-developers/dev-interview/issues/20) - [GET 메서드와 POST 메서드의 차이는 무엇인가요?](https://github.com/happy-developers/dev-interview/issues/21) - [HTTP 보안 공격에는 무엇이 있나요?](https://github.com/happy-developers/dev-interview/issues/22) - [http 버전별 바뀐 점은 무엇인가요?](https://github.com/happy-developers/dev-interview/issues/23) - [https에 대해서 설명해주세요](https://github.com/happy-developers/dev-interview/issues/24) - TCP/IP 계층 구조 - vpn - ipsec - TCP - [TCP 프로토콜은 무엇이고, 왜 사용하는 것일까요?](https://github.com/happy-developers/dev-interview/issues/12) - Active Closer / Passive Closer - Piggyback, sliding window - Sequence Number, SYN / ACK 등 - 3way handshake, 4way handshake - [TCP 헤더에 대해서 설명해주세요.](https://github.com/happy-developers/dev-interview/issues/69) - UDP, QUIC - [TCP와 UDP의 차이는 무엇인가요?](https://github.com/happy-developers/dev-interview/issues/67) - SSL의 동작 방식 - [웹사이트 접속 흐름](https://github.com/happy-developers/dev-interview/issues/14) - [DNS](https://github.com/happy-developers/dev-interview/issues/10) - [DNS가 UDP 통신을 사용하는 이유는 무엇인가요?](https://github.com/happy-developers/dev-interview/issues/68) - [proxy 서버는 무엇이고 왜 사용하는 걸까요?](https://github.com/happy-developers/dev-interview/issues/70)
데이터베이스
### 핵심 키워드 - 정규화 - 스토리지 엔진 - 트랜잭션 - ACID - lock - [s-lock, x-lock (Lock의 종류는 어떤 것들이 있나요?)](https://github.com/happy-developers/dev-interview/issues/29) - gap lock - 낙관적/비관적 락 - [Lock의 범위에 따라서 s-lock과 x-lock의 차이가 있나요?](https://github.com/happy-developers/dev-interview/issues/30) - mvcc - 갱신손실 - [write-skew , phantom-read를 해결하기 위해서는 어떻게 해야 하나요?](https://github.com/happy-developers/dev-interview/issues/31) - isolation level - 인덱스 - BTree - 왜 ArrayList가 아닌 B-Tree? - Rebalancing - [인덱스란 무엇인가요?](https://github.com/happy-developers/dev-interview/issues/34) - [cluster index 와 non-cluster index 의 차이점에 대해서 설명해주세요](https://github.com/happy-developers/dev-interview/issues/35) - [복합 인덱스 설정 시 정렬되는 순서는?](https://github.com/happy-developers/dev-interview/issues/36) - 옵티마이저 - 옵티마이저 힌트 - sql 힌트 - 페이징 - DB Buffer cache - Block size - Execution plan - 왜 DB에서 열거형은 VARCHAR2가 아닌 Int를 쓸까?
Java
### 핵심 키워드 - checked exception vs unchecked exception - transient - overriding vs overloading - interface vs abstract class - [java 8에 추가된 interface 의 기능이 무엇일까요?](https://github.com/happy-developers/dev-interview/issues/43) - [interface vs abstract 차이가 무엇인가요?](https://github.com/happy-developers/dev-interview/issues/44) - Pass by value / reference - Java Hashmap - [HashMap이 키와 값을 빠르게 찾을 수 있는 이유는 무엇일까요?](https://github.com/happy-developers/dev-interview/issues/46) - Concurrent package - volatile - equals, hashcode - [Object 클래스의 ==, equals, hashcode 연산 관련 질문 (동등성 vs 동일성)](https://github.com/happy-developers/dev-interview/issues/45) - String이 final일까 - StringBuilder vs StringBuffer - synchronized - GC - 자바 메모리 영역 - String 과 리터럴 - 리플렉션 - 제네릭 - 타입 이레이저 - Type token Super Type token - serializable - JVM
Spring
### 핵심 키워드 - di 방식 비교: 생성자, setter, field - [DI란 무엇이고 의존성 주입 방법에 대해서 설명해주세요.](https://github.com/happy-developers/dev-interview/issues/57) - di 어노테이션 비교: @Autowired, @Resource, @Inject - [스프링 MVC 패턴과 클라이언트 요청이 처리되는 순서에 대해서 설명해주세요.](https://github.com/happy-developers/dev-interview/issues/58) - 스프링 빈의 스코프 - AutoConfigure 작동 방식 (@ComponentScan, @EnableAutoConfiguration) - 스프링 트라이앵글 - IOC/DI - AOP - aop의 단점 - 어노테이션 동작 방식 - self invocation 문제 - 순환 참조 문제 - interceptor vs filter - [클라이언트 요청 앞단에 요구사항이 추가된다면 어떻게 구현하겠습니까?](https://github.com/happy-developers/dev-interview/issues/59) - AOP - [self-invocation에 대해서 설명해주세요.](https://github.com/happy-developers/dev-interview/issues/60) - @Transactional 동작방식 - AOP와 함께 - 과연 Rollback이 되는 조건이 정해져 있는 걸까? - 언제 동작하지 않을까? - @Autowired - PSA - PlatformTransactionManager - JDBCTrasactionManager(?) - HibernateTransactionManager - MyBatis(?)TransactionManager - DynamicProxy, CGLib - HttpMessageConverter, @ResponseBody는 어떻게 동작할까요? - Proxy - CGLIB - springboot