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이 무료판으로 만든 것으로 베타테스트용
- Ubuntu - debian이라는 배포판을 쓰기 쉽게 만든 것
- 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
미션
- 로그인 폼 → express에서 서버에서 해당하는 db에서 읽어옴 → 정상적이면 쿠키 응답, 실패했을 경우 실패 페이지로 보내기