반응형

분류 전체보기 218

Javascript/jQuery - Access Token 자동 갱신 소스코드

JWT Access Token을 사용한 웹 어플리케이션에서 서버로 API를 요청할 때마다 Access Token을 담아서 보내야 하는데, 이때 Access Token이 만료된 경우 Refresh Token을 이용한 Access Token의 갱신이 필요하다. 처음 화면 로딩 시 메뉴에 로그인 정보를 표시해준다거나, 화면을 새로고침 하거나, 사용자가 특정 화면을 열어 놓고 한참 지나서 데이터를 조회하려고 하는 경우 등을 고려해서 언제든 서버로 API 요청 시 항상 Access Token의 유효성을 체크해서 만료 시 Refresh Token을 이용해서 자동으로 Access Token을 갱신하는 스크립트를 작성 해 봤다. 특별한 아니고 Javascript/jQuery Ajax를 이용해서 API를 서버에 요청해 ..

Web API의 특징과 장단점

Web API는 웹 서버 또는 웹 브라우저용 애플리케이션 프로그래밍 인터페이스(Application programming interface) 입니다. 일반적으로 웹 개발 개념으로서 웹 애플리케이션의 클라이언트와 서버라는 두 소프트웨어가 서로 통신 할 수 있는 메커니즘으로, 서버 측에서 클라이언트 애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트를 제공하게 됩니다. API는 새로운 개념이 아니며, 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘이기 때문에 예전부터 다양한 방식의 API가 존재해 왔습니다. 하지만 여기에서는 다양한 API 중에서도 특히 Web API에 대해 알아보도록 하겠습니다. API의 특징 사람이 읽을 수 있고 쉽게 적응할 수 있으며 정보를 직접 전송,..

IT 지식 2023.06.12

OAuth 2.0 (RFC 6749)의 목적, 인증 절차와 인증 방식

OAuth의 최종 목적은 Access Token을 발급받는 것입니다. 그리고 발급받은 Access Token을 사용해서 리소스 서버에 존재하는 리소스를 엑세스 할 수 있습니다. 이러한 OAuth의 인증 절차와 인증 종류에 대해 조금 더 알아보겠습니다. OAuth 2.0의 인증 절차 (A) 클라이언트가 리소스 소유자에게 권한 부여를 요청합니다. 인증 요청은 리소스 소유자에게 직접(표시된 대로) 또는 바람직하게는 중개자로서 인증 서버를 통해 간접적으로 이루어질 수 있습니다. (B) 클라이언트는 자원 소유자의 권한을 나타내는 크리덴셜인 권한 부여를 수신하며, 본 명세서에서 정의한 4가지 권한 부여 유형 중 하나 또는 확장 권한 부여 유형을 사용하여 표현한다. 권한 부여 유형은 권한 부여를 요청하기 위해 클라이..

IT 지식 2023.06.11

Authentication과 Authorization 차이

인증 (Authentication) 인증(Authentication)은 서버 입장에서 내가 누구인지 확인하는 과정이며, 올바른 신원을 증명하는 것을 의미한다. HTTP에서 주로 사용되는 인증(Authentication) 방법 기본 인증 (Basic Authentication) 가장 간단하고 쉬운 방법 발신자가 요청 헤더에 사용자 이름:비밀번호를 입력해야 함 쿠키, 세션 ID, 로그인 페이지 및 기타 특수 솔루션이 필요하지 않습니다. Handshake나 기타 복잡한 응답 시스템이 없습니다. 무기명 인증 (Bearer Authentication) 베어러 토큰이라는 보안 토큰을 포함합니다. "이 토큰 보유자에게 액세스 권한 부여"로 이해될 수 있습니다. 보호된 리소스에 대한 요청을 할 때 Authorizati..

IT 지식 2023.06.11

JWT (JSON Web Token)의 구조와 사용 예

JWT(JSON Web Token)는 당사자 간에 정보를 JSON 개체로 안전하게 전송하기 위한 간결하고 독립적인 방법을 정의하는 개방형 표준(RFC 7519)입니다. 이 정보는 디지털 서명되어 있으므로 확인하고 신뢰할 수 있습니다. JWT는 비밀(HMAC 알고리즘 포함) 또는 RSA 또는 ECDSA를 사용하는 공개/개인 키 쌍을 사용하여 서명할 수 있습니다. JWT를 암호화하여 당사자 간에 비밀성을 제공할 수도 있지만 여기서는 서명된 토큰에 중점을 둘 것입니다. 서명된 토큰은 그 안에 포함된 클레임의 무결성을 확인할 수 있는 반면 암호화된 토큰은 다른 당사자로부터 해당 클레임을 숨깁니다. 공개/개인 키 쌍을 사용하여 토큰에 서명할 때 서명은 개인 키를 보유한 당사자만이 서명한 당사자임을 인증합니다. J..

IT 지식 2023.06.11

[Spring Framework] RestTemplate을 이용한 서버간 API 통신과 예외처리

배경 위의 흐름도와 같이 Application 2는 순수 REST 서비스만 제공하고 있는 상태이며, 브라우저에서 Application 2의 endpoint를 직접 엑세스를 시도하면 CORS 정책 위반 에러가 발생한다. (CORS란 Cross-Origin Resource Sharing의 약자로, 브라우저에서 다른 출처의 리소스를 공유하는 것인데 기본은 공유 불가이며 별도 설정을 통해 공유를 할 수 있게 만들 수도 있다. 하지만, 위 상황에서는 공유가 불가능한 상태다) 어쨋든 브라우저는 Application 2에서 제공하는 서비스들을 이용할 수 없기 때문에 서버 간 REST API 통신환경이 필요했고, Application 2와 통신이 가능한 Application 1을 별도로 구축해서 사용자는 Applica..

개발 기록/Java 2023.06.08

[잭 스나이더] 맨 오브 스틸, Man of Steel (2013) 리뷰와 명대사

고독한 시골 외계인의 다크한 최강 슈퍼 액션 호평도 있겠지만 혹평도 굉장히 많다는 영화 맨 오브 스틸. 잭 스나이더보다는 크리스토퍼 놀란이 제작했다는 얘기에 기대를 하고 봤던 영화인데, 개인적으로 지금까지 본 영화 중에 시각적인 면에서 이렇게 멋지게 만든 영화가 또 있을까 싶을 정도로 액션이나 효과는 정말 손에 꼽을 만큼 훌륭한 영화라고 생각한다. 영화 내내 다크한 분위기에서 퍼져 나오는 어딘지 모를 쓸쓸함과 우울함을 가진 캔자스(Kansas) 주의 작은 마을에 살고 있는 비운의 외계인 클락 켄트. 성향 상 다크한 분위기의 영화를 너무 좋아하기 때문에 다크 하면서 드라마틱한 분위기에서 갑자기 터져 나오는 엄청난 속도의 액션은 과한 듯 하지만 공상과학 영화에서는 얼마든지 이해해 줄 수 있다. 슈퍼맨 정도면..

My Watchlist 2023.06.07

[세르지오 레오네] 원스 어폰 어 타임 인 아메리카 - Once Upon a Time in America (1984)

어린 시절의 추억을 생각나게 해주는 서정적인 범죄 영화 원스 어폰 어 타임 인 아메리카(Once Upon a Time in America)는 석양의 무법자로 유명한 세르지오 레오네의 1984년도 작품으로 드라마적이고 서정적이지만 기본적으로 범죄 영화이기 때문에 결은 다르더라도 유년기 친구들과 장난 좀 쳤던 사람이라면 본인의 어린 시절을 추억하며 감상하기 좋은 영화입니다. 영화는 무려 3시간 49분의 러닝타임을 가지고 있기 때문에 주말 낮에 아무에게도 방해받지 않을 시간에 감상하는 것을 추천합니다. 사실 나는 미국 갱스터 영화 (특히 로버트 드니로나 알파치노 등이 등장하는) 영화를 별로 좋아하지 않았었는데 이 영화를 계기로 이런 스타일의 미국 갱 영화에도 관심을 가지기 시작했습니다. 러닝타임도 너무 길고 ..

My Watchlist 2023.06.07

[뤽 베송] 레옹 - Léon (1994)

미친 어른과 미친 아이의 충격적인 연기력 세계적으로 유명한 뤽베송 감독과 그의 페르소나로 불리는 장르노가 연기하는 고독한 킬러가 등장하는 레옹은 이미 이 두 사람의 이름만 들어도 어느 정도의 재미는 보장되어 있을 수밖에 없는 영화다. 하지만, 역시나 이 영화에서 가장 인상깊었던 첫 번째 미친 사람은 바로 마틸다를 연기한 나탈리 포트만. 12살의 나이에 어떻게 이 영화를 이해하고 연기한 것인지 정말 미친 아이라고 생각 수밖에 없는 것 같다. 이쁘장한 얼굴로 어린 나이에 이런 영화를 이해할 정도니 하버드를.. 마틸다의 기억에 남는 명대사 중 하나 Mathilda: Leon, I think I'm kinda falling in love with you. [Leon chokes on his milk] Mathi..

My Watchlist 2023.06.06

SVG 움직이는 화살표 with yarrow.js - 예제 소스코드

yarrow는 HTML5 기반의 SVG 화살표 애니메이션 자바스크립트 라이브러리다. 업데이트가 된 지 7년이 된 것으로 봐서 더 이상 개선은 없는 것 같지만, Source와 Target까지 애니메이션으로 움직이는 화살표를 그려준다는 점 때문에 필요에 의해 사용해 보게 되었다. 설치 방법 npm install yarrow 또는 아래 소스코드를 다운받아서 HTML 사이에 넣으면 된다. 기본 사용방법 var arrow = yarrow.arrow({ x1: 0, // source x coordinate y1: 0, // source y coordinate x2: 100, // target x coordinate y2: 100, // target y coordinate text: "I'm arrow!" // ar..

반응형