질문_leekyunghee - GANGNAM-JAVA/JAVA-STUDY GitHub Wiki
Java [JVM, 자료구조, 객체지향]
- 자바 프로그램의 실행과정을 설명해보세요.
- JVM이란 무엇이고 JVM 구조에 대해서 설명해주세요.
- JVM의 메모리 구조에 대해 설명해주세요.
- JAVA의 GC가 일어나는 과정은?
- error와 exception의 차이는 무엇이며 예외처리는 어떤식으로 하나요?
- 해쉬함수에 대해 설명하세요.
- 멀티 프로세스 대신 멀티 스레드를 사용하는 이유?
- 일급 컬렉션을 사용하는 이유는 무엇인가?
- 정적 팩토리를 사용하는 이유는 무엇이고 생성자와는 무슨 차이가 있나?
- 자바에서 쓰레드를 구현하는 방법과 동기화되는 과정을 설명하시오.
- 교착상태에 빠지지 않는 경우에만 락을 주는 클래스를 설계해보라.
- 문맥 전환에 소요되는 시간을 측정하려면?
- 동기화된 메서드 A와 일반 메서드 B를 제공하는 클래스가 있다. 같은 프로그램 안에서 실행되는 두개 쓰레드가 A를 동시에 실행할 수 있는가 A와 B는 동시에 실행할 수 있는가?
- 다형성이란 무엇이고 동적 바인딩에 대해 설명하세요.
- extends 보다는 composition을 사용해야 하는 이유는 무엇인가요?
- thread란 무엇이고 thread를 구현하기 위한 인터페이스, 클래스는 어떤 것이 있나요?
- 배열과 ArrayList의 차이점은 무엇인가요?
- 스택과 링크드리스트와 리스트의 차이점을 설명해보세요.
- 자바 컬렉션프레임워크의 대표 인터페이스는 무엇이 있나요?
- hashCode() 값이 모두 같다면 어떤 일이 벌어지나요?
- Hashtable과 HashMap의 차이점은 무엇인가요?
- 인터페이스란 무엇이고 왜 사용하나?
- Wrapper Class의 사용이유를 아나요?
- 자바8 은 어떤 특징을 가지는지 아는대로 설명해보세요.
- 람다와 스트림은 어떻게 사용하나요?
- Collection framework 에 대해 아는대로 설명해보라.
Spring framework
- 스프링 프레임워크의 특징에 관해 설명해주세요.(POJO/ 제어반전/ 영속성/ 확장성)
- 자동으로 DI해주는 어노테이션은 어떤 것들이 있나요?
- 스프링 MVC에서 HTTP 요청 처리의 흐름을 설명해보세요.
- 웹 애플리케이션을 만들기 위해 스프링 프레임워크를 사용하는 이유는 무엇이라고 생각하나요?
- AOP란 무엇이고 어드바이스 종류를 말해주세요.
- Spring의 AOP의 특징과 사용된 proxy 패턴에 대해 설명해보세요.
- 스프링에서 트랜젝션 처리는 어떻게 하는가?
- Array와 LinkedList의 차이에 대해서 설명해보세요.
- 스프링에서 인증과 인가를 처리하는 방식에 대해 설명해보세요.
- 스프링 환경설정 혼자 잡을 수 있는가? 대강 어떻게 해야하는지 설명해 보시오.
Web
- websocket에 대해 설명하세요.
- setTimeout 처리 방식이 어떻게 되는지 설명해보세요.
- 비동기 통신 동작 방식에 대해 설명하고 Call back 함수 이벤트 처리 방식 엔진 측면에서 말해보세요.
- 이벤트 폴링(Polling)과 푸시(Push) (소켓이 필요함) 에 대해 설명해보세요.
- HTTP 메소드에 대해서 설명하고 http와 https의 차이와 동작 원리에 대해서 설명해보세요.
- web framework (ex: angular) 의 hook과 라이프 사이클에 대해 설명해보세요.
- 이벤트 버블링과 캡처링에 대해서 설명해보세요.
- Angular 양방향 데이터 바인딩을 지향하는데 어떻게 동작하는지 설명해보세요.
- Angular 컴포넌트 통신 방법에 대해 말해보세요.
- call, apply, bind 함수 차이에 대해서 설명해보세요.
- 클로저가 무엇이고 클로저 함수 코드를 작성해 보세요.
- Single page application의 특징과 장단점에 대해 말해보고 단점을 개선하기 위한 방안을 말해보세요.
- 가상돔(shadow dom)이란 무엇인가?
- CORS 이슈 해결 방법에 대해서 설명해보세요.
- angular에서 사용된 싱글턴과 팩토리 패턴에 대해서 설명해보세요.
- Content-type 이 무엇이며 request header에 있는지 response header에 있는지?
DB/SQL
- 검색엔진 사용해본적 있나? Elasticsearch 인증 방식은 어떻게 하나?
- Database에서 인덱스란 무엇이고 DB 인덱스의 동작 방법과 실행 계획에 대해 설명해보세요.
- 트랜잭션 격리 수준 (Isolation Level) 에 대해서 설명하세요.
- SQL Join의 세 가지 방식 설명하세요.
- DB INDEX 성능을 위해 고려해야할 것은 무엇이 있나요?
- SQL Join에 대한 벤다이어그램을 설명해보세요.
- RDB의 데드락이 일어나는 상황과 교착상태에 대해서 설명
- 샤딩과 파티셔닝에 대하여 설명
- JOIN의 종류를 열거하고 각각이 어떻게 다르고 어떤 상황에는 어떤 JOIN이 어울리는지 설명하라.
- 비정규화란 무엇인가? 그 장단점을 설명하라.
- 회사, 사람, 그리고 직원 레코드를 저장하는 데이터 베이스의 Entity Relationship 다이어그램을 그려라.
- DB 옵티마이저에 대해 아는가?
Infra/운영
- Kafka와 RabbitMQ의 차이점에 대해서 설명하세요.
- kafka의 토픽과 파티션과 메세지 처리 방식에 대해 설명해보세요.
- 성능 테스트 경험에 대해서 이야기 해보세요.
- 성능 최적화 시나리오에 대해 설명해보세요.
- heap dump를 튜닝하는 방법에 대해 설명해보세요.
- 외부 서비스를 테스트하는 방법이 무엇이 있을지 설명해보세요.
- 성능 테스트한 경험에 대해 말해보세요.
- 레디스 캐시를 어떻게 사용해야하나?
- Linux에서 톰캣 환경설정을 잡는 것에 대해 설명해 보시오.
Architecture/디자인 패턴/DDD
- MSA의 장점과 단점에 대해서 설명하세요
- 데이터 레이크, 마트, 웨어하우스의 차이점?
- 도메인 주도 설계시 각 레이어에 대한 설명을 해보세요.
- 싱글톤이나 Factory Method 패턴에 대해 설명하시오. 혹은 아는 디자인 패턴에 대해 설명해보세요.
- 온라인 북 리더에 대한 자료구조를 설계하라.
- 채팅 서버를 어떻게 구현할 것인지 설명하라. 서버를 뒷받침할 다양한 컴포넌트, 클래스, 메서드에 대해 설명하도록 하라.
- 엔티티와 밸루의 차이는 무엇인지 설명해보세요.
- MSA로 전환하려는 이유는 무엇인지?
- MSA가 각 모듈별로 배포되는 과정에 대해서 설명해보세요.
- 유닛테스트를 해본적이 있는지? TDD와 레거시 코드를 리펙토링 방법에 대해서 설명해보세요.
- 클린 코드를 작성하기 위한 방법에 몇가지 방법에 대해 이야기해보세요.
Computer science
- DNS 쿼리를 실행하였을 때, 어떤 과정을 통해 IP를 받아 오는가?
- 스트리밍 처리의 개념에 대한 이해를 아는데로 이야기헤보세요.
- sync, async, blocking, nonblocking 개념에 대해 각각 설명해보세요.
- 암호화 방식에 대해 설명해보세요.