230410_TIL

majungha·2023년 4월 10일
1

TIL

목록 보기
32/68

앞으로의 목표 👍


  1. javascript 능력 및 고난도 알고리즘 풀이 능력
  2. Nest, Graphql등 최신 기술 스택 활용 능력
  3. 기초 미니프로젝트 포트폴리오
  4. 로그인, 결제기반 심화프로젝트 포트폴리오
  5. 배포를 위한 네트워크 및 CI/CD 배포자동화 능력
  6. 120% 백엔드 개발 지식

오늘부터 꾸준히 해야할 일 👍


  • 영타실력 늘리기
  • 단축키 사용 익숙해지기
  • 코드리딩 실력 키우기
  • 데일리 퀴즈
  • 포트폴리오 작성
  • 독스에 친숙해지기
  • MDN 보는 연습하기

오늘의 수업 👍



📝 수업 메모


  • 로그인 시 이메일, 비밀번호를 DB와 비교해서 회원인지 아닌지 판별한다. (로그인 API)

  • cookie에 로그인 증표를 저장하고 API를 요청할 때마다 로그인 증표를 같이 보낸다.

  • 로그인을 하면 session에 정보가 저장이 된다.(인증 Authentication)

  • session - 변수 객체

  • 검사과정을 인가(Authorization)라고 한다

  • 로그인 정보를 던져서 내가 원하는 로그인 API를 실행

  • 메모리를 업그레이드 하는 방법(scale-up)

  • 부화를 다른 컴퓨터로 분산시키는 작업 (scale-out)

  • 상태를 가지고 있다. (stateful)

  • session 테이블을 샤딩하자(데이터 베이스를 여러개로 나눈다)

  • 디스크 저장(input) / 출력(output)이 필요해진다.

  • 디스크 IO가 발생한다.(느리다)

  • 메모리 기반 데이터베이스 - Redis

  • redis에 session 데이터를 저장하면 빠르겠다.

  • 양방향 암호화 암호화 O, 복호화(O)

  • 단방향 암호화 암호화 O, 복호화(X) - hash

  • 레인보우 테이블 (무차별 대입 공격 ( Bruete Force attack))

  • 키 스트레칭 - bcrypt (js에 c언어 연동)

▷ DB 데이터를 자르는 데에는 2가지 방법이 있다(파티셔닝)

  1. 수직으로 자르기(수직 파티셔닝)
    • 성능(많이 찾는 자료만 파티셔닝을 해두면 성능에 도움이 된다.)
  2. 수평으로 자르기(수평 파티셔닝)
    • 유저를 기준으로 나누면 샤딩이라고 부른다.

▷ 정리

  • 브라우저 -> 백엔드 -> Redis -> DB

  • 부하를 분할해주는 기계 LB

  • API를 한번 조회할 때마다 query는 최소 2번 반복한다.

▷ JWT

  • JWT 방식 - JSON Web Token
    1. 안이 다 보이는 토큰 (중요한 데이터 저장 금지)
    2. 조작은 아무나 불가능하다. (signature 필요)
    3. 그래서 만료시간이 짧다.

오늘의 마무리 👍



  • 복습
  • github 공부
  • 블로그 포스팅
  • 데일리 퀴즈
  • 알고리즘 문제 풀기

항상 겸손한 자세로 배우면서 성장하자, 할 수 있다!! 💪


출처 : 코드캠프

profile
개발자 블로그 / 항상 겸손한 자세로 배우면서 성장하자 할 수 있다!

0개의 댓글