All Posts

2020년 2월 회고

2020년도 어느새 3월에 접어들었다. 시간이 참 빠르다. 무언가 명확한 목표 없이 시간이 흘러간다는 생각이 들었다. 그래서 확실하게 목표를 잡고 가시적인 성취를 확인하기 위해 2월 회고와 3월 목표를 설정하고자 한다. 본 회고는 다음과 같은 순서를 따른다.

1. 무엇을 했나
2. 무엇을 익혔나
3. 잘한 점
4. 못한 점
5. 3월 목표

무엇을 했나

Daily

  • 데일리 저널 매일 작성 - 29회
  • 지식 도장 문제 추가 - 책 3권 분량
  • 매일 코딩 도장 - 11회

포스팅

스터디

  • 매주 목요일 함수형 코틀린 스터디 참석
  • 개발자 책모임 참가
  • 달랩 코딩 도장 참가
  • 이태원 코딩 도장 진행
  • 이태원 지식 도장 스터디 진행

읽은 책

  • 함수형 코틀린 완
  • 그림으로 배우는 네트워크 구조 완
  • 하루 3분 네트워크 교실 완
  • 그림으로 배우는 HTTP & Network Basic 2회차 완
  • 웹을 지탱하는 기술 2회차 완
  • 코어 자바스크립트 완
  • Kotlin in Action 3,5,8장
  • 어떻게 공부할 것인가 1,2,3장
  • 울트라러닝 1장

기타

무엇을 익혔나

Kotlin

함수형 코틀린 스터디를 하면서 사실 함수형보다는 오히려 코틀린을 제대로 쓰는 법을 익혔다. 아직 한참 멀었지만 JVM 자체에 대한 이해도가 조금은 좋아졌다. 언어가 작동하는 환경과 철학에 대한 정확한 이해가 필요함을 느꼈다.

Python

문제 풀이에 파이썬만큼 표현력과 효율이 좋은 언어가 없기에 파이썬을 4년 만에 다시 꺼내들었다. 확실히 예전에 생각 없이 코딩을 하던 때보단 훨씬 좋은 코드를 만들어낼 수 있었다. 심지어 그땐 파이썬을 파이썬답게 쓰는 게 뭔지도 모른 채 휘갈겨 치던 때라 그저 지금 봐도 놀라운 코드다. 앞으로 매일 꾸준히 파이썬 수련을 해볼 생각이다. 떠오른 생각을 그대로 코드로 옮기는 훈련엔 파이썬이 최고인 듯.

Problem Solving

  1. 더 좋은 표현력, 가독성, 효율성은 결국 더 좋은 문제 풀이 전략에서 나온다. 같은 전략 안에서 표현력, 가독성, 효율성을 개선하는 건 명확한 한계가 있으며 코딩 테크닉으론 극복 불가능한 면이 있다. 즉, 문제 풀이를 위한 전략 자체가 사람의 언어로 심플하게 표현되지 않으면 프로그램 코드 자체도 표현력이 좋을 수 없다.
  2. 근데 문제 풀이가 심플해졌다고 해서 반드시 코드도 심플해지는 건 아니다. A, B라는 풀이 방식이 있을 때 B가 좀 더 간략하고 표현력이 좋은 풀이라고 생각했지만 이는 언어마다 사정이 다를 수 있다. Kotlin에선 when을 이용한 B방식이 깔끔할 수 있지만 when을 지원하지 않는 JavaScript는 오히려 A방식이 가독성이나 표현력이 좋을 수 있다. 또한 같은 B방식이라도 반드시 함수형이 표현력이 좋은 건 아니다. Python처럼 FP 지원이 미비한 경우 오히려 명령형으로 푸는 게 더 깔끔하다. 파이썬 언어 자체가 기본적으로 표현력이 매우 우수하기 때문에 굳이 FP를 고집할 필욘 없다고 본다. FP를 사용했던 이유가 표현력과 가독성 때문이라면 더더욱. 결국, 항상 코드를 짤 때 언어가 지원하는 기능과 언어의 특성, 철학 등을 고려해야 한다. 절대적으로 효율적인 방식은 존재하지 않으며 언어마다 사정이 다를 수 있다. 이는 문제풀이 뿐만 아니라 실제 프로덕션 코드를 짤 때도 마찬가지일 것이다. 그래서 우리는 언어 철학에 대한 정확한 이해를 바탕으로 코드를 짜야한다.

Coroutine & 비동기 & 동시성

코틀린 코루틴은 그 자체로 고유명사로 기존의 코루틴과는 다른 개념이다. 어쨌든 코루틴을 힘들게 공부하면서 비동기와 동시성에 대한 이해가 예전보단 조금은 좋아졌다. 계속 비동기 코드를 짜면서 실전적 훈련이 필요함을 느낀다. 일단 자유롭게 쓸 수 있어야 이해한 것.

우린 공부하는 방법을 잊었다

맹대표님과의 스터디에서 외워서 자유자재로 쓰지 못한다면 모두 공부하는 척이었음을 느꼈고, 앞으로의 학습 방향은 철저한 암기를 위주로 할 예정이다. 중고등학교 때까진 미친 듯이 암기하고 필기하고 정리하고 악착같이 외워서 시험장에 갔는데 왜 성인이 되어선 겉멋으로 공부만 하는가? 그냥 공부하는 법을 까먹은 것이다.

어떻게 공부할 것인가에서 배운 지침대로 시험을 자주 봐서 실제로 내 머릿속의 지식이 장기기억에 남았는지를 주기적을 체크할 것이다. 그를 위해서 지식 도장을 시작했다. 자동화 및 플랫폼으로의 발전은 앞으로 고민해야될 부분이다.

잘한 점

  • 데일리 저널을 하루도 빼먹지 않고 썼다.
  • 스터디에 지각하지 않고 나름 열심히 준비해서 참여했다.
  • 학습에 대한 깨달음을 얻고 새로운 방향 설정을 하게 됐다.
  • 일단 더 미루지 않고 일단 파이썬을 시작했다. 역시 일단 시작하면 숙련도는 늘어간다.
  • 매일 스터디를 진행했고 매일 지식 도장 문제를 추가했다. 문제를 만드는 나 자신이 가장 공부를 많이하게 됐다.
  • 코로나19 때문에 손을 자주 씻었더니 오히려 2월엔 감기에 걸려서 눕질 않았다. 최근에 한 달에 한 번은 꼭 앓아누웠었는데 역시 손을 잘 씻어야겠다.

못한 점

  • 2월은 매일 코딩 도장을 빼먹은 날이 꽤 많았다. 몇몇 문제에 붙잡혀서 (어떻게든 함수형으로 풀어보려던 시도 등) 시간이 지체되어 중간에 며칠은 의욕을 상실한 적도 좀 있다.
  • 목표로 잡은 할 일이 계속 미뤄진 것들이 많았다. 이 부분은 개선이 계속 필요할 듯. 학습에 관한 책을 매일 한 챕터씩 읽어야 되는데 자꾸 우선순위에서 밀렸다.
  • 스터디 5, 6회차 회고를 계속 미뤄서 점점 기억에서 희미해진다. 서둘러서 복기를 해야겠다. 미루지 말자. 미루면 영원히 안 한다.
  • 뭔가 확 숙련도가 오른 부분이 무엇인지 모호하다. 이는 목표가 명확하지 않은 채 매일 실천하는 것에만 너무 중점을 뒀기 때문인 듯.

3월 목표

  • 컴퓨터의 이해, 자료구조, 알고리즘와 같은 CS기초 스터디를 계속 진행한다.
  • 습득한 지식은 점검을 위해 모두 지식 도장에 문제로 추가한다.
  • HTML, CSS에 대한 숙련도를 쌓고 위키 문서로 정리한다.
  • 리액트로 개인 사이트를 개설한다.
  • 어떻게 공부할 것인가, 울트라러닝을 읽고 학습에 대한 실천 지침을 설정한다.
  • 데일리 저널을 매일 작성한다.
  • 매일 아침 8시 전에 데일리 저널을 발행한다.
  • 블로그에 데일리 저널 개설한다.
  • 매일 코딩 도장으로 파이썬, 코틀린, JavaScript 수련을 매일한다.
  • 함수형 코틀린 5, 6회차 회고를 발행한다.
  • 원펀맨 프로젝트 - 매일 유산소, 근력, 몸풀기, 명상
  • 감기에 걸려서 앓아눕지 않는다.