WIL 1주차

Kim Minsun·2022년 7월 18일
0

항해99 8기 TIL

목록 보기
7/7

항해 8기 첫번째 주가 끝났다.
시차가 있다보니 2-4시간 밖에 못자고 지낸 일주일이라 아주 많이 힘들었다..
하지만 미니 프로젝트 하는 4일간은 잠이 부족한지도 모르고 몰입했더니
신기하기도 하고 재밌기도 하다.
신기한 이유는 뭐 별로 하지도 않았는데.. 시간이 너무너무 빨리 가서;
특히 git 가지고 삽질하면 두세시간은 쉽게 삭제된다.

아무튼 이번주에 배운 것들을 정리해보자!
제일 큼직한 것은 아무래도 회원가입 기능과 API, 자잘한 자바스크립트 기능(?) 들인데 자바스크립트는 알고리즘 문제 풀면서 매번 따로 올려서 여기서는 회원가입과 API만 적어보려고 한다.

1. 회원가입

  • 해시함수
    -암호화 함수로서, 임의의 데이터를 입력 받아 랜덤한 길이의 값으로 변환하는 함수
    -입력한 값이 조금만 바뀌어도 완전히 다른 값을 만들어낸다.
    -결과값으로 입력된 값을 전혀 유추해낼 수 없다. (입력된 패스워드를 알아낼 수 없다)

  • 회원가입/로그인은 3가지 페이지가 필요함
    1) 로그인 페이지
    2) 회원가입 페이지
    3) 로그인 이후 페이지

2. 로그인

  • 진행 순서
    -id/pw를 user로부터 받고, (pw는 암호화를 해서 저장)
    -id/암호화된 pw와 매칭되는 user가 있는지 확인 -> user가 있으면 (result is not None) JWT 토큰을 클라이언트에게 줌 (login ID+언제까지 유효한지(datetime.tiledelta에 대한 정보)
    -> 그 정보를 다시 서버만의 특별한 키(직접 세팅 가능)를 이용해서 다시 암호화해서 user에게 전달
    나중에 클라이언트가 JWT를 주면, 특별한 키를 통해 decode하여 ID를 보고 확인

  • cookie란? (브라우저 자체 정보)
    -token_receive = request.cookies.get('mytoken')
    -브라우저가 dictionary 형태로 항상 저장하고 있는 정보인 쿠키에, mytoken이 있는지 확인하는 것 (있다면, 로그인 성공)
    -디바이스의 특정 브라우저에 있는 정보라 디바이스마다 새롭게 로그인 해야 함
    로그인 기능은 쿠키와 JWT 토큰을 통해 이루어지고, 쿠키를 통해 유지된다.

3. 로그아웃

  • 로그아웃 버튼을 클릭하면 토큰을 삭제하고 로그인 페이지로 이동
  • $.removeCookie('mytoken', {path: '/'});

4. API

  • API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

  • API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
    : API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는다.

0개의 댓글