42s_hoTechCourse코스를 진행하면서 잘못 알고 있던 생각들이 깨지고 생각이 확장되는 것을 느낍니다.
알아야 할 것들이 많다는 것을 느끼고 한편으로는 "이렇게 하니까 되네? 안되네?" 라고 하는 것들이
기술의 실체를 알아가면서 하나 둘 깨져 갈 것이라는 것에 즐거움을 느낍니다.
if
처음부터 한국식 교육처럼 원리를 하나부터 열까지 알고 시작하라고 알려주셨다면!!
지금과 같이 생각이 깨지고 확장되는 것을 느끼지 못했을 것이라고 생각합니다.
문제가 발생하면 구글링을 통해 고생 끝에 답을 찾아내지만
stackoverflow가 모두 보라색이 되고도 결국 답의 이유를 몰랐던 나날들!!!
그래서 결국 답을 도출하기 위한 근원에 대한 궁금증이 생기게 되는 멘토링 방식이었습니다.
아래의 글을 바탕으로 브라우저의 작동방식을 알 수 있었습니다.
브라우저는 어떻게 동작하는가?의 자료를 바탕으로 생각을 덧 붙여 확장 해가는 과정들입니다.
브라우저의 주요 구성 요소
자세히 살펴 볼 것은 렌더링 엔진, 자바스크립트 해석기, 자료저장소, 통신입니다.
왜냐하면 웹 프로그래밍을 진행 하다보면 위의 요소들을 밀접하게 연관 되기 때문입니다.
💡 브라우저가 어떻게 HTMl, CSS로 화면을 그리는지 확인 했습니다.
이를 통해 React, Vue가 Virtual Dom으로 render 횟수를 줄여서 최적화 하려는 것을 알 수 있었습니다.
👉 script 파일이 아래에 위치한 이유는?
💡 V8을 기반으로 Node.js가 만들어졌다는 것을 알았습니다.
이를 통해 자바스크립트로만 할 수 없었던 일을 C++를 활용해서 한계를 넘을 수 있다는 것을 알았습니다.
💡 세션, 쿠키를 통한 로그인 등 브라우저의 스토리지를 활용 할 수 있는 방안이 있다는 것을 알았습니다.
Nakim의 생각
👉 브라우저는 자바스크립트를 실행하는 런타임 뿐만 웹 API, 스토리지 등을 통해 브라우저에서 웹 애플리케이션이 작동하도록 여러기능들이 작동하도록 되어있다.
html, css이 정확히 뭔지 몰라서 TCP school에서 개념을 보고 시작했습니다.
HTML, CSS의 정의
무턱대고 클론 코딩을 하는것은 지양하지만 시작은 예제를 활용하는게 좋은 방법이라고 생각합니다.
그럼에도 불구하고 굉장히 오래 시간이 걸렸습니다. 보고 치는데도 틀리는 마술.....
위의 스크린샷을 보면 어디서 딱 아실 수도? 맞다 노마드코더입니다.
덕분에 4일에 걸쳐 Html, Css를 완성 할 수 있었습니다. 그리고 react-native경험 덕분인지
html, css를 하면서 동적으로 어느부분의 html를 변경 해야 할지 감이 와서 매우 좋았습니다.
Nakim의 생각
👉 위의 브라우저 파트에서 알아봤듯 Dom트리 노드의 위치 뿐만 아니라 CSS의 영향을 받아서 렌더링 순서가 바꾸게 된다고 것을 경험 해 볼 수 있는 좋은 기회였습니다. 태그의 위치에 굉장히 주의 해야 하는것을 인지하게 되었습니다.
그리고 저와 프론트엔드 성향이 맞지 않는 다는 것을 알게 되었습니다.
MDN JavaScript 자습서를 보고 학습했습니다.
javascript 정의
1. 싱글 쓰레드
2. 자바스크립트 런타임
Nakim의 생각
👉 자바스크립트의 싱글 쓰레드 단점을 극복 할 수 있는 브라우저의 기능이 있어서 비동기로 처리 할 수 있음을 알 수 있었습니다.
스택에 느린 코드를 쌓아서 브라우저가 할일을 못하게 만들지 말아야 합니다. 그러한 것들을 WebApi를 통해 처리하고 이벤트 루프를 통해 콜스택에 올려야 한다는 것 입니다.
내가 Angular 선택하지 않은 이유
내가 Vue를 선택하지 않은 이유
Vue, React 공통의 장점
결국 Vue가 아닌, React를 선택한 이유
Virtual Dom
Virtual Dom트리와 diff 프로세싱 방법 (오라일리 learning-react-native 출처)
Nakim의 생각
👉 React에 UI의 원하는 상태를 알려주고 Virtual Dom을 통해 상태와 일치 하는지 확인하여 처리합니다. 이것은 이벤트처리, Dom 조작이 어떻게 발생 하는지 신경쓰지 않고 코딩 하면 된다는 것 입니다.
사용자가 사용하기 편하게 고수준의 추상화 되어있는 것들을 활용해서 코딩하게 됩니다.
그래서 "이렇게 하니까 되네" 답만 찾다가 시간 다 보내고 재미도 없었습니다.
본질에 대해 조금이라도 알게 된다면 "아 이래서 이랬구나" 재미를 느낄 수 있었습니다.
이제 대략 큰 그림을 보았으니 HoTechCourse-05부터는 실질적으로 React, Spring을 활용해서
애플리케이션을 만들면서 겪는 우당탕탕 프로젝트를 시작 하도록 하겠습니다!
드디어 만들 생각을 하니 두근두근하네요!!
그럼 다음 시리즈에서 ~ Bye Bye