07.05 회고 - 공부 계획 실천

아데스티·2023년 7월 5일
0

회고록 - TIL

목록 보기
11/14

목차

  1. 코딩 테스트
  2. 딥다이브 자바스크립트
  3. CS 공부
  4. 추가 학습 계획
  5. 개발자 블로그 자료

1. 코딩 테스트

문제 해결 패턴 - 빈도수 세기
예를 들어 배열 2개의 요소와 그 수량이 동일한지 확인하는 함수를 작성할 때
일반적으로 아래와 같은 이중 for문을 작성할 수 있다.

function same(arr1, arr2){
    if(arr1.length !== arr2.length){
        return false;
    }
    for(let i = 0; i < arr1.length; i++){
        let correctIndex = arr2.indexOf(arr1[i])
        if(correctIndex === -1) {
            return false;
        }
        arr2.splice(correctIndex,1)
    }
    return true
}

이 때의 시간 복잡도는 N^2
객체의 키-값을 활용하면 시간 복잡도를 N으로 낮출 수 있다.

function validAnagram(ch1, ch2) {
  // add whatever parameters you deem necessary - good luck!
  if (ch1.length !== ch2.length) return false;

  let frequency1 = {};
  let frequency2 = {};
  for (let val of ch1) frequency1[val] = (frequency1[val] || 0) + 1;
  for (let val of ch2) frequency2[val] = (frequency2[val] || 0) + 1;
  
  for (let key in frequency1) {
    if (!(key in frequency2)) return false;
    if (frequency1[key] !== frequency2[key]) return false;
  }
  return true;
}

2. 딥다이브 자바스크립트

  • 프로그래밍의 정의
  • 렌더링 개요
  • Node.js 개요

3. CS 공부

  • 운영체제의 역할
  • 운영체제의 구성 요소
  • 컴퓨터의 구성 요소
  • 메모리의 계층과 각각의 특징
  • 웹브라우저의 캐시
  • 가상 메모리

4. 추가 학습 계획

  • f-lab 커리큘럼을 참고
  • 3달간의 멘토링 커리큘럼 구상
  • 1달: 딥다이브 자바스크립트 완독 및 멘토 분의 깊이있는 질문, 피드백
  • 2달: 순수 자바스크립트로 SPA 구현하기, 코드 리뷰 및 실무 적용 사례 참고
  • 3달: 개인 프로젝트. 2달간 학습한 개념을 잘 녹여내고 코드에 대한 깊은 고민이 들어간 포트폴리오

해야할 과제

  • 멘토분 구하기
  • 개인 프로젝트 작업 과정 고민

5. 개발자 블로그 자료

리프레시 토큰을 통한 액세스 토큰 재발급 과정
JWT토큰을 엑세스 토큰 및 리프레시 토큰으로 사용하는 경우

로그인 처리
1. 액세스 토큰이 유효한 경우
2. 엑세스 토큰이 무효한 경우

엑세스 토큰이 무효한 지 체크하는 과정이
클라이언트 측일수도 있고, 서버 측일수도 있다.
클라이언트일 경우 axios 요청의 request를 intercept를 통해서 유효한지 검증할 수 있다.

엑세스 토큰이 만료된 것이 확인되면

클라이언트측에서 엑세스 토큰 만료 확인하는 경우
1. refresh 토큰은 그대로 두고 액세스 토큰만 재발급
2. refresh 토큰이 만료가 임박하면 refresh 토큰과 엑세스 토큰을 같이 재발급

서버측에서 엑세스 토큰 만료 확인하는 경우
3. 엑세스 토큰을 통한 요청이 401에러로 올 때 refresh 토큰으로 재요청
refresh 토큰도 무효하면 재로그인 요청

profile
종착지이자 거점 A Destination

0개의 댓글