본문 바로가기

전체 글

(39)
[로그인 시리즈 #3] 카카오/애플 Native SDK 방식으로 로그인 구조 전환기 1. 왜 Native SDK 방식으로 전환했을까?JS SDK를 이용한 카카오 로그인 방식은 개발 편의성이 좋고 빠르게 연동이 가능하지만, iOS 앱 배포 환경에서는 애플 로그인이 필수입니다. 치트키 서비스는 iOS 앱 배포를 준비 중이었고 다음 두 가지 이유로 Native SDK 기반의 방식으로 로그인 구조를 전면 교체하게 되었습니다.카카오 JS SDK 방식은 웹 환경 전용이며, 모바일 앱에서 활용하기엔 제약이 큼애플 로그인을 포함한 통합 인증 시스템이 필요즉, JS SDK와 OAuth2를 혼합한 기존 방식 대신, 프론트엔드에서 accessToken / idToken을 직접 받아 백엔드로 넘기는 구조로 변경해야 했습니다.2. Native SDK 방식 로그인 흐름아래는 실제 프론트와 백엔드가 협업한 로그인..
[로그인 시리즈 #2] JS SDK 방식은 정답이 될 수 있을까? 1. 도입 – 왜 JS SDK 방식으로 전환했는가?1편에서는 백엔드가 모든 OAuth2 인증 절차를 주도하던 구조를 다뤘습니다. 그러나 다음과 같은 UX 및 개발 환경 이슈로 인해 구조적인 변화가 필요해졌습니다.모바일 웹뷰에서 카카오 앱 미호출 현상Spring Security 기반 인증에서는 브라우저 환경에 따라 카카오 앱 호출이 실패하는 문제가 자주 발생했습니다.리디렉션 URI 해석 오류 및 포트 충돌초기에는 프론트와 백엔드를 모두 localhost:8080에서 실행하도록 구성되어 있었습니다. 이에 따라 Spring Security의 {baseUrl} 설정이 실제 프론트 주소와 일치하지 않아 인증 흐름이 끊기는 문제가 자주 발생했습니다.이러한 문제는 사용자 경험과 개발 생산성 양면에서 한계를 드러냈고,..
[로그인 시리즈 #1] Spring Security OAuth2로 시작했지만, 문제가 생겼습니다 1. 프로젝트 초기, 왜 Spring OAuth2를 선택했는가사이드 프로젝트 CMC - 치트키를 시작하면서 가장 먼저 구현한 기능은 카카오 소셜 로그인이었다. 이전 서비스에서는 주로 Thymeleaf 기반의 웹 애플리케이션을 개발해왔고, 프론트엔드와의 분리된 협업 구조보다는 백엔드 중심의 화면 처리가 많았다. 이러한 상황에서는 인증 전반을 백엔드가 통제할 수 있는 구조가 필요했고, Spring Security에서 공식 지원하는 OAuth2 로그인 방식은 구현 난이도나 안정성 측면에서 매력적인 선택지였다. 이런 관성 때문에 치트키 프로젝트 초기에도 OAuth2 기반 인증 구조를 그대로 도입했지만, 이번에는 웹앱 형태로 프론트엔드 개발자와의 긴밀한 협업이 필수였고, 그로 인해 기존 방식과의 충돌이 발생하게 ..
[AWS] 배포 자동화 : S3에 CloudFront 적용하기 이번 포스팅에서는 정적페이지를 S3 에서 CloudFront 로 적용하는 내용을 작성해보자 합니다. 이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다! CloudFrontAWS CloudFront는 AWS에서 제공하는 CDN 서비스로서, 정적 및 동적 컨텐츠를 사용자에게 더 빨리 배포할 수 있도록 지원하는 서비스입니다.AWS S3 CloudFront 적용하기AWS CloudFront를 적용하기 이전에, 당연하지만 S3에 CloudFront를 적용하고자하는 S3가 존재해야 합니다. 이전에는 배포용 파일 버킷을 만들었는데요. 하지만 여기에는 배포용 동적 파일이 다 포함되어 있기 때문에 CDN 으로 사용하기엔 부적함하기에 CDN 전용 S3 버킷을..
[AWS] 배포 자동화: Route53 활용 + 도메인 HTTPS 적용 이번 포스트에서는 구매한 도메인을 Routh 53을 활용하여 도메인 HTTPS 적용까지 적용한 내용을 기술 하려고 합니다. 이 글은 공부를 하면서 알게 된 내용들을 기록하는 글입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다. 가비아 도메인 구매 및 연결가비아에서 도메인 구매는 아래 글을 참고 했습니다.https://this-circle-jeong.tistory.com/179 [Server] 가비아 도메인 구매 및 연결가비아 페이지에 접속 https://www.gabia.com/ 웹을 넘어 클라우드로. 가비아 그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브 www.gabia.com 도메인 - 도메인 검색 원하는 도메인 주소를 검색 - 선택this-circle-jeong.tistory.com ..
[AWS] 배포 자동화: AWS RDS 구축 및 EC2와 MySQL 워크벤치에 연결 이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다.오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다. 이번 포스팅에서는 AWS RDS 구축 및 EC2와 MySQL 워크벤치에 연결 설정을 다룰 예정이다. AWS RDS 구축 참고 자료RDS 기본 설정은 아래 글을 참고했습니다. https://jindduya.tistory.com/51 AWS RDS 구축 (MySQL 연결하기)AWS RDS 구축 (MySQL 연결하기)​Spring Boot 프로젝트를 AWS 서버에서 실행하려고 하던 중아래와 같은 에러가 발생합니다.com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure​AWS에서 DB를 연jindduya.t..
[AWS] 배포 자동화 : 트러블슈팅 지금까지 AWS 서비스를 활용한 배포 자동화 과정을 마무리했습니다. https://jisoostory.tistory.com/33 [AWS] 배포 자동화 : AWS EC2 생성 및 환경 설정이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다.오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다. 이번 포스팅에서는 EC2 관련 설정만 다룰 예정이다. CI/CD 도구에는 Github Actionjisoostory.tistory.comhttps://jisoostory.tistory.com/34 [AWS] 배포 자동화 : AWS IAM 설정 & Github Actions 입력 & S3 설정이번 포스팅에서는 AWS IAM 및 S3 설정을 다루고 Gihub Actions 입력까지 해보려고한다. 인프라 구성도의..
[AWS] 배포 자동화 : CodeDeploy 설정 및 Github Actions workflow 작성 이번 포스팅에서는 배포 자동화의 마지막 단계인 CodeDeploy 설정 및 Github Actions workflow 파일을 작성해보려고한다.AWS CodeDeploy 설정하기AWS CodeDeploy는 배포 그룹에 해당되는 EC2 인스턴스에게 적절한 스크립트를 통해 서비스를 실행하도록 한다. 1. AWS CodeDeploy 용 IAM 역할 생성하기 1) AWS IAM 서비스 접속 - 역할 생성2) 신뢰할 수 있는 엔터티 유형에 AWS 서비스 선택3) 사용 사례에 CodeDeploy 선택 기본적으로는 AWSCodeDeployRole이 적용되어 있으므로 그대로 생성하면 된다 2. 애플리케이션 생성 이제 CodeDeploy에게 애플리케이션을 생성하고 EC2 인스턴스를 설정해주어 어떤 EC2 인스턴스에..