📚요약
지난 시간까지 JS의 전반적인 내용을 훑어봤습니다. 이번 시간부터는 이창현 강사님의 강의를 들으면서 프로그래밍의 기본 원리부터 시작해 타입스크립트를 활용한 리액트를 배워보겠습니다.
📖프로그래밍의 기본 원리
프로그래밍의 기본 원리를 알아야 문제가 생겼을 때 어디서 문제가 생긴 것인지를 쉽게 이해하고 파악할 수 있습니다.
📄컴파일 언어
JS는 인터프리터 언어인데 왜 갑자기 컴파일 언어냐?라고 한다면 앞으로 배워야 할 TS가 컴파일 언어이기 때문입니다. 컴파일 언어란 한 줄씩 읽어가는 인터프리터와 달리 소스코드 전체를 컴퓨터가 이해할 수 있도록 기계어로 변환하고 실행됩니다. 그렇기에 번역하는 과정에서 시간이 걸릴 수 있지만 번역해 두면 런타임에서는 빠르게 실행할 수 있습니다.
📄변수와 자료형
📑변수 사용 이유
변수는 필요한 값을 저장해 두기 위해서 사용됩니다. 이때 실질적으로 값이 저장된 메모리의 주소를 외우기 힘들기 때문에 변수라는 이름을 지어서 편리하게 기억하기 위해서 사용됩니다.
📑메모리 영역
간단하게 변수가 저장되는 메모리 구조를 보고 넘어가겠습니다.
- 코드 : 사용자 작성 함수
- 데이터 : 전역변수, static 변수
- 힙 : 프로그래머가 자유롭게 사용하는 공간
- 스택 : 지역변수, 매개변수 등
📑원시타입, 참조타입
스택 영역에 값이 저장되고 그 값을 주소를 통해 불러가는 원시 타입과 실제 값은 힙 영역에 저장되고 힙의 주소를 값으로 가진 참조 타입이 있습니다.
| 스택 영역 | 힙 영역 | |||
| 주소 | 값 | 주소 | 값 | |
| 원시 타입 | 0x01 | 10 | ||
| 참조 타입 | 0x10 | 0x100 | 0x100 | [1,2,3] |
📑가비지 컬렉터
가바지 컬렉터는 사용되지 않는 쓸모없는 메모리들을 정리해 주는 기능입니다. 예를 들어 변수 a에 10의 값 할당했다가 20의 값을 할당하게 되면 처음 할당된 주소의 값이 변하는 것이 아닌 새로운 주소에 값을 할당하게 됩니다. 그러면 기존 10의 값을 가지고 있는 메모리 부분이 낭비될 수 있는데 이를 정리해 주는 기능입니다.
📑자료형
JS의 경우 자료형을 사용하지는 않지만 자료형을 사용하게 되면 해당 데이터가 메모리에 얼마나 공간을 할당할 것인지를 알게 됩니다. 자료형을 사용하게 되면 메모리 공간이 낭비되지 않을 수 있다는 장점이 있습니다.
📄상수
상수는 변수와 달리 변하지 않는 값을 의미합니다. 변수와 비교해서 설명드리겠습니다.
📑변수와 상수의 차이
- 값의 재할당 여부 : 변수는 재할당이 가능하지만 상수는 재할당이 불가능합니다.
- 선언 시 초기화 여부 : 변수는 선언 시 초기화를 해도 되고 안 해도 되지만, 상수는 필수적으로 선언과 동시에 초기화가 필요합니다.
📄사용자로부터 데이터 입력받기
C언어에서는 데이터를 입력받기 위해서 scanf를 사용하는데 이때 단순하게 변수에 입력된 값을 저장하는 것이 아니고 &를 사용해서 변수의 주소에 값을 저장합니다. 다른 언어에서 &를 사용하지 않을 수 있지만, 같은 원리로 동작되고 있습니다.
❔▪❓
Q. C언어를 배워본 입장이라 현재 강의가 이해가 되고 TS를 배우기 전에 배우는 것이 도움이 된다고 생각하지만 모든 것을 C언어 입장에서 배워야 할까라는 의문이 들었다.
다음 시간에 계속...
출처 & 참고
이창현 강사님의 강의
프로세스 메모리 구조, 장장스, 2024.06.11
'개발 > 프로그래머스 데브코스' 카테고리의 다른 글
| 데브코스 스터디(알고리즘, 코테) 14회차 (0) | 2024.06.13 |
|---|---|
| 프로그래머스 데브코스 49일차 with. TS 웹 풀스택 (0) | 2024.06.12 |
| 프로그래머스 데브코스 47일차 with. TS 웹 풀스택 (0) | 2024.06.11 |
| 프로그래머스 데브코스 10주차 회고 with. TS 웹 풀스택 (0) | 2024.06.10 |
| 프로그래머스 데브코스 46일차 with. TS 웹 풀스택 (0) | 2024.06.10 |