0703_26th Weekly Diary

주형(Jureamer)·2022년 7월 3일
0
post-thumbnail

This Week I Learned


1. [한 권으로 읽는 컴퓨터 구조와 프로그래밍] 7장 정리

7장 데이터 구조와 처리에서 기본구조와 배열부분에 대해서 집중적으로 공부했다.
원시타입은 맨 처음 자바스크립트를 배울 때부터 배운 내용이기에 특별한 내용은 없었지만
그 중에서도 포인터에 대한 개념을 다시 보게 되었다. 직접 메모리 주소를 제어할 수 있는 포인터의 개념은 C언어를 다루거나,
전자공학, 컴퓨터공학을 공부한 사람들은 기본적으로 알고있는 개념이다.

나는 짤로 먼저 접해봤었는데 포인터에 대해 어쩌면 모르거나, 더 나중에 알 게 됐을 부분에 대해 한 번 짚고 넘어갈 수 있는 시간이었다.

또 자바스크립트에서 사용하는 배열은 일반적인 배열(dense array)이 아닌 희소 배열(sparse array)이라는 점도 새롭게 배웠다.

  • 일반적인 배열은 순차적으로 메모리에 저장되기 때문에 index 검색에 특화되어있지만,
    삭제, 삽입의 경우 배열을 재배치 해야하기 때문에 속도가 느리다.
    그리고 넣을 수 있는 자료형을 통일 시켜야한다.

  • 하지만 자바스크립트 배열은 메모리에 순차적으로 저장되지 않는 객체의 형태를 띄어 배열 안에 다양한 자료형을 넣을 수 있다.
    배열은 typeof로 검색할 경우 Object로 나오고, Array.isArray를 통해야만 배열 여부를 판단할 수 있는 건 실수나 우연이 아니었던 것이다.

typeof []
=> 'object'

Array.isArray([])
=> true

console.log(Object.getOwnPropertyDescriptors([1, 2, 3, 4]))
/*
{0: {…}, 1: {…}, 2: {…}, 3: {…}, length: {…}}
0: {value: 1, writable: true, enumerable: true, configurable: true}
1: {value: 2, writable: true, enumerable: true, configurable: true}
2: {value: 3, writable: true, enumerable: true, configurable: true}
3: {value: 4, writable: true, enumerable: true, configurable: true}
length: {value: 4, writable: true, enumerable: false, configurable: false}
[[Prototype]]: Object
*/

[ Javascript ] 자바스크립트 배열의 실체: 배열이 아닙니다.


2. Admin 페이지 로그인 구현 JWT / Hash / Salt

사내 프로젝트로 Admin 페이지의 로그인 기능을 구현하였다.
Node express 기반으로 JWT를 Cookie로 보내어 세션을 유지하고
비밀번호 인증은 HashSalt를 통해 구현하였다.

토이프로젝트 때는 로그인 프론트엔드 쪽만 내가 구현을 했는데 백엔드쪽을 직접 하면서
JWT, Hash, Salt에 대해 다시 공부할 수 있었다.

27th Week Todo List


1. CS 스터디 해당 파트 완독 후 정리
2. Logger 공부(Winston, Morgan)
3. 트랜잭션 공부

profile
작게라도 꾸준히 성장하는게 목표입니다.

0개의 댓글