Java & Spring Boot 6

(Java) Generic 동작 원리 및 용도

해당 포스트는 JAVA의 Generic에 대한 동작 원리와 용도에 대한 내용을 포함하고 있습니다. Java에서 제네릭(Generic)은 다양한 타입의 객체를 다루는 메소드나 컬렉션 클래스에 타입 체크와 타입 캐스팅을 컴파일 시간에 처리할 수 있게 도와주는 프로그래밍 기법입니다. 제네릭을 사용하면 코드의 재사용성을 높이고, 타입 안정성을 강화할 수 있습니다. 제네릭의 동작 원리와 용도에 대해 쉽게 설명해 보겠습니다. 동작 원리 제네릭을 사용하면 클래스, 인터페이스, 메소드를 정의할 때 타입(Type)을 파라미터로 사용할 수 있습니다. 이 타입 파라미터는 실제 클래스 타입이 사용될 때까지 구체적인 타입을 지정하지 않고, 코드 작성 시점에는 추상적인 '타입 변수'로서 사용됩니다. 컴파일 시, 컴파일러는 이 타..

Java & Spring Boot 2024.02.12

(Java) .stream() 동작 원리 및 용도

해당 포스트는 JAVA의 .stream()에 대한 동작 원리와 용도에 대한 내용을 포함하고 있습니다. .stream()을 자주 사용하지만 해당 메소드의 동작 원리에 대한 막연한 궁금증이 생겨 글을 작성하게되었습니다. 동작 원리 1. 스트림 생성 : 스트림은 Collection 인터페이스의 stream() 메소드 호출, Arrays.stream(T array), 또는 Stream 인터페이스의 of(), generate(), iterate() 등의 메소드를 통해 생성됩니다. 스트림 생성 시 데이터 소스는 변경되지 않으며, 데이터의 추상적인 뷰만을 제공합니다. 2. 중간 연산(Intermediate Operations) : 필터링(filtering), 매핑(mapping), 정렬(sorting) 등 데이터 스..

Java & Spring Boot 2024.02.12

[Test] MockBean을 통한 테스트

@MockBean private JavaMailSender mailSender; ... BDDMockito.doNothing().when(mailSender).send(any(SimpleMailMessage.class)); mailSender의 send 메서드가 SimpleMailMessage 유형의 인자로 호출될 때 아무런 행동도 수행하지 않아야 함을 명시한다. 다시 말해서, 테스트 중에는 실제 이메일 전송과 같은 로직이 실제 동작되어 발생하는 부작용을 피하기 위해 send 메서드 호출을 무시하도록 설정한다.

Java & Spring Boot 2024.01.27

(Spring Boot) Filter 예외, CORS 처리

Spring Boot에서 JWT를 활용한 access token, refresh token을 구현했고, 요청 헤더에 포함된 access token의 검증 기능을 Filter에 포함시켜뒀다. 기능 테스트 중, Filter에서 예외가 발생하면 공통으로 예외처리하기 위해 구현해둔 예외 핸들러로 빠지지 않는걸 확인했고, Filter는 Filter에서 따로 예외처리를 해줘야한다는걸 알았다. 추가로, Filter에서 발생한 예외를 응답 객체에 담아 전달 시, Spring에서 CORS 설정을 했는데도 CORS가 발생했다. CORS도 동일하게 Filter에서 처리해줘야했고, 응답 객체에 CORS 설정에 필요한 정보를 추가하니 정상적으로 통신이 이루어졌다.

Java & Spring Boot 2023.04.07

(Spring Boot) 선택한 스프링 버전과 호환되는 디펜던시 버전 고르는 법

https://spring.io/projects/spring-boot#learn Spring Boot Commercial support Business support from Spring experts during the OSS timeline, plus extended support after OSS End-Of-Life. Publicly available releases for critical bugfixes and security issues when requested by customers. spring.io 1. Spring Boot -> Projects -> Learn 페이지 접속 2. 현재까지 릴리즈된 스프링 버전 중 선택하고자하는 버전 클릭 3. Reference Docs. 클릭 시, 해당..

Java & Spring Boot 2023.01.08