[GN#263] 15년 전의 나에게 해주고 싶은 프로그래밍 조언과 떠날 때를 아는 방법

2024-07-15 ~ 2024-07-21 사이의 주요 뉴스들

15년 전의 나에게 해줄 말을 하나 고르라면 "NVIDIA 주식을 사라"가 정답일지도 모르겠습니다만, 프로그래머로서 예전의 자신에게 해줄 말은 어떤 게 있을까요? 효율적인 체스 오프닝 도우미인 Chessbook 서비스를 만드는 Marcus Buffet이 "15년 전의 나에게 해주고 싶은 프로그래밍 조언"을 정리해서 옮겨봤습니다. 반복적인 실수를 방지하는 방법을 고민하고, 품질과 속도 사이에서 적절한 균형을 찾고, 개발 도구를 능숙하게 다루게 준비하고, 버그에 대해서 더 깊이 이해하고 히스토리를 파악하며, 팀원들에게 질문하고, 빠르게 자주 배포하도록 해야 한다고 이야기하는데요. 개발자라면 한번 찬찬히 읽어보시고, 개발 직군이 아니더라도 개발자를 이해하는 데 도움이 되는 글입니다.

약 40년간의 프로그래머 생활을 마치고 은퇴한 Andrew Wulf가 "떠날 때를 아는 방법"이란 글을 올려서 많은 분이 공감해 주셨습니다. 2021년 63세였던 그는 능력이 떨어져서가 아니라 1년간의 고민 끝에 더 이상 하고 싶지 않다는 것을 깨닫고, 은퇴 후 새로운 길을 찾았는데요. 아직은 우리 주변에서 프로그래머로서 오래 근무하다 은퇴한 사람들을 만나기가 힘들기 때문에, 그 과정에서 고민한 것들은 많은 도움이 됩니다. 물론 그는 아직도 은퇴 전보다 더 많은 코드를 작성하며, 남들이 하지 않는 것들을 만들기 때문에 더 즐겁다고 합니다. 중간에 이런 대목이 있어요. "앞으로도 계속 일할 수 있을 만큼 최신 기술을 따라가고 있는지 스스로에게 물어보고 솔직해질 것. 일이 여전히 흥미로운지, 아니면 하고 싶은 다른 일이 있는지 생각해 봐야 함. 프로그래밍이 재미없거나 더 이상 도전적이지 않을 수 있음." 여러분은 어떠신가요?

Notion이 요즘 자체 블로그에 좋은 글들을 많이 올리고 있습니다. "Notion이 급격한 성장에 맞춰 데이터 레이크를 구축하고 확장한 방법", "Notion이 WASM SQLite로 브라우저에서의 속도를 향상시킨 방법" 두 개의 글이 매우 흥미로워서 옮겨봤으니 참고하세요. Notion 블로그에는 일부 글들은 한국어로도 올라오는 것 같은데 더 많은 글이 번역되어서 올라오면 좋겠네요.

Feedback : 긱뉴스 위클리 어떻게 읽고 계신가요? 의견과 제안 부탁드려요

Show GN - 직접 만드신 오픈소스나, 재직중인 스타트업의 제품/서비스를 소개해주세요.

Ask GN - 다양한 질문을 올려주세요.


매주 월요일 아침, 지난 일주일간의 GeekNews 중 엄선한 뉴스들을 이메일로 보내드립니다.


  • 15년 전의 나에게 해주고 싶은 프로그래밍 조언
    • 계속 발에 총을 쏘고 있다면, 총을 고치세요
    • 품질과 속도 사이의 균형 맞추기
    • 톱을 갈고 있는 시간은 거의 항상 가치가 있음
    • 어려움을 쉽게 설명할 수 없다면, 그것은 아마도 우발적 복잡성일 것이고, 이 문제는 해결할 가치가 있음
    • 버그를 한 층 더 깊이 해결하려고 노력하기
    • 버그 조사를 위해 히스토리를 파고드는 것의 가치를 과소평가하지 말 것
    • 나쁜 코드는 피드백을 주지만, 완벽한 코드는 그렇지 않음. 나쁜 코드를 작성하는 쪽으로 오류를 범할 것
    • 디버깅을 쉽게 만들기
    • 팀에서 일할 때는 항상 질문하기
    • 배포 주기가 매우 중요함. 빠르고 자주 배포할 수 있는 방법을 신중히 고민해야 함
  • 떠날 때를 아는 방법

    모든 사람은 언젠가는 평생 해왔던 일을 더 이상 할 수 없게 되는 시점에 도달하며, 은퇴뿐만 아니라 그 이전에도 언제든 일어날 수 있습니다. 기술의 빠른 발전 속도에 맞춰 지속적인 학습과 도전이 필요하며, 일에 대한 열정을 잃었을 때는 환경을 바꾸는 것도 고려해볼 만합니다. 나이와 능력은 상관없으며, 경력보다 일에서 얻는 가치와 보람을 중시하세요. 당신의 경력은 당신 것입니다. 항상 최선을 다해야 하며 끝내는 것도 당신 몫입니다.

  • Exo - 가정용 기기들로 나만의 AI 클러스터 운영하기

    기존의 아이폰, 아이패드, 안드로이드 등 다양한 가정용 기기를 하나의 강력한 AI 클러스터로 통합하여 하나의 GPU로 활용할 수 있게 해줍니다. 자동 장치 발견, 동적 모델 분할 등의 기능을 통해 단일 장치보다 더 큰 규모의 모델을 실행할 수 있으며, ChatGPT 호환 API를 제공하여 쉽게 모델을 실행할 수 있습니다.

  • Notion이 급격한 성장에 맞춰 데이터 레이크를 구축하고 확장한 방법

    Notion은 지난 3년 동안 데이터가 10배 증가함에 따라 데이터 레이크를 구축하여 급격한 성장을 관리했습니다. 이 데이터 레이크는 Postgres에서 Kafka와 S3로 데이터를 수집하고, Apache Hudi와 Spark를 사용해 데이터를 처리하여 AI 및 기타 제품 요구 사항을 지원합니다. 이를 통해 Notion은 데이터 수집 시간을 크게 단축하고, 2022년에만 100만 달러 이상의 비용 절감 효과를 달성했습니다.

  • Notion이 WASM SQLite로 브라우저에서의 속도를 향상시킨 방법

    Notion은 WebAssembly(WASM)와 SQLite를 사용하여 브라우저에서 성능을 20% 향상시켰으며, 특히 인터넷 연결이 느린 사용자에게 큰 개선을 보였습니다. OPFS와 Web Workers를 활용한 기술적 접근 방식과 SharedWorker 기반 아키텍처를 통해 여러 탭에서의 동시성 문제를 해결한 과정을 설명합니다. 또한, 성능 저하 문제를 완화하고 안정성을 확보한 방법을 다루며, 최종적으로 브라우저에서의 데이터 캐싱이 성공적으로 구현된 사례를 공유합니다.

  • 구글은 이제 기본적으로 당신의 콘텐츠를 인덱싱하지 않는다

    최근의 사례를 통해서 구글이 더 이상 모든 웹 콘텐츠를 인덱싱하지 않고 매우 선택적으로 인덱싱하는 방식을 채택한 것 같다는 질문을 던지는 글입니다. 글쓴이는 사람이 작성한 텍스트와 구별할 수 없는 AI 생성 콘텐츠가 등장하면서 구글이 이런 방식을 취했을 것이라고 주장하며, 이를 통해서 콘텐츠의 독창성, 브랜드 인지도 등이 더욱 더 중요해 졌다고 이야기 합니다. 구글이 종합 검색 엔진에서 배타적인 카탈로그와 유사한 것으로 변모했을 때, 콘텐츠 제작자들은 어떻게 자신의 가시성을 확보할 수 있을까요?

  • 자발적 이탈을 개선해 리텐션을 높이는 6가지 전략

    고객 유지율을 높이기 위해 자발적 이탈을 줄이는 6가지 전략을 소개합니다. 고객 이탈의 주요 원인 분석, 타이밍에 주의하기, 클릭 한 번으로 자동 갱신을 다시 켜는 영구적인 옵션 제공, 할인 제공, 구독 일시 중지 옵션 제공, 구독 취소 시 잃게 될 것을 보여주기 등을 통해 고객의 재참여를 유도하는 방법을 다룹니다.

  • Dropbase - AI 프롬프트 기반 Python 웹앱 빌더

    AI를 활용해 웹 앱 개발 및 프로토타이핑 속도를 높여주는 도구로 백오피스,대시보드, 내부관리자용 도구등의 앱을 신속하게 구축할 수 있습니다. 기존 로우코드/노코드 도구의 한계를 극복하고, 개발자가 생성된 코드를 검증 및 수정할 수 있어 효율적입니다. 무료 버전은 Docker로 셀프 디플로이가 가능합니다.

  • git-pr - 새로운 git 협업 서비스

    가장 단순한 git 협업 도구 제작을 목표로, 메일링 리스트와 pull request 워크플로우를 결합하여 패치 생성처럼 간단하면서도 pull request의 사용 편의성을 갖춘 협업 도구입니다. 로컬 개발 환경 중심의 워크플로를 제공하면서도 외부 기여자와 협업할 수 있는 매우 단순한 자체 호스팅 git 솔루션입니다. SSH를 활용하여 대부분의 상호작용을 처리하고, 알림은 RSS로 이루어져 단순한 파일 웹 서버를 통해 호스팅할 수 있습니다.

  • 노션이 AI 기능을 개발하는 방법 (라이너스 리)

    Notion AI팀 리드인 라이너스 리의 경험과 팀의 성장 과정을 통해 AI 제품의 품질을 높이는 방법을 배울 수 있습니다. 노션의 AI 기능 개발 프로세스, 데이터 수집과 평가, AI 제품 피드백 및 평가 방법, AI 제품 개발의 핵심 요소, AI 제품 개발 시 주의할 점 등을 이야기 합니다.

  • SCALE - AMD GPU에서 수정 없이 CUDA 실행

    SCALE은 CUDA 애플리케이션을 수정 없이 AMD GPU에서 네이티브로 실행할 수 있게 해주는 툴킷입니다. NVIDIA CUDA와 완전히 호환되도록 설계되어 여러 GPU 벤더를 지원하는 데 유리하며, 개발자들이 기존 코드를 그대로 사용할 수 있어 효율적입니다. 또한, 다양한 오픈 소스 프로젝트에서 성공적으로 테스트되었으며, 지속적인 업데이트와 지원을 통해 더욱 발전할 예정입니다.

  • NVIDIA, 오픈소스 Linux GPU 커널 모듈로 완전 전환

    NVIDIA가 리눅스 GPU 커널 모듈을 오픈 소스로 전환하면서 사용자와 개발자는 드라이버 문제를 더 쉽게 디버깅하고 해결할 수 있게 되었습니다. 이 전환은 HPC, AI, 기계 학습 등 다양한 분야에서 더 많은 유연성과 투명성을 제공하며, 특히 기업 환경에서 보안과 안정성에 대한 우려를 해소하는 데 도움이 됩니다. GPU 컴퓨팅 분야에서의 경쟁을 심화시켜 혁신을 가속화할 것으로 기대됩니다.

  • Mistral AI, 새로운 언어 모델 Codestral Mamba 공개

    코드 생성에 특화된 Mamba 언어 모델로 트랜스포머 모델과 달리 선형 시간 추론과 이론적으로 무한한 길이의 시퀀스를 모델링할 수 있는 능력을 제공합니다. 벤치마크 결과 7B 모델에서는 Codestral Mamba (7B)가 기존 CodeGemma-1.1 7B, CodeLlama 7B, DeepSeek v1.5 7B 등보다 뛰어나거나 거의 동등한 능력을 보여줍니다.

  • cel-rust - Rust로 작성된 Common Expression Language 인터프리터

    Rust로 구현된 CEL 파서와 인터프리터는 가볍고 빠르며 안전하고 커스터마이징이 가능합니다. CEL은 구글이 개발한 단순하고 이식성이 뛰어난 표현식 언어로, 다양한 프로그래밍 언어와 유사한 문법을 가지고 있습니다. 특히 리소스 집약적인 스크립팅 언어 대신 가벼운 표현식 평가가 필요할 때 이상적인 선택입니다.

  • gpu.cpp - WebGPU 기반 경량 GPU 컴퓨팅 라이브러리

    gpu.cpp는 C++에서 간단하게 범용 GPU 컴퓨팅을 가능하게 하는 경량 라이브러리로, 다양한 GPU에서 동작 가능한 코드를 작성할 수 있게 해줍니다. 이 라이브러리는 최소한의 API와 빠른 개발 반복을 목표로 하여, 개인용 기기에서의 광범위한 GPU 컴퓨팅을 보다 쉽게 만듭니다. 또한, GPU 알고리듬 개발, 신경망 모델 구현, 물리 시뮬레이션 등 다양한 분야에 활용될 수 있습니다.

  • OpenAI, 가장 비용 효율적인 작은 모델 GPT-4o mini 공개

    GPT-4o mini는 GPT-3.5 Turbo보다 60% 이상 저렴한 비용으로 높은 성능을 제공하여 AI 애플리케이션 구축 비용을 크게 절감할 수 있습니다. 낮은 비용과 지연 시간으로 다양한 작업에 적합하며, 여러 모델 호출을 연결하거나 병렬화하는 애플리케이션이나 특히 고객 지원 챗봇과 같은 실시간 텍스트 응답 애플리케이션에 유용합니다. 텍스트 인텔리전스와 멀티모달 추론 모두에서 GPT-3.5 Turbo 및 기타 소형 모델을 능가하며,
    GPT-4o와 동일한 언어 범위를 지원합니다.

  • 우리 삶의 물건들 (1983)

    Steve Jobs는 1983년 Aspen 국제 디자인 컨퍼런스에서 컴퓨터가 우리의 삶과 문화를 어떻게 변화시킬지 예측하며, 디자인의 중요성을 강조했습니다. 그는 컴퓨터가 단순한 기능적 도구를 넘어 인간의 창의성과 상상력을 확장시키는 매개체가 되어야 한다고 주장했습니다. 또한, 기술 혁신이 점진적이고 누적적인 과정임을 강조하며, 사회적 책임을 다하는 기술 기업의 중요성을 역설했습니다. "우리는 컴퓨터에 인문학적인 요소를 주입하는 문제를 해결하고 있습니다." "우리는 어떤 이상한 이유로 우리가 무언가를 되돌려줄 수 있는 올바른 장소에 올바른 시간에 있다고 느낍니다." 원문에 약 55분 가량의 발표 영상도 링크되어 있습니다.

  • Korvus - RAG 파이프라인을 쿼리 하나로 통합하는 검색 SDK 오픈소스

    Korvus는 오픈소스 RAG 파이프라인을 단일 쿼리로 통합하여 성능을 극대화하고 검색 아키텍처를 간소화합니다. Postgres 기반으로 구축되어 다양한 프로그래밍 언어를 지원하며, 복잡한 서비스 지향 아키텍처를 단순화하고 API 호출과 데이터 이동을 제거하여 빠른 처리와 안정성을 제공합니다. Python, JavaScript, Rust 등 다양한 언어를 지원하며, 임베딩 생성, 벡터 검색, 재순위화, 텍스트 생성을 하나의 쿼리로 통합합니다.

  • Posting - 터미널용 HTTP API 클라이언트

    Posting은 Textual로 개발된 TUI 어플리케이션으로 터미널에서 HTTP API를 효율적으로 테스트할 수 있게 해줍니다. Vim 키 지원, 구문 강조, 자동 완성 등 기존 GUI 도구와 비슷한 기능을 제공합니다. 모든 Request는 간단한 YAML 파일로 저장되어 읽기 쉽고 버전 관리가 용이하고, OpenAPI 스펙을 가져오는 기능도 제공합니다.

  • Google Docs, Markdown 가져오기 및 내보내기 지원

    Google Docs가 이제 Markdown을 가져오고 내보내는 기능을 확장하여 다른 Markdown 도구와의 상호 운용성이 향상되었습니다. Docs 콘텐츠를 Markdown으로 변환하거나 Markdown을 Docs로 변환할 수 있으며, 붙여넣기/복사하기 시에도 가능합니다. 모든 Google Workspace 고객과 개인 사용자에게 제공되며, 2024년 7월 16일부터 점진적으로 롤아웃됩니다.

  • Shapeshift - 벡터 임베딩을 활용한 JSON 객체 변환 라이브러리

    Shapeshift는 벡터 임베딩을 활용하여 JSON 객체를 유연하고 지능적으로 변환할 수 있는 TypeScript 라이브러리입니다. 의미적 유사성을 사용하여 객체 간의 키를 일치시키고 중첩 구조를 지원합니다. 또한 Cohere, OpenAI, Voyage 등 다양한 임베딩 공급자를 이용할 수 있으며, 임베딩 모델과 유사성 임계값을 커스터마이징할 수 있습니다.

  • AWS님들, 저 다시 클라우드 엔지니어가 되게 해주세요

    AWS가 지나치게 Generative AI(GenAI)에 집중하면서 기존의 핵심 인프라와 개발자 지원을 소홀히 하고 있다는 점을 지적합니다. GenAI만으로는 기존 비즈니스의 가치를 대체할 수 없으며, AWS가 과거에 지원했던 비즈니스와 제품을 여전히 중요하게 여겨야 한다고 주장합니다. 개발자들이 더 나은 애플리케이션을 구축할 수 있도록 성능, 신뢰성, 비용 효율성 등 인프라의 기본을 교육해 줄 것을 촉구합니다.

  • 스토리 포인트는 무의미 합니다, 큐를 측정하세요

    Fractional의 CTO인 Barry Jones는 스토리 포인트는 신뢰할 수 없고 혼란을 야기하며, 정확한 추정을 위해서는 큐를 측정하는 것이 더 효과적이라고 주장합니다. 큐 측정은 단기 및 장기 추정 문제를 해결하고, 불확실성을 제거하며, 대규모 팀에게 더 가치 있는 연습을 제공합니다. 또한, 큐는 속도나 사이클 시간 관련 메트릭보다 20배 빠르게 문제를 예측하는 선행 지표를 제공하여 프로젝트 관리에 유리합니다.

  • Andrej Karpathy, AI+교육 회사 EurekaLabs를 창업

    OpenAI를 떠나 어디로 갈지 관심을 받던 Andrej Karpathy가 AI+교육회사를 창업했습니다. Eureka Labs는 AI와 교육을 결합하여 누구나 쉽게 배울 수 있는, 혁신적인 학습 경험을 제공하는 회사로, AI 교육 어시스턴트의 지원을 통해 학생들에게 최적화된 교육을 제공합니다. 첫 제품인 LLM101n은 학생들이 자신만의 AI를 훈련시키는 과정을 포함하며, 온라인과 오프라인 그룹 학습을 통해 다양한 학습 환경을 제공합니다.

  • 애플, 리젝했던 iOS용 UTM SE앱(PC 에뮬레이터) 승인

    애플이 드디어 PC Emulator를 승인했습니다. UTM SE 앱을 통해 iOS, iPadOS, visionOS에서 Windows, Mac OS 9, Linux용 클래식 소프트웨어와 올드스쿨 게임을 실행할 수 있습니다. 기존엔 코드에 포함된 JIT 때문에 리젝되었는데, AltStore 팀과 개발자가 JIT-less 빌드에 QEMU TCTI를 구현하여 등록이 가능해졌습니다. 앱 내부에는 가상 머신을 포함하지 않지만, 웹사이트에서 다양한 운영체제를 다운로드하고 새로운 VM을 생성할 수 있도록 도와줍니다.

  • 이제 YouTube에서 자신의 얼굴이나 목소리를 모방한 AI 생성 콘텐츠의 삭제를 요청가능

    유튜브가 이제 자신의 얼굴이나 목소리를 모방한 AI 생성 콘텐츠의 제거를 요청할 수 있는 정책을 도입했습니다. 콘텐츠가 반드시 제거되는 것은 아니며, 유튜브는 여러 요인을 고려해 판단을 내립니다. 또한, 콘텐츠 업로더에게는 48시간의 대응 시간이 주어지며, AI 사용은 허용되지만 커뮤니티 가이드라인을 준수해야 합니다.

  • Devzat – 개발자들을 위한 SSH 채팅 서버

    Devzat은 모든 플랫폼에서 SSH 앱을 통해 접속 가능한 채팅 서버로, Slack 및 Discord와 통합할 수 있어 다양한 커뮤니케이션 옵션을 제공합니다. Markdown 지원, 코드 구문 강조, 시간대 설정 등 개발자들에게 유용한 기능들을 제공하며, 내장된 틱택토와 행맨 게임으로 재미 요소도 갖추고 있습니다. 다양한 명령어를 통해 사용자 경험을 극대화할 수 있어 개발자들이 효율적으로 소통하고 협업할 수 있는 환경을 제공합니다.

  • Magic CLI - 커맨드라인을 위한 CoPilot

    Magic CLI는 커맨드라인 사용을 효율적으로 만들어주는 도구로, 명령어 추천과 명령 기록 검색 기능을 제공합니다. Amazon Q와 GitHub Copilot for CLI에서 영감을 받아 개발했고, 사용자가 원하는 작업을 수행하기 위한 명령어를 생성하고 추천해주며 ollama와 openai를 지원하여 다양한 상황에서 유용하게 사용할 수 있습니다.

  • 구글 단축주소(goo.gl)이 2025년 8월부터 작동하지 않습니다

    구글은 2025년 8월부터 goo.gl 단축주소의 작동을 완전히 중단할 예정입니다. 2024년 8월부터는 goo.gl 링크를 클릭할 때 경고 페이지가 나타나며, 이는 302 리디렉션을 사용하는 경우 문제를 일으킬 수 있습니다. 기존 링크에 쿼리 매개변수 'si=1'을 추가하면 중간 페이지를 억제할 수 있습니다. 구글 무덤에 또 하나 추가되었군요.

  • Anthropic, 안드로이드용 Claude 앱 공개

    Anthropic의 Claude 앱이 안드로이드용으로도 공개 되었습니다. 이제 웹, iOS 및 Android에서 AI와의 대화를 이어나갈 수 있는 멀티 플랫폼 지원을 제공합니다. 또한, 사진을 찍거나 올려서 실시간 이미지 분석이 가능한 비젼 기능과 다국어 지원으로 실시간 언어 번역 기능을 갖추고 있습니다. 3.5 Sonnet은 무료로 이용 가능하며, Pro/Team 플랜 구독자는 더 높은 Rate Limit을 지원받을 수 있습니다.

  • 윈도우의 CrowdStrike 제품 오류로 대량 블루스크린 사태 발생

    CrowdStrike의 Falcon 제품군 최신 패치로 인해 윈도우 시스템이 블루스크린으로 비정상 종료되는 문제가 발생했습니다. 이로 인해 전 세계 은행, 항공사, TV 등에서 대규모 서비스 오류와 운영 차질이 빚어졌습니다. 문제 해결을 위해 안전모드에서 특정 파일 삭제, 폴더 이름 변경, 레지스트리 수정 등의 긴급 조치 방법을 설명합니다. 해외에선 금요일 오전에 발생해서 아주 큰 난리였는데 한국 시간으론 금요일 밤이었던지라 그나마 조용히? 지나간 것 같네요.


✓ 사내 커뮤니케이션 도구에 GeekNews Bot을 추가해서 멤버들과 함께 새 글을 받아보세요
ㅤ→ Slack봇, 잔디봇, Teams봇, Discord봇, 구글 챗 봇, Swit 봇
긱뉴스는 RSS로도 구독 가능합니다
✓ 주위분들께 긱뉴스 위클리 - https://news.hada.io/weekly 뉴스레터를 추천해 주세요.