다짐과 실패와 성공
- 책 <CSS 완벽 가이드> 읽기 → 2장에서 종료
- 내 기대보다 원리 중심은 아닌 듯했다.
- 동아리 <독스클럽>에서 CSS 인사이트 공유하기 → 자동으로 실패
- 사이드 프로젝트 <모바일 CGV 클론 코딩> → 추가 작업 없이 종료
- 계속 우선 순위에서 밀려났다.
- 앱의 좋은 사용성에서 웹에서 이게 되냐며 신기해했었는데, 모바일 웹과 앱의 UI가 다소 다름을 깨닫고 흥미가 크게 떨어진 게 주요했다.
- 공부 <렌더링 파이프라인과 이벤트 루프> → 2주 정도 써서 성공
- VueJS에서 컴포넌트 렌더링 시
nextTick
이후에 바로 scrollTo
를 호출해도 괜찮은가?
- 라는 질문에서 시작한 공부…
- 되게 간단해보이는 질문이지만 실제로 설명하기는 꽤 어려웠고, 실제로 어렵다.
- 물론 이 케이스는
scrollTo
때문에 조금 특수한데, scrollTo
는 reflow를 발생시키기 때문에 DOM Update API가 호출된 후라면 항상 최신값의 offsetHeight
를 가질 것이고 이에 따라 정상적인 scroll 동작이 가능하다.
- 따라서
nextTick.then
에서 scrollTo
를 호출해도 괜찮다.
- 나는 당시
requestAnimationFrame
을 사용했는데, rAF가 .then
보다는 호출 시점이 항상 늦지만 같은 렌더링 틱에서 렌더링이 보장되므로 큰 상관은 없다.
- 물론
then
을 쓰는 게 오해가 없을 것이다.
- 렌더링 파이프라인과 이벤트 루프에 대해 구체적으로 알게 되었다.
- 주요한 개념을 몇 개 짚어보자면 (길어져서 분리함)
- 공부 <ProseMirror> → 최근 들어 며칠 째 공부 중 (진행 중)
- 에디터의 편집 기능을 커스터마이징하는 것에 관심이 많아 왔고 아직도 많다.
- ProseMirror는 에디터의 좋은 설계 덕분에 커스터마이징이 어렵지 않을 것이라 기대한다.
- Guide 문서만 해도 정말 길고 어렵지만 가이드 문서는 다 읽었다.
- 아직 혼자 설명해보면 막히는 부분이 많은데 예제와 커뮤니티 자료, API 레퍼런스를 보면서 익혀나갈 계획이다.
과제
- Vue 과제
- 예상 외로 재밌었다.
- 공식 문서의 가이드 위주로 공부했는데 하루~이틀 정도 걸렸다. 전부 다 보긴 턱 없이 부족한 시간이지만 과제에 필요한 이해를 하는데는 충분했다.
- Vue는 자체 기능을 제공하기 위해 정의한 문법이 정말 많다.
- 그런데 이 문법이 결과적으로 작성하는 코드의 복잡도는 꽤 낮춰준다.
- 대신 내부 동작을 알기는 다소 어렵다.
- 특히 컴파일러까지 있기 때문에 더 어려울 듯하다.
- 템플릿을 쓴다는 이유로 서버 개발자들이나 쓰는 물건 정도로 생각했었지만 실제로 jsx와 별다른 차이는 없었다.
- 무슨 string literal에다 js 코드를 쓰냐며 말이 되냐고 생각했지만 VSCode Extension이 js처럼 다뤄줘서 문제가 없었다.
- React와 비교한다면?
- Vue가 React보다 못할 건 없는 것 같다.
- Vue에는 더 마이너한 동작 원리(Vue 자체의 기능과 문법)을 레버리지해서 코드를 쉽게 작성할 수 있는 강력함이 있다.
- 그래서 대부분의 적당히 복잡한 프로젝트는 Vue가 훨씬 좋은 도구일 수도 있겠다는 생각도 들었다.
- 프레임워크를 깊이 있게 공부할 때, 동작 원리를 배울 때는 React를 선호할 것 같다.
- 자체 문법, 컴파일러에 기반한 아주 강력한 기능이 없어 직접 구현하기 더 쉬울 거라 기대하는 점
- React API가 문제를 선언적으로 해결하려는 점
- React 과제
- 모바일 네비게이션 과제로 인식하고 수행했다.
- 앱 속 웹뷰 개발을 해본 적 없었는데 이런 과제 덕분에 실제로 필요하겠다는 생각이 좀 들었다.
- 당근의 stackflow를 발견하고 요리 조리 써봤다. 설계 문서와 소스 코드는 스포가 될까봐 읽지 않았다.
- 과제가 미리 완성된 여러 페이지를 주고 네비게이션을 구현하라고 했다면 요구사항의 의도를 명확히 전달할 수 있지 않았을까 생각이 든다.
시간
- 데브코스에 온 이후로 이 과정이 나에게 위안이 되면 되었지 어려움을 주었다는 생각이 든 적이 별로 없고 그 점이 아쉽다.
- 이게 좋은 것인지 나쁜 것인지는 시간이 지나봐야 알겠지만 당장은 나를 좀 더 밀어 넣어야 하지 않냐는 생각이 든다.
- 동시에 데브코스가 내가 잡을 수 있는 최선의 기회라는 생각도 든다.
- 그동안 나에게 좋은 기회가 정말 많았는데 내 손으로 떠나보냈었다.
- 그런 걸 생각하면 나는 시간이 좀 더 필요한 사람인 것 같기도 하다.
- 긴 시간이 흘렀음에도 나는 얼마나 성장했는지 분명하지가 않다.
- 원래 성장이 그런 것 같기도 하다.
- 나중에 돌아봐야 아 그 때 성장을 많이 했었지, 좋은 기회였지, 좋은 선택이었지 알게 됐던 것 같다.
- 몇 년 전부터 나는 길게 가면 성공할 것이라 확신해왔지만 내가 너무 나태하고 여유를 부리는 것은 아닌가 꾸준히 걱정을 해왔다.
- 걱정은 아무리 해도 유용하지 않다.
- 이미 당해 본 거라면 또 당하진 않을 것이고, 내가 해보지 못한 거라면 어차피 당할 수 밖에 없기 때문에 걱정으로 어떤 이익을 얻긴 어려울 것이다.
- 부모님께 참 죄송하지만 더 열심히 효도할 이유가 생긴 것 같기도 하다.
굳이 고통을 감내하면서 하는 일
- 나에게 코딩이란, 개발 공부란 굳이 고통을 감내하면서 하는 일이다.
- 돌아볼 때마다 그동안 해왔던 도전들 덕분에 논리력이 자라난다고 느낀다.