본문 바로가기

개발/스프링28

Kotlin + Spring 튜토리얼 따라하기 많은 Java + Spring 기반으로 웹 백엔드 개발을 하던 회사들이 하나둘 언어를 Kotlin으로 전환하고 있습니다. 저 역시 예외는 아니라서, 새로 합류한 팀에서는 Kotlin + Spring으로 서비스를 구성하고 있네요. 예전에는 개인 공부의 성격으로만 Java + Spring 5를 공부했다면, 이젠 생존형(?)으로 Kotlin + Spring 5를 공부하게 되었습니다. 간단하면서도 하나의 flow를 따라서 Kotlin + Spring 개발을 해 보고자, Spring 공식 튜토리얼을 따라해보게 되었습니다. Spring Boot + Kotlin 튜토리얼 GitHub 링크 다만 공식 문서가 작성된 시점은 Spring 2.3.0이 최신 버전이던 시점이라... Gradle 등 여러 환경이 조금 오래 됐습.. 2023. 1. 7.
H2 Database를 이용하여 간단하게 개발 시작하기 백엔드 개발을 할 때, DB의 사용은 필수적입니다. 단순한 CRUD 게시판을 만든다고 해도, DB가 있어야 글을 저장하고, 조회하고, 수정하고, 삭제하는 기능을 이용할 수 있습니다. 하지만 처음부터 냅다 MySQL 같이 규모 있는 DB 환경을 셋업하고 시작하기엔 무리가 가는 것이 사실입니다. 이를 위해 간단하게 사용할 수 있는 메모리 기반의 RDBMS가 존재합니다. H2 Database라고 하는데요. 예전에 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 따라서 개발하면서 언급한 바 있습니다. 메모리 상에 DB가 생성되고, 따라서 애플리케이션이 시작할 때마다 초기화되므로 개발을 진행하며 사용하기에 아주 좋습니다. 실무 환경에서도, 개발/운영 DB에 직접 데이터를 쓰고 지우기에는 부담이 될 때 활용할.. 2022. 12. 30.
[HTTP] HTTP 메소드와 사용 예 인프런에서 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의를 듣고 있습니다. URI와 리소스, HTTP 메소드에 대한 내용을 공부하였고, 이를 진행 중인 토이 프로젝트에 적용시켜 보고자 하였습니다. 1. URI와 리소스 2. 리소스와 HTTP 메소드 3. HTTP 메소드 5가지 4. 실제 코드에 적용시켜 보기 5. 기타 1. URI와 리소스 URI란, "Uniform Resource Identifier" 의 줄임말입니다. 즉, "리소스 식별자" 라고 할 수 있습니다. 이 외에 URL, URN이 존재합니다. URL은 "Uniform Resource Locator", URN은 "Uniform Resource Name"의 약자입니다. URL은 특정 리소스의 위치를 가리키며, URN은 특정 리소스의 이름을 .. 2022. 7. 19.
[Spring] Dependency Injection을 수행하는 세 가지 방법 회사에서 진행하는 개발 프로젝트에 참여하며, 로직 참고를 위해 기존의 소스 코드를 많이 들여다 보게 되었습니다. Spring을 공부하고 나니, 예전에는 봐도 잘 모르겠던 내용들이 이제는 눈에 제법 잘 들어오는데요. 그러던 중 재미있는 점을 발견했습니다. 아래는 회사 코드의 일부 예시입니다 (실제 코드 내용은 아니며, 같은 맥락으로 재구성한 내용입니다). @Controller public class ManageHistoryController() { @Inject public ManageHistorySerice manageHistoryService; @Inject public AuthService authService; @Inject public SearchParam searchParam @RequestMa.. 2022. 7. 11.
[JPA] 조회 메소드에 파라미터 추가하기 쿼리를 직접 작성하여 저장한 후 불러와 사용하는 MyBatis와는 다르게, JPA는 미리 정해둔 요건에 따라 쿼리를 자동으로 생성한 후 실행해 줍니다. 그러다 보니 JPA를 처음 접하다 보면 단순한 CRUD 구현에도 헤매게 됩니다. 우연한 계기로 전달받은 파라미터를 조회 쿼리의 WHERE에 사용하는 방법을 찾아보게 되어 정리합니다. 1. JPA와 @Query의 역할 2. @Query를 통한 조회 시에 파라미터 전달하기 3. 테스트 코드로 검증하기 1. JPA와 @Query의 역할 먼저, 글을 작성하기에 앞서, 저는 JPA에 대해 매우 기초적인 지식만 가지고 있음을 알려 드립니다. 회사에서는 MyBatis를 이용하여 xml 파일에 쿼리를 직접 작성하는 개발을 하고 있으며, JPA는 여기서 진행한 개인 프로.. 2022. 7. 4.
@Transactional 어노테이션 Spring을 이용해 백엔드 개발을 하다 보면, Service 단에서 @Transactional 이라는 어노테이션을 볼 수 있습니다. 오늘은 @Transactional 어노테이션에 대해 다루어 보겠습니다. 0. 배경 1. @Transactional 어노테이션이란? 2. @Transactional 세부 옵션 0. 배경 회사에서 개발을 하면서, 화면 상에서 특정 항목 추가, 수정, 삭제를 하는 경우를 만들게 되었습니다. 앞단에서의 형식은 grid로 되어 있고, 저장 버튼을 클릭하면 각 row마다 상태가 "CREATE", "INSERT", "DELETE", "" 네 가지 값 중 하나가 담긴 상태로 Controller 단계로 넘어갑니다. Controller에서는 이를 List 형태로 받고, 이를 Service로.. 2022. 7. 3.