✍️ 글

Logging in Python like a PRO

로깅을 “잘"하는 방법.

프로덕트가 커지면 커질수록 중요해지지만 혼자 작은 프로젝트를 개발할 때는 귀찮아서 잘 안 하게 되는게 로깅인데요. 그러다보니 어떻게 해야 로깅을 “잘"할 수 있는 가에 대해서는 평소에 고민을 안하게 되는 것 같습니다. 이 글에서는 로그가 갖춰야 하는 요건을 다음의 세 가지로 설명합니다.

  • Descriptive
  • Contextual
  • Reactive

Descriptive는 로그가 충분한 정보를 주어야 한다는 것. Contextual 로그가 발생한 상황(특히 에러)에 대한 내용을 알 수 있어야 한다는 것. 그리고 Reactive는 로그를 보고 고민하지 않고 즉각적으로 대응할 수 있도록 필요한 내용을 담아야한다는 것인데요.

로깅을 할 때 이러한 세 가지 요건이 잘 충족되고 있는지를 생각하면서 코드를 작성하면 좋을 것 같습니다.

2년간 VR 글래스를 업무용으로 활용한 후기

2019년부터 VR 글래스를 이용해서 매일 8시간씩 업무를 했던 사람의 후기 글.

오큘러스 퀘스트2와 업무용 소프트웨어인 immersed를 사용했다고 하는데요. 큰 화면과 몰입감 덕에 VR 글래스를 사용하지 않았을 때보다 생산성이 높았다고 합니다.

최근 VR 글래스 사용 후기를 들어보면 몰입감과는 별개로 무겁고 땀이 차고 어지러운 부분 때문에 장시간 사용이 어렵다는 얘기가 많은데, 그와 상반되는 의견이라 경청해볼 가치가 있는 것 같습니다.

딥러닝 가속기가 이끄는 반도체 시장의 미래

원문은 성균관대 권석준 교수님의 페이스북 글.

딥러닝을 이용한 인공지능 연구가 폭발적으로 발전하면서, 딥러닝에 필요한 병렬 연산에 특화된 GPU 시장도 엄청나게 커졌습니다. 다만 GPU의 연산 특성이 딥러닝과 아다리(?)가 맞았을 뿐, 엄밀하게 따지면 GPU가 딥러닝에 특화된 하드웨어는 아닌데요. 이제는 구글의 TPU, 엔비디아의 NPU와 DPU, 또는 FPGU를 활용하는 방식까지 딥러닝을 더 효율적으로 할 수 있는 하드웨어 아키텍쳐에 대한 연구가 활성화되는 것 같습니다.

My Logging Best Practices

효과적인 로깅을 위한 팁.

  • 이벤트가 발생한 후에 로깅: 이벤트가 발생한 후에 로그를 기록해야 어디까지 작업이 제대로 수행되었는지 알 수 있음
  • 메시지와 파라미터 분리: 메시지와 파라미터를 구분해야 로그를 파싱하기 수월함
  • WARNING과 ERROR 레벨 구분: WARNING은 작업이 수행되었지만 뭔가 잘못되었을 때 (예상될 수 있는 문제), ERROR는 작업이 수행되지 못했을 때 (예상하지 못한 문제)
  • INFO와 DEBUG 레벨 구분: INFO에는 비즈니스 로직에 대한 정보를 담고, DEBUG에는 테크니컬한 정보를 담을 것

빌트인으로 배우는 파이썬

파이썬 빌트인 키워드를 통해서 파이썬이 동작하는지를 알려주는 글.

아예 파이썬을 처음 접하는 사람들보다는 파이썬을 평소에 사용하던 사람들을 대상으로 쓰여진 글입니다. 대부분의 빌트인 키워드를 나열하면서 설명하는 식으로 되어있어 가볍게 슥슥 읽어보기 좋습니다.

📰 기술 뉴스

Python 3.10 Release

파이썬 3.10이 공식 릴리즈되었습니다.

이번 버전의 가장 큰 특징은 패턴 매칭 문법의 도입입니다. 파이썬 패턴 매칭 도입은 여러 가지 말이 많은 사항이라, 얼마나 널리 쓰일 지는 지켜봐야 할 것 같습니다.

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

Dropbox Capture

드롭박스에서 회의용 사진 및 영상 공유 프로그램인 Capture를 공개했습니다.

컴퓨터 화면에 웹캠으로 촬영한 영상을 함께 녹화하여 보낼 수 있는 등, 전체적으로 비즈니스나 교육용으로 사용하기에 특화된 소프트웨어로 보이는데요.

기존에는 윈도우 환경에서 영상 촬영을 위해 ShareX를 사용하고 있었는데, Capture가 대체재가 되어줄 수 있을 지 지켜봐야할 것 같습니다.

📙 책 / 강의 / 영상

Software at Scale

Substack으로 발간되는 소프트웨어 팟캐스트.

현업에서 대규모 소프트웨어를 개발하는 유명한 개발자들을 초청해서 얘기를 나누는데, Sentry의 CTO, Dropbox의 전 CTO, 파이썬 창시자 Guido 등 게스트의 면면이 꽤 화려합니다. 대규모 빅 테크 기업에서 어떤 문제에 관심을 가지고 어떤 식으로 개발이 이루어지는 지를 알고 싶다면 청취해볼만 합니다.

Understanding AWK

간단한 예제로 배우는 AWK.

AWK 문법은 언뜻 봤을 때 비직관적인 부분이 있어서, 개인적으로는 문자열 파싱이 필요할 때는 굳이 쓰지 않고 간단한 파이썬 스크립트를 사용하는 것을 선호했는데요.

이 글에서는 AWK 문법이 아주 간단하면서 효과적으로 문자열을 파싱할 수 있다는 것을 알려줍니다.

JavaScript: The First 20 Years

자바스크립트의 아버지 브랜든 아이크가 직접 정리한 자바스크립트의 역사.

처음 자바의 보조 언어로 시작한 자바스크립트가 어떻게 인기를 얻게 되었으며, 다양한 브라우저 회사들과 이해관계자들 사이에서 어떻게 발전해왔는지를 알려주는 책입니다.

본문 기준 130페이지 정도로 두껍지 않지만 시간순으로 장황하게 이어지는 이야기라, 자바스크립트에 조예가 깊지 않다면 아주 술술 읽히는 느낌은 아닙니다.

그래도 자바스크립트의 역사를 공부하고 싶다면 이만한 책이 없는 것 같네요.

개인적으로 제일 흥미로웠던 부분은 자바스크립트 표준인 ECMAScript의 이름을 정했던 부분인데, Sun측에서 JavaScript라는 상표권을 내어주지 않으면서 누구도 만족하지 못한 (그리고 많은 혼란을 야기한) ECMAScript가 표준 명칭이 되었다는 내용입니다.

VS Code의 아버지가 말하는 VS Code의 역사

Visual Studio Code개발을 지휘한 Erich Gamma가 VS Code Day에서 키노트로 발표한 영상.

초기에 마이크로소프트의 작은 프로젝트팀에서 시작한 웹 기반의 Monaco 에디터가 어떻게 인기를 얻고, Electron 기반으로 피봇팅하여 많은 개발자들에게 사랑받는 VS Code 에디터가 되었는지를 알 수 있는 영상입니다.

VS Code의 핵심적인 성공 요인인 익스텐션 지원, 리모트 개발 환경 지원 등이 어떻게 발전해왔는지를 개발자의 입으로 직접 들을 수 있는데요. 개인적으로 재미있었던 내용은 “컨퍼런스 주도 개발"을 했다고 하는 부분입니다. 다음 컨퍼런스때까지 이런 기능을 만들어서 발표하겠다는 식으로 개발을 했다고 하네요.