✍️ 글

주니어 개발자일 때는 몰랐던 7가지 진실들

10년차 개발자가 얘기하는, 주니어 개발자일 때 가지고 있었던 잘못된 믿음들에 대한 이야기.

여러 가지 이야기가 있지만 결국 핵심적인 것은 이상과 현실이 다르다는 점을 인지하는 것 같습니다.

좋은 회사라면 모든 것이 문서화 되어 있고, 테스트도 완벽하고, 많은 동료들과 생산적인 코드 리뷰를 하는 것을 기대하겠지만, 그 무엇보다 중요한 것은 “코드가 동작하고 일이 굴러가게 만드는 것"이니까요.

여담이지만 이 글을 작성한 Monica Lent는 개발자를 위한 블로그 운영법 뉴스레터로도 알려져 있습니다. 블로그 관리에 관심이 있다면 살펴보시는 것도 좋겠네요.

토스에서의 시간을 돌아보며

토스에서 2년 반 동안 근무하면서 조직이 빠르게 커지는 과정에서 조직 문화를 어떻게 유지하고 발전시켜나갔는지에 대한 글.

토스는 사일로라는 작은 팀 단위로 구성되고 각각의 사일로가 각각의 의사결정 권한을 가진 것으로 유명한데, 이것이 조직이 작을 때에는 잘 먹혀들었으나, 조직이 커지면서 다양한 하드 스킬을 가진 사람들이 조직에 들어오면서 개발자들 간의 위계가 생기게되었고, 이를 극복하기 위해서 어떠한 노력들을 했는지를 알 수 있습니다.

Conda에 대한 오해들

데이터 과학 분야에서 사용되는 크로스 플랫폼 패키지 매니저인 conda에 대한 흔한 오해들을 정리한 글.

제가 처음 conda를 접했을 때는 wheel 형식을 통한 파이썬 패키지 배포가 정착되지 않은 상황이어서 Windows 환경에서 패키지 설치에 어려움이 있었고, 또한 Anaconda를 통해서 conda를 처음 접하다보니, conda가 단순히 파이썬에 익숙하지 않은 사람들을 위한 all-in-one 환경이라고 생각했었습니다. 그래서 pip을 잘 쓸 수 있다면 굳이 conda를 쓸 필요가 없다고 여겼습니다.

시간이 지나면서 이제는 conda는 분명히 pip과는 다른 문제를 풀고 싶어했다는 점을 이해하게 되었는데요. (사실 지금도 conda를 애용하는 편은 아니긴 합니다만…) 저와 같이 conda에 대한 오해를 하고 있었다면 한번쯤 읽어보시면 좋을 법한 글입니다.

📌 북마크

Github Actions by Example

간단한 예제와 함께 배우는 Github Actions.

처음으로 Github Actions를 작성하는 사람이 공식 문서를 읽기는 번거로울 때 간단한 치트 시트 용도로 사용하면 좋을 것 같습니다.

⚙️ 소프트웨어 / 프로젝트

Carbon Lang

구글이 C++의 후계자격 언어인 Carbon을 공개했습니다.

Golang과 마찬가지로 구글의 니즈를 충족시키기 위해서 만들었다는 것이 강하게 느껴지는 언어입니다. 퍼포먼스가 중요한 로우레벨 애플리케이션 개발을 하고 싶다면 Rust가 이미 있는게 아닌가? 라고 느낄 수 있지만, 그건 완전히 새로운 애플리케이션을 만들때 할 수 있는 접근법이지, 이미 거대한 C++ 기반의 코드베이스를 가지고 있는 구글이 선택하기에는 아무래도 어려운 방법임이 분명합니다.

그런 점에서 C++과의 호환성을 유지하면서 장기적으로 C++를 대체할 수 있는 언어라는 구글의 니즈에 딱 맞는 언어라고 생각됩니다. (PHP기반의 코드베이스를 가진 Facebook이 Hack을 만든 것과 유사하다고 볼 수 있겠네요.)

이와 관련해서 현재는 Google에서 Emscripten을 개발하고 있고, 이전에는 Mozilla에 있었던 Alon Zakai가 Rust과 Carbon에 대해서 얘기한 스레드를 읽어보시는 것도 좋을 듯 합니다.

Vytal

Chrome의 Debugger API를 사용해서 브라우저의 timezone, locale, geolocation 등을 속여주는 익스텐션.

VPN을 사용하여 특정 사이트에 접속할 시, IP는 변경이 되지만 위와 같은 요소들은 바뀌지 않아 오히려 사이트의 fingerprinting 기법에 걸리기 쉽다고 합니다.

어느 정도 효과가 있는 지는 모르겠지만, 상황에 따라 VPN과 함께 사용하기 좋아보이는 도구입니다.