코딩일상

22.07월 3번째주 첫 WIL 작성 본문

기록/WIL(Weekly I Learned)

22.07월 3번째주 첫 WIL 작성

solutionMan 2022. 7. 17. 17:33
반응형

WIL을 들어가면서

드디어 항해 99를 시작하고 첫  WIL을 작성한다.

음... 작성하려고 하니 어디서부터 무엇을 작성해야 할지 

살짝 막막하다.

 

하지만 우선적으로 항해 99측에서 JWT, API에 대해 내용을

포함해서 작성해달라고 해서 그 내용들에대해 우선 적고자 한다.

 

아마 첫 미니 프로젝트에서 가장 핵심이 되는 

두 단 어가 JWT, API이기 때문이라고 생각한다.

(나만의 생각이 아니길..)


우선 22년 7월 3번째 주 동안

내가 한 것들(TIL을 참고하여 작성)

  • JWT, API에 대해 공부 및 개념잡기
  • 코드량이 많아질수록 주석과 리팩터링을 통한 코드 정리의 중요성(가독성을 올리자!!)
  • git 이용방법(혼자서)(협업해서 진행하는 건.. 아직 실패 좀 더 공부 후 조원들이랑 연습해야지!)
  • DB에 정보 전달법 (POST)  
  • DB에 정보 가져오는 법 (GET) 
  • 로그아웃 기능 구현
  • 로그인 시 토큰 발급하는 법
  • 로그인 불일치 사항 있을 시 접근 제한
  • 로그인 상태에서만 접근 가능(token 체크를 통해)
  • readme.md에 대해서
  • REST FUL 하다는 것이란?
  • 삼항 조건 연산자
  • JavaScript의 메서드들(filter, date, reduce, map, split,...)
  • 템플릿 리터럴?
  • 타입(문자열, 숫자열,..) 별 특징들(아직 공부하면서 깨달아가는 중)
  • 미니 프로젝트 완료
  • 기타 등등...(정리를 더 잘해야겠다....ㅜㅜ)

이것들 외에도 많은 것들을 진행하였고 그나마 좀 더 기억에 남고 기록해 두었던 것들 위주로

위에 정리를 하였다.

 

이렇게 정리하면서 한 것들을 보니깐 정말 뭔가를 위해 끊임없이 달려온 나 자신이 대단한 것 같다.

다시 시작될 내일부터의 일과들도 즐겁고 신나게 진행해 나아갈 것이다.

 

그리고 이번 주에 하면서 가장 중요했던 개념 2가지(JWT, API)에 대해서 아래에 정리를 해보았다.

다시 다음 주 WIL을 적으로 올 때까지 열심히 TIL들도 작성해 나아가 보겠다.


JWT(JSON Web Token)

 

JWT 란??

우선 JWT의 정의에 대해 간단히 말하고

왜 사용하는지에 대해 설명 후 좀 더 자세히 설명하고자 한다.

 

JWT 정의

JSON Web Token의 약자로 전자 서명된 URL-safe (URL로 이용할 수 있는 문자만 구성된)의 JSON입니다.

 

JWT를 사용하는 이유

-사용자 인증에 필요한 정보를 토큰 자체에 포함하기에 별도의 인증 저장소가 필요 없다.

(쿠키/세션은 대비 장점)

-최신 웹 서버 하드웨어에서 확장하기가 쉽다.

-디버깅 및 관리가 용이

-트래픽에 대한 부담이 낮음

-REST 서비스로 제공 가능

등등의 이유가 있습니다.

 

JWT 인증방식

1)비유 설명

아래와 같이 상황을 설정 후 

사용자 = 놀이공원이용자

서버 = 놀이공원

JWT = 자유이용권

놀이공원 이용자는  놀이공원에서 놀고 싶을 때 놀이공원에게 자유이용권을 요청하고 받아서

놀이공원을 이용하며, 나갈 때 자유이용권을 반납하는 등의 행위를 한다고 볼 수 있다.

 

2)웹에서 과정

사용자의 로그인 요청이 들어오면, 서버는 검증 후

사용자의 고유ID 비번등의 정보를 payload에 담는다.

암호화할 비밀키를 사용해 JWT를 만든다.

사용자는 전달받은 JWT를 localstorage에 저장한다.

 

사용자는 서버에 요청시 JWT를 헤더에 포함시켜 전달한다.

서버는 토큰의 서명을 비밀키로 복호화한 다음,

들어있는 내용을 확인한다.

올바른 JWT라면 요청에 응답한다.

 


API

API 란??

위시캣에서 좋은 자료가있어서 첨부

위 그림과 같이 우선 API를 현실에서 상황과 비유해서 설명하겠습니다.

여러분이 식당에 있다고 생각해 보겠습니다.

 

점원이 메뉴판을 가져다줄 것이고 

여러분은 메뉴판에서 음식을 선택 후 점원에게 요청을 할 것입니다.

점원은 주문받은 요리를  요리사에게 요청할 것이고,

요리사는 열심히 요리를 해서 점원에게 요리를 전달할 것입니다.

그리고 그 요리를 점원이 여러분에게 가졌다고 주고, 여러분은 맛있는 식사를 할 것입니다.

 

여기서 나온 사람들 중 점원을 API라고 생각하시면 이해가 편하게 됩니다.

API는 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)를 정리하고, 주문(명령)을 받아

요리사(응용프로그램)와 상호작용 후 요청된 메뉴(명령에 대한 값)를 전달합니다.

 

결과론적으로 API는 프로그램들이 서로 상호작용 하는 것을 도와주는 매개체로 볼 수 있습니다.

 

API의 역할은??

 

1) 서버와 데이터 베이스에 대한 출입구 역할을 한다.

:데이터베이스에는 중요한 정보들이 저장되어있는 만큼 

누구나 쉽게 접근하면 안 된다. 이를 방지하기 위해 서버와 데이터베이스에 대한 출입구 역할을 하며,

허용된 사람들만 접근성을 부여해주는 역할들을 한다.

 

2) 애플리케이션 기기가 원활하게 통신할 수 있도록 한다.

애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 도와주는 역할을 한다.

 

3) 모든 접속을 표준화한다.

API는 모든 접속을 표준화 하기에 기계/ 운영체제 등 상관없이 

누구나 동일한 액세스를 얻을 수 있다.

즉, 범용 플러그인처럼 작동한다고 생각하면 편하다.

 

API의 유형

1) private API

내부 API로, 회사 개발자가 자체 서비스를 개선하기 위해서 발행하며,

제삼자에게 노출되지 않는다.

 

2) public API

개방형 API로써 모두에게 공개된다.

누구나 제한 없이 API를 사용할 수 있는 게 특징

 

3) partner API

기업 간 데이터 공유에 동의하는 특정인들만 사용 가능

비즈니스 관계에서 사용되는 편 

종종 파트너 회사 간 소프트웨어를 통합하기 위해 사용

 

API를 사용하면 좋은 이유

 

private API

개발자들끼리 코드를 작성하는 방법을 표준화할 수 있다.

소프트웨어를 통합하고 자 할 때 협업을 용이하게 만들어 줄 수 있다.

 

public API, partner API

기업은 타사의 데이터를 활용할 수 있다.

고객 데이터를 확장하여 전환율도 올려볼 수 있다.

 


레퍼런스

 

JWT (JSON Web Token) 이해하기와 활용 방안 - Opennaru, Inc.

JWT 는 JSON Web Token의 약자로 전자 서명 된 URL-safe (URL로 이용할 수있는 문자 만 구성된)의 JSON입니다.JWT는 속성 정보 (Claim)를 JSON 데이터 구조로 표현한 토큰으로 RFC7519 표준 입니다.

www.opennaru.com

 

 

API란? 비개발자가 알기 쉽게 설명해드립니다! - wishket

여러분은 API가 무엇인지 알고 계신가요? 자주 듣지만 그 개념이 무엇인지 정확하게 알기 쉽지 않은데요. 이번 시간 위시켓이  API란 무엇인지 알기 쉽게 설명해드리고자 합니다. 

blog.wishket.com

 

반응형
Comments