Framework/Spring
-
이미지 파일을 Multipartfile로 변환하거나 base64 데이터를 파일로 변환하는 방법을 알아보겠습니다. ※ 테스트 환경 Spring Boot 2.7.5 JDK 11 Gradle 1. 의존성 추가 build.gradle // https://mvnrepository.com/artifact/org.apache.tika/tika-core implementation 'org.apache.tika:tika-core:2.9.1' // https://mvnrepository.com/artifact/org.springframework/spring-mock testImplementation 'org.springframework:spring-mock:2.0.8' // https://mvnrepository.com/..
[Spring Boot]이미지 파일 변환, base64 to multipartfile 2024. 4. 18. -
작년에 DB Replication을 통해 리더/라이터 인스턴스를 분리하는 작업을 하고 MySQL을 Aurora MySQL로 이전했는데요. 시간이 좀 지나고 나니 기억이 흐릿해져 복습겸 포스팅을 작성했습니다. ※ 테스트 환경 Spring Boot 2.7.5 JDK 11 AWS Aurora MySQL 8.0 MyBatis DB Replication 사용 이유 DB Replication은 데이터베이스 이중화 방법으로써 DB 서버의 부하를 방지하기 위해 사용합니다. replication은 일반적으로 읽기/쓰기 작업을 구분해 데이터베이스 구조를 나누는 방법이 있습니다. 하나의 Writer(Master) 인스턴스를 두고 여러 개의 Reader(Slave) 인스턴스를 구성하는 방법입니다. Aurora MySQL은 클..
[Spring Boot]DB Replication 설정(Aurora MySQL) 2024. 4. 8. -
오랜만에 알림톡을 다시 구현할 일이 생겼는데요. 연동 방법을 포스팅으로 남겨도 좋을 것 같아 내용을 정리해봤습니다. 알림톡 사용을 위해서 NHN Notification - KakaoTalk Bizmessage 서비스를 사용했으며, 발신 프로필이 등록되어야 테스트할 수 있습니다. ※ 테스트 환경 Spring Boot 1. 알림톡 템플릿 등록 알림톡 전송시 사용될 템플릿이 등록되어야 합니다. NHN 접속 후 알림톡 - 템플릿 관리로 이동합니다. 템플릿 등록을 통해 각 내용을 기입합니다. 템플릿 내용에는 변수를 사용할 수 있습니다. 템플릿에는 변수를 사용해서 내용을 등록해두고 API 호출시 변수에 대응하는 값을 넣어주면 호출 내용대로 알림톡이 발송됩니다. *템플릿 : #{이름} 알림톡입니다. *API 호출 :..
[Spring Boot]알림톡 보내기 2024. 3. 28. -
본 포스팅은 스터디를 통해 작성한 글을 복사한 내용입니다. 여기서 더 많은 글들을 확인하실 수 있습니다. 캐시란 캐시는 자주 사용되는 데이터나 값을 저장해 놓은 임시 장소를 말합니다. 캐시는 데이터 저장소 유형 중 하나로 반복되는 데이터를 돌려주는 상황에 효율적으로 사용할 수 있습니다. 캐시를 사용함으로써 반복되는 데이터의 접근을 피해 DB 서버로부터의 부하를 방지할 수 있는 것이죠. 아래는 최근 코드드림에서 개발한 교회 관리 서비스인데요. 관리자 서비스에서 교회 정보를 저장하고, 모바일앱에서는 api 서버를 통해 교회 정보를 조회하는 구조입니다. 이 때 교회 정보는 변경이 자주 일어나지 않기 때문에 캐싱 전략을 사용할 수 있었습니다. 이런 전략으로 하는 캐싱의 주요 대상은 다음과 같습니다. 반복적인 데..
[Spring Boot]Redis를 이용해 캐싱 구현하기 2024. 3. 21. -
최근 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 Boot JDK 1.8 Gradle Thymeleaf 1. 네이버 개발자 설정 1) 애플리케이션 추가 Naver Developers 에 접속해 애플리케이션을 추가해줍니다. 여기서 Client ID와 Client Secret 키가 생성되고 API 호출시 사용하게 됩니다. 2) API 설정 메뉴 - API 설정에 들어와 제공받을 정보를 선택해줍니다. 본 예제에서는 이름과 이메일을 사용했습니다. 3) 로그인 환경 추가 PC 웹 환경을 추가하고 테스트 URL을 입력합니다. 2. 로그인 구현 네이버 로그인도 카카오 로그인과 동일하 동작합니다. 네이버 인증 서버로부터 인증 코드를 내려받고 인증 코드를 이용해 액세스 토큰을 요청합니다. 그리고 네이버 인증 서버로부터 내려받은 액세스 토큰으..
[Spring Boot]네이버 로그인 구현 2023. 4. 5. -
지난 포스팅에 이어 카카오, 네이버 로그인까지 하나의 예제를 만들어보았습니다. 테스트 환경은 동일합니다. ※ 테스트 환경 Spring Boot JDK 1.8 Gradle Thymeleaf 1. 카카오 개발자 설정 1) 애플리케이션 추가 Kakao Developers 에 접속해 애플리케이션을 추가해줍니다. 여기서 REST API 키가 사용됩니다. 2) 메뉴 - 플랫폼 - Web 플랫폼 등록 애플 로그인과 다르게 카카오와 네이버는 localhost를 등록해 테스트할 수 있습니다. 아래와 같이 포트번호와 함께 테스트 도메인을 입력합니다. 3) 리다이렉트 URI 를 등록 4) 동의항목 설정 비즈니스 설정을 한 경우에는 전화번호를 제공받을 수 있습니다. 본 예제에서는 닉네임과 카카오계정(이메일)을 사용했습니다. ..
[Spring Boot]카카오 로그인 구현 2023. 4. 3. -
앱스토어 배포시에 애플 로그인이 필요하다는 말에 개발을 하게 됐었는데 구현이 다른 소셜 로그인에 비해 꽤나 복잡했었습니다. 언젠가 또 개발할 일이 있지 않을까라는 생각에 기록을 남겨봅니다. 애플 로그인은 localhost 테스트가 불가능하기 때문에 도메인을 준비 후(https) 테스트해야 합니다. ※ 테스트 환경 Spring Boot JDK 1.8 Gradle Thymeleaf 1. 애플 개발자 설정 1) 애플 개발자 사이트에 접속 후 Account 메뉴로 들어갑니다. 2) 로그인에 필요한 인증서 생성 애플로그인을 하기 위해서는 AppId, Key, Service ID를 생성해야합니다. 식별자(영문)에서 먼저 AppId를 만들어보겠습니다. 3) AppID 생성 3-1) Identifiers에서 + 버튼을..
[Spring Boot]애플 로그인 구현 2023. 3. 21.