개인적으로 원래 공부를 할 때는 을 기준으로 공부하길 좋아한다.

이러한 이유로 뭔가를 배울 때는 레퍼런스 읽거나 책을 보면서 어느 정도 지식을 쌓은 후에 실습을 하며 배운다.

하지만 이런 공부 방법이 개발에도 맞을까?

이러한 이유로 꾸준히 공부를 하려다가도 중간에 잠깐 현타가 오곤 한다. 특히 정리할 때 한 페이지에 한 시간을 정리해도 관련된 걸 다 조사해서 정리하며 읽는다. 언젠가는 그것들이 반드시라고 해도 과언이 아닐 정도로, 컨텍스트가 되어 다른 곳에서 메타 지식으로 쓰일 것을 알기 때문이다.

MVCC가 DB의 동시성 제어에 쓰이지만, 가령 웹 애플리케이션에서 요청에 대한 동시성 제어가 필요할 경우 참고하거나 배운 걸 변형해서 적용하게 된다. PostgreSQL에서 Shared Buffer에서 해시 테이블을 관리하는 것을 보고 자바의 메모리상 캐시 위한 공유 버퍼를 개발할 수도 있겠다.

하지만 시간이 너무 오래 걸린다. 그리고 더 큰 문제는 쓰일지 안 쓰일지 모른다. 쓸지 안 쓸지 모르는 기반 지식을 배우는 것은 가치가 있을까? 마치 고등학교 때 수학 배우는 느낌이다. 중요한 건 알겠는데 배워서 어찌할 바를 모르겠는.

우연찮게 이 포트폴리오를 봤는데, 좀 더 그런 생각이 든다. 개발은 결국 뭐라도 만드는 게 배우는 거 아닐까?라는

하지만 동시에 더 기초적이고 더 로우한 부분의 지식을 배워서 컴퓨팅 사고능력이나 공학적 사고력을 키우고 싶다.

둘을 합쳐서 해보려고 몇 번 시도해 봤지만, 능력의 부족 때문에 뭔가 이도저도 아니게 된 경우가 많다.

연구하는 사람은 아니니 책에 매몰되면 안 되긴 할 거 같지만, 그래도 시작했으니 끝은 봐야지.

그래도 뭔가, 더 실효성 있는 개발 & 공부를 해야 할 거 같은데, 당장 떠오르는 건 시각화다. 내가 배우는 걸 코드로 그릴 수 있다면, 어느 정도 합의점을 찾을 수 있지 않을까? 물론 예전에 js로 시도해봤다가 결국 돔 조작에만 시간 대부분을 쏟아서 이게 책 내용을 배우고 적용하는 건가? 싶어서 그만 뒀지만…

고민이다 고민.