전체 글 (18) 썸네일형 리스트형 🎯 Spring Security + GitHub OAuth 연동 및 API 호출하기 🔍 전체 흐름1. GitHub 로그인 인증 과정/oauth2/authorization/github 요청 → GitHub 로그인 → Access Token 발급 → 사용자 정보 획득2. Access Token으로 GitHub API 호출Access Token을 이용해 /repos/{owner}/{repo} API를 호출✅ 직접 WebClient를 통해 GitHub REST API를 호출하는 방식 ⚙️ 깃허브 OAuth Apps 추가 Settings > Developer Settings > OAuth Apps > New OAuth App 클릭 내가 사용할 어플이름, 어플을 실행할 서버 url, 인증 후 콜백할 url을 적어주는데 spring security를 사용할 예정이어서 {serverURL}/logi.. [spring boot/배포] AWS EC2 인스턴스 생성 및 배포 과정 이전에 ncp를 통해 배포를 했던 적이 있었는데 aws도 대략적인 사용법을 알면 좋을 것 같아서 공부 겸 ^무료^ 서버를 빌려서 배포해보았다. EC2 접속 및 인스턴스 시작무료 사용 가능한 이미지 중에서 Ubuntu사용인스턴스 유형은 프리티어 사용 가능이라 써있는걸로....새 키 페어 생성이름 정하고(아무거나 괜찮음) 키페어생성그러면 key.pem 파일이 다운로드 되는데 어디에 저장되어있는지 자알 기억해야함. 보안 그룹 생성http, https, mysql, ssh을 위해 80,443,3306,22 포트를 열어주고 + 배포할 프로젝트가 운영될 포트도 열어준다.스토리지 구성 30GB까지 가능하다니 30GB로 생성. 서버 접속cmd창 접속 아까 받은 key.pem파일이 있는 곳으로 이동.ssh -i "ke.. [Springboot/React] #2 웹소켓과 STOMP로 실시간 채팅 구현하기 웹소켓과 STOMP를 함께 사용한 이유 WebSocket은 효율적인 저수준 양방향 통신을 제공하여 실시간 응답성을 보장하고, STOMP는 고수준 메시징 프로토콜로, 메시지의 전송, 구독, 관리 등을 간편하게 만들어 준다.따라서 좀 더 효율적이고 편리하게 관리하기위해 WebSocket에 STOMP를 결합하여 실시간 채팅을 구현하였다. STOMP 실시간 메시지 송수신 과정 사용자는 '/sub' 엔드포인트를 통해 채널을 구독하고, '/pub' 엔드포인트를 통해 메시지를 발행할 수 있다. 발행된 메시지는 동일한 주제를 구독하는 사용자들에게 서버에서 즉시 전송되어 사용자들의 실시간 채팅이 가능하게 한다. 서버(Springboot)1. WebSockConfig 수정@Configuration@EnableWebSoc.. [Springboot] #1 웹소켓과 STOMP로 실시간 채팅 구현하기 - spring boot에 웹소켓 연결 실시간 채팅을 구현하기 위해 웹소켓과 STOMP를 이용하여 구현하였다. 1. 웹소켓의 통신 과정웹소켓의 연결(1) 클라이언트 요청: 클라이언트가 웹소켓 연결을 시작하기 위해 서버에 HTTP 요청을 보낸다.(2) 서버 응답: 서버는 클라이언트의 HTTP 요청(웹소켓 업그레이드 요청)을 수신하고, 이를 확인한 후 웹소켓 연결을 수락한다. 서버는 HTTP 응답을 보내며, 이는 웹소켓 업그레이드를 승인하는 내용을 포함하게 된다.(3) 프로토콜 업그레이드 완료: 이러한 과정을 거치면 HTTP에서 웹소켓 프로토콜로 업그레이드가 완료되며, 지속적인 연결을 통해 양방향 통신이 활성화된다. 데이터 전송클라이언트와 서버는 텍스트 또는 바이너리 메시지를 주고받게되는데, 이 과정에서 각 메시지는 웹소켓 프레임으로 캡슐화되어 .. [Springboot] #2 spring security와 jwt로 인증구현하기 jwt를 생성하고 jwt를 통해 인증을 하는 과정에 대한 정리.Json Web Token의존성 추가처음 프로젝트 진행할때는 0.9.1버전을 사용하였지만 JDK 9 이상에서는 사용할 수 없어서 최신버전 사용( deprecated된 메소드가 있음)//implementation 'io.jsonwebtoken:jjwt:0.9.1'implementation 'io.jsonwebtoken:jjwt-api:0.11.5'runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'토큰 생성 및 관리토큰을 생성하고 관리하는 JwtProvider 클래스를 생성해 준다.JwtProvider 클래스는 Spring S.. [Springboot] #1 spring security와 jwt로 인증구현하기 - spring security 사용하기 로그인과 인증구현을 위해 spring security를 사용했다.Spring Security란Spring Security는 Java 기반의 프레임워크로서, 애플리케이션의 보안을 담당하는 강력한 보안 프레임워크이다.spring security와 jwt의 통신과정프론트엔드에서 사용자의 로그인 정보 (예: userId, userPw)를 백엔드로 전송한다.백엔드는 받은 로그인 정보를 검증하고, 인증이 성공하면 해당 사용자의 정보로 JWT를 생성 후 프론트엔드로 반환한다.프론트엔드는 받은 JWT를 저장하고, 이후 서버에 요청을 보낼 때마다 해당 JWT를 요청의 헤더에 포함시켜 보낸다.백엔드는 요청을 받을 때 JWT를 검증 후 성공하면 요청에 대한 처리를 진행하고, 결과를 프론트엔드에 응답한다.Spring Secu.. [Springboot] swagger 사용하기- 의존성 추가 및 jwt 인증 추가하기 Swagger는 API 개발을 위한 프레임워크로서, API 문서를 작성하고 관리하는 데 사용된다.RESTful API를 문서화하고 API를 시각적으로 표현할 수 있다.의존성 추가Swagger에는springfox와 springdoc 두가지 버전이 있다.implementation 'io.springfox:springfox-boot-starter:3.0.0' implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'하지만 springfox 사용시 Spring Boot 2.5.x 버전 이후부터는 Spring과 Swagger 사이의 버전 호환이 되지 않아 오류가 발생한다.그래서 나는 springdoc을 사용했다.swaggerConfig를 이용.. [springboot] ncp에 springboot 프로젝트 배포하기 spring boot 프로젝트는 jar파일로 빌드후 filezilla를 통해 ncp에서 빌린 서버에 배포해 주었다.Naver Cloud Platform 에서 서버 빌리기서버생성 무료 서버인 micro 서버 선택 인증키 생성 및 저장 후 다음으로 넘어가기 보안그룹 기본으로 설정 서버생성 이런 안내문구가 뜨는데외부에서 접속하려면 포트포워딩을 해줘야한다.포트포워딩서버이름은 방금 만든 서버로 설정, 외부포트는 본인이 알아서 설정 후 추가 > 적용ACG 보안설정ACG에 들어가 서버 생성시 설정했던 보안그룹에 방금 설정해준 외부 포트를 추가해준다.또한 springboot나 배포할 프로젝트가 사용하는 포트도 추가해준다. 서버 접속 관리자 비밀번호 확인아까 다운 받았던 key파일을 선택 후 비밀번호 확인 포트포워딩 정.. 이전 1 2 3 다음