Spring(29)
-
[Spring Boot] Spring Auditing 적용해보기
Spring Auditing 이란? Java에서 ORM 기술인 JPA를 사용하여 도메인을 관계형 데이터베이스 테이블에 매핑할 때 공통적으로 도메인들이 가지고 있는 필드나 컬럼들이 존재합니다. 대표적으로 생성일자, 수정일자, 식별자 같은 필드 및 컬럼이 있다. 도메인마다 공통으로 존재한다는 의미는 결국 코드가 중복된다는 말과 일맥상통한다. 데이터베이스에서 누가, 언제하였는지 기록을 잘 남겨놓아야 합니다. 그렇기 때문에 생성일, 수정일 컬럼은 대단히 중요한 데이터이다. 그래서 JPA에서는 Audit이라는 기능을 제공하고 있습니다. Spring Data JPA에서 시간에 대해서 자동으로 값을 넣어주는 기능입니다. 도메인을 영속성 컨텍스트에 저장하거나 조회를 수행한 후에 update를 하는 경우 매번 시간 데이..
2021.06.02 -
[Spring Boot] 이메일 보내기
MailUtil 코드를 작성하기 전 먼저 의존성을 주입해주어야 한다. // https://mvnrepository.com/artifact/org.apache.commons/commons-email implementation group: 'org.apache.commons', name: 'commons-email', version: '1.4' MailUtil.java //메일을 보낼 클래스 public class MailUtil { public void sendMail(User user) throws Exception { //Mail Server 설정 String charSet = "utf-8"; String hostSMTP = "smtp.naver.com"; /..
2021.06.02 -
[Spring Boot] @Validation Exception 처리하기
로그인, 회원가입 @Validation exception을 객체로 따로 빼기 DTO에서 @Validation 설정하기 UserLoginRequestDto.java public class UserLoginRequestDto { @NotBlank(message = "아이디는 필수 입력입니다.") @Pattern(regexp = "^[a-zA-Z0-9]{3,20}$", message = "3~20자리의 숫자 또는 문자만 가능합니다.") private String username; @NotBlank(message = "비밀번호는 필수 입력입니다.") @Pattern(regexp = "^.*(?=^.{4,15}$)(?=.*\\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$", message ..
2021.06.02 -
[Spring Boot] S3 이미지 업로드
Spring Boot로 S3에 이미지 업로드 하기 Ver.1 의존성을 먼저 추가해주어야 합니다 // AWS S3 compile group: 'org.springframework.cloud', name: 'spring-cloud-aws', version: '2.2.1.RELEASE', ext: 'pom' // https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-s3 implementation group: 'com.amazonaws', name: 'aws-java-sdk-s3', version: '1.11.993' MultipartFile로 이미지 파..
2021.06.02 -
[Spring Boot]S3 버킷 생성
S3 버킷 만들고 사용자 추가하기 버킷을 만들려면 AWS에 가입이 되어 있어야겠죠??? 검색창에 s3 검색하고 들어갑니다!! 버킷의 이름과 region을 정합니다! 권환을 부여하게 되는데요! 저는 테스트이기 때문에 모든 권환을 체크 하지 않겠습니다!! 이렇게 모든 과정을 끝마치면 버킷이 생성됩니다!! 무~야호! (하지만 여기서 끝이 아니죠!!) 이제 이 버킷의 권한이 있는 IAM 사용자를 추가해보겠습니다. IAM에서 USER를 만들어야 하기 때문에 검색창에서 IAM을 찾아서 들어가줍니다! 사용하실 사용자의 이름을 넣습니다! 그리고 Access Key와 Secret Key를 받는걸로 체크를 하시면 되겠습니다.!! AmazonS3FullAccess 권한을 부여합니다. 태그를 작성하는 구간입니다!! 이 부분은..
2021.06.02 -
[Spring boot] stomp를 활용해서 1:1 채팅 만들기
1:1 채팅하기 WebSocket & STOMP WebSocket은 웹 상에서 쉽게 소켓통신을 하게 해주는 라이브러리로 실시간 채팅 서비스 등등 여러 유요한 서비스에 기반이 된다. 스프링 부트환경에서는 이러한 서비스를 구현하기 위해서 필요한 2가지가 있다. WebSocket의 기능을 보완해주고 향상시켜주는 SockJs라이브러리와 메시징 전송을 좀 더 효율적으로 지원해주기 위한 STOMP 프로토콜이 존재한다.일반 스프링 환경에서는 핸들러만 구현해주고 직접 호출했지만 부트 환경에서는 핸들러와 브로커라는 개념을 이용해서 서로간의 통신을 하게 된다. STOMP STOMP는 Simple/Streaming Text Oriented Messaging Protocol의 약자이다. 텍스트 기반의 메세징 프로토콜이다. 유..
2021.04.25