취합본 - GANGNAM-JAVA/JAVA-STUDY GitHub Wiki
자바
- 자바에서 쓰레드를 구현하는 방법과 동기화되는 과정을 설명하시오. o
- hashCode() 값이 모두 같다면 어떤 일이 벌어지나요? hashcode()와 equls()는 언제 사용하고 왜 사용하는지? o
- 패러럴GC, G1GC의 차이점 설명해주세요 o
- Java8의 heap 메모리 구조를 설명해주세요(힙영역 vs 스택영역) o
- 자바8에서 소개된 람다식과 메소드 레퍼런스를 설명하라. o
- checked-exception VS unchecked-exception 차이점을 설명해보세요. o
- 멀티스레드 & 스레드세이프티 & 스레드풀 각각의 특징을 설명하시오 o
- Hashtable과 HashMap의 차이점은 무엇인가요? o
- 객체의 직렬화와 역직렬화에 대해 설명하세요. o
- 해시맵 충돌 해결방법(확인필요) o
- thread safe란? 해결/회피 방법? o
- Collection의 종류와 특징을 설명하시오 o
- Call By Value / Call By Reference 차이 설명 및 예시 o
- java의 non-static 멤버와 static 멤버의 차이 o
- 박싱과 언박싱에 대해 설명 o
- TreeMap, HashMap, LinkedHashMap의 차이를 설명, 언제 무엇을 사용하는 것이 좋은지 예를 들어 설명 o
- RxJava에 대해 설명해보세요.
- 스택과 링크드리스트와 리스트의 차이점을 설명해보세요.
- 기본형과 참조형 차이는 무엇이고 장단점이 무엇인가?
- 스레드 생성 방법과 장단점
- new String()과 ""의 차이
- 일급 컬렉션을 사용하는 이유는 무엇인가?
- IO와 NIO에 대해서 설명
- Java HashMap은 어떻게 작동하는가?
- Atomic Integer는 synchronized를 사용하지 않는가?
- 해쉬함수에 대해 설명하세요.
- Persistence Context란 무엇인가?
- 자바 8 특징*
- String, String, StringBuffer 차이*
- java optional 객체
- 자바 람다 & 클로저
- 가바지 컬렉션으로 런 아웃 메모리
- rdb, nosql 차이(nosql eventual consistency)
스프링/JPA
- Spring의 AOP의 특징과 어드바이스 종류와 사용된 proxy 패턴에 대해 설명해보세요. o
- 스프링에서 @Transactional은 어떻게 동작하며 어떤 옵션이 있는가? o
- 스프링에서 인증과 인가를 처리하는 방식에 대해 설명해보세요. o
- @Service, @Component의 차이는 무엇인가? o
- 스프링 MVC 웹 요청 처리과정을 설명하시오 o
- @EnableWebMvc 는 어디에 필요한지 설명하시오 o
- Spring Security 과정을 간략히 설명하시오 o
- Spring 메시지 큐 Rabiit MQ vs KAFKA o
- Spring의 Filter와 Interceptor의 차이점을 아는가? o
- n+1 쿼리 문제란? o
- @ControllerAdvice, @ExceptionHandler에 대해 설명하시오 o
- AspectJ에 대해 설명해보세요 o
- @Service에서 인터페이스가 필요할까?
- 스프링 환경설정 혼자 잡을 수 있는가? 대강 어떻게 해야하는지 설명해 보시오.
- 스프링 빈은 기본적으로 싱글톤 방식으로 생성되는데 굳이 내부에 상태를 두고 싶다면 어떻게 할까?
- @RequestMapping은 무엇을 하는건가?
- @Controller와 @RestController는 stereotype 인가?
- Spring MVC에서 언제 @ResponseBody 를 사용해야 하는지 설명하시오
- 스프링 프레임워크의 특징에 관해 설명해주세요.(POJO/ 제어반전/ 영속성/ 확장성)
- 이벤트 소싱이란?
- JPA vs Mybatis
- AOP 클래스 참조와 인터페이스 참조의 차이점
- Maven에 대해 설명
- Framework와 Library의 차이
DATABASE/SQL
- SQL의 HINT를 설명해주세요. o
- memcached보다 redis의 공통점과 차이점은? o
- 트랜잭션 격리 수준 (Isolation Level) 에 대해서 설명하세요. o
- RDB의 데드락이 일어나는 상황과 교착상태에 대해서 설명하시오 o
- DB 옵티마이저에 대해 아는가? o
- 복합인덱스, 단일인덱스의 차이와 복합인덱스 사용시 주의점은? o
- DB클러스터링과 리플리케이션의 차이? o
- Join의 종류에 대해 아는대로 다 설명 o
- 정규화, 역정규화는 무엇인지? o
- rdb와 nosql의 차이와 장단점은? o
- 디비 인덱스 동작 원리? 디비 인덱스 쓰는 이유 언제 쓰면 좋은지? B- tree o
- 트랜잭션 ACID o
- 샤딩과 파티셔닝에 대하여 설명 o
- 디비 실시간 통신과 디비풀 이용시의 차이
- SQL Injection?
- 데이터 베이스 성능 튜닝의 3대 핵심 요소
- DB INDEX 성능을 위해 고려해야할 것은 무엇이 있나요?
- 인덱스 탐색 순서
- 인덱스 사용이 불가한경우
- 비정규화란 무엇인가? 그 장단점을 설명하라.
- dispatcherservlet*
- jpa persistence*
- lock 종류*
- docker & kubernatis
- TDD란?
- rest, restful api
- context switching
- 뮤텍스와 세마포어 데드락
Infra/운영
- heap dump를 튜닝하는 방법에 대해 설명해보세요. o
- 레디스 캐시를 어떻게 사용해야하나? o
- SSL 핸드쉐이킹 과정은? o
- 대칭키 암호화 방식과 공개키 암호화 방식의 차이 o
- Nginx와 Apache중 어떤걸 선택할것인가? o
- rest api method o
- http status code o
- jwt란 무엇이며, 구성은 어떻게 되어 있고, oauth와 차이는? o
- ssl과 https 절차를 설명하시오 o
- Connection Timeout과 Read Timeout의 차이? o
- RESTful API란?
- 도커의 특징 o
- 쿠버네티스의 특징 o
- CI/CD 툴 예시 및 특징 설명 o
- 온프로미스 환경과 클라우드 환경의 차이 및 장단점 o
- Kafka와 RabbitMQ의 차이점에 대해서 설명하세요.
- kafka의 토픽과 파티션과 메세지 처리 방식에 대해 설명해보세요.
- 성능 최적화 시나리오에 대해 설명해보세요.
- 고전적인 TCP 방식의 통신을 할때 네트워크가 끊기면 어떻게 전송데이터를 복구하겠는가?
- Docker에서 영속성을 관리해야한다면 어떻게 해야하는가?
- http 프로토콜이란?
- http https 차이
- Http2 를 설명하시오
- REST와 SOAP에 대해 설명
Architecture/Design pattern
- 추상클래스와 인터페이스 차이 o
- 상속의 단점 o
- extends 보다는 composition을 사용해야 하는 이유는 무엇인가요? o
- MSA의 장점과 단점에 대해서 설명하세요
- 도메인 주도 설계시 각 레이어에 대한 설명을 해보세요.
- 싱글톤이나 Factory Method 패턴에 대해 설명하시오. 혹은 아는 디자인 패턴에 대해 설명해보세요.
- MSA가 각 모듈별로 배포되는 과정에 대해서 설명해보세요.
- 유닛테스트를 해본적이 있는지? TDD와 레거시 코드를 리펙토링 방법에 대해서 설명해보세요.
- 싱글톤 패턴은 멀티스레드 환경에서 문제가 발생한다 어떻게 처리할것인가?
- N개의 API서버 구성 아키텍처와 MSA 차이는?
- 모놀리틱과 MSA 장단점
- 비즈니스 로직이 DB, Server, Client에 있을때 각 위치에 따른 장단점 무엇인가?
- 추상클래스가 아닌 인터페이스를 사용하는 이유는?
- TDD란 무엇인가?(카카오 페이)
- DDD 란?
- 디자인 패턴 아는대로
- 엔티티와 밸루의 차이는 무엇인지 설명해보세요.
- MSA가 각 모듈별로 배포되는 과정에 대해서 설명해보세요.
- 도메인 주도 설계시 각 레이어에 대한 설명을 해보세요.
- MSA 트랜잭션 처리 방법
- DDD 란?
- 메시지 큐 아키텍쳐에 대해 설명해보세요. 그리고 사용 예시를 들어 설명해보세요.
- MSA 아키텍쳐에서 트랜잭션을 처리하는 방식은?
- 무중단 배포 경험이 있는가?
- TDD란 무엇인가?
- Docker와 Kubernetes에 대해 설명해보세요.
- 디디디란?
- 디자인 패턴 아는대로 설명하시오
- MSA란? 모놀리틱과 비교하여 장단점을 설명하시오
- MSA 트랜잭션 처리 방법
- TDD란?
cs
- 데드락이 발생하는 상황을 설명해봐라
- 스레드세이프 하다는것은 무엇인가?
- Hash 충돌이 발생했고, 내부에 있는 데이터를 탐색할때 어떻게 탐색할까? (데이터는 정렬되어 있다고 가정)
- 순회도 자주하고 삽입삭제도 자주하는 경우 어떤 자료구조 사용해야하는가?
- sync, async, blocking, non blocking 설명
- 프로세스의 생성과정에 대해 설명
- 스케줄러란?
- 멀티스레드의 장단점
- 사용자 수준 스레드와 커널 수준 스레드의 차이
- 동기와 비동기의 차이
- 퀵소트 머지소트 시간복잡도 설명
- 컴파일언어와 인터프리터 차이
- 라이브러리 vs 프레임워크
- 인터페이스(Interface)란? 또 왜 사용하나?
- 상속과 합성(컴포지션)의 차이에 대해서 설명해 주세요.
- 동기 VS 비동기 프로그래밍
- 블로킹 IO VS 논블로킹 IO
- 함수형 프로그래밍이란?
- 주소창에 naver.com을 입력하고 엔터를 쳤을때 일어나는 과정을 설명해보세요.
- 쓰레드와 동기화, 데드락에 대해 예시를 들어 설명해보세요.
- 프레임워크와 라이브러리의 차이
- sync, async, blocking, nonblocking 개념에 대해 각각 설명해보세요.
- 애자일 방법론 vs 워터폴 방법론
- 상속과 합성(컴포지션)의 차이에 대해서 설명해 주세요.
- 퀵소트 머지소트 시간복잡도 설명
- 블로킹 IO VS 논블로킹 IO
- MSA 특징 및 장단점
- No SQL의 종류와 사용하는 이유
- 퀵소트, 머지소트 시간복잡도 설명
- 상속과 합성의 차이?
- 동기, 비동기, 블럭킹, 논블럭킹의 차이
- DNS 동작 방식
- 프로세스와 스레드 차이