생각보다 시간이 빠르다랄까..
이제 항해 2주차, 일별로 하면 7일차에 접어든 날이다. 이렇게 십 여번의 시간을 보내면 99일이 지나간다는 생각과 함께, 남은 시간을 내 나름대로 어떻게 알차게 보내야, 나중에 의미있는 시간으로 기억이 되지 않을까 생각이 든다.
생각보다 늦은 시간이 되고, 이 개발일지도 제출 마감기한이 있고 생각보다 시간이 빡빡한지라.. 요약을 해서 정리하고자 한다.
이번 2주차에 포커스한 내용들
사전에 Javascript를 바쁘게 들어놓았는데, 항해99에서 고안된 진도 속도보다 생각보다 빠르게 진행되었다. 하루 12시간 이상, 9 to 9으로 강의를 들으면 해당 강좌는 어쩌면 이틀 혹은 삼일만에 수강 완료가 가능한데, 항해99에서 그렇게 번개불에 콩 구워먹기 같은 진도를 나아가는 방식을 생각하지는 않은 것 같다는 생각이 들었다.
사실 강의를 수강완료한다고 해서 그 내용이 전부 내 것이 되는 것은 아니다. 강의 영상 속 튜터님이 핵심 요소를 중점으로 설명하고 나머지 코드를 설명하지 않을 경우가 때때로 있고(아마 그 부분까지 이해하려면 초보자 입장에선 과부화가 올 수도 있기 때문이 아닐까 싶다).. 막상 나 나름대로 백지에서 배운 코드를 작성하라고 하면, 어쩔 줄 모르는 것이 현실이기 때문이다.
이번 주는 Javascript문법 종합반 3 ~ 5주차를 복습했는데, 처음으로 수강했을 때 보다 머릿속에 더 많은 내용이 들어왔다는 것을 느꼈다. 아마, 내가 그 짧은 시간 안에 그 만큼 성장을 하고 배운 것이 아닐까 라는 뿌듯함과 함께, 배운 내용을 짧게 요약을 하고자 한다.
도대체 This가 뭐야?
초등학교 시절 영어 문법을 배울 때 this 그리고 that을 배웠던 것이 기억이 난다..
this는 가까운 '이것', that은 좀 거리가 있는 물체인 '저것'을 가르키는 거라고 한다더라,
사실 항해99에 합류하기 전에 조잡한 게임을 하나 만들어서 발매를 했는데, 거기에서 강의 내용을 어거지로 따라 만들면서 this를 사용한 적이 있다. 코드를 요약을 하면 아마 이런 식으로 되어 있던 것으로 기억한다.
public class Objects(){
constructor(asset_0, asset_1, asset_2){
this.asset_0 = asset_0;
this.asset_1 = asset_1;
this.asset_2 = asset_2;
}
}
강의 3주차에서는 this가 어디를 바라보는지에 대해서 배웠는데, 일단 내용에 따르면, this는 처음에는 전역객체(브라우저 환경에서는 window, 노드 환경에서는 global)을 바라보고, 이후 콜 스택이 쌓이면서 바로 이전 스택에 있던 객체를 바라본다는 것을 중점으로 학습을 하였다.
하지만, this가 무엇을 바라보는지 그 내용에 대한 암기를 하더라도, 진작 this가 어디에서 사용이 되는 지는 3주차에 배우지는 못하였는데, 아마 거기서 내용이 더 들어가면 어려워서 그러지 않아서 그럴까 짐작을 해본다. 그래도 this가 이전 스택에 있는 것을 바라본다는 것은 어쩌면 콜 스택에서 '이전 객체'와 '이후 객체'가 서로 소통하는 창구로 쓰이는 것이 아닌가 내 나름대로 생각을 해 봤는데, 아직까지는 그러한 내용이 내 머릿속에 들어오진 않아서, 앞으로 배울 내용에 대해 기대하고 있는 중이다.
class와 instance에 대해서..
5주차에 들어서면서 class에 대해 배웠는데, 중점은 class와 instance에 대한 내용이었지만, this에 대해 본격적으로 활용하게 되면서, 내 머릿속에는 이에 대해 차츰차츰 감이 생기게 되었다. constructor라는 생성자 함수 내에 항목 하나 하나를 보면서 생각을 하였는데,
this.asset = asset;
먼저, 코딩에서 이러한 '=' 등호가 붙은 식은, 우측에 있는 '내용'을 좌측에 있는 항목에 '할당' 한다는 것을 의미한다는 것을 아는 만큼, 나 나름대로 그러한 방식으로 예상을 해 보았다(생각이지 실제로는 나도 잘 모른다..).
this.asset은 아마 해당 class에 있는 일종의 고유의 무언가를 의미하는 듯 한다. 이를 외부에 있는 asset을 가져와 그 고유의 무언가에 할당을 한다는 것인데.. 이렇게 할당을 한 후에 instance를 생성을 하면 이해가 좀 더 되지 않을까 싶다.
const character = new Object("나이", "성별", "이름");
방금 instance를 생성했다. 해당 instance는 나이, 성별, 이름이라는 값을 지니고 있는데, 이는 위에 class에서 이미 짜낸 방식을 따르는 것이다. 다만, 해당 instance를 만들면서 당연 class부분의 코드가 작동하였다는 것은 당연히 예측이 되고, 외부로부터 온 나이.. 등의 값들이, this.asset으로 설정된 부분으로 설정이 된다는 것을 알 수 있다.
ES5/ES6...
본래 브라우저에서 사용되는 곳에 한정되었던 Javascript는 진화를 거듭해와 여러 분야에서 써오는 언어라고 할 수 있다. 이러한 진화는 Javascript가 새로운 버전?이 공개되면서 새로운 기능이 추가된 것을 알 수 있는데, 가장 최신 버전이라 할 수 있는 ES6에서 사용이 가능한 것이 위에 적어놓은 class이다.
사실 class에 대해 이제 막 배운지라, class가 왜 없었는지, 없으면 기존 환경에서 어떤 방식으로 코드를 구현해 놓았었는지, class가 추가됨으로서 어떠한 이점이 생기게 되었는지 감은 없다. 그래도 계속 배우면서 알게 되지 않을까 기대감과 함께 다음 주 항해도 계속되지 않을까 생각이 든다.
'개발일지' 카테고리의 다른 글
| 항해99 5주차 개발일지 (1) | 2024.01.07 |
|---|---|
| 항해99 4주차 개발일지 (1) | 2024.01.01 |
| 항해99 3주차 개발일지 (0) | 2023.12.24 |
| 항해99 3일차 개발일지 (0) | 2023.12.13 |
| 항해 99 첫 개발일지 (1) | 2023.12.10 |