드디어 스파르타코딩클럽 항해99가 시작되었다. 얼마나 기다리고 기다렸던지, 항해99의 1기 리뷰를 보고 당시에 당장에라도 2기에 지원하고 싶었지만...세상은 나를 가만두지 않았기에...그래도 포기 않고 6기에 지원하게 되었다.

"'파이썬', '자바' 이런 단어를 몰라도 괜찮습니다! 비전공자, 왕초보들이 거처간 항해99! 여러분도 개발자로 거듭날 수 있습니다!!"

당시 광고에 나오신 이범규 대표님의 당차고 자신감있는 멘트가 얼마나 신뢰가 가던지! 이 멘트 덕분에 항해99를 시작했다고 해도 과언은 아닐 것이다.

항해 시작 한 달 전부터 스파르타코딩클럽의 배려로 웹종합개발반 강의를 수강하며 기초??를 다져 나갔다. 비전공자인 나에겐 웹종합개발반 강의도 힘겨웠지만, 항해99 첫주차에 느끼길 사전 강의를 안들었다면......어후...

아래부터는 항해99, 1주차 항해(말그대로 여긴 항해다 항해 그냥 망망한 바다에서 하는 스 "항해") 느끼고 배운 것들을 말해볼까 한다.

1. API

웹종합 개발반에서도 나왔지만
API란 은행 창구와도 같은 것이다. 내가 입금하고 싶은 것을 저장 또는 업데이트(POST)하고 통장 내역(list)를 받아오는 것이다(GET)하는 것이다.

여기서는 은행원은 '서버' 고객은 '클라이언트' 또한 클라이언트에 따라 POST방식과 GET방식이 있다

*GET : 통상적으로 데이터 조회(Read)를 요청할 때
(여기서 클라이언트가 서버에게 줄 것 X
서버 > 클라이언트)

*POST : 데이터 생성(Creat), 변경(Updat), 삭제(Delete) 요청할 때
(입력값 클라이언트> 서버로 전달 > 서버는 Data base로 값을 전달)

클라이언트 측

서버 측

2.JWT (로그인)

첫주차에 주어진 웹개발미니 미션중 구현해야하는 기능 중 가장 중요한 것을 꼽으라하면 단연'로그인'기능 일것이다. 생각해 보자면 로그인 기능이 중요한 이유는 모든 웹사이트들이 고객의 정보를 갖고 있고 이 정보를 통해 빅데이터 구축하기 때문이다. 기업은 웹3.0으로 넘어가는 이 시기에 고객들의 정보는 더욱 넘쳐나고 이것이 기업의 이익과 직결된다. 그 만큼 고객정보관리 및 보안 분야 또한 중요해지기 때문이다.

JWT

JWT는 Session / Cookie방식과 함께 WEB의 인증을 담당하는 대표주자이다. JWT는 Json Web Token의 약자로 인증에 필요한 정보들을 암호화시킨 토근을 말한다

https://jwt.io/ JWT 메인화면에 나와있는 암호화된 토큰이다.
오른쪽 HEADER, PAYLOAD, VERIFY SIGNATURE의 값들을 왼쪽에서 코드화 된 것을 볼 수 있다

위와 같이 암호화된 토큰은 (HEADER, PAYLOAD, VERIFY SIGNATURE) 이 세가지 정보들을 암호화한 것이다.

Header : 암호화할 방식(alg), 타입(type)
Payload : 서버에서 보낼 데이터. 유저의 고유 ID값, 토큰의 유효기간.
Verify Signature : Base64 방식으로 인코딩한 Header,payload 그리고 SECRET KEY를 더한 후 서명됩니다.

내가 공부했을 때 'JWT'와 'Session/Cookie' 이 두가지의 가장 큰 차이점은 '보안'문제와 '저장소' 문제이다.

  • 저장소
    Session/Cookie는 비유하자면 비밀문서(Session)와 비밀번호(key)라고 생각하면 될 것이다. Session/Cookie를 사용하게 되면 회원db외에 세션저장소를 따로 구축해야한다. 반면에 jwt토큰은 토큰을 발급한 후 추가로 저장소를 사용하지 않기에 서버를 확장하거나 유지-보수하는데 유리하다.
    그러나 저장소가 없는 만큼 토큰 안에 담으 수 있는 정보가 Session/Cookie 방식에 비해 작은 편이다.

  • 보안
    Session/Cookie 쿠키는 위에서 언급한데로 단순 key이기 때문에 특정한 정보를 담고 있지 않지만, HTTP 요청을 해커가 가로첸다면 쿠키를 가지고 서버에 접근할 수 있습니다.
    반면 JWT는 쿠키값을 Verify Signature에서 인코딩한 후 이를 열수 있는 secret key를 또 담기 때문에 보안에 더 강하다고 볼 수 있습니다.

    이 외에 항해 1주차에(주 100시간) 배운 것들이 많지만, 앞으로 배운 것들을 복귀하며 업로드를 하도록 하겠다.

    *위 내용들은 스파르타코딩클럽과 아래 링크의 내용을 참조하였습니다.
    https://tansfil.tistory.com/58?category=255594

profile
비전공의 시작, 개발 STEP UP

0개의 댓글