분류 전체보기
-
[Spring] 프로젝트에서 MyBatis ResultMap을 사용하게된 이유Server/Spring 2021. 11. 18. 22:05
MyBatis ResultMap 사용하게 된 이유 이번 글에서는 프로젝트에서 MyBatis를 사용하면서 ResultMap을 사용한 것에 대해서 정리해보겠습니다.(ResultMap이 어떤 것인지?를 정리한 것이라기 보다 프로젝트에서 왜 ResultMap을 썼고 어떻게 적용했는지 정도만 정리해두려 작성하는 글입니다!) MyBatis 사용하는 법이 궁금하다면 여기 에서 확인할 수 있습니다. 제가 프로젝트에서 사용하고 있는 Layer를 간단하게 그리면 위와 같습니다. 즉, 클라이언트에게 받아온 DTO를 Service Layer에서 DTO -> Entity 과정을 거친 후에 DB Layer에 영속화 시키는 작업을 하고 있습니다. 그리고 DB Layer에서 조회한 결과들도 Service Layer에서 Entity ..
-
[Spring] Spring Data JPA에서 Auditing 사용하는 법Server/JPA 2021. 11. 9. 12:05
JPA AuditingEntityListener 알아보기 위의 코드는 제가 작성했던 코드인데요. 누군가 저에게 아래와 같이 물었습니다. LocalDateTime.now() 코드는 왜 작성한거야? 위의 질문을 듣고 아.. BaseEntity를 통해서 생성시간, 수정시간을 저장하기 위해서 만들었는데 now() 코드는 없어도 되려나? 라는 생각이 들었습니다. 지금 생각하면 당연히 없어도 될 코드인데 왜 저렇게 작성했나 싶지만.. 어쨋든 AuditingEntityListener가 어떻게 동작하는지 잘 모르고 사용하고 있는 거 같아서 이번 글에서는 JPA AuditingEntityListener를 어떻게 사용하고 어떤 원리로 동작하는 것인지 알아보겠습니다. JPA Auditing 이란? 언제 만들어졌는지, 언제 ..
-
[Spring] Spring Data JPA에서 Paging 간단하게 구현하는 법Server/JPA 2021. 11. 8. 20:44
Spring Data JPA에서 페이징 구현하는 법 이번 글에서는 Spring Data JPA에서 Paging을 구현하는 법에 대해서 알아보겠습니다. 저는 JPA에 대해서 이제 공부하는 단계라 페이징을 처음 구현해보는데요. 공부하기 전에도 JPA로 페이징을 구현하는게 어렵다 라는 말은 많이 듣기만 해봤는데 이번 기회에 한번 공부해보면서 정리를 해보겠습니다. (이번 글의 코드를 보고 싶다면 Github 에서 확인하실 수 있습니다.) 페이징은 위의 보이는 것처럼 한 화면에 다 보여줄 수 없기 때문에, 페이지를 나눠서 게시글을 보여주는 것을 말하는데요. 페이징을 구현하는 방법, 성능을 개선하는 방법 등등 정말 다양하고 복잡하지만 초급자의 마음으로 정리해보겠습니다. 이번 글에서 사용할 기술 Java 11 Spr..
-
[Spring] Primitive boolean Type is Remove Jackson 직렬화 문제 해결하기Server/Spring 2021. 11. 7. 17:25
Primitive boolean Type에서 isXX에서 is가 사라지는 Jackson 직렬화 문제 해결하기 이번 글에서는 Spring Boot에서 DTO를 클라이언트에 JSON 으로 Response 할 때 isXXX 네이밍에서 is가 사라지는 문제를 해결하는 아주 간단한 과정을 공유해보려 합니다. 프로젝트를 진행하면서 위와 같은 DTO를 클라이언트에게 반환하고 있었습니다. 보면 Primitive Type boolean의 isFailedGroupQuiz 라는 필드가 존재하는 것도 볼 수 있습니다. 그래서 이제 해당 DTO가 사용되는 API를 Postman으로 호출해보겠습니다. 응답 값을 보면 DTO에 분명 isFailedGroupQuiz 라고 적었지만, FailedGroupQuiz라고 오는 것을 볼 수 ..
-
[AWS] RDS 스키마 마이그레이션 하는 법Cloud/AWS 2021. 10. 27. 14:49
AWS RDS 스키마 마이그레이션 하기 AWS RDS를 사용하다가 프리티어 기간이 만료되어서, 다른 RDS로 스키마를 이전해야 하는 상황이 왔는데요. 이번 글에서는 아주 쉽게 A RDS에서 B RDS로 데이터베이스 마이그레이션 하는 법에 대해서 정리해보겠습니다. 제가 위의 MARU 스키마를 다른 RDS로 마이그레이션 해보려 합니다. 위의 탭에서 Database -> Migration Wizard를 누르겠습니다. 그리고 위에서 Start Migration을 누르겠습니다. 다음 화면에서는 위와 같은데요. 여기에 보면 Source RDBS가 나옵니다. 즉, 옮기고자 하는 RDS를 선택하면 됩니다. 그리고 이번에는 Target RDBMS가 나오는데요. 여기는 스키마를 옮길 대상 RDS를 선택하라는 것입니다. 여..
-
[Spring] Swagger 404 Not Found 해결 방법Server/Spring 2021. 10. 23. 13:42
Spring Swagger 404 Not Found 해결하기 기존에 Java, Spring Boot 기반으로 Swagger를 사용할 때는 아래와 같이 사용했습니다. implementation 'io.springfox:springfox-swagger2:2.9.2' implementation 'io.springfox:springfox-swagger-ui:2.9.2' 먼저 build.gradle에 위의 의존성을 하겠습니다. 그리고 간단하게 자바 코드로 Swagger 설정을 하였습니다. http://localhost:8080/swagger-ui.html 그러면 위와 같이 문제 없이 접속이 되는 것을 볼 수 있습니다. (Swagger 사용법에 대해 좀 더 자세히 궁금하다면 여기 를 참고하시면 됩니다.) 그런데 문..
-
[Spring] MVC 동작 방식 디버깅을 통해 알아보기Server/Spring MVC 2021. 10. 23. 12:08
Spring MVC 프레임워크 동작 방식 Spring Boot, Spring MVC가 엄청난 설정들을 대신 해주기에 편리하게 사용할 수 있는 것인데요. Spring MVC를 구성하는 주요 요소가 무엇이고 각 구성 요소들이 서로 어떻게 연결되는지 정도는 이해하면 좋을 것 같아서 이번 글에서 정리해보려 합니다. Spring MVC 핵심 구성 요소 위의 그림에서 이라고 되어 있는 것들은 Spring Bean으로 등록해야 하는 것을 의미합니다. 그리고 분홍색으로 칠해져 있는 것은 개발자가 직접 Spring Bean으로 등록해야 하는 것을 의미합니다. 예를들어, @Controller를 통해서 직접 Controller Class를 만든 후에 @Controller로 Bean으로 등록하는 것을 의미합니다. @Contr..
-
[Spring] Spring Boot jar 파일을 AWS EC2에 배포하는 법Server/Spring Boot 2021. 10. 22. 13:45
Spring Boot EC2에서 배포하는 법 이번 글에서는 Spring Boot jar 파일을 AWS EC2에서 배포하는 법에 대해서 정리해보겠습니다. 지금은 많이 경험해보았기 때문에 많이 익숙하지만, 스프링을 처음 다루어 서버에 배포할 때는 항상 헷갈렸기에 다른 처음 해보시는 분들에게 정보를 공유하기 위해 한번 정리해보려 합니다. 먼저 Spring Boot 프로젝트, AWS EC2 인스턴스 설정은 다 되어 있다고 가정하고 글을 시작해보겠습니다. maven mvn package 만약에 maven 프로젝트를 사용하고 있다면 위와 같이 mvn package 명령어를 사용하면 jar 파일이 만들어집니다. 그러면 위와 같이 target 디렉토리 아래에 jar 파일이 만들어진 것을 볼 수 있습니다. 1. java..