배워도 배워도 끝이 없네
1. 리액트 네이티브
최근 새로운 미니 프로젝트 아이디어가 떠올라서 이번엔 그냥 리액트가 아니라 리액트 네이티브로 구현해보고 있다. 회사 업무에서 주로 타입스크립트와 Styled component를 쓰고 있어서 개인 프로젝트하면서 여기에 익숙해지면 좋겠다 싶어서 개발환경을 세팅했는데, 제대로 돌아가게 만드느라 컴퓨터를 뿌술뻔했다... 노드 모듈을 수십 번 다시 깔고 엑스포도 계속 재부팅하는데 도대체 뭐가 문제인지 모르겠었는데 한참을 에러랑 싸우고 나서의 결론은 그냥 타입스크립트 컴파일러의 문제였다. 아직 내가 엑스포에 익숙하지 않은 탓일 수도 있는데 엑스포 개발환경은 진짜 똥 같다.... 아무리 리액트 네이티브가 리액트 기반이라지만 그렇다고 러닝 커브가 아예 없는 것도 아닌데 이럴 바엔 그냥 플러터를 새로 공부할까 싶다. 구글에서 아직까지는 플러터를 빵빵 밀어주는 중이고 (언제 킬할지 모르는 일이지만) 점점 점유율도 올라오는 것 같아 보이는 데다 플러터의 기반이 되는 DART 언어가 배우기 그렇게 어렵지 않다는 이야기를 들어서 조금 솔깃하다.
2. Jest & Cypress
요새 나의 가장 큰 고민은 어떻게 하면 좋은 테스팅 코드를 짤 수 있는가이다.. 진행 중인 프로젝트에 이미 짜인 보일러 플레이트 코드들이 많아서 거기서 복붙해온 코드들을 내 프로젝트에 맞게 조금씩 변형해가면서 짜면 되어서 아직은 큰 어려움은 없다. 그치만 만약에 내가 아예 처음부터 테스트를 고민해야 한다면 할 수 있을지 사실 자신이 없다. 어떤 테스트를 해야 하는지를 떠올리는 것도 어렵지만 아직 기본적인 기능을 아직 잘 빠삭하게 모르는 것 같아서 프론트엔드 마스터 사이트에서 테스팅계의 레전드 Kent C. Dodds의 Jest 코스를 듣기 시작했다. (참고로 이 분 블로그에 정말 꿀 같은 정보들이 많다 ( https://kentcdodds.com/ ) 그리고 앞으로 스냅샷 테스팅 툴을 Cypress로 업데이트할 예정이어서 이 툴도 미리미리 공부해둬야 할 것 같다.
3. Rust
요새 개발자들 사이에서 핫한 언어 중 하나를 꼽자면 러스트가 아닐까.. 남편이 하이레벨 언어에만 머무르지 말라고 하도 잔소리를 해서 러스트를 계속 건드려보고 있긴 한데 도대체 이걸 배워서 어따 쓴담..이런 생각이 들어서인지 빠르게 진도가 나가질 않고 있다^_ㅠ 파이썬으로는 데이터 분석, 자바스크립트로는 웹사이트 개발이라는 명확한 목표가 있었는데 러스트는 굳이 내가 왜 써야 하는지 이유를 찾지 못해서 동기부여가 잘 안 된다. 러스트 찬양론자(=남편)에 의하면 C/C++ 수준으로 빠르게 돌아가고, 메모리 관리를 스마트하게 할 수 있으며 컴파일 단계에서 안전하지 않은 메모리 사용을 시도하는 프로그램은 아예 돌아가지 않기 때문에 안정적인 개발이 가능하다는데.. 내가 3D 모델링을 할 것도 아니고 직접 엄청난 대용량 트래픽을 처리할 일이 있는 것도 아닌지라 아직 이걸 배워서 어떻게 활용해야 할지 잘 모르겠다. 지금까지 일단 Rustlings라는 튜토리얼과 Rust를 WebGL에 접목시킨 유튜브 튜토리얼을 시도해봤는데 써보다 보니 약간 타입스크립트랑 비슷한 것 같기도 하다. 어느 정도 문법은 익혔으니 새로 시작한 토이 프로젝트 서버단을 러스트로 짜 보거나 리트코드 Easy 단계 문제들을 러스트로 풀어보면서 더 익숙해져 보다 보면 뭔가 좋은 아이디어가 떠오르지 않으려나 싶다. 앞으로 Go와 경쟁하면서 꽤나 핫해질 것 같으니 나중을 위해 포폴을 꾸준히 만들어봐야겠다.
4. 읽고 있는 책들
1) Operating Systems: Three Easy Pieces
지금이야 어플리케이션에서 작은 부분만 잘 구현하면 되겠지만, 언젠가 내가 시니어로 올라가게 되면 내가 큰 틀을 설계하는 사람이 될 텐데 그러기엔 아직 내가 너무 부족하다는 생각이 든다. 그래서 컴퓨터공학의 기본지식들을 탄탄히 쌓아야겠다는 생각이 들어서 일단 운영체제 공부부터 시작해보기로 했다. 내 코드가 컴퓨터에서 돌아가긴 하지만 이게 어떻게 가능한지에 대한 원리를 모르는 게 답답하기도 하고, 더 빠르고 효율적으로 돌아가게 하려면 어떻게 코드 설계를 최적화해야 하는지 알고 싶기도 하다. 구글링 해보니 이 책이 제일 유명한 것 같은데, 가장 최신판은 유료로 다운 받아야 한다. ($10)
2) Refactoring
랜선코딩쌤 갓엘리님이 주니어에서 미드레벨 사이의 개발자는 꼭 읽어야 한다며 추천해주셨던 책이다. 사실 작년 크리스마스 즈음 사놓고 반 정도 읽다가 쳐박아뒀는데..ㅋㅋ 슬슬 다시 꺼내어 한 챕터씩 읽어보는 중이다. 원래는 예시 코드가 자바로 되어있었다던데 최신 개정판은 자바스크립트로 업데이트되었다. 리팩토링을 적용할 수 있는 예시와 나쁜 코드를 어떻게 깔끔한 디자인으로 바꾸어 나갈수 있는지를 보여주는 예시들이 상세하게 소개되어 있다.
3) Code
컴퓨터가 작동하는 원리를 좀 더 잘 이해하고 싶어서 교양서 느낌으로 골랐던 책이었다. 이진수부터 시작해서 지금의 프로그래밍 언어가 등장하기까지의 역사를 차근차근 설명해주는 내용인데, 가벼운 마음으로 읽기 시작했다 점점 내용이 어려워져서 지금 반 정도 읽고 진도가 안 나가고 있다.. 한글로 읽었다면 좀 더 쉬웠을까ㅠㅠ
다 쓰고 나니 의욕에 넘쳐가지고 이것저것 펼쳐놓기만 하고 정작 진득하니 하나를 파고드는 게 없는 느낌이다..요새 왠지 전공자들에 뒤처지지 않을 만큼의 역량을 쌓아야겠다는 마음만 급해서 괜히 지치는 느낌인데, 일단 펼쳐 놓은 것들 하나하나 수습하다 보면 언젠가 좋은 개발자가 되어있겠지라고 스스로를 다잡아 본다^_ㅠ