- 추상 클래스와 인터페이스는 어떤 상황에서 사용할 수 있나요?
- 추상클래스와 인터페이스의 차이를 설명해주세요.
- 상속과 조합은 각각 무엇이고 어떤 상황에서 사용할 수 있나요?
- 상속이 갖는 문제점은 무엇이고 이를 어떻게 해결할 수 있나요?
- default 메서드는 무엇이고, 왜 사용하나요?
- Java에서 다형성을 구현하는 방법은 무엇이 있나요?
- Overriding의 조건은?
- method overridding과 overloading의 차이점은 무엇인가요?
- 다형성은 무엇이고, 사용했을 때 어떤 이점을 얻을 수 있나요?
- Java 파일이 실행되는 과정을 설명해보세요.
- 클래스와 인스턴스는 JVM내에서 어떻게 동작하나요?
- JVM이란 무엇이고 왜 사용하나요?
- JRE, JDK, JVM이 각각 무엇이고 어떤 관계인지 설명해주세요.
- JVM의 구조에 대해 설명해주세요.
- JVM의 Runtime Data Area에 대해 설명해주세요.
- JVM의 ClassLoader에 대해 설명해주세요.
- 가변과 불변의 차이는 무엇인가요?
- 깊은 복사와 얕은 복사의 차이점은 무엇인가요?
- unmodifiable 자료형을 사용하는 것과 copyOf를 사용하는 것은 어떤 차이점이 있나요?
- 방어적 복사는 무엇이고 왜 필요한가요?
- String, StringBuilder, StringBuffer의 차이점은 무엇인가요?
- 자바에서 null을 안전하게 다루는 방법에 대해 설명해주세요.
- Optional이란 무엇이며, 어떤 문제를 해결하기 위해 도입되었나요?
- Optional을 사용할때 주의해야 할 부분은 어떤 것이 있을까요?
- Java Stream API에 대해 소개해주세요.
- 스트림과 for-loop의 차이점을 설명해보세요.
- Stream API를 사용할 때의 성능 고려사항에 대해 말해보세요.
- 자바 스트림 API와 함수형 인터페이스의 관계를 설명해주세요.
- 함수형 인터페이스는 무엇이고 어떻게 사용할 수 있나요?
- 자바에서 제공하는 기본 함수형 인터페이스의 종류와 각각의 용도를 설명해주세요.
- 람다와 익명 클래스는 어떻게 다르고 각각의 장단점은 무엇인가요?
- 함수형 인터페이스에 @FunctionalInterface 어노테이션을 사용하는 이유는 무엇인가요?
- JCF란 무엇인가요?
- 10개의 element 를 채워넣은 ArrayList 의 11번째 element 을 add 하기위해 어떤 일이 일어나는지 설명해주세요.
- Array와 List의 차이점은 무엇인가요?
- ArrayList는 어떻게 동작하나요?
- Stack 대신 ArrayDeque 사용을 제안하는 이유는 무엇인가요?
- ArrayList의 indexOf를 사용할 때 어떤 주의점이 있나요?
- Set과 List의 차이점은 무엇인가요?
- HashMap에서 Hash 충돌이 발생하면 어떤 일이 일어나나요?
- Java8에서부터 HashMap이 어떻게 개선됐는지 설명해주세요
- Tree 탐색 방법에는 어떤 것들이 있나요?
- Binary Tree는 무엇인가요?
- B-Tree는 무엇이고 어떨 때 사용할 수 있나요?
- Set 자료구조에 대해 설명해주세요
- Queue는 어떻게 동작하나요?
- Stack은 어떻게 동작하나요?
- Map 자료구조에 대해 설명해주세요.
- Heap 자료구조에 대해 설명해주세요.
- Heap은 어떤 경우에 사용할 수 있나요?
- 테스트 픽스처란 무엇인가요?
- TDD란 무엇인가요?
- 단위테스트애서 AAA는 무엇을 의미하나요?
- JUnit5의 주요 특징과 JUnit4와의 차이점에 대해 설명해 주세요.
- AssertJ란 무엇이며, Junit과 AssertJ를 함께 사용하는 이유를 말씀해주세요
- FIRST 원칙이란 무엇이며, 각각의 원칙을 설명해 주세요.
- FIRST 원칙 중 가장 중요하다고 생각하시는 원칙이 무엇인가요?
- 단위 테스트를 작성하는 데에 FIRST원칙이 중요한 이유를 설명해주세요
- 테스트 더블이란 무엇이며 종류로는 무엇이 있나요?
- 각 종류의 테스트 더블(Stub, Fake, Dummy, Spy ,Mock) 은 언제 사용하나요?
- 자바의 Mockito 라이브러리에 대해서 설명해주세요.
- 테스트더블 중 stub과 mock 차이를 설명해주세요.
- 테스트더블 중 Spy는 어떤 상황에서 사용되나요?
- MVC 패턴이란 무엇이고, 왜 사용하나요?
- 디자인 패턴의 개념과, 사용이유, 종류에 대해 설명해주세요.
- Builder 패턴을 사용하는 상황은 언제이며, 이를 통해 얻을 수 있는 이점은 무엇인가요?
- 추상 팩토리는 왜 사용하며, 어떤 장단점이 있나요?
- 팩토리 메서드 패턴이란 무엇이며, 어떤 상황에서 유용하게 사용될 수 있는지 설명해 주세요.
- 추상 팩토리 패턴과 팩토리 메서드 패턴의 차이점은 무엇인가요?
- State 패턴을 사용하지 않고 상태 전환을 구현할 때 발생할 수 있는 문제점은 무엇인가요?
- Strategy 패턴은 사용하는 이유와 장단점을 설명해주세요.
- 템플릿 메서드의 개념과 장단점을 설명하고, 언제 사용할 수 있는지 설명해주세요.
- 퍼사드 패턴과 어댑터 패턴를 비교하세요.
- 스프링의 Bean이란 무엇이고 Bean은 어떻게 정의되고 관리됩니까?
- 스프링에서 Bean의 생명주기에 대해 설명해주세요.
- 스프링에서 Bean의 스코프(scope)는 어떤 것들이 있으며, 각각의 의미에 대해 설명해주세요.
- @Component, @Service, @Controller, @Repostiory의 차이를 설명해보세요.
- 스프링의 IoC 컨테이너에 Bean을 등록할 수 있는 방법 두 가지 주요 방법을 설명해주세요.
- 스프링의 @Configuration 애노테이션의 역할에 대해서 설명해주세요.
- Component Scan이 무엇인지 설명해주세요.
- 스프링의 컴포넌트 스캔에 대해서 설명해주세요.
- Spring boot에서 별도로 @ComponentScan 어노테이션 설정을 하지 않아도 빈 등록이 가능한 이유는 무엇인가요?
- 스프링에서 Default로 등록된 Bean 과,
@Configuration
에 정의한 Bean이 같은 타입의 객체라면 무슨 일이 발생하나요?
- 스프링의 IoC(Inversion Of Control)와 DI(Dependency Injection)에 대해서 설명해주세요.
- IoC와 DI(Dependency Injection)의 차이점에 대해서 설명해주세요.
- Application Context가 무엇인지 설명해주세요.
- Application Context의 초기화 과정을 설명해주세요.
- Bean Factory와 Application Context의 차이점을 설명해주세요.
- 스프링에서의 의존성 주입 방법 3가지를 설명해주세요
- @EnableWebMvc 어노테이션의 역할과 이를 사용했을 때의 효과를 설명해 주세요.
- Spring에서 MVC Config를 사용하여 어떤 설정을 할 수 있나요?
- WebMvcConfigurer를 구현할 때 자주 사용하는 메서드와 그 용도를 설명해 주세요.
- Spring MVC에서 뷰 이름이 요청 경로와 일치하지 않을 경우, View Resolver를 통해 이를 어떻게 해결할 수 있나요?
- Arguement Resolver란 무엇인가요, 왜 사용하나요?
- 커스텀 Argument Resolver를 구현할 때, WebMvcConfigurer의 addArgumentResolvers 메서드의 용도는 무엇인가요?
- Auto Configuration이란 무엇이고, 어떻게 동작하는지 설명해주세요.
- @EnableAutoConfiguration 어노테이션의 역할은 무엇인가요?
- Spring Boot의 Auto Configuration이 application.yml 파일의 설정과 어떻게 연관되는지 설명해 주세요.
- 여러 개의 Interceptor가 동일한 mapping에 등록된다면 어떤 순서로 동작하나요?
- Interceptor는 어떤 상황에서 주로 사용하나요?
- Interceptor와 Filter가 각각 무엇이고 어떤 차이점을 가지는지 설명해주세요.
- AOP란 무엇인가요?
- Spring AOP에서 주의사항으로 무엇이 있나요?
- 스프링에서 사용되는 AOP의 주요 용어에 대해 설명해주세요.
- AOP를 언제 사용하고 왜 사용하나요? 장단점은 무엇인가요?
- Spring에서 어떤 프록시를 사용하나요?
- Transactional 어노테이션의 동작 원리에 대해 설명해주세요.
- Transactional 어노테이션에 대해 설명해주세요.
- Transactional 어노테이션의 readOnly 옵션을 true로 설정하는 이유는 무엇인가요?
- 선언적 트랜잭션 방식을 사용하는 이유는 무엇인가요?
- Transactional의 전파에 대해 설명해주세요.
- JPA에서 엔티티(Entity)란 무엇이며, 이를 매핑하기 위한 기본 어노테이션은 무엇인가요?
- 엔티티에서 기본 생성자가 왜 필요한가요?
- JPA에서 엔티티의 기본 키 생성 전략을 설정하는 방법에는 어떤 것들이 있나요?
- @Embedded와 @Embeddable 어노테이션의 차이점과 사용 방법을 설명해 주세요
- @Table 어노테이션의 역할과 주요 속성에 대해서 설명해주세요.
- @Lob 어노테이션을 사용할 때 데이터베이스의 BLOB/CLOB 타입과의 매핑 과정에 대해 설명해주세요. 이 어노테이션을 사용할 때의 성능 문제는 무엇인가요?
- JPA에서 엔티티의 생명 주기 상태는 어떤 것이 있으며, 각각의 상태에 대해 설명해 주세요.
- @Transient 어노테이션의 역할과 사용 목적을 설명해주세요.
- @Access 어노테이션의 역할과 사용 목정에 대해서 설명해주세요.
- 영속성 컨텍스트란 무엇이며, 그 역할은 무엇인가요?
- 영속성 컨텍스트를 통해 얻을 수 있는 이점에 대해 설명해 주세요.
- Flush와 Clear의 차이점은 무엇인가요?
- EntityManagerFactory와 EntityManager의 차이점은 무엇인가요?
- 영속성 컨텍스트는 언제 자동으로 플러시되나요?
- 1차 캐시, 2차 캐시에 대해 설명해주세요.
- 즉시 로딩과 지연 로딩이 무엇인지 설명해주세요
- JPA에서 Lazy Loading과 Eager Loading의 차이를 설명해 주세요.
- N+1 문제란 무엇이며, 이를 해결하기 위한 방법은 무엇인가요?
- N+1 문제가 무엇이고 어떻게 해결할 수 있는지 설명해주세요
- @EntityGraph 와 fetch join의 차이점을 설명해주세요
- fetchJoin과 페이징을 함께 시도하면 어떤 문제가 발생하고 어떻게 해결할 수 있나요?
- @ManyToOne , @OneToMany , @OneToOne 어노테이션에 대해 설명해주세요
- @JoinColumn의 역할과 사용시 주의점을 설명해주세요
- JPA CascadeType.REMOVE와 orphanRemoval = true가 각각 무엇이고 어떤 차이점이 있는지 설명해주세요
- 연관관계의 주인이 무엇이며 왜 명확히 해야 하는지 설명해주세요
- 양방향 연관관계를 맺을 경우의 주의점을 설명해주세요
- 무결성이란 무엇인가요? 그리고 무결성 제약조건이란 무엇인까요?
- 무결성 제약조건의 종류에 대해서 설명해주세요
- 기본 키(Primary Key)와 고유 키(Unique Key)의 차이점은 무엇인가요?
- 어떤 경우에 무결성 제약조건을 사용하지 않는 것이 좋다고 생각하나요?
- 외래 키(Foreign Key)의 역할은 무엇이며, 데이터 무결성에 어떤 도움을 주나요?
- 무결성 제약조건을 적용할 때 성능 이슈가 발생할 수 있는 상황은 어떤 경우인가요?
- 외래 키 제약조건이 있는 테이블에서 데이터 삭제를 할 때 발생할 수 있는 문제는 무엇이며, 이를 해결하기 위한 방법은 무엇인가요?
- 외래 키 제약조건과 관련이 있는 CASCADE와 CASCADE의 장단점에 대해서 설명해주세요.
- 데이터베이스 정규화가 무엇인가요?
- 데이터베이스에서 발생할 수 있는 이상 현상의 종류에 대해 설명해주세요.
- 함수 종속성이 무엇이고 어떤 종류가 있는지 설명해주세요.
- 1 정규형에 대해 설명해주세요.
- 2 정규형에 대해 설명해주세요.
- 3 정규형에 대해 설명해주세요.
- BCNF, 4, 5 정규형에 대해 설명해주세요.
- 데이터베이스의 정규화는 왜 필요한가요?
- 과도한 정규화 적용 시 발생할 수 있는 문제점에 대해 설명해주세요.
- 반정규화는 무엇이며 왜 적용하나요?
- 데이터베이스에서 S-lock과 X-lock에 대해 설명해주세요.
- 2단계 락킹이란 무엇인가요?
- MySQL에서 사용되는 락에 대해 설명해주세요.
- 낙관적 락과 비관적 락의 차이점은 무엇인가요?
- Tomcat이 서블릿 컨테이너로서 어떤 역할을 하며, 서블릿과의 관계는 무엇인가요?
- Tomcat에서 사용되는 커넥터에 대해 설명해보세요.
- Tomcat의 동작 과정을 설명해주세요.
- Tomcat을 구성하는 구조에 대해 설명해보세요.
- Tomcat에서 실행되는 일반적인 서블릿의 라이프사이클을 설명해주세요.
- Tomcat에서는 Thread Pool을 어떻게 관리하나요?
- Tomcat의 Session 관리 방법을 설명하세요.
- Tomcat은 Static Resource를 어떻게 처리하나요?
Chocochip | Eden | Clover | Lini |
- Java → Spring → DB → 미정
- Java/Spring의 학습 범위는 프롤로그에서 제공하는 로드맵을 참고하여 20개의 학습 키워드를 정의하고 사다리 타기를 통해 키워드를 5개씩 랜덤으로 나눠가져 질문을 작성한다.
- 레벨3 ~ 레벨5
- 수요일을 시작일로 하여 한 사이클을
2주
로 잡아 진행 (수요일 → 다다음주 화요일)
- 학습 범위 중에서 자신의 질문 작성 범위 해당하는 내용의 질문을 질문 작성 기간 동안 인당 10개씩 작성한다.
- 작성이 완료된 질문은
라운드 로빈
방식으로 인당10개
씩 배정받아 답변 기간 동안 답변을 작성한다.- 이때 답변은 공부하는 이가 참고할 수 있도록 세세히 작성하고, 자신이 학습한 래퍼런스 등을 첨부한다.
- 질문과 답변을 바탕으로 학습 기간을 갖는다.
- 면접은 오후 6시 이후에 진행하며, 인당 30분씩 면접을 진행한다.
- 면접관은 면접에서 꼬리질문이 발생 시, 해당 질문의 Discussion에 반드시 기록한다.
- 정해진 시간 내에
질문 작성
또는답변
을 작성하지 못한 경우 면접날 스터디원 전원(4명)의 커피를 사온다.