- 접근 제어자의 차이점
- 인터페이스와 추상 클래스의 차이
- 원시값 포장과 VO의 차이
- static과 non-static의 차이
- 생성자 체이닝이 무엇이고 필요한 이유
- 일급 컬렉션이 무엇이고 사용하는 이유
- Checked Exception과 Unchecked Exception의 차이
- String Pool이 무엇이고 사용하는 이유
- Stack 대신 Deque를 사용하는 이유
- equals와 hashCode를 사용하는 이유
- String, StringBuffer, StringBuilder의 차이
- Java 파일이 실행되는 과정
- Optional에 대한 설명과 사용 시 주의사항
- try-with-resources에 대해 설명
- Reflection에 대한 설명과 장단점
- Enum의 장단점
- for문과 Stream 비교
- final 키워드에 대해 설명
- 동등성과 동일성의 차이
- Java Stream API란
- 익명함수와 람다 표현식에 대해 설명
- 컬렉션 프레임워크란
- 깊은 복사(deep copy)와 얕은 복사(shallow copy)에 대해 설명
- 함수형 인터페이스(Functional Interface)란
- JDBC란
- 제네릭이란
- 가비지 컬렉션이란
- 오버로딩과 오버라이딩의 차이
- synchronized 키워드에 대해 설명
- ArrayList와 LinkedList의 차이
- Sealed 클래스란
- Wrapper Class, Boxing, Unboxing 차이
- JVM 메모리 영역에 대해 설명
- 표준 예외와 커스텀 예외의 장단점
- Set과 List의 차이
- Inner Class의 특징
- 직렬화와 역직렬화에 대해 설명
- Record 클래스란
- Atomic Type이란
- 좋은 객체의 정의
- SOLID 원칙에 대한 설명
- God Class를 지양하는 이유
- Getter를 지양하는 이유
- 상속을 사용하는 이유
- 상속과 조합 비교
- 원시 값을 포장하는 이유
- 응집도와 결합도 비교
- 의존성에 대한 설명과 높은 의존성의 단점
- 캡슐화에 대한 설명과 장단점
- instanceof를 지양하는 이유
- 디미터 법칙에 대한 설명과 장단점
- MVC 패턴을 사용하는 이유
- 도메인이 뷰에 대한 의존을 지양하는 이유
- 싱글톤 패턴에 대한 설명과 사용 경험
- 템플릿 메서드 패턴에 대한 설명과 사용 경험
- 전략 패턴에 대한 설명과 사용 경험
- 상태 패턴에 대한 설명과 사용 경험
- 커맨드 패턴에 대한 설명과 사용 경험
- 캐싱의 장단점
- 클린코드에 대한 개인적인 견해
- 가독성이 높은 코드를 작성하기 위한 개인적인 노력
- 자바 네이밍 컨벤션에 대 설명
- 미션을 진행하면서 랜덤 값을 테스트한 경험
- 주석 장단점
- 좋은 예외 처리에 대한 개인적인 견해
- 명확하지만 너무 긴 메서드명 vs 명확하지 않지만 짧은 메서드명
- null, optional, 널 객체 특징과 어떤 방식을 선호하는지 근거와 함께 설명
- null 리턴의 장단점
- 인자가 많은 메서드의 장단점
- 정적 팩토리 메서드의 장단점
- 불변성에 대한 설명과 장단점
- 불변 객체와 가변 객체의 차이점
- 방어적 복사와 불변 컬렉션을 사용하는 상황
- 멤버변수가 많은 클래스의 장단점
- 자신만의 테스트 철학
- 테스트 코드를 작성하는 이유
- 단위 테스트에 대한 설명
- 본인이 생각하는 좋은 테스트 코드의 특징
- @BeforeEach를 사용한 테스트의 장단점
- 주어진 테스트 코드의 문제점
- 테스트 대역 종류와 사용 상황 설명
- assertJ와 junit의 차이점
- TDD의 장점과 TDD를 해본 소감
- 예외 메세지 테스트에 대한 개인적인 견해
- 테스트에서만 필요한 메서드에 대한 개인적인 견해
- private 메서드를 테스트해야하는 지에 대한 개인적인 견해
- 테스트 커버리지가 높다고 무조건 좋은지에 대한 개인적인 견해
- 테스트 코드에서 리플렉션을 이용한 extracting 메서드에 대한 개인적인 견해
- Transaction Schedule이란?
- 비관락, 낙관락에 대한 설명
- 페이지네이션과 무한 스크롤링의 차이
- CAP
- OLAP, OLTP에 대한 개념 및 차이
- 인덱스에 대한 설명과 구조
- 트랜잭션에 대한 설명과 특성(ACID)
- 트랜잭션 Isolation Level에 대한 설명
- 정규화에 대한 설명과 장단점
- DB Lock의 종류
- FK 지정 시 주의해야 할 점
- 인메모리 데이터베이스의 특징
- 포트에 대한 설명
- Private IP와 Public IP의 차이
- TCP와 UDP의 차이점
- TCP/IP 인터넷 프로토콜 스위트
- TCP 3-way handshake
- Connection Timeout, Socket Timeout, Read Timeout의 차이
- 서브넷 마스크에 대한 설명
- CIDR에 대한 설명
- Classless Routing 도입한 이유
- 검색창에 www.techcourse.woowahan.com을 검색하면 결과가 브라우저에 렌더링되기 전까지 어떤 일이 발생할까요?
- URI, URL, URN에 대한 설명
- WAS와 웹서버의 차이
- HTTP 메시지 구성에 대한 설명
- HTTP GET과 POST에 대한 설명
- HTTP PATCH와 PUT의 차이
- HTTP Status Code에 대한 설명
- HTTP, HTTPS의 차이와 HTTPS 동작 방식
- HttpOnly 쿠키 옵션을 설정하는 이유
- Http 멱등성
- CORS 에러에 대한 설명
- PRG 패턴에 대한 설명
- RESTful에 대한 설명
- PathVariable과 QueryParam의 차이와 주 사용처에 대한 설명
- Cookie와 Session의 차이
- 블로킹, 논블로킹, 동기, 비동기에 대한 설명
- @Value 어노테이션 사용 시 주의할 점
- AOP란
- 빈 스코프란
- 빈 주입 방식 4가지
- IoC Container과 Bean의 기본 개념
- BeanFactory와 ApplicationContext의 차이
- @Component, @Service, @Controller, @Repository의 차이
- @Configuration과 @Component의 차이
- jakarta.validation과 org.springframework.validation 차이
- Spring을 사용하는 이유와 장단점
- @Profile이란
- Spring Properties란
- @ConfigurationProperties의 장점
- CGLIB에 대한 설명과 동작방식
- JPA를 사용하는 이유
- JPA, Hibernate, Spring Data JPA의 차이점
- JPA에서 새로운 Entity인지 판단하는 방법
- ddl-auto 옵션에 대한 설명
- 엔티티 매니저에 대한 설명
- 더티 체킹 동작 방식에 대한 설명
- 영속성 컨텍스트에 대한 설명
- 엔티티의 생명주기에 대한 설명
- JPA Entity에서 기본 생성자가 필요한 이유
- JPA에서 ID 생성 전략에 대한 설명
- JPA 엔티티에 대한 equals 재정의 시 주의해야할 점
- JPA에서 양방향 연관관계가 필요한 경우와, 사용할 때 주의할 점
- 즉시 로딩과 지연 로딩의 차이점
- N + 1 문제와 해결 방법
- @OneToMany에서 fetch join과 페이지네이션 API 함께 사용하면 발생하는 일
- @Embedded와 @Embeddable의 차이점
- @EntityGraph와 fetchJoin의 차이점
- @OneToOne 연관관계일 때 지연 로딩으로 설정하면 발생하는 일
- @Modifying에 대한 설명과 주의사항
- JPQL과 JPA 기본 메소드, 쿼리 메소드의 차이점
- cascade.REMOVE 와 orphanRemoval의 차이
- @JoinColumn 과 mappedBy 속성에 대한 설명
- @Transactional(readOnly = true)를 적용했을 때와 아무 어노테이션을 적용하지 않았을 때 차이
- @Transactional에 readOnly 옵션을 사용하는 이유
- @Transactional 전파 속성에 대한 설명
- @Transactional에 대한 설명
- OSIV 옵션에 대한 설명
- 왜 JpaRepository를 impelement한 인터페이스를 사용하기만 하는데, save()와 같은 함수를 통해 DB에 저장할 수 있나?
- ExceptionHandler은 어떻게 작동하는지
- @ResponseBody(or ResponseEntity)가 있을 때와 없을 때의 동작 방식 차이
- Filter와 Interceptor의 차이
- Spring MVC의 실행 흐름에 대해 설명
- @Controller 와 @RestController 의 차이
- ControllerAdvice에 대해 설명
- RequestBody와 ModelAttribute 차이