
들어 가기 전 코드가 이해가 되지 않는다면 전체 코드는 GitHub 에 있으니 참고하시면 됩니다!Web으로 개발을 해볼 것이며 간단한 React 코드와 Spring으로 진행하였습니다. 카카오 로그인 과정 이해하기 뻔하지만 카카오 로그인 인증 흐름을 설명하려고 합니다. 사용자가 카카오 로그인 버튼을 누릅니다.사용자는 카카오 로그인 정보를 입력합니다.사용자는 사용자 약관 동의를 설정하고 로그인 요청을 합니다.애플리케이션 서버에서 사용자 토큰을 가져옵니다.가져온 토큰으로 카카오에게 사용자 정보를 조회해 옵니다.로그인을 성공합니다. 기능 개발에 앞서서 카카오 디벨로퍼에서 값 세팅하기 1. 플랫폼 등록하기[내 어플리케이션] → [앱설정] → [플랫폼] 으로 진입합니다.Web으로 진행할 것이기 때문에 ..

들어가기 전 현재 작성된 코드들은 GitHub 에 저장되어 있습니다.이해가 안되는 부분이 있다면 번갈아 가며 확인해주시면 됩니다. 개발 환경 Spring Boot 3.4.5Java 17IntelliJMacOS 왜 멀티 모듈을 선택했나? 실무에서 진행하는 프로젝트는 멀티 모듈로 되어 있으며 개발을 진행 중입니다.하지만 세팅해본 적은 없으며 그냥 있으니까 얼레벌레 개발만하고 "원래 이랬으니까~" 라는 생각으로 살아 왔었습니다. 하지만 이렇게 가다간 도태 될 것같아서 크기가 큰 프로젝트라면 언젠간 마주 할 것 같아서 이번 기회에 공부해보려고 합니다.멀티 모듈은 아래와 같은 장점을 가지기 있으며 앞으로 협업을 진행하면 확실이 체감 할 것 같습니다.거의 대부분의 회사가 멀티 모듈로 진행 중이였네.. 도..

JWT가 등장하게 된 배경 초기의 웹 서비스에서는 사용자가 로그인하면 서버가 사용자 정보를 세션에 저장하고 클라이언트에게는 세션 ID를 쿠키에 담아 전달해 인증 상태를 유지했습니다. 하지만 최근 들어MSA 아키텍처의 도입프론트엔드와 백엔드 서버의 분리모바일 앱 및 다양한 디바이스의 등장으로 인해 API 서버가 여러 클라이언트의 요청을 받아야 하는 환경이 되었습니다. 결국 서버가 인증 상태를 관리하지 않고 매 요청마다 독립적으로 인증할 수 있는 Stateless한 방식이 필요해졌습니다.이 문제를 해결하기 위해 등장한 것이 바로 JWT(Json Web Token) 입니다. 세션(Session) 동작 원리 사용자가 로그인하면 서버는 세션 ID를 생성하고 세션 DB(또는 Redis)에 사용자 정보를 저장합..

왜 STOMP를 써야할까? Simple Text Oriented Messaging Protocol의 약자입니다.WebSocket는 단순히 클라이언트, 서버 양방향 통신을 열어줄 뿐이지만 STOMP는 메시지 구조나 목적지 개념을 가지고 있습니다.그래서 메시지를 전송(Publish) 하면 브로커가 중개하여 목적지(Destination)에 구독(Subscribe)한 여러 클라이언트에게 전달합니다.실시간 채팅, 알림 시스템에 적합합니다. STOMP PUB/SUB 메시지 흐름 이해하기 이미지로 이해하기텍스트로 이해하기웹소켓 클라이언트(사용자 및 서버)가 메시지를 전송한다.서버는 메시지를 Request Channel로 보낸다.(임의로) /app/** 으로 시작하는 경로면 정의 해둔 스프링의 컨트롤러가 호출된다..

들어가기 전 도메인 구매는 작성하지 않으니 가비아에서 도메인을 구매하고 오시면 빠른 작업이 됩니다. 목차 문제 상황 발생원인 파악AWS EC2 API 서버에 도메인 적용하기NginX를 이용해 SSL 적용하기프록시 서버 설정하기Mixed Content 에러랑 헤어지기 문제 상황 Front 서버와 API 서버를 각각 배포하고 나면 CORS 처럼 꼭 한번은 경험하는 에러일 것입니다.Mixed Content: The page at 'https://...' was loaded over HTTPS, but requested an insecure resource 'http://...'. This request has been blocked; the content must be served over HTTP..

목차 GitHub Action 주요 용어 정리왜 self hosted를 이용했을까?Runner 설치 하는 방법워크플로우(workflows) 작성배포 쉘 스크립트근데 왜 스프링이 계속 죽을까?해결 방법 GitHub Action 주요 용어 정리 공식 문서 : https://docs.github.com/ko/actions/about-github-actions/understanding-github-actions GitHub Actions 이해 - GitHub DocsGitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD(연속 통합 및 지속적인 업데이트) 플랫폼입니다. 리포지토리에 대한 모든 끌어오기 요청을 빌드 및 테스트하거나 병합된docs.github.com Even..

정상인 상황 SSH로 서버에 직접 접속해서 Spring Boot 3.3.2 버전을 jar로 빌드하는 것은 정상SSH로 서버에 직접 접속해서 배포 쉘 스크립트 실행하는 것도 정상(스프링 기동 죽이기 → 프로젝트 빌드 → 스프링 백그라운드로 기동) 문제 상황 GitHub Action을 이용해서 파이프 라인을 구성하고 배포를 진행하는데 빌드가 안되어서 무한 로딩, 서버에 접근도 못하는 현상 발생GitHub Action을 이용해서 배포 쉘 스크립트를 실행 시켰지만 빌드가 무한 로딩이 되며, 서버에 접근도 못하는 현상 발생 문제 해결 방법 스왑 메모리! 1. 스왑 파일 만들기# 1sudo dd if=/dev/zero of=/swapfile bs=1M count=2048# 2sudo dd if=/de..

환경별 설정 중요성 애플리케이션을 개발 할 때 로컬 환경, 개발(테스트) 환경, 운영 환경 마다 다른 설정이 필요하게 됩니다.예를 들어, 로컬 환경 및 개발(테스트) 환경은 로컬 DB, 개발 DB를 사용해야하지만 운영 환경에는 사용자들이 사용하고 보는 운영 DB를 사용해야하기 때문입니다. 이렇게 환경별로 설정하여 관리하면 유지보수가 좋아지고 오류를 줄일 수 있을 것입니다. " 그럼 코드를 공통적으로 사용하는데 설정 값들을 서버 실행할 때 마다 다르게 할 수 있나? 그럼 어떻게 설정하지? " 라는 대답을 아래로 쭉 작성하려고 합니다. 설정하는 방법 환경별 설정 세팅하는 방법에는 2가지가 있습니다. application.yml : 기본 설정 파일안에서 분리하여 작성하기application-{profil..

0. 들어가기 전 프리티어는 완전한 무료가 아니며, 잘못 설정하면 과금이 발생할 수 도 있습니다.최대한 과금이 나올 요소들을 체크를 안하며 어떻게 생성하는지 초보자도 따라 할 수 있게 만들게 되었습니다. 저는 독자들이 EC2 인스턴스를 생성했다고 가정하에 작성하였습니다. 그래서 독자들의 EC2의 가용영역을 꼭 알아와야 합니다.꼭 알아와야합니다!! 꼭 입니다. Tip) aws EC2 인스턴스 페이지 → 해당 EC2 인스턴스 클릭 → 네트워킹 탭 → 가용 영역 확인 1. 서울 리전에서 DB 생성 하기 오른쪽 위에 서울 리전으로 변경하고 데이터 베이스 생성을 클릭합니다. 2. 데이터 베이스 엔진 선택 저는 PostgreSQL을 사용할 것이기 때문에 PostgrSQL로 선택하였습니다.여러 DB 인스..

0. 들어가기 전 aws를 한 번도 사용하지 않은 사람에게 편안한 가이드를 만들기 위해 작성하였습니다 ^ _ ^프리티어는 완전히 무료가 아닌 과금이 청구 될 수 있는데요.그런 것을 안나오도록 최소한의 설정으로 보여드릴 것이며 배포 연습을 하시면 됩니다! 인스턴스 생성보안그룹 설정순으로 설명하겠습니다. 1. 리전 설정 및 인스턴스 시작 처음에 접속하면 미국 동부(버지니아 북부)로 잡혀 있습니다.아시아 태평양(서울)로 지역을 변경해 주시면 됩니다. 인스턴스 시작해보겠습니다! 2. 애플리케이션 및 OS 이미지 서버는 우분투, 로키 등 리눅스 계열로 두는게 무난하므로 우분투로 생성하겠습니다.Image는 프리티어 사용가능 한 것에 제일 최신 버전으로 하였습니다. 3. 인스턴스 유형 딱 하나밖에 없는 ..
- Total
- Today
- Yesterday
- Front
- 개발자
- 트랜잭션
- Spring Security
- 프론트
- spring
- 인증
- 데이터 베이스
- jvm
- 네트워크
- 비동기
- JavaScript
- 깃허브 액션
- 개발블로그
- 개발
- 개발환경
- java
- 프로세스
- Cors
- aws
- 코딩테스트
- Fetch
- 카카오 로그인
- 디자인패턴
- 오라클
- DBeaver
- 계단 오르기
- 템플릿
- AJAX
- 실시간 채팅
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |