스프링부트
미팅에서 만난 사이
🤓 미팅에서 만난 사이란? 개요 코로나로 인해 발생한 코로나 블루 현상을 타파하기 위한 어플리케이션 소셜미팅어플리케이션 시장의 혁신으로 불리울 다대다 소셜미팅어플리케이션 어려웠던 점 1. 계속되는 요구와 그로 인한 DB, API 변경 보통 API서버를 구현할 때 DB를 설계하고 미리 API를 작성한다. 그리고 이렇게 정한 DB는 지금까지 해온 보통의 프로젝트에서는 쉽게 변경되지 않았다... 그러나 정식 출시와 기업과 연계한 이 프로젝트는 달랐다.... 우선 제작하는 개발자의 입장에 마음대로 하는 것이 아닌 사용자의 니즈를 파악한 기업 대표님의 요구를 바탕으로 제작했다. 그로 인해 대표님의 생각이 달라지거나 더 필요한게 있다면 바로 바로 DB를 수정하고 API 명세된 내용도 변화시켜야 했다. DB,,,,A..
[Spring Boot] 차근차근 OAuth 2.0 구현하기 - (4) Resource 받기
지금까지 한 것을 정리해보자면, 나의 서비스를 사용하고자 하는 사용자가 Authorization Server에서 제공해주는 곳에서 로그인을 했다. Authorization Server에서 로그인 정보를 확인하고 인증해 Code를 나의 서비스에 주었다. 나의 서비스는 Kakao Resource Server에 접근해 로그인 한 사용자의 정보를 갖고 싶다. Code+Client Id+Client Secret을 통해 Kakao Authorization Server에서 Access Token을 받았다. 🧐 Access Token으로 Kakao Resource Server에서 나의 서비스가 원하는 사용자의 정보들을 받아와 보자! 카카오 문서에서 사용자 정보 요청 Rest API는 두 가지 방식으로 사용할 수 있도록..
[Spring Boot] 차근차근 OAuth 2.0 구현하기 - (3) Access Token 받기
[Spring Boot] 차근차근 OAuth 2.0 구현하기 - (2) Code 가져오기 우리에게 친숙한 카카오의 Resource Server에서 데이터를 받아 볼 것이다. 앞선 글에서 봤듯이 🧐 우선 사용자가 카카오를 통해 로그인을 한 후 카카오 Authorization Server에서 Code를 받아오자! 카카오 A withseungryu.tistory.com 지금까지 Kakao Authorization Server에서 Code를 받아오기까지 성공했다. 🔍 이제 code를 받았으니 Resource Server에 접근하기 위한 Access Token(사용자 토큰)을 받아와 보자. 우선 카카오 로그인 REST API 문서를 보면, 필수 파라미터 값들을 담아 POST로 요청하고, 요청 성공 시, 응답은 J..
[Spring Boot] 차근차근 OAuth 2.0 구현하기 - (2) Code 가져오기
우리에게 친숙한 카카오의 Resource Server에서 데이터를 받아 볼 것이다. 앞선 글에서 봤듯이 🧐 우선 사용자가 카카오를 통해 로그인을 한 후 카카오 Authorization Server에서 Code를 받아오자! 카카오 Authorization Server에서는 Code를 사용자가 로그인을 한 후 동의를 해야 발급을 해준다. 따라서 먼저 사용자에게 로그인 창을 보여줘야 한다. 아래 URL를 통해 사용자에게 로그인을 하도록 요청하고 동의를 받아 낼 수 있다. https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code HTTP/1.1 client_id : 카카..
[Spring Boot] 차근차근 OAuth 2.0 구현하기 - (1) 개념 정리
🧐 oAuth란? 나의 서비스가 있을 때 사용자로부터 Google, Github, Kakao 등의 ID와 Password를 받아 Google, Github, Kakao의 서비스를 이용할 수 있다. 하지만 이렇게 하면 사용자의 아이디와 비밀번호가 유출되는 각 종 보안사고가 날 것이다. 또한 위 사이트들도 믿고 맡기지 못할 것이다. 이때 oAuth 2.0를 이용해 Resource Server(Google, Github, Kakao)를 안전하게 사용할 수 있게 할 수 있다. 💡 How? Id와 Password 대신에 AccessToken을 사용할 수 있다. if) 내 서비스가 Resource Server(Google, Github, Kakao)의 정보를 이용하고 싶다면? Authorization Server에..
[JPA] JPA (Java Persistence API)란?
🧐 JPA란? 자바 객체와 DB테이블 간의 매핑을 처리하기 위한 ORM 표준 💡 요소 엔티티 DB에서 지속적으로 저장된 데이터를 자바 객체에 매핑 메모리 상에 자바 객체의 인스턴스 형태로 존재하며 EntitiyManager에 의해 DB의 데이터와 동기화 엔티티 매니저 필요에 따라 Enitity와 데이터베이스의 데이터를 동기화한다. EntitiyManager에서 제공하는 Entity 조작 API를 이용해 Entity에 대해 CRUD 작업을 할 수 있다. 영속성 컨텍스트 ( Persistence Context ) 엔티티를 영구적으로 저장하는 환경 엔티티를 저장하거나 검색할 때 엔티티 매니저는 영속성 컨텍스트에서 엔티티를 저장하고 관리 엔티티 매니저를 생성할 때 영속성 컨텍스트가 만들어진다. 영속성 컨텍스트에..