1.react-avatar에서 Avatar를 import해 사용하면 편하게 아바타용 이미지를 관리할 수 있다.


2.mongodb에 post를 할 때 timestamps 값을 true로 넣어주면 생성, 수정시간이 등록된다.


3.시간을 직접 수정해주는 과정을 거치지 않고 편하게 보려면 moment라는 라이브러리를 사용하는 것이 좋다.

npm i moment로 설치한 다음  foramt dates를 확인해 원하는 출력 형태를 이용할 수 있다. 
import moment from "moment"만으로 해결되는 것이 아니라
import "moment/locale/ko"로 한국어 설정도 추가해야 원활하게 사용할 수 있다.


4.db에서 정렬하는 기준을 넣을 때 sordt.createdAt = -1을 넣으면 부정적 의미 같은데 최신순으로 정렬하라는 의미이고 sort.repleNum = -1을 넣으면 인기 없는 순일 것 같지만 인기있는 순서로 정렬하라는 의미이다..

프론트로만 작업을 했었기 때문에 받아서 처리하는 것에 익숙했는데
서버측에서 작업을 수행해 넘겨주는 방식은 신선하다.


5.HTTPS에서 문제점은 서버에서 제공하는 공개키 자체를 중간에 탈취당한 뒤 변조된 공개키가 올 경우 신뢰할 수 없게된다는 점이 있기 때문에 이를 인증하기 위한 증명서가 필요하다.

이 시점까지 왔다면 드디어 https에서 나오는 증명서들과 신뢰할 수 있는 페이지등을 보고 왜 이런 인증서들이 있는지에 대해 이해할 수 있는 기반이 된다.

공개키를 안전하게 주고받을 수 있는 방법조차도 없기 때문에 대표적인 인증기관들의 공개키는 브라우저에 내장되어있다.

일반적인 https의 소통에는 다음과 같은 절차로 진행된다고 볼 수 있다.

 1.서버가 "서버의 공개키"를 인증기관에 등록요청 전송
 2.인증 기관은 "인증 기관의 비밀키"를 통해 "서버의 공개키" 증명서를 작성
 3.서버가 "인증기관에서 인증받은" "서버의 공개키"를 클라이언트에게 전송
 4.클라이언트가 서버에서 받은 "서버의 공개키"를 브라우저에 내장된 "인증 기관의 공개키"를 사용해 검증
 5.클라이언트가 "서버의 공개키"를 사용해 보낼 메세지를 암호화 해서 전송
 6.서버는 클라이언트에서 보낸 "서버의 공개키"로 암호화된 메세지를 "서버의 비밀키"를 통해 복호화
 7.연속적 소통이 필요 한 경우 서버측에 "공통키"전송
 8.서버는 클라이언트에서 받은 "공통키"를 통해 내용을 암호화한 다음 클라이언트로 전송
 9.클라이언트는 "공통키"로 암호화된 메세지를 복호화하며 "공통키"를 이용해 반복적 소통
 10.용건이 종료되면 연결 종료(추가 연결시 다시 7번부터 시작되며 그 인증은 1~6번에서 진행된 인증서의 인증으로 신뢰할 수 있다.)


 

6.HTTPS에서 증명서만 있다고 신뢰할 수 없는 가장 큰 이유는
신뢰할 수 있는 인증 기관이 아니라고 하더라도 
SSL 암호화가 있다면 HTTPS로 표기되는데 
HTTPS는 현재 소통하고 있는 서버와의 안전한 통로를 구축했다는 보장일 뿐
그 대상이 내가 원하는 대상인지에 대한 보장은 받을 수 없기 때문에
신뢰할 수 있는 인증기관의 인증이 있어야만 상대방을 신뢰해야 한다.


7.cpu에는 연산장치, 제어장치, 레지스터가 존재하는데 각각의 기능은 아래와 같다.

-연산장치는 산술, 논리연산을 수행하며 레지스터와 소통한다.
-제어장치는 명령어를 순차적으로 제어하기 위한 장치로 주기억장치에서 명령어를 받아 해독한 다음 기억장치, 연산장치, 입출력장치로 전달해 동작을 제어한다.
-레지스터는 명령어 주소, 코드, 연산에 필요한 데이터, 결과 등을 임시로 저장한다.




8.레지스터도 특수목적으로 사용될 경우 이름이 다른데 MAR(메모리 주소 레지스터), PC(프로그램 카운터), IR(명령어 레지스터), MBR(메모리 버퍼 레지스터), AC(누산기) 등이 있다.





(1).백준 2959 거북이는 거북이가 떠올린 4개의 양의 정수를 이동횟수로 정해 90도씩 꺾은 다음 만들 수 있는 가장 직사각형의 면적을 출력하는 문제였다.
가로 및 세로에서 가장 짧은 길이를 기준으로 곱해야 하기 때문에
길이를 기준으로 1~4등 중 2,4등을 곱한 결과물로 만들어야 했다.

let input = `4 4 3 4`.split(' ').map(Number).sort((a,b) => a-b)
console.log(input[0]*input[2])

 

'회고' 카테고리의 다른 글

[취업준비일지] - 20  (0) 2022.11.09
[취업준비일지] - 19  (0) 2022.11.08
[취업준비일지] - 17  (1) 2022.11.06
[취업준비일지] - 16  (0) 2022.11.05
[취업준비일지] - 15  (0) 2022.11.04

+ Recent posts