0.과제를 진행해서 강의부분은 생략되었으며
과제는 클론코딩느낌이지만 공개여부에 대한 허락을 받지 않은 상황이라
과제를 진행하며 학습한 내용들에 대해서는 작성하지 않았다.
1.HTTP 헤더 필드는 [일반적 헤더 필드, 리퀘스트 헤더 필드, 리스폰스 헤더 필드, 엔티티 헤더 필드] 4종류로 분류된다.
2.HTTP/1.1에는 47개의 헤더 필드가 있는데
어떤 헤더 필드가 있는지를 인식하는 것 만으로도
뭘 할 수 있고 나중에 문제가 생겼을 때 확인할 정보를 떠올릴 수 있기 때문에 헤더 필드의 전반적인 내용을 인지하는 것이 중요하다.
3.end-to-end 헤더와 hop-by-hop 헤더가 있는데
end-to-end 헤더는 캐시에서 보존해야 하며 다시 전송하도록 하지만
hop-by-hop 헤더는 한번의 전송만 허용해 캐시, 프록시에 의해 전송되지 않는다.
이는 중요 정보 및 업데이트를 계속 반영해야 하는 경우 등이 있는 것 같은데 아래 8개의 헤더를 제외한 나머지는 모두 end-to-end 헤더에 속한다.
Connection
Keep-Alive
Proxy-Authorization
TE
Trailer
Proxy-Authenticate
Upgrade
Transfer-Encoding
4.Cache-Control을 통해 재검증, age값, 보존여부, 타입변환여부, 캐시에서 리소스 취득, 특정 유저만 사용가능, 캐시 사용불가, 재확인 요청여부, 유효성 재확인 요구등 여러가지가 존재한다.
5.이분 탐색(Binary Search)은 O(logN)이라는 압도적인 시간복잡도를 가지고 있지만 정렬되어 있는 데이터에만 적용할 수 있다는 단점이 있으며 비교 가능해야 한다는 조건도 가지고 있다.
up-down이라는 게임을 하는 것 처럼 중간지점을 잡아 위, 아래로 이동하며 범위를 반씩 좁혀나가는 방식을 사용한다.
(1).백준 2720 세탁소 사장 동혁은 전형적인 그리디 알고리즘 문제로
고정된 단위로 거스름돈을 각자 몇개씩 제공해야 하는지를 묻는 문제였다.
큰 단위의 동전부터 제하며 내려가는 방식으로 진행했으며
여러명의 손님이 있기 때문에 for문으로 각자의 처리를 끝낸 다음
result에 push해 각 손님마다의 출력값을 저장한 다음
result.join('\n')을 통해 줄바꿈으로 출력했다.
let input = `3
124
25
194`.split('\n').map(Number)
let result = []
let coin = [25,10,5,1]
for(let i = 1 ; i < input.length ; i++){
let arr = []
let left = input[i]
for(let j = 0 ; j < 4 ; j++){
arr.push(Math.floor(left/coin[j]))
left %= coin[j]
}
result.push(arr.join(' '))
}
console.log(result.join('\n'))
'회고' 카테고리의 다른 글
[취업준비일지] - 11 (0) | 2022.10.31 |
---|---|
[취업준비일지] - 10 (0) | 2022.10.30 |
[취업준비일지] - 8 (0) | 2022.10.28 |
[취업준비일지] - 7 (0) | 2022.10.27 |
[취업준비일지] - 6 (0) | 2022.10.26 |