본문 바로가기

Spring Boot7

Spring Boot Model validation 관련 애노테이션 베하! 새로운 한 해가 시작되었습니다. 저도 아직 마음만 먹고 시작을 하지 못했답니다. ㅠㅠ 하지만 반드시 새해라고 무언가를 해야한다는 압박에서 벗어나서 늘 잘해왔던 여러분들이 이번 해도 똑같이 꾸준하기만 한다면 다른 목표를 달성하는 것보다 더 좋은 여러분과 제가 되지 않을까 생각합니다. 시작말 오늘 들고 온 이야기 주제는 Spring boot에서 웹 백엔드를 개발할 때 객체를 통해 Request를 받아 처리하는 경우가 많죠? 그럴 때 우리는 model 혹은 vo, dto class에 valid 애노테이션에게 알려줄 제한사항을 쉽게 설정해서 유효성을 검사하기도 합니다. 저는 그 유효성 검사를 도와주는 애노테이션들을 가볍게 정리하려 합니다. 사실 진작에 알았다면 굳이 controller나 service 레.. 2024. 1. 12.
Spring boot API ExceptionHandler 안녕하세요. 여러분 12월의 마지막이 다가오고 2023년의 마지막이자 2024년의 시작이 다가옵니다. 일단고 팀의 많은 글들이 도움이 되셨을지 궁금합니다. 그리고 이제 일단고 팀의 테크 블로그는 내년에도 볼 수 있을지.. ㅠㅠ 오늘 기술적인 부분을 마지막으로 업로드해볼까 합니다. 얼마전 API를 개발하고 사용하면서 예기치 못한 에러가 발생했습니다. 초보 개발자인 저는 깜짝 놀랐는데요. 특정 상황에 대한 예외처리가 부족했고 client가 응답받기 위한 응답을 정의하지 않아 client가 적절히 처리하기 어려웠습니다. 그래서 오늘은 Spring boot에서 ExceptionHandler를 이용해 Controller나 service에서든 예외에 대한 적절한 대응하는 방법을 말하고자 합니다. 1. Excepti.. 2023. 12. 22.
백엔드 응답모델(result) 구성하기 안녕하세요 여러분! 일단고 팀입니다. 요즘 독감이 유행이라고 들었습니다. 모두 독감 조심하세요. 오늘은 백엔드의 응답모델에 대해 알아보고, 이를 구현하는 코드를 직접 작성하겠습니다. 응답 모델이 필요한 이유 백엔드에서 응답모델을 구현 할 필요는 없습니다. 하지만 응답 모델을 구현해두면 재활용성이 높아지고, 서비스를 구성할 때 코드를 간결하게 만들 수 있다는 장점이 있습니다. 응답 모델의 구성 응답 모델에서 필요한 내용은 다음과 같습니다. 상태 코드 (Status Code): HTTP 응답의 가장 기본적인 요소 중 하나로, 요청의 성공 여부나 실패 원인을 나타냅니다. 예를 들어, 200은 성공, 404는 찾을 수 없음, 500은 서버 오류를 나타냅니다. 메시지 (Message): 상태 코드에 대한 설명으로.. 2023. 12. 8.
Java의 List Stream() 안녕하세요 여러분! 일단고 팀입니다. 벌써 크리스마스의 시즌이 느껴지면서 날씨가 추워집니다. 몸과 마음 모두 따뜻하게 해야 할 계절이네요. 오늘은 Java의 List 인터페이스에서 제공하는 Stream() 메서드에 대해 알아보고, 이를 활용하여 코드를 간결하게 작성하고 성능을 향상시킬 수 있는 방법에 대해 살펴보겠습니다. 1. Stream 이란 Java 8부터 추가된 Stream은 컬렉션 요소들을 처리하기 위한 연속적인 데이터 흐름을 나타내는 인터페이스입니다. Stream을 활용하면 간단하고 선언적인 방식으로 데이터를 처리할 수 있습니다. 이를 통해 병렬 처리 및 다양한 연산을 수행할 수 있어 코드의 가독성과 유연성이 증가합니다. 2. List.stream() 과 foreach 구문 List.stream.. 2023. 11. 24.
Transactional 애노테이션 상황별 commit, rollback 전략 안녕하세요 여러분 베하입니다! 훌쩍 겨울이 다가왔네요! 다들 올해는 잘 보내고 계신가요? 오늘 이야기 저번 주제를 이어 spring boot의 @Transactional 애노테이션의 commit, rollback 전략을 이야기 하고자 합니다. 사실 저는 이 부분에 대해 몰랐기 때문에 트랜잭션 처리에 있어 많은 삽질을 해버렸습니다… 오늘의 내용이 꼭 도움이 되길 바라는 마음으로 시작하겠습니다. 서론 Spring Boot 애플리케이션을 개발하면서 @Transactional 애노테이션은 데이터베이스 트랜잭션 관리를 용이하게 해주는 중요한 도구 중 하나입니다. 그러나, 이 애노테이션을 사용할 때 어떻게 예외 상황을 처리하고, 언제 커밋 또는 롤백해야 하는지에 대한 전략을 제대로 이해하는 것은 매우 중요합니다. .. 2023. 10. 27.
@Transactional 애노테이션 : 주의사항 안녕하세요 여러분 일단고입니다! 날씨가 많이 추워져서 이제 긴팔을 입을 정도가 되었으니…. 겨울이 금방오지 않을까… 여러분 감기 조심하셔야 합니다. 지난번에 ‘트랜잭션의 이해’에 대해 배우고 오늘은 Spring boot에서 해당 트랜잭션을 구현하는 @Transactional 애노테이션에 대해서 알아보겠습니다! 트랜잭션의 이해(ACID) 베하! 안녕하세요. 9월이 왔고 확실히 8월 보다는 날씨가 시원해지고 있어 기분이 좋습니다. 때론 춥기도 하네요. 오늘 알아볼 내용은 트랜잭션입니다. 트랜잭션은 모든 it 서비스에서 가장 중요 btcd.tistory.com 1. 트랜잭션 Spring Boot의 @Transactional 애노테이션에 대해 알기 전 트랜잭션에 대해 간단히 알아봅시다. 트랜잭션은 데이터베이스 .. 2023. 10. 13.
MyBatis 성능 개선포인트 베하! 안녕하세요. 추석이 다가 왔습니다! 오늘 알아볼 내용은 MyBatis 사용 시 성능 개선 포인트에 대해서 알려드릴까 합니다. 개선 포인트에 대해 알려드리기 전 먼저 제가 경험했던 부분에 대해 국한된 부분이라 각 환경에 따라 다를 수 있다는 점, 대용량 데이터 배치 처리 환경에서 MySQL을 사용했고 대용량 데이터는 정확히 100만개의 row, 40개 컬럼을 기준으로 메모리 안정화를 주 목적으로 한 작업에서 개선 포인트를 알려드리니 참고 부탁드리겠습니다 ^^ 또한, 저는 대부분의 설정 및 성능 포인트를 setting보다는 java 코드로 구현했습니다. MyBatis란? 먼저 MyBatis 성능 개선 포인트를 알기전 MyBatis에 대해 간략하게 알아볼까요? MyBatis는 자바 어플리케이션과 관계형.. 2023. 9. 27.