반응형

Spring 16

카카오 로그인 쉽게 구현하기 3편 - 로그인 구현하기 (SpringBoot + Vue.js)

로그인 처리 플로우는 아래와 같다. 인가 코드 받기 -> 토큰 받기 -> 사용자 정보 가져오기 해당 글에서는 인가 코드 받기는 클라이언트 페이지에서, 토큰 받기와 사용자 정보 가져오기는 서버에서 처리할 예정이다. 위 플로우 대로 처리되기 위해 2개의 클라이언트 페이지와 1개의 API가 필요하다. 1. 클라이언트 페이지 카카오 로그인 버튼 페이지 카카오 로그인 후 Redirect되는 페이지 2. 서버 클라이언트 페이지에서 전달받은 인가코드를 통해 로그인 토큰 발급 및 유저 정보를 조회하는 API 카카오 인증 구현 1. 인가 코드 받기 서비스 서버가 카카오 인증 서버로 인가 코드 받기를 요청한다. 여기서 얻은 인가 코드는 로그인 토큰을 얻기 위해 사용된다. 클라이언트 페이지에서 카카오 로그인창이 노출되고 카..

Web Programming 2022.08.17

카카오 로그인 쉽게 구현하기 2편 - 개발 환경 설정

개발환경 Spring Boot Vue.js MySQL 필요한 모듈 설치 Java 11 vue/cli 4.5.4 MySQL 8.0.18 Java, Vue, MySQL 버전은 위와 상이해도 무관하다. 1. Spring Boot 프로젝트 생성 1) Spring Boot 프로젝트 생성 아래 사이트에서 Spring Boot 프로젝트를 생성할 수 있다. https://start.spring.io/ 2) Gradle 설정 build.gradle 카카오 로그인 서비스 구현에 필요한 모듈을 설정한다. implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-sta..

Web Programming 2022.08.17

카카오 로그인 쉽게 구현하기 1편 - Kakao Developers 설정

카카오 로그인 API 클라이언트 입장에서 수많은 사이트의 모든 아이디 비밀번호를 기억하기는 쉽지 않다. 또한 서비스를 제공해주는 리소스 오너 또한 안전하게 보관하여야 하기 때문에 부담된다. 이런 문제를 해결하기 위해, 구글이나, 페이스북, 카카오 같은 큰 기업들이 로그인 연동 기능을 제공하고 있다. 카카오 로그인 API 흐름 카카오 로그인의 흐름은 간단하다. 리소스 오너(사이트)가 카카오 로그인 창을 클라이언트에게 보여주면, 클라이언트는 로그인을 시도하고, 동의 항목을 체크하여 카카오 API 서버에 넘긴다. 전달받은 정보를 가지고 카카오 API 서버는 인가 코드를 발급해주고 인가 코드를 통해 로그인을 유지할 수 있는 토큰을 발급해준다. 자세한 설명은 카카오 개발자센터 API 문서를 참고하자. Kakao ..

Web Programming 2022.08.16

기술 면접 정리 - Spring

기술 면접 정리 - Spring ⭐⭐⭐ Spring FrameWork 자바의 오픈소스 애플리케이션 프레임워크 중 하나입니다. 스프링의 기본철학은 특정 기술에 종속되지 않고 객체를 관리할 수 있는 프레임워크를 제공하는 것 입니다. 스프링 컨테이너로 자바 객체를 관리하면서 DI와 IoC를 통해 결합도를 낮추게 됩니다. ⭐⭐⭐ DI (Depedency Injection) DI는 의존성 주입을 의미합니다. 객체간의 의존관계를 미리 설정해두면 스프링 컨테이너가 의존관계를 자동으로 연결해줍니다. 이렇게 되면 직접 의존하는 객체를 생성하는 일이 없기 때문에 결합도가 낮아지는 장점이 있습니다. 의존성 주입은 생성자 주입, 필드 주입, 세터 주입의 3가지 방법이 있는데 Spring에서 가장 권장하는 의존성 주입 방법은 ..

Spring 2022.08.06

JPA - 영속성전이,CASCADE

✔️ 영속성전이 (CASCADE)란 ? 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 전이되는 것 부모 엔티티가 영속화 될 때 자식 엔티티도 같이 영속화되고, 부모 엔티티가 삭제될 대 자식 엔티티도 삭제되는 등 함께 상태가 전이 특정 엔티티에 대한 특정한 작업이 이루어지면 관련된 엔티티에도 동일한 작업을 수행 ✔️ CascadeType JPA에는 관련 엔티티 간의 의존성을 설정하기 위해 Enum 타입의 javax.persistance.CascadeType을 제공한다. CascadeType는 코드와 같이 PERSIST, MERGE, DETACH, PREFRESH, REMOVE, ALL 로 구성되어 있다. CascadeType.ALL 모든 Cascade를 적용 모든 상태 변화에 대해..

Java 2022.05.23

[MyBatis] NumberFormatException 에러 해결

[MyBatis] NumberFormatException 에러 해결 쿼리를 작성하고.. 파라미터로 String 값을 넘길 때 뜬금없이(?) NumberForatException이 발생한다... ... , updatedDate = SYSDATE ... org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.lang.NumberFormatException: For input string: "Y" ### Cause: java.lang.NumberFormatException: For input..

에러 2022.02.12
반응형