[Spring] Fetch JOIN이란?
JPA의 Fetch JOIN이란? fetch join의 예시는? spring data jpa에서 fetch join의 활용은? N+1 문제란? 컬렉션 Fetch의 경우는? 다중 Fetch join의 경우는? fetch join 최적화 전략은?
JPA의 Fetch JOIN이란? fetch join의 예시는? spring data jpa에서 fetch join의 활용은? N+1 문제란? 컬렉션 Fetch의 경우는? 다중 Fetch join의 경우는? fetch join 최적화 전략은?
JPA와 Spring Data JPA란?
@Autowired에 final을 사용하는 방법은?
Spring Data JPA에서 JPQL과 Native SQL의 차이는?
Spring에서 @PathVariable과 @RequestParam의 차이는?
Spring에서 @Entity annotation을 사용하면 왜 빈 생성자가 필요할까? Java Reflection이란? 리플랙션에 빈 생성자가 필요한 이유는? 지연 로딩과 즉시 로딩의 차이는?
Spring에서 @Embeddable, @Embedded annotation이란? @Embeddable, @Embedded annotation을 사용할 때 주의해야 할 점은? @Embedded 값 타입의 엔티티 종속적 생명주기는? @Embedded 값 타입의 변경을 JPA가 자동으...
예외를 처리하지 않는 방식은? 예외를 잡아서 null을 리턴하는 방식은? Optional을 사용하는 방식은? Optional 사용의 장점은? Optional의 자주 사용하는 메서드들은?
Spring MVC의 ArgumentResolver란? ArgumentResolver의 주요 기능은? ArgumentResolver 구현 예제는? ArgumentResolver 등록 방법은?
Spring MVC의 DispatcherServlet이란? DispatcherServlet의 구성 요소는? DispatcherServlet의 작동 원리는?
Spring MVC의 핸들러 인터셉터(Handler Interceptor)란? 핸들러 인터셉터의 주요 메서드는? 핸들러 인터셉터 구현 예제는? 핸들러 인터셉터 등록 예제는?
웹에서의 토큰 기반 인증(Token-Based Authentication)이란? 토큰 인증의 절차는? 토큰 인증의 보안적 측면은? 토큰 인증 사용 시 고려사항은?
웹에서의 세션 기반 인증(Session-Based Authentication)이란? 세션 인증의 절차는? 세션 인증의 보안적 측면은? 세션 인증 사용 시 고려사항은?
웹에서의 기본 인증(Basic Authentication)이란? 기본 인증의 절차는? 기본 인증의 보안적 측면은? 기본 인증 사용 시 고려사항은?
세션 기반 인증(Session-Based Authentication)과 토큰 기반 인증(Token-Based Authentication)의 차이점은? 세션 기반 인증과 토큰 기반 인증을 사용하는 예시는?
Spring Framework에서 생성자 주입 시, @Autowired annotation을 생략해도 되는 이유는? 생성자 주입이란? @Autowired 생략의 이점은?
Inner Join이란? Left Outer Join이란? Right Outer Join이란? Full Outer Join이란?
기본 타입이란? 래퍼 타입이란? 자바에서 기본 타입(primitive types)과 래퍼 타입(wrapper types)의 차이점은? 오토 박싱과 언박싱이란?
@Controller annotation과 @RestController annotation의 차이는? @Controller annotation이란? @RestController annotation이란?
ResponseEntity란? ResponseEntity의 주요 특징 및 기능은? ResponseEntity의 사용 방법은? ResponseEntity의 주요 메서드들의 사용 방법은?
멱등성(Idempotence)이란? Java에서의 멱등성은? Spring에서의 멱등성은? 멱등성을 확보하는 방법은? Spring에서 POST 요청의 멱등성을 확보하기 위한 구체적인 기술 방법은?
Spring에서 API(Application Programming Interface)란? API의 기본 원리는? API의 주요 기능 및 이점은? API의 유형은? API 중요 구현 고려사항은? Spring에서의 API란?
@Controller, @RestController, @RequestMapping, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PathVariable, @RequestParam, @RequestBody, @ResponseB...
Spring에서 Bean란?
Spring Core와 Spring Boot란? Spring Core와 Spring Boot를 자세히 알아볼 수 있는 링크 주소는?
디자인 패턴 중 템플릿 메서드 패턴이란? 템플릿 메서드 패턴 자바 코드 예시는?
트랜잭션이란? JDBC에서 트랜잭션을 관리하는 방법은? JDBC 트랜잭션 코드 예시는? 트랜잭션의 ACID 속성이란? 템플릿 메서드 패턴을 적용한 JDBC transaction 코드 예시는?
Java에서 값 객체 VO(Value Object)란? 값 객체의 특징은? 동등성과 동일성의 차이는? 값 객체 예시 코드는? DTO와 VO의 차이점은?
stateless와 stateful란? stateless와 stateful의 특징은? stateless와 stateful 아키텍처의 장단점은?
Java에서 Fake DAO Testing이란? Fake DAO Test의 핵심 개념은? Fake DAO Test의 구현 예시는?
Java에서 테스트 메서드를 작성하는 AAA(Arrange-Act-Assert) 패턴이란?
Java의 toString() 메서드는 MVC 원칙을 어기는가? toString() 메서드의 MVC 위반 여부는? toString() 메서드란? toString() 오버라이딩이란? toString() 구현 예제는?
Java에서 DAO(Data Access Object)와 Service의 관계는? DAO와 Service의 역할과 책임은?
Java 객체지향에서 다형성이란? 참조변수의 형변환이란? instanceof 연산자란? 매개변수의 다형성이란? 여러 종류의 객체를 배열로 다루는 방법은?
Java에서 추상 클래스(abstract class)란?
Java에서 BufferedReader와 Scanner의 차이는 BufferedReader와 Scanner 각각의 예시는?
Java에서 유틸리티 클래스의 생성자를 private으로 만들어야 하는 이유는?
Java에서 디미터의 법칙(Law of Demeter)이란?
Java의 파사드 패턴(Facade Pattern)이란?
Java에서 과 %n의 차이점은? 플랫폼 독립적인 줄바꿈 처리를 하는 방법은? 과 %n을 사용하는 예시는? %n의 장점은?
Method Source란? @MethodSource annotation이란? Method Source의 사용 방법은? Method Source의 장점은? Method Source의 문제점은?
Yoda Contidions란? 요다 조건의 정의는? 요다 조건의 예시는? 요다 조건의 장단점은? 요다 조건 사용 시 팀 내의 고려사항은?
record란? record의 기본 구조는? record에 커스텀 로직을 추가하는 방법은? record의 제한 사항은? record 사용 시 고려 사항은?
싱글턴 패턴이란? 싱글턴 패턴의 이른 초기화 방법은? 싱글턴 패턴의 느린 초기화 방법은?
TDD란? TDD의 장점과 단점은?
생성자를 통해 초기화하는 방법과 팩토리 메서드를 통해 초기화하는 방법의 차이점은?
객체의 상태를 외부에서 조작할 수 있는 가능성을 없애는 방법은? 방어적 복사란? 불변 뷰란?
자바에서 날짜와 시간을 관리하는 방법은? LocalDate란? LocalTime란? LocalDateTime란? Instant 클래스란? Duration란? Period란?
자바에서 날짜를 조정, 포매팅, 파싱하는 방법은? TemporalAdjuster란? DateTimeFormatter란?
Optional 클래스란? Optional 클래스의 예시는? Optional 클래스의 상세 설명은?
Optional을 사용한 실용 예제에는 어떤 것들이 있는가? 잠재적으로 null이 될 수 있는 대상을 Optional로 감싸는 방법은? 예외와 Optional 클래스는? Optional 클래스를 응용하는 방법은?
Optional 클래스 사용 방법은? Optional 객체를 만드는 방법은? map으로 Optional의 값을 추출하고 변환하는 방법은? flatMap으로 Optional 객체를 연결하는 방법은? Optional 스트림을 조작하는 방법은? 디폴트 액션과 Optional을 언랩하는 ...
Java에서 값이 없는 상황(null)을 처리하는 방법은? 전통적인 null을 사용한 코드와 Optional 클래스를 사용한 코드의 차이점은? null 사용의 문제점은?
람다 표현식을 단위 테스트 하는 방법은? 컬렉션 필터링 메서드 테스트 하는 방법은? 람다 표현식을 직접 테스트 하는 방법은? Mockito를 사용하여 람다 표현식을 포함한 메서드의 외부 의존성 목킹하는 방법은?
람다 표현식과 스트림을 디버깅 하는 방법은? 스택 트레이스 확인 방법은? 정보 로깅 방법은? stream에서 peek란?
UnaryOperator란? UnaryOperator 함수형 인터페이스란? UnaryOperator 고급 활용 방법은?
Supplier란? Supplier 함수형 인터페이스란? Supplier 고급 활용 방법은?
프레디케이트란? 프레디케이트 함수형 인터페이스란? 프레디케이트 고급 활용 방법은?
Function란? Function 함수형 인터페이스란? Function 고급 활용 방법은?
Consumer란? Consumer 함수형 인터페이스란? Consumer 고급 활용 방법은?
템플릿 메서드 디자인 패턴이란? 템플릿 메서드 디자인 패턴에서 람다를 활용하는 방법은?
전략 디자인 패턴이란? 전략 디자인 패턴에서 람다를 활용하는 방법은?
옵저버 디자인 패턴이란? 옵저버 디자인 패턴에서 람다를 활용하는 방법은?
팩토리 디자인 패턴이란? 팩토리 디자인 패턴에서 람다를 활용하는 방법은?
디자인 패턴에서 람다를 활용하는 방법은? 전략 디자인 패턴이란? 템플릿 메서드 디자인 패턴이란? 옵저버 디자인 패턴이란? 의무 체인 디자인 패턴이란? 팩토리 디자인 패턴이란?
의무 체인 디자인 패턴이란? 의무 체인 디자인 패턴에서 람다를 활용하는 방법은?
람다, 메서드 참조, 스트림을 활용해서 더 가독성이 좋은 코드로 리팩터링 하는 방법은? 익명 클래스를 람다 표현식으로 리팩터링하는 방법은? 람다 표현식을 메서드 참조로 리팩터링하는 방법은? 명령형 데이터 처리를 스트림으로 리팩터링하는 방법은?
람다, 메서드 참조, 스트림을 활용해서 더 유연성이 좋은 코드로 리팩터링 하는 방법은? 조건부 연기 실행이란? 실행 어라운드 패턴이란?
ConcurrentHashMap이란? ConcurrentHashMap의 주요 특징은?
리스트와 집합에서 요소를 삭제하는 방법은? 리스트와 집합에서 요소를 교체하는 방법은? 리스트와 집합에서 요소를 정렬하는 방법은? removeIf란? replaceAll란? sort란?
작은 리스트(list) 객체를 만드는 방법은? 작은 집합(set) 객체를 만드는 방법은? 작은 맵(map) 객체를 만드는 방법은? List.of란? Set.of란? Map.of란? Map.ofEntries란?
맵에서 자주 사용하는 유용한 메서드는 무엇이 있는가? forEach란? comparingByKey란? comparingByValue란? getOrDefault란? computeIfAbsent란? computeIfPresent란? compute란? replaceAll란? replac...
병렬 스트림이란? 병렬 스트림의 내부 작동 원리는? 병렬 스트림의 사용 방법은? 병렬 스트림 사용 시 주의사항은?
자바 프로그램의 성능을 측정하는 방법은? JMH란? JMH의 주요 특징은? JMH의 사용 방법은?
포크/조인 프레임워크란? 포크/조인 프레임워크의 주요 컴포넌트는? 포크/조인 프레임워크의 작동 원리는? 포크/조인 프레임워크 사용 시 고려사항은?
Arrays.asList와 List.of의 차이점은? 특징에서의 차이점은? 가변성에서의 차이점은? 주의사항에서의 차이점은? 사용 예시에서의 차이점은?
쇼트서킷이란? 쇼트서킷의 예시는? anyMatch, findAny, findFirst, limit에서의 쇼트서킷은? 쇼트서킷의 장점은? findAny와 findFirst의 차이점은?
Collectors 클래스란? Collectors의 장점은? Collectors의 사용 예시는? joining, groupingBy, partitioningBy의 사용 예시는?
partitioningBy 메서드란? partitioningBy 메서드의 주요 특징은? partitioningBy 메서드의 사용 예시는? 다른 컬렉터와 함께 사용하는 방법은? 분할 방법을 사용해 숫자를 소수와 비소수로 나누는 방법은?
groupingBy 메서드란? 메서드 참조를 이용한 그룹화 방법은? 람다 표현식을 이용한 그룹화 방법은? Collector 타입의 추가 인수로 그룹화된 요소를 조작하는 방법은? 맵핑 함수 타입의 추가 인수로 그룹화된 요소를 조작하는 방법은? 다수준 그룹화란? 서브그룹으로 데이터를 ...
counting 메서드란? maxBy, minBy 메서드란? summingInt 메서드란? summarizingInt 메서드란? joining 메서드란? reducing으로 같은 연산을 수행하는 방법은? 컬렉터를 사용하지 않고 같은 연산을 수행하는 방법은? 자신의 상황에 맞는 최적...
스트림 처리 연산 리듀싱이란? .reduce란? 리듀싱 연산에 초기값이 없는 경우는 어떻게 처리하는가? 리듀싱 연산으로 요소의 합, 최댓값, 최솟값을 계산하는 방법은 무엇인가? reduce 병렬화란?
상태 없는 연산과 상태 있는 연산의 차이점은?
기본형 특화 스트림이란? 숫자 스트림 mapToInt란? 객체 스트림으로 매핑하는 boxed란? 기본값 문제를 해결하기 위한 OptionalInt란?
자바에서 숫자 범위를 스트림으로 표현하는 방법은? range와 rangeClosed의 차이는?
스트림을 만드는 방법에는 어떤 것들이 있는가? 값으로 스트림을 만드는 방법은? 빈 스트림을 만드는 방법은? null이 도리 수 있는 객체로 스트림을 만드는 방법은? 배열로 스트림을 만드는 방법은? 파일로 스트림을 만드는 방법은? 함수로 무한 스트림을 만드는 방법은?
무한 스트림을 만드는 방법은? iterate란? generate란?
스트림 API란? 스트림이란? 스트림 API의 특징은?
스트림과 컬렉션의 차이는? 외부 반복과 내부 반복의 차이는?
스트림 처리 연산 검색과 매칭이란? .allMatch란? .anyMatch란? .noneMatch란? .findFirst란? .findAny란?
스트림 처리 연산 매핑이란? .map란? .flatMap란?
스트림 처리 연산 슬라이싱이란? .takeWhile란? .dropWhile란? .limit란? .skip란?
스트림 처리 연산 필터링이란? .filter란? .distinct란?
외부 반복과 내부 반복의 차이는?
메서드 참조란? 메서드 참조의 예시는? 메서드 참조의 네 가지 형태는? 메서드 참조의 장점은?
람다 표현식이란? 람다 표현식의 주요 구성 요소는? 람다 표현식의 예제는 어떤 것이 있는가? 람다 표현식의 사용 예시는? 람다 표현식의 장점은?
함수형 인터페이스란? 함수 디스크립터란? 함수형 인터페이스의 annotation은? Predicate, Consumer, Function 인터페이스란? 디폴트 메서드란?
final란? 변수에 final을 사용하면? 메서드에 final을 사용하면? 클래스에 final을 사용하면? final의 장점은? final과 불변 객체의 차이점은?
다이아몬드 연산자란? 다이아몬드 연산자의 사용 전과 사용 후의 차이점은? 다이아몬드 연산자의 장점은?
박싱과 언박싱이란? 박싱과 언박싱의 예시는 무엇이 있는가? 박싱과 언박싱의 단점은? 오토박싱의 단점을 해결하기 위한 방법은?
람다 표현식에서 외부 변수를 어떻게 활용할 수 있는가?
동작 파라미터화란? 동작 파라미터화의 사용 방법은? 동작 파라미터화의 장점은? 동작파라미터화의 실전 예제는?
JDK란? JVM이란? JDK의 구성 요소는 무엇인가? JDK의 특징은 무엇인가? JDK 버전의 변화는 어떻게 이루어졌는가? Java와 JDK 버전이 일치해야 하는가?