본문 바로가기

전체 글15

Spring boot, kotlin 기반의 OAuth2 인증 서버 - 구글(firebase) 로그인 저번 시간에 이어서 firebase를 이용한 구글 로그인을 구현해보겠습니다. firebase 설정 구글 로그인을 설정하기 위해서 firebase를 이용합니다. firebase 콘솔에 들어가시면 다음과 같은 화면에서 "프로젝트 만들기"를 클릭합니다. 저는 프로젝트 이름을 "example-google-login"으로 설정하여 진행하였습니다. 나머지 부분은 진행을 눌러서 계속하시면 됩니다. 진행을 완료하면 다음과 같이 프로젝트 화면으로 들어갈 수 있는데, 여기서 사이드 메뉴의 "Authentication"의 "Sign-in method"에 들어가서 Google 로그인을 사용 설정합니다. 그 다음엔 아래 그림과 같이 설정을 클릭하여 프로젝트 설정으로 들어가서 아래 "내 앱" 부분의 "" 부분을 클릭하여 웹 앱을.. 2021. 6. 24.
Spring boot, kotlin 기반의 OAuth2 인증 서버 개요 개요 Spring boot와 Kotlin 언어를 이용한 OAuth2 인증서버 구현에 관한 내용을 기록합니다. Authorization Server와 Resource Server 구현 및 Resource Server의 모듈화(maven 모듈)를 통해 Resource Server를 따로 두지 않고 서비스 내에 포함시키는 방법까지 알아봅니다. 본 시리즈에서 구현하는 인증 서버는 구글 firebase의 social login을 이용하여 로그인한다고 가정하였습니다. 또한 Spring boot 2.5.0와 Kotlin 1.5.X, JDK 8을 기본 환경으로 사용합니다. OAuth2 OAuth2는 인증 방법의 한 종류로 HTTP를 통해 특정 자원에 접근할 수 있는 방법을 제공합니다. 또한 써드파티 애플리케이션에 제한.. 2021. 6. 24.
MySQL의 Prepare Statement 개요 JDBC에서 사용하는 PreparedStatement를 통해 쿼리를 실행할 때 해당 쿼리를 분석한 분석 정보를 저장해 매번 실행할 때마다 쿼리 분석 시간을 Skip하여 쿼리 실행 시간을 줄여준다고 알고 있었지만 MySQL의 경우에는 조금 다른 부분이 있어 기억하고자 이 글을 작성한다. 1. MySQL Prepare Statement의 종류 1.1 Client Prepare Statement SQL 문장에서바인딩 변수(SQL에서 '?'를 사용해 표현)에 값을 맵핑하여 하나의 완성된 SQL 문장을 MySQL 서버에 전송한다. 즉, 실제로는 MySQL 서버에선 일반 statement로 받아들이며 prepare statement이지만 매번 쿼리 문장을 분석하고 실행 계획을 수립해서 쿼리를 실행한다. 1.2.. 2021. 6. 24.
react에서 styled components 사용시 input tag에서 focus를 잃어버리는 문제 react에서 styled components를 적용하기 시작하였습니다. styled components를 input tag에 적용하여 사용하던 도중 input의 onChange()함수에서 state를 변경하였습니다. 하지만 컴포넌트에서 매 입력시마다 input에서의 focus를 잃어버리는 일이 발생하였는데요. 그 원인과 해결에 대하여 기록합니다. 1. 오류 상황 해당 컴포넌트에서 useState()를 사용하여 onChange() 시에 state를 변경하게 되었습니다. 다음과 같은 코드에서 오류가 발생하게 되었습니다. import React, { useState } from "react"; import styled from "styled-components"; export default function .. 2021. 6. 24.