Skip to content

Latest commit

 

History

History
28 lines (27 loc) · 4.51 KB

220717_Nodejs.md

File metadata and controls

28 lines (27 loc) · 4.51 KB

항해99 8기 1주차 <회고> WIL_20220717

  • 항해99 부트캠프가 시작되고 맞는 첫 일요일, 첫번째 WIL(Weekly I Learned) 을 써보자.
    • 2022년 7월의 셋째주는 올해 내가 제일 열심히 치열하게 살았던 한주였다.
    • 3년차 행정직 공무원이었던 나는 4번의 선거를 거치며 하루 19시간 근무도 해보았지만,,,
    • 단언컨대 이번주의 하루하루가 더 힘들었다.
    • 새로운 길로 들어선 선택을 후회하는 것은 아니다. 힘들지만 의미있고 재밌다.
    • 28년간 사용한 한국어도 잘 못하는데 처음 배우는 컴퓨터 언어가 어떻게 수월하겠는가?
    • 매순간 '이게뭐야?', '이거 왜 안돼?'를 반복하며 머리를 쥐어뜯고, 턱을 괴고, 고민에 고민이 꼬리를 물지만
    • 1시간짜리 고민의 답을 얻었을 때는 1cm의 턱을 넘은 것 같고
    • 3시간동안 문제를 붙잡고 답을 얻어내면 3cm가 아닌 10cm의 계단 한 칸을 올라선 기분이 든다(폭업★)
    • 2년 반동안 무의미하게 반복되는 날들을 그저 버텨왔는데, 이렇게 살아있다는 느낌을 받는 게 얼마만인지,,,!
    • 재미가 없을 수가 없다. 시간이 너무 빠르게 흐른다.

  • 개인적인 흥미와 적성은 어쨌든 그렇다치고, 나의 현주소를 깨달아버렸다.
    • 항해99를 시작하기 전, 개발자에 대한 각종 유튜브와 항해99 사전설명회를 보며 근거없는 자신감이 있었다.
    • '2022년 크리스마스에는 주니어 개발자가 되었있겠지.'
    • 대체 뭘 믿고 그렇게 생각했는지 모르겠다. 나 뭐 되니?
    • 노베이스와 비전공자들이 모여있다고 했지만 여기 잘하는 사람은 너무 많고 또 너무 잘한다.
    • 그들에게 벽을 느낀다. 팀프로젝트를 하기 때문에 혹시라도 피해를 끼칠까봐 걱정이 된다.
    • 그들에게 나는 뱁새인 것 같지만, 가랭이 찢어져도 일단 따라가야지.
    • 따라가다 보면 나도 누군가에게 황새처럼 느껴지지 않을까? 처음은 누구나 어려운거니까!

  • JWT와 API에 대해 적는 건 일요일 과제이기 때문이다. 뜬금없어도 이해해주길.
    • JSON Web Token(JWT) 란 인증에 필요한 정보들을 암호화시킨 토큰을 의미. 클라이언트 로그인 요청이 들어오면, 서버는 검증 후 클라이언트 고유ID 등의 정보를 Payload에 담고 암호화할 비밀키를 사용해 Access Token(JWT)을 발급. 클라이언트는 전달받은 토큰을 저장해두고 서버에 요청할 때마다 토큰을 요청 헤더(Header)에 포함시켜 함께 전달. 서버는 토큰의 Signature를 비밀키로 복호화한 다음, 위변조 여부 및 유효 기간 등을 확인하고 유효한 토큰이라면 요청에 응답. 장점은 REST의 제약조건인 HTTP stateless(무상태)를 지키지 못하는 세션과 달리 JWT 로그인 방식은 서버에 작업을 위한 클라이언트의 상태 정보를 따로 저장하거나 관리하지 않는다. 쿠키는 클라이언트 내에 존재하므로 보안의 위험이 있는 반면, JWT방식은 Header와 Payload를 가지고 Signature를 생성하므로 데이터 위변조를 막을 수 있다.
    • Application Programming Interface(API) 란 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘. 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 의미. 인터페이스는 두 애플리케이션 간의 서비스 계약. 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의. API 문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 존재. REST API 는 오늘날 웹에서 볼 수 있는 가장 많이 사용되고 유연한 API. 클라이언트가 서버에 요청을 데이터로 전송하고 서버가 이 클라이언트 입력을 사용하여 내부 함수를 시작하고 출력 데이터를 다시 클라이언트에 반환. REST는 Representational State Transfer의 줄임말로, 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의. 클라이언트와 서버는 HTTP를 사용하여 데이터를 교환. (참고 https://aws.amazon.com/ko/what-is/api/)