REST API

데이터의 갱신

낙관적 업데이트 + 기존의 방식 post 다시 get 해와서 하는직전 미리 렌더링 시켜놓고, get 요청 후 업데이트

thenable

  • 메서드 체이닝의 사용
  • 강한 결합으로 플로우를 볼 수 있음

async/await

  • 가독성이 좋음

HTTP 인증

  • 라우터 맥북 내의 가상서버
    • 인터넷이 될 경우 사설망 사설망의 ip를 받아 맥북에서 사용하는데 이를 거쳐서 인터넷 가져오는 방식
    • NAT와 브릿지 네트워크
    • 네트워크 기초 책 모두의 네트워크, 혼자 공부하는 네트워크, 성공과 실패를 결정하는 1%의 네트워크 원리

NAT(Network Address Translation)

컴퓨터에서 인터넷을 하기 위해 ip를 가져야 함 사설 ip를 가지고는 인터넷이 안되지만 공유기의 public ip를 통해서 인터넷을 함 공유기로 받아온 다음에 우리가 알고 있는 대상 기계로 보냄

Bridged 방식

우분투가 가상의 랜카드를 통해서 다이렉트로 공유기와 통신

인터넷은 잘 되는데 맥북과 안될 때 가상의 랜카드를 하나 더 붙여서 맥북과 통신

etc host를 변경 ssh-keygen을 통해 rsa key pair를 만듬 공개 키 자물쇠 비밀 키 공개키를 여는 열쇠 서버에 전달할 때는 자물쇠 shtp로 쓸 수도 있음 cyberduck public 키가 복사됨. 이를 여기에 내 키를 추가 echo echo 뒤에 오는 매개변수의 내용을 표준 출력 표준 입력 0 표준 출력 1 표준 에러 2 파일을 하나 열면 file descrupter에서 3번부터 할당됨

> 리다이렉션 >> append mode cat 해당 텍스트 파일의 내용을 표준 출력으로 안전하고 편한 방법

public key의 비밀키를 주고받을 때 사용

vim-nox설치 spacevim vimgolf

서버로 띄우기

간단하게 npm http-server 설치 vscode에서 ssh 연결해서 실행해서 테스트해볼 수도 있음

리눅스 팁, 인프라, HTTP

리눅스 로컬 설치

  • 직접 설치(권장, 하드웨어 확인)
  • 가상 머신을 이용해 설치(CPU, OS에 따라 난이도가 달라짐)
  • 도커 사용
  • 윈도우라면 WSL2사용

리눅스 안전하게 접속하기

  • openssh 사용
  • 네트워크 설정 잘하기
  • ssh-keygen으로 키를 생성하고 공개키를 리눅스 서버에 복사

리눅스란?

  • 좁은 의미의 리눅스: 라이누스 토르발즈가 관리하는 커널
  • 넓은 의미의 리눅스 : 리눅스 배포판
    • Ubuntu - debian이라는 배포판을 쓰기 쉽게 만든 것
      • xubuntu, kubuntu, lubuntu - 경량된 버전
      • mint linux
      • arch Linux
    • redhat - 유료
    • rocky - 무료, 구 centOS
    • pedora - redhat이 무료판으로 만든 것으로 베타테스트용
  • https://www.youtube.com/watch?v=SdCa80N2EP4

인프라 알아보기

네트워크 7계층

HTTP

인증방식

  • 인증(Authentication)
    • 식별된 사용자가 자기 자신임을 보이는 것
    • 그 주장이 사실인지 아닌지를 확인하는 절차
    • 인증을 통과했다 해당하는 사용자의 주장이 사실이라는 것이 증명되었다
    • 비민번호를 통해 인증
    • db에는 비밀번호의 해시값이 들어있고, 이를 확인
    • 단방향 해시, 복호화되어있어야 함
  • 인가(Authorization)
    • 신원에 따른 권한 부여
    • 인증받은 유저, 그렇지 않은 사용자들에 자원에 대한 접근 권한 부여
    • uri 고유한 자원을 식별하는 식별자, 특정한 자원 하나
    • crud 해당하는 리소스에 대한 생성, 읽기, 수정, 삭제 권한
    • 

Web에서 로그인

  • 세션(session)이란
    • 서버에서 유지하는 사용자와의 연결
    • 웹은 stateless함
    • 사용자 정보를 처리하기 위해서 유저마다 유지하는 정보
    • 쿠키를 통해 보냄
      • 쿠키값을 세팅하는 주체 서버가 response에 set Cookie를 해서 sid를 설정
      • 클라이언트는 쿠키를 브라우저의 어딘가에 저장
        • SQLite 데이터베이스 형식으로 저장
        • brute force 공격을 막을 수 없도록 해시된 값으로 보냄
    • 세션에는 보통 사용자 아이디나 권한 정도
  • 최근 인증 방식
    • oauth2
    • JWT

미션

  1. 로그인 폼 express에서 서버에서 해당하는 db에서 읽어옴 정상적이면 쿠키 응답, 실패했을 경우 실패 페이지로 보내기