질문_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 개념에 대해 각각 설명해보세요.
  • 암호화 방식에 대해 설명해보세요.