깊이있는 공부가 중요한것인가 빠르게 개념만 훑고 넘어간 다음에 나중에 천천히 이해하는게 중요한것인가 라는 고민을 최근에 자주하기 시작했다.
원래는 빠르고 넓고 얕게 이해하는게 목표였는데, 최근 그 한계지점에 닿은 듯한 느낌이 들었다.
프론트엔드 공부를 하다보니 새로운 라이브러리, 새로운 프레임워크 모두 다 결국 JS를 기반으로 사용하게 되어있다.
결국엔 JS의 깊이가 중요하다는 생각에 도달했고, 기존에 안다고 착각했던 것들을 다시 정리하고 갈 타이밍이라는 생각을 했다.
어찌되었든, 결론은 열심히 하자 그거밖에 떠오르지 않는다.
오늘 코피 났으니 열심히 하고 있는걸지도?
JS에서 원시형의 메모리 할당은 다음 과정을 거친다.
let str1 = "string"
let str2 = str1
str1 = "string2"
console.log(str1,str2) // string2 string
- 변수
str1
에 대한 메모리 할당- 데이터
"string"
에 대한 메모리 할당str1
이"string"
메모리를 참조- 변수
str2
에 대한 메모리 할당str2
가str1
와 같은"string"
메모리를 참조- 새로운 데이터
"string2"
에 대한 메모리 할당str1
이"string"
에 대한 참조를 멈추고,"string2"
에대한 메모리를 참조str2
는 여전히"string"
에대한 메모리를 참조
하지만 Object형의 메모리 할당은 조금 다르다
let arr1 = [0,1,2,3,4]
let arr2 = arr1
arr1[0] = 34
console.log(arr1, arr2) // [34,1,2,3,4] [34,1,2,3,4]
- 변수
arr1
에 대한 메모리 할당- 인덱스
arr[0]
,arr[1]
...arr[4]
에 대한 메모리 할당- 변수
arr1
이 인덱스arr[0]
~arr[4]
까지의 메모리를 참조- 데이터
0
,1
, ...4
에 대한 메모리 할당arr1[0]
이 데이터0
에 대한 메모리 참조 ...arr[4]
가 데이터4
에 대한 메모리 참조- 변수
arr2
에 대한 메모리 할당- 변수
arr2
가arr1
과 같은 인덱스arr[0]
~arr[4]
까지의 메모리를 참조- 데이터
34
에 대한 메모리 할당arr[0]
이 데이터0
에대한 참조를 그만하고, 데이터34
의 메모리를 참조arr2
는arr[0]
을 참조하고 있으므로,arr1
===
arr2
사실 답은없는것같습니다
두가지 학습방법 모두 필요하기때문이지요 ㅠㅠ
빠르고 넓고 얇게 이해하되, "자주 사용할수밖에 없는 것"들은 깊게 이해하시는 방식으로 가시는게 좋겠습니다
이런것들을 구분하는건 결국 프로젝트를 하면서 필요한것들을 찾아보면서 나뉘게 되는것 같고, 구현하면서 더 깊게 이해하게 되는것 같아요
모쪼록 건강도 유의하시면서 화이팅입니다!