2022/07(3)
-
[JS] 실행 컨텍스트
실행 컨텍스트 실행한 코드에 제공하기 위한 환경 정보를 모아놓은 객체입니다. 자바스크립트 엔진은 코드를 실행하기 전 모든 코드를 훑어서 환경정보를 수집합니다. 콜스텍에 전역 컨텍스트가 담기고 그 위로 실행 컨텍스트가 쌓아 올라갑니다. 실행컨텍스트를 구성할 수 있는 방법은 함수를 실행하는 것입니다. 위에 있는 컨텍스트를 콜스텍에서 꺼내면서 컨텍스트와 관련된 코드들을 실행하며 코드의 환경과 순서를 보장합니다. 가장 먼저 전역 컨텍스트를 콜스텍에 담으며 함수를 만나게 되면 그 함수의 컨텍스트를 생성하고 콜스택에 담습니다. 이후 맨 위의 컨텍스트에 해당하는 코드들을 순차적으로 실행합니다. 실행컨텍스트에 담기는 정보 VariableEnvironment: 환경레코드 (snapshot) outerEnvironment..
2022.07.31 -
[JS] 원시타입과 참조타입의 차이
자바스크립트의 데이터 타입은 크게 두 가지로 나눠집니다. "원시타입" 과 "참조타입" 구분이 되는 기준은 "참조의 유무"로 나눈다고 알고 있었지만 "원시타입"이 참조를 안하는 것은 아니였습니다. 좀더 원리를 알아보고 차이를 정리를 해보려고 합니다. 0. 배경지식 하나의 메모리 조각은 bit 라고 합니다. 그리고 1bit는 0,1 두가지의 값을 나타낼 수 있습니다. 각 비트들은 "고유한 식별자" 를 통해서 위치 확인이 가능합니다. 8개의 bit를 묶어서 byte라고 합니다. byte 단위의 식별자, "메모리 주소값"을 통해서 모든 데이터를 연결하고 구분이 진행됩니다. 변수는 '변할수 있는 데이터' ,식별자는 "변수명" 즉, 변할수 있는 데이터인 변수의 이름은 식별자입니다. 원시타입과 참조타입은 변수가 할당..
2022.07.16 -
1일 1커밋 챌린지 후기
1월부터 개발자를 목표로 1일 1커밋 챌린지를 하기로 했다. 매일 배웠던 것을 정리하기도 하고 프로그래머스 문제 풀이도 하고 매번 커밋을 하면서 만족감이 있었다. 물론 하기 싫은 날도 있었고 효용성에 의문을 가지는 날도 많았다. 그래도 6개월이란 기간을 거쳐가면 진행했다. 하지만 지금까지 6개월 어떻게 보면 1년 6개월(SSAFY 포함)의 결과로 1일 1커밋을 놔줘도 된다고 느끼게 되었다. 대표적인 이유를 2가지를 들 수 있을 것 같다. 1. 억지로 하는 학습은 좋지 않다. 학습을 지속적으로 하는 것은 좋다. 하지만 필요성을 느끼고 하는 것이 더 중요하다 지금 회고를 해보면 억지로 커밋을 했던 것들은 기억에 잘 남지 않았다. 오히려 그럴 땐 커밋에 매달리기보다 휴식을 하는 게 올바른 방식이라고 생각된다...
2022.07.03