1. 알고리즘

  1. 배열에서 특정 index까지의 합을 구하기 위해서 slice로 새로운 배열을 만들고 reduce를 이용하여 합을 구할 수 있다.

pgr - lv1 - 2016년 소스코드

function solution(month, day) {
    const months = [0,31,29,31,30,31,30,31,31,30,31,30];
    const dayName = ['THU','FRI','SAT','SUN','MON','TUE','WED']
    const totalDay = months.slice(0,month).reduce((accum,cur)=>accum+cur) + day  
    var answer = dayName[totalDay%7]
    return answer;
}

2. CS - HTTP

  1. 쿠키, 캐시는 내 컴퓨터에 폴더안에 저장되어있다.

    웹 브라우저는 크롬이고, 웹 브라우저는 클라이언트의 PC에 저장되어 있다!

~/Library/Application Support/Google/Chrome/Default/Cookies
  1. 상태코드중 1xx와 3xx 의 의미는?

    • 리다이렉션과 관련된 코드로 301의 경우 서버에서 바뀐주소로 보내주고, 304의 경우 캐시에 저장되어있으므로 웹 서버를 통해 로드하지 않는다.

    • 301은 마치 캐치콜로 바뀐번호를 알려주거나, 개명한 친구를 부르는 느낌이다.

    • 100번대 코드는 정보를 나타내는 상태코드인데 http1.1이후에는 정의조차 되지 않는다고 한다. 프로토콜을 바꾸기로 하는 101의 경우에는 웹소켓에서 가아끔 볼 수있다고한다.

  1. http 헤더는 왜 필요한가?

    • http 헤더에는 의미에 따라 request, response , global , entity 헤더 4가지로 나누어 구분한다. 이중 entity 헤더는 http메세지의 body의 관한 헤더들이 모여있다.

    • 헤더는 http 0.9시절에는 없었다고 한다. 그 시절에는 get 요청만 하고, 파일도 html만 주고받을 수 있었다. 다양한 처리(예를 들어 다른파일 전송)를 하기 위해 헤더가 추가된건지, 헤더가 추가되면서 다른 파일도 처리가 가능해진것인지 전후관계는 알 수 없지만, 파일전송에서 시작되어 http에서 js,css파일 전송, 쿠키보관과 같은 다양한 처리를 할 수 있게 되었다!

  1. 쿠키와 세션의 차이
    • 쿠키는 유용한 정보(key,value를 원하는대로 저장할 수 있음)를 담을 수 있고 클라이언트 로컬(내 PC안의 어딘가)에 저장된다. 사용자 정보(자동로그인,오늘 이창을 더이상보지않음, 장바구니)가 담기기도 한다. 이때 쿠키에 사용자 정보를 id/pwd로 담는게 아니라 세션id값으로 담으면 보안이 더 강력한데, 쿠키는 인증용도로는 부적절하다고 한다.
    • 세션은 사용자들을 구분하기 위해서 사용되는 값(세션id)이다. 서버에 저장되어 많이 저장될때 메모리를 많이 차지하게 되며, 평생저장되는게 아니라 브라우저가 종료되면 세션값은 삭제된다!
    • 보안, 위치말고 중요한게 세션의 라이프 사이클이라고 한다! 라이프 사이클은 잘 모르겠다!