본문 바로가기

Spring34

스프링부트 실전 활용 마스터 챕터 스프링 부트 웹 애플리케이션 만들기 스프링 부트를 활용한 데이터 액세스 스프링 부트 개발자 도구 스프링 부트 테스트 스프링 부트 운영 스프링 부트 API 서버 구축 스프링 부트 메시징 스프링 부트 R소켓 스프링 부트 애플리케이션 보안 2023. 12. 16.
PasswordEncoder: There is no PasswordEncoder mapped for the id "null" 오류 원인 분석 Spring Security를 사용하여 인증을 시도할 경우 로그인 실패와 함께 아래와 같은 오류가 발생한 적이 있을 것입니다. java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null" at org.springframework.security.crypto.password.DelegatingPasswordEncoder$UnmappedIdPasswordEncoder.matches(DelegatingPasswordEncoder.java:289) ~[spring-security-crypto-6.1.3.jar:6.1.3] at org.springframework.security.crypto.password.Dele.. 2023. 10. 3.
@EnableWebMvc 는 조심해서 사용하자 💡 이번 포스팅에서는 스프링 부트에서 resourceHandler에 대해 겪었던 이슈에 대해서 정리해 보도록 하겠습니다. 상황은 이렇습니다. 스프링 부트 + 타임리프로 개발을 잘 하고 있다가, 톰캣 AJP 설정을 해야 해서 @Configuration과 @EnableWebMvc를 사용하여 설정을 한 후에 갑자기 정적 Web Resource들이 모두 404 Not Found 에러가 발생하기 시작했습니다. 아래는 문제의 코드입니다. @Configuration @EnableWebMvc @RequiredArgsConstructor public class SpringServletConfig implements WebMvcConfigurer { private final TomcatAjpProperties tomcat.. 2023. 5. 31.
스프링 부트 3 백엔드 개발자 되기: 자바 편 챕터 개발 환경 구축하기 자바 백엔드 개발자가 알아두면 좋은 지식 스프링 부트 3 시작하기 스프링 부트 3 구조 이해하기 스프링 부트 3와 테스트 데이터베이스 조작이 편해지는 ORM 블로그 기획하고 API 만들기 블로그 화면 구성하기 스프링 시큐리티로 로그인/로그아웃, 회원 가입 구현하기 JWT로 로그인/로그아웃 구현하기 OAuth2로 로그인/로그아웃 구현하기 AWS에 프로젝트 배포하기 CI/CD 도입하기 2023. 5. 14.
2023 스프링 캠프 후기 스프링 캠프가 2019년 이후 4년 만에 오프라인 콘퍼런스를 진행한다는 소식을 듣고 그동안 콘퍼런스를 가보지 않았기 때문에 한 번쯤은 가보는 것도 좋지 않을까?라는 생각에 이번 콘퍼런스를 가기로 마음먹었습니다. 하지만 무제한 인원 신청이 아닌 210명으로 한정되어 있었고, 이미 여러 커뮤니티에서 콘퍼런스 소식이 공유되면서 거의 모든 개발자분들이 가고 싶다는 것을 보아 티켓팅이 쉽지 않겠다고 생각했습니다...ㅜ 하지만 티켓팅 당일 너무 쉽게 티켓팅에 성공하여 뭐지..?라는 생각을 하던 도중 커뮤니티에서 티켓팅 오픈 2~3초 만에 매진되었다는 소리를 듣고 운이 좋았다고 생각했습니다. Spring Camp 2023'스프링 캠프'는 애플리케이션 서버 개발자들과 함께 가치있는 기술에 관한 지식과 정보를 '공유'하.. 2023. 4. 23.
You don't need to put the layout:fragment/data-layout-fragment attribute into the <head> section - the decoration process will automatically copy the <head> section of your content templates into your layout page. 타임리프에서 레이아웃 기능을 사용하던 도중 아래와 같은 warning이 출력된 적이 있습니다. n.n.u.t.l.f.FragmentProcessor [75] - You don't need to put the layout:fragment/data-layout-fragment attribute into the section - the decoration process will automatically copy the section of your content templates into your layout page. warning을 읽어보면 레이아웃에서 태그 안에서 fragment를 사용할 필요가 없다고 합니다. 레이아웃을 사용하려는 페이지에서 태그를 만들고 그 안에 내용을 추가하면 레이아웃이 자동으로 해당.. 2023. 4. 23.
@ControllerAdvice & @RestControllerAdvice 💡 이번 포스팅에서는 @ControllerAdvice & @RestControllerAdvice에 대해 정리해 보도록 하겠습니다. 이전에 @ControllerAdvice, @RestControllerAdvice에 대해 찾아봤던 적이 있는데, 지금 다시 보니 잘 못된 부분이 있어 다시 정리해보고자 합니다. 때는 입사한 지 얼마 안 된 신입 때였는데 @ControllerAdvice, @RestControllerAdvice를 찾을 때 공식 문서나 java docs 대신 블로그 자료를 찾았었습니다. @ControllerAdvice를 설명할 때 ExceptionHandler와 같이 설명하는 블로그들을 쉽게 찾아볼 수 있을 것입니다. 보면 공통적으로 전역 예외 처리를 위해 @ControllerAdvice를 사용한다.. 2023. 4. 23.
Actuator (액츄에이터) 💡이번 포스팅에서는 Spring Boot의 Actuator (액츄에이터)에 대해서 정리해 보도록 하겠습니다. 💡이번 포스팅의 핵심은 Spring Boot의 Actuator란 무엇인지, 사용하는 방법에 초점을 맞췄기 때문에 조금 더 자세한 내용은 추후 따로 정리해 보도록 하겠습니다. 위와 같은 이유로 이번 포스팅에서 정리할 내용은 다음과 같습니다. Actuator란? Actuator 사용하기 Actuator Endpoint Enabling Endpoints Exposing Endpoints Implementing Custom Endpoint Actuator (액츄에이터) 란? actuator를 간단하게 정의하면 Spring Boot 애플리케이션을 제어하고 모니터링하기 위한 도구라고 할 수 있습니다. act.. 2023. 4. 2.
Bean은 무상태(stateless)로 설계하자 💡이 포스팅은 Spring Bean의 무상태(stateless)에 대해 정리한 포스팅입니다. Spring Bean stateless에 대해 학습한 GitHub Repository입니다. GitHub - kiekk/test-spring-bean-stateless Contribute to kiekk/test-spring-bean-stateless development by creating an account on GitHub. github.com Spring Bean에 관해 찾아보면 무상태(stateless)로 설계해야 한다고 합니다. 무상태란 말 그대로 상태가 없는 것을 뜻하며 Bean이 특정 상태를 가지고 있지 않는 경우를 말합니다. 하지만 이 부분을 조금 더 설명해 보면 Bean이라서 무상태(state.. 2023. 3. 27.
Checked Exception vs Unchecked Exception 💡이 포스팅은 백기선 님의 유튜브 영상인 자바 공부를 어떻게 하길래, "언체크드 예외 발생 시 트랜잭션 롤백?"을 시청하고 학습한 내용을 정리한 포스팅입니다. Checked Exception과 Unchecked Exception에 대해 검색하게 되면 위와 같은 표 이미지를 자주 찾아볼 수 있습니다. 언뜻 보면 그렇구나 하고 넘어갈 수 있는데, 한 가지 다시 확인해봐야 할 부분은 예외발생 시 트랜잭션 처리 부분입니다. Exception에 대해 트랜잭션 처리를 한다? 맞는 말이지요. 하지만 Java에서 기본적으로 Exception 처리에 트랜잭션 기능이 있었나? 생각해 보면 아닙니다. 우리가 맞다고 생각했던 이유는 Spring에서의 예외 처리랑 혼동했기 때문인데요, 정리하자면 결과적으로 저기에 적혀있는 트랜.. 2023. 3. 19.
스프링 부트 앱에 초기화 코드를 넣는 방법 3가지 💡이 포스팅은 토비 님의 유튜브 영상인 스프링 부트 앱에 초기화 코드를 넣는 방법 3가지을 시청하고 학습한 내용을 정리한 포스팅입니다. 토비 님의 영상을 시청하며 정리한 GitHub Repository입니다. GitHub - kiekk/study-spring-boot-inject-initializer-codeContribute to kiekk/study-spring-boot-inject-initializer-code development by creating an account on GitHub.github.com 바로 본론부터 들어가면 스프링 부트 앱에 초기화 코드를 넣는 방법은 아래와 같이 크게 3가지 방법이 있습니다.CommandLineRunnerApplicationRunner@EventListen.. 2023. 3. 19.
스프링 부트 - 핵심 원리와 활용 - 모니터링 메트릭 활용 💡이 포스팅은 김영한 님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용을 수강하고 학습한 내용을 정리한 포스팅입니다. 김영한 님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-kyh-spring-boot Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub. github.com 이번 챕터에 대해 정리할 내용은 다음과 같습니다. 메트릭(Metric) 이전 포스팅에서도 메트릭이라는 단어를 사용하면서 따로 설명을 하지는 않았었는데, 이번 챕터가 메트릭을 다루기 때문에 이 포스팅에서 정리해 보도록 하겠습니다. 메트릭(Metric)이란? 저의 .. 2023. 3. 12.
스프링 부트 - 핵심 원리와 활용 - 마이크로미터, 프로메테우스, 그라파나 💡이 포스팅은 김영한님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용을 수강하고 학습한 내용을 정리한 포스팅입니다. 김영한님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-kyh-spring-boot Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub. github.com 이번 챕터에 대해 정리할 내용은 다음과 같습니다. Micrometer(마이크로미터) Prometheus(프로메테우스) Grafana(그라파나) Spring Boot Admin (📌Extra) 어떤 기술이나 개념이 아닌 라이브러리나 도구(툴)에 대해서 학습을 할 때는.. 2023. 3. 12.
스프링 부트 - 핵심 원리와 활용 - 액츄에이터 💡이 포스팅은 김영한님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용을 수강하고 학습한 내용을 정리한 포스팅입니다. 김영한님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-kyh-spring-boot Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub. github.com 이번 챕터에서는 Spring Boot Actuator에 대해서 알아보는 챕터였습니다. actuator를 간단하게 정의하면 Spring Boot 애플리케이션을 제어하고 모니터링하기 위한 도구라고 할 수 있습니다. Spring Boot Actuator에서는 Produc.. 2023. 3. 12.
스프링 부트 - 핵심 원리와 활용 - 외부설정과 프로필2 💡이 포스팅은 김영한 님의 인프런 강의인 스프링 부트 - 핵심 원리와 활용을 수강하고 학습한 내용을 정리한 포스팅입니다. 김영한 님의 강의를 수강하며 정리한 GitHub Repository입니다. GitHub - kiekk/inflearn-kyh-spring-boot Contribute to kiekk/inflearn-kyh-spring-boot development by creating an account on GitHub. github.com 이번 챕터에 대해 정리할 내용은 다음과 같습니다. Environment @Value @ConfigurationProperties spring-configuration-metadata.json 이전 포스팅에서도 정리했던 것처럼 Spring에서는 다양한 외부 설정 .. 2023. 3. 12.