또 많이 고민되는 날이었다.
정말 딱 50퍼 50퍼의 비율로 나가서 멘토를 따로 구하는 것이 낫다고 생각이 되었다.
400만원의 가치가... 진짜 너무하는 것 같다.
케어는 전혀 없으면서 무슨 말은 원래 개발 공부는 혼자서 하는 거고 옆에 잘하는 사람 있으니까 물어보라고?
물어볼 사람도 없고, 강의도 ....하 같아서 강의를 다른 곳에서 추가적으로 구매해야할 정도인데.
그래서 만약 내가 나가게 된다면 어떻게 해야하고 무엇을 해야하고, 얻게 되는 것은 무엇일지 생각해봐야겠다.
3주 동안 react에 관해 많이(?) 배울 것: 지금 심지어 이틀만에 redux 들어가게 생겼음.ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ (난 redux의 필요성을 깨닫는 데에만 한달이 걸린 것 같은뎈ㅋㅋㅋㅋㅋ) 과연 깊이 있는 react를 알 수 있을 것 인지....
앞으로 3주 동안 얼마나 널럴할지는 모르겠지만, 조금 앞서나가면 그것을 이용해서 내가 추가적으로 공부해야할 면접 대비 리액트 개념, JS 개념, react redux, 여러 hook, 자료구조 및 알고리즘을 할 수 있을 것인데. 생각해보면 이건 나가서도 할 수 있는거 아님?ㅋㅋㅋㅋㅋㅋㅋ
미니 프로젝트, 클론 프로젝트 하고 나면 또, 프로젝트에 대한 감이 잡히지 않을까 함.: 하지만, 어떻게든 꾸역꾸역 기능 구현하는 게 능사가 아니다. 그건 내 개인 프로젝트할 때 엄청 많이 했지 않은가. 그럼 내가 여기 들어온 이유는 진짜 말 그대로 사람만 만나려고(400을?)
실전 프로젝트: 이게 장점이 될 지는 사실 모르겠다. 사람이 꽤 많이 빠져서, 심지어 리액트도 사람이 많이 없어서 프론트 2명 백엔드 3명이 될텐데... 나랑 진짜 모르는 사람이 된다면? 나 어떻게 해? 내가 가진 실력으로 오롯이 캐리할 수나 있음? 그리고 캐리하라고 팀플 준거임? 협업하라고 준거 아님?
실전 프로젝트 중간 멘토링에서 모르는 사람이 피드백을 준다고 하는데 크게 좋은 것 같지는 않은데.. 협업 프로젝트를 해보면 조금 얘기가 달라지려나?
리액트 개인 프로젝트를 시작. (조금 퀄리티 있는) / 프로젝트를 하는 과정에서 코드리뷰나 피드백을 주기적으로 받을 수 있는 멘토를 구함. / 기능만 휘황찬란한 프로젝트가 아닌, 현업자가 봤을 때 신입인데 이런 것도 신경 썼어? 할만한 코드를 구현하고 설명할 수 있도록 공부한다.
MERN stack 프로젝트 갈아엎기? : 지금 너무 지저분한 상태로 구현만 되어 있고 뭔가 기능 정리도 제대로 되어 있지 않고, 조금 총체적 난국이다. 이걸 개선해서 난 이걸 이렇게 바꿀만큼 개발에 관심이 있고, 계속 발전해 나가는 타입이다 라는 것을 보여주고 싶다.
위에서 했던 것 처럼 똑같이 알고리즘 틈틈히, 면접 대비 개념 정리는 해야한다.
dead line은?? 일단 멘토를 바로 구할 거면, 리액트 개인 프로젝트를 먼저 빨리 끝내는 것이 나을 것 같다. (한 4주 정도 완전 빠짝) 그러고 한 2~3주간 mern 프로젝트 리팩토링
react 강의는 엘리 것으로
포트폴리오 싸이트 구상이랑 처음부터 다시...
290만원 받으면.. 강의 사는 거 뭐 많아봤자 30~40일테고, 이외에 드는 것은 사실 멘토비 밖에 없을 거긴 함. (협업 프로젝트는 조금 포기/1주차 때 했던 거 그냥 협업 했다 정도만 가져가기)
그냥 항해를 한다면... 더 발전할 수 있을까? 잘 모르겠다. 정말.
array1.concat(array2)
로 사용하며 array1 뒤에 array2 배열을 붙이는 메서드이다.
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]
console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]
Array.from() => 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운 Array 객체를 만든다.
DOM과 가상 DOM이 무엇인지 알아보았는데, 가상 DOM이라고해서 무조건 빠른 건 또 아니라고 한다.
따라서, 가상 DOM을 쓰니까 빠른 것!이라고 하는 건 완전히 맞는 말은 아니다.
요새 급부상한다는 svelte, svelte는 가상돔 안쓰는데도 더 빠르다고 하는데, 왜지??
봐보자. 가상 DOM도 어쨌든 JS가 만들어야하는 객체이고, 바뀌었으면 또 시뮬레이션 해야하고, 또 시뮬레이션한 객체를 또 실제 DOM과 비교하는 과정을 거치게 되는 것이다.
딱 봐도 뭔가 복잡하다.
그래서 이런 게 없이 효율적으로 DOM을 조작할 수 있다면 가상 DOM을 쓰는 것 보다 훨씬 빠르다는 것이다.
근데 그럼 React/Vue는 왜 효율적으로 DOM 조작 안하고 가상 DOM 만드는데?
그건 React/Vue는 라이브러리/프레임워크이고, Svelte는 컴파일러니까 그렇다.
React로 만들어진 사이트는 React의 기능을 담은 JS 파일들을 사용해서 동작한다.
그걸로 로드된 React나Vue가 사이트가 실행될 때 코드에 있는 템플릿이랑 데이터들을 읽어서 화면에 잘 나타내주는 것. 이 과정을 브라우저 단에서 효율적으로 하기 위해 만들어진 것이라고 보면 된다.
그러니까 개발자가 작성한 React 전용 코드를 브라우저가 가상 돔으로 해석해서 메모리에서 먼저 구현한 다음 최종적으로 실제 DOM에 적용하는 것이다.
이는 사용자가 실행하는 시점인 런타임에서 일어난다.(브라우저가 JS 파일을 받아서 하는 작업인 것) 이런 런타임이라는 조건 하에, 브라우저에 로드된 라이브러리로 DOM에 가해지는 변화들을 최소한의 변경으로 구현할 방법을 찾는 방식
반면 svelte는 그 과정을 사이트가 배포되기 전에 미리 다 해두는 것이다.
어떻게???
미리 어떤 데이터가 바뀌면 어떻게 바꾼 것을 적용할 것인지를 다 계산해놓고 그것을 빌드해서 내놓는 것이다. svelte는 node.js로 컴파일하는 과정에서 다 이루어진다. 그렇기 때문에 브라우저가 로드된 라이브러리를 사용해서 뭘 할 필요가, 알 필요가 없는 것이다.
따라서 svelte 형식에 맞게 코드를 짜고 이것을 빌드하면 Svelte는 사이트에서 딱 실제로 일어난 일들(특정 이벤트가 들어오면 어떤 것을 어떻게 동작할지)을 컴팩트한 JS 파일로 컴파일해서 내놓는 것 (브라우저가 진짜 DOM을 효율적으로 조작할 수 있도록 친절하게 주는 것.
그러니 브라우저가 라이브러리 등을 지원할 필요가 따로 없는 것임)
그렇다고 만사 형통인가? 그건 또 아닐 것. 왜냐면 미리 컴파일 해서 주는거니까 일단 한계가 있을 것. 아직 오래되지도 않았고. React나 Vue가 워낙 강력한 기능들이 많기 때문에 또..