분류 전체보기 (105) 리스트형 썸네일형 Spring Boot에서 이벤트 사용하기 안녕하세요! 이번 포스팅에서는 Spring Boot에서 이벤트를 적용하는 방법에 대해 알아보겠습니다. 전체 코드는 Github에서 확인이 가능합니다. ✍️ 📚 개념 정리 & 사전준비 1. 이벤트 Spring Boot에서 이벤트를 적용하는 방법에 대해 들어가기 전에, 이벤트를 왜 써야하는지, 사용하면 좋은 상황에 대해 먼저 소개하겠습니다. 회원가입을 하고 나면 가입 축하 메세지를 전송하는 동시에 쿠폰을 전송하는 서비스가 있다고 가정해보겠습니다. @Service public class RegisterService { @Autowired ApplicationEventPublisher publisher; public void register(String name) { // 회원가입 처리 로직 System.out.. [intelliJ] assertThat import 안되는 오류 문제 발생 assertThat을 사용하기 위해 AssertJ를 import를 하려고 했는데 import가 안되는 문제가 발생했다. 해결 방법 import static org.junit.Assert.*; 테스트를 생성할 때 자동으로 들어가는 import문을 지워주면 된다. import를 지워주니 잘뜬다. 맨날 지워주는걸 까먹는다 ... 😅 +) assertThat만 치고 import를 하려고 하면 import static method 선택지가 나오지 않는다. 이럴 때에는 assertThat()까지 치고 단축키를 누르면 제대로 나오는 것을 확인할 수 있다. Spring Boot에서 CORS 적용해보기 안녕하세요! 이번 포스팅에서는 CORS가 무엇인지 간단하게 알아보고, Spring Boot에서 CORS를 적용하는 방법에 대해 알아보겠습니다. 전체 코드는 Github에서 확인이 가능합니다. ✍️ 저는 만들어둔 API 서버로 클라이언트에서 통신을 시도할 때, 콘솔에 아래와 같은 오류 메세지를 마주친 경험이 있습니다. ❌ Access to XMLHttpRequest at '~' from origin '~' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 부랴부랴 구글링을 해서 검색해보니, 'CORS'를 적용하면 되는데, 아래 어노테이션을 추가하면 해당 현상이.. Spring Boot에서 Spring Rest Docs 사용해보기 안녕하세요! 이번 포스팅에서는 Spring Rest Docs를 적용하고 사용하는 방법에 대해 알아보겠습니다. 전체 코드는 Github에서 확인이 가능합니다. ✍️ Spring Rest Docs는 API들을 자동으로 문서화할 수 있게 도와주는 도구입니다. 비슷한 서비스로는 Swagger가 있습니다. 저도 초반에는 Swagger를 사용했는데, 사용하면서 아래와 같은 불편함을 느꼈습니다. 1. 서비스 코드에 Swagger 관련 어노테이션을 추가해줘야한다. @Api @Controller public class AccountController { @ApiOperation("회원정보 가져오기") public ResponseEntity changeInfo() throws BizCheckedException { // .. Spring Boot Custom Annotation 만들기 안녕하세요! 이번 포스팅에서는 Spring Boot에서 Custom Annotation을 만드는 방법에 대해 알아보겠습니다. 전체 코드는 Github에서 확인이 가능합니다. ✍️ 📚 개념 정리 1. 커스텀 어노테이션이란? 프로그램에 관한 데이터를 제공하거나 코드에 정보를 추가할 때 사용하는 것을 어노테이션이라고 합니다. 대표적인 어노테이션으로는 @Controller, @SpringBootApplication등이 있습니다. 하지만 위 예시 어노테이션들은 이미 만들어진 어노테이션들이고, 직접 커스텀해서 어노테이션을 만들 수 있는데, 이것을 커스텀 어노테이션이라고 합니다. 2. 프로젝트 설명 이번 프로젝트는 예전에 AOP를 사용해서 모든 요청/응답에 로그를 적용한 프로젝트에서 특정 메소드에는 로깅에서 제외하는.. DIP(Dependency Inversion Principle) DIP에 대해 알아보도록 하겠습니다. DIP는 객체지향설계 5원칙(SOLID)에서 D에 해당하는 원칙이며, 아래와 같은 의미를 가지고 있습니다. 저수준 모듈이 고수준 모듈에 의존하게 되는 것 하지만 이 설명만 봐서는 도저히 무슨 소리인지 감이 잘 잡히지 않습니다. 그래서 DIP가 무엇인지, 왜 사용하는지, 어떻게 사용하는지에 대해 조금 더 자세히 알아보도록 하겠습니다. 혹시 글을 읽으면서 잘못된 내용이 있으면 댓글로 알려주시면 감사하겠습니다! 🌳 계층 구조 아키텍처 보통 계층 구조는 위 사진과 같은 구조로 되어 있습니다. 표현 계층 : 사용자의 요청을 받아 응용 영역에 전달함과 동시에 처리 결과를 사용자에게 표시 응용 영역 : 사용자에게 제공해야 할 기능 구현 도메인 영역 : 도메인의 핵심 로직 & 도메.. [intelliJ] intelliJ Task와 Github 연동하기 문제 발생 Github에서 이슈를 따고 intelliJ에서 Task를 만들려고 했는데, Github와 intelliJ가 연동이 제대로 되지 않아서 Task가 보이지 않는 이슈가 발생했다. 해결 방법 command (윈도우의 경우에는 ctrl) + shift + a을 누른 후에, Tasks를 검색해주어서 들어가준다. Tasks - Servers에 들어가준 후, +버튼을 누르고 Github를 클릭해준다. Repository에 유저 이름과 레포지토리 이름을 순서대로 입력해준 후에, Create API Token로 토큰을 발급해준다. 그 후에 Test를 눌러 Connection이 제대로 되는지 확인한다. 정상적으로 Connection이 되었는지 확인하기 위해, 다시 Open Task에 들어가 준 후에 생성한 이.. [Spring Boot] H2를 사용하면서 자주 나오는 오류들 1. h2-console 404 not found (whitelabel error page) properties 설정에 h2-console 사용 여부를 설정하지 않았을 때 발생하는 에러이다. application.properties(또는 .yml)에 아래 설정을 추가한다. apllication.properties spring.h2.console.enabled=true 2. Database "mem:testdb" not found properties 설정에 datasource url을 설정하지 않았을 때 발생하는 에러이다. (다른 프로젝트는 설정해주지 않아도 잘 동작하는데 가끔 발생한다. 정확한 원인은 모르겠다 ㅜㅜ) apllication.properties spring.datasource.url=jdbc.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 14 다음