[Spring]파일 업로드 하기
·
spring
웹 개발을 하다 보면 파일을 업로드해야 하는 경우가 많습니다.프로필 이미지, 첨부 파일, 문서 관리 등 파일 업로드 기능은 정말 자주 사용되죠.이번 글에서는 Spring Boot에서 파일을 업로드하고, 로컬 저장소에 저장하는 방법을 설명해보겠습니다.1. 파일 업로드 기능을 위한 환경 설정Spring Boot에서는 기본적으로 multipart/form-data 형식의 파일 업로드를 지원합니다.파일을 저장할 디렉토리를 application.properties에서 지정해줍니다. application.properties 설정# applicaiton.properties# 파일 업로드 디렉토리 설정upload.local.dir= ex) C:/Users/test/Documents/uploads이 설정을 통해 업로드된..
[Spring] 이벤트 시스템으로 느슨한 결합 구현하기
·
spring
1. 스프링 이벤트란?스프링 이벤트는 Observer 패턴을 기반으로 동작합니다. 특정 이벤트가 발생하면, 그 이벤트를 "구독"하고 있는 리스너들이 호출되는 방식이죠. 이를 통해 비동기 처리, 로깅, 알림 시스템 등 다양한 곳에 활용할 수 있습니다.✨ 왜 사용할까요?느슨한 결합: 이벤트 발행자와 리스너가 서로의 존재를 몰라도 됩니다.유지보수 용이: 기능 추가나 변경 시 다른 코드에 영향을 최소화합니다.비동기 처리 가능: 이벤트 리스너를 비동기로 처리하여 성능을 개선할 수 있습니다.트랜잭션 후처리: 트랜잭션 완료 후 안전하게 이벤트를 처리할 수 있습니다.2. 스프링 이벤트 시스템: 개념과 실습스프링 이벤트 시스템은 크게 이벤트(Event), 이벤트 발행자(Publisher), 그리고 이벤트 리스너(List..
[Spring] DTO 유효성 검사(Validation) : @Valid로 처리하기
·
spring
1. DTO에서 왜 검증이 필요할까?스프링 부트 애플리케이션에서 클라이언트로부터 입력받는 데이터(주로 @RequestBody로 전달되는 JSON 요청 등)는 유효성 검사가 필요합니다.예를 들어, 회원가입 시 다음과 같은 상황이 발생할 수 있습니다.이메일 형식이 잘못됨비밀번호가 너무 짧거나 빈 값나이(age)가 음수만약 입력값에 대한 검증을 제대로 하지 않는다면, 잘못된 데이터가 DB에 저장되거나, 내부 로직에서 오류를 발생시킬 수 있습니다.이를 방지하기 위해 DTO(Data Transfer Object)에 검증 노테이션을 달아 유효성을 검사하고, 문제가 있다면 적절한 에러 응답을 반환하도록 하는 방식을 사용합니다.2. 의존성 추가 (Validation Starter)스프링 부트에서 Validation을 ..