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 ] 자바스크립트 배열의 실체: 배열이 아닙니다.
사내 프로젝트로 Admin 페이지의 로그인 기능을 구현하였다.
Node express 기반으로 JWT
를 Cookie로 보내어 세션을 유지하고
비밀번호 인증은 Hash
와 Salt
를 통해 구현하였다.
토이프로젝트 때는 로그인 프론트엔드 쪽만 내가 구현을 했는데 백엔드쪽을 직접 하면서
JWT, Hash, Salt에 대해 다시 공부할 수 있었다.
1. CS 스터디
해당 파트 완독 후 정리
2. Logger 공부(Winston, Morgan)
3. 트랜잭션 공부