Framework/Spring
-
이미지 파일을 Multipartfile로 변환하거나 base64 데이터를 파일로 변환하는 방법을 알아보겠습니다.※ 테스트 환경Spring Boot 2.7.5JDK 11Gradle1. 의존성 추가build.gradle// https://mvnrepository.com/artifact/org.apache.tika/tika-coreimplementation 'org.apache.tika:tika-core:2.9.1'// https://mvnrepository.com/artifact/org.springframework/spring-mocktestImplementation 'org.springframework:spring-mock:2.0.8'// https://mvnrepository.com/artifact/or..
[Spring Boot]이미지 파일 변환, base64 to multipartfile 2024. 4. 18. -
작년에 DB Replication을 통해 리더/라이터 인스턴스를 분리하는 작업을 하고 MySQL을 Aurora MySQL로 이전한 경험이 있습니다. 오늘은 Spring Boot에서 Aurora MySQL(또는 MySQL) 의 이중화 방법에 대해 알아보겠습니다. ※ 테스트 환경Spring Boot 2.7.5JDK 11AWS Aurora MySQL 8.0MyBatisDB Replication 사용 이유DB Replication은 데이터베이스 이중화 방법으로써 DB 서버의 부하를 방지하기 위해 사용합니다.replication은 일반적으로 읽기/쓰기 작업을 구분해 데이터베이스 구조를 나누는 방법이 있습니다. 하나의 Writer(Master) 인스턴스를 두고 여러 개의 Reader(Slave) 인스턴스를 구성하는..
[Spring Boot]DB Replication 설정(Aurora MySQL) 2024. 4. 8. -
오랜만에 알림톡을 다시 구현할 일이 생겼는데요.연동 방법을 포스팅으로 남겨도 좋을 것 같아 내용을 정리해봤습니다.알림톡 사용을 위해서 NHN Notification - KakaoTalk Bizmessage 서비스를 사용했으며, 발신 프로필이 등록되어야 테스트할 수 있습니다. ※ 테스트 환경Spring Boot1. 알림톡 템플릿 등록알림톡 전송시 사용될 템플릿이 등록되어야 합니다. NHN 접속 후 알림톡 - 템플릿 관리로 이동합니다. 템플릿 등록을 통해 각 내용을 기입합니다. 템플릿 내용에는 변수를 사용할 수 있습니다.템플릿에는 변수를 사용해서 내용을 등록해두고 API 호출시 변수에 대응하는 값을 넣어주면 호출 내용대로 알림톡이 발송됩니다.*템플릿 : #{이름} 알림톡입니다. *API 호출 : 홍길동 알..
[Spring Boot]카카오 알림톡 보내기 2024. 3. 28. -
최근 Gmail을 이용해 메일을 보내는 기능을 추가했는데 로컬 단계에서 잘 작동하는 기능이 클라우드 서버에 올라가면 안되는 현상이 발생했습니다.처음에는 AWS의 보안 설정을 의심했으나 Smtp port를 인바운드에 등록해도 해결되지 않았습니다.로그에 찍힌 에러 메세지를 키워드로 원인을 찾기 시작했습니다. could not convert socket to TLS 결론은 Gmail TLS 버전과 관련이 있었습니다.기존 메일 서비스에는 TLS 보안인증이 활성화(prop.put("mail.smtp.starttls.enable", "true"))가 되어있습니다.구글에서는 TLS 1.0, 1.1의 지원을 종료하겠다는 내용을 발표했는데 현재 사용 중인 javax.mail 라이브러리의 버전에서 TLS 1.1 이하를 기..
[Error]EC2 Gmail SMTP 발송 오류 2023. 9. 8. -
※ 테스트 환경Spring BootJDK 1.8GradleThymeleaf1. 네이버 개발자 설정1) 애플리케이션 추가Naver Developers 에 접속해 애플리케이션을 추가해줍니다.여기서 Client ID와 Client Secret 키가 생성되고 API 호출시 사용하게 됩니다. 2) API 설정메뉴 - API 설정에 들어와 제공받을 정보를 선택해줍니다. 본 예제에서는 이름과 이메일을 사용했습니다. 3) 로그인 환경 추가PC 웹 환경을 추가하고 테스트 URL을 입력합니다. 2. 로그인 구현네이버 로그인도 카카오 로그인과 동일하 동작합니다. 네이버 인증 서버로부터 인증 코드를 내려받고 인증 코드를 이용해 액세스 토큰을 요청합니다. 그리고 네이버 인증 서버로부터 내려받은 액세스 토큰으로 사용자 정보를 가..
[Spring Boot]네이버 로그인 구현 2023. 4. 5. -
지난 포스팅에 이어 카카오, 네이버 로그인까지 하나의 예제를 만들어보았습니다. 테스트 환경은 동일합니다. ※ 테스트 환경Spring BootJDK 1.8GradleThymeleaf1. 카카오 개발자 설정1) 애플리케이션 추가 Kakao Developers 에 접속해 애플리케이션을 추가해줍니다. 여기서 REST API 키가 사용됩니다. 2) 메뉴 - 플랫폼 - Web 플랫폼 등록애플 로그인과 다르게 카카오와 네이버는 localhost를 등록해 테스트할 수 있습니다. 아래와 같이 포트번호와 함께 테스트 도메인을 입력합니다. 3) 리다이렉트 URI 를 등록 4) 동의항목 설정비즈니스 설정을 한 경우에는 전화번호를 제공받을 수 있습니다. 본 예제에서는 닉네임과 카카오계정(이메일)을 사용했습니다. 5) SECRE..
[Spring Boot]카카오 로그인 구현 2023. 4. 3. -
앱스토어 배포시에 애플 로그인이 필요하다는 말에 개발을 하게 됐었는데 구현이 다른 소셜 로그인에 비해 꽤나 복잡했었습니다. 언젠가 또 개발할 일이 있지 않을까라는 생각에 기록을 남겨봅니다. 애플 로그인은 localhost 테스트가 불가능하기 때문에 도메인을 준비 후(https) 테스트해야 합니다.※ 테스트 환경Spring BootJDK 1.8GradleThymeleaf1. 애플 개발자 설정1) 애플 개발자 사이트에 접속 후 Account 메뉴로 들어갑니다.2) 로그인에 필요한 인증서 생성애플로그인을 하기 위해서는 AppId, Key, Service ID를 생성해야합니다. 식별자(영문)에서 먼저 AppId를 만들어보겠습니다. 3) AppID 생성3-1) Identifiers에서 + 버튼을 클릭합니다. 3-..
[Spring Boot]애플 로그인 구현 2023. 3. 21. -
예약 관련 서비스를 개발하다보니 관리자 페이지에서 예약 현황을 확인할 때 실시간으로 확인할 수 있는 기능이 필요했습니다. 예약 내용을 누가 확인하는지를 실시간으로 확인할 수 있어야했는데 "알림에 주로 사용되는 SSE(Server Sent Event)를 사용해보면 어떨까"라는 생각이 들엇습니다. 브라우저 접속 후 서버와 커넥션을 열어두고 A 직원이 예약 내용을 확인할 때 서버에 이벤트를 발행하고, 서버에서는 커넥션되어있는 클라이언트에게 알림을 보내주는 형태로(B, C 직원에게 알림) 말이죠. 고민 끝에 웹 소켓보다 가볍고 구현이 쉬운 SSE를 도입했었습니다.오늘 포스팅할 내용은 해당 기능을 구현하며 만든 예제입니다.※ 테스트 환경Spring BootGradleReactPostman1. 프론트엔드 구성1-1..
[Spring Boot]SSE 구현 2023. 3. 1.