[GN#269] 코드 리뷰 안티패턴들

2024-08-26 ~ 2024-09-01 사이의 주요 뉴스들

피드백을 주고받는 일은 언제나 쉽지 않습니다. 자신의 행동이나 결과물에 대해서 피드백을 받는다는 것은 두려운 일이죠. 대부분의 사람은 자신이 한 일이 옳다고 생각하며 그대로 두고 싶어 하고, 변화를 꺼리는 경향이 있습니다. 그렇기에 현재의 방식보다 더 나은 방법이 있다고 제안하는 피드백은 주는 사람에게도 부담이 됩니다. 일반적인 직장생활에서는 피드백이 1년에 한 번 또는 분기/반기별로 있는 평가에서나 이루어지지만, 개발자는 코드 리뷰라는 지속적인 피드백 과정을 매일 경험합니다. 코드 리뷰는 자신이 놓친 실수를 발견하거나, 부작용을 사전에 방지하며, 불필요한 기술 부채가 생기지 않도록 돕기 때문에 결과물을 더 나아지게 만드는 훌륭한 실천입니다. 하지만 코드 리뷰를 잘하는 것은 쉽지 않습니다. 그래서 많은 기술 블로그에서 "코드 리뷰 잘하는 법"에 대한 글을 다루며, 여러 회사가 자체적인 "코드 리뷰 가이드"를 만들기도 합니다. 반면에, "코드 리뷰 안티패턴들"은 잘하는 방법이 아닌, 코드 리뷰 시 하지 말아야 할 행위들을 나열하면서 제발 이렇게만은 하지 말자고 이야기합니다. 아무리 유머라지만 보면서 뒷목 잡게 되는 글이기도 한데요. 혹시나 주변에 이런 식으로 리뷰하는 사람이 있다면, "세상에 이럴 수가" 하면서 넌지시 이 링크를 던져주세요.

생성형 AI 도구 얼마나 많이 쓰고 계시나요? a16z가 생성형 AI 앱 Top 100(웹 50/모바일 50)을 발표했습니다. ChatGPT가 웹/모바일 모두 1등을 계속 차지하고 있기는 합니다만, PerplexityClaude가 열심히 성장하면서 따라잡고 있습니다. 한국어 음성이 포함된 노래도 잘 생성해 주는 걸로 유명한 Suno가 36위에서 5위로 뛰어올랐고, Luma/Viggle/Udio 같은 음악/비디오 관련 앱들이 인기를 끌고 있네요. 전체는 아니더라도 분야별 1등 서비스들은 한 번씩 둘러보시면 좋겠습니다.

기술 업계는 아직도 AI가 대세인 것 처럼 이야기하고 앞에서 본 것처럼 수많은 AI도구들이 쏟아져 나오고 있지만, AI 버블에 대한 우려도 계속 제기됩니다. 미국의 대표적인 싱크탱크 RAND 연구소가 "AI 프로젝트의 실패의 근본 원인과 성공하는 방법" 이란 20페이지 보고서를 내놨는데요. 분석가 Vernon Keenan이 "AI 대재앙: 프로젝트의 80%가 실패하고 수십억 달러가 낭비됨"이란 제목의 짧은 글로 정리했습니다. 실패의 가장 큰 원인AI를 제대로 이해하지 못하고 잘못된 기대를 하는 최고 경영진이며, 데이터 품질이 떨어지고, 쓸데 없는 최신 기술에 집중하고, 인프라에 대한 투자도 부족하다고 이야기합니다. 성공률을 높이기 위해서는 프로젝트 목적과 비즈니스 맥락을 이해하고, 지속 가능한 문제를 선택하며, 기술보다는 문제에 집중하고, 인프라에 투자하고, AI의 한계를 이해하라고 제시합니다.

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

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

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


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


  • 코드 리뷰 안티패턴들

    코드 리뷰는 개발자들이 서로의 코드를 검토하며 기술을 향상시키는 중요한 과정이지만, 잘못된 방식으로 사용될 경우 프로젝트에 해를 끼칠 수 있습니다. 이 글에서는 코드 리뷰에서 발생할 수 있는 다양한 안티패턴을 소개하며, 이를 통해 리뷰어들이 피해야 할 행동들을 명확히 제시합니다. 또한, 코드 리뷰어가 권한을 남용하지 않고 책임감 있게 행동해야 하는 이유를 강조합니다.

  • a16z가 선정한 소비자용 "생성형 AI" 앱/서비스 Top 100

    a16z가 선정한 소비자용 생성형 AI 앱/서비스 Top 100 리스트는 최신 AI 트렌드와 인기 앱을 파악하는 데 유용합니다. 특히, 이미지, 비디오, 음악 등 다양한 콘텐츠 생성 도구의 급성장과 새로운 카테고리의 등장으로 창의적 도구 시장의 변화를 확인할 수 있습니다. ChatGPT 외에 Perplexity, Claude, Suno, ElevenLabs, Luma AI, Midjourney, SeeArt, Udio, PicWish 같은 서비스들은 한번 써보시기 바랍니다.

  • AI 대재앙: 프로젝트의 80%가 실패하고 수십억 달러가 낭비됨

    RAND 연구소의 보고서는 AI 프로젝트의 높은 실패율과 그 원인을 분석하여, 성공적인 AI 구현을 위한 로드맵을 제시합니다.

    • 리더십 실패: 장님이 장님을 인도함
    • 데이터 딜레마: 쓰레기를 넣으면 쓰레기가 나옴
    • 반짝이는 물건 쫓기: 엔지니어가 집중력을 잃었을 때
    • 인프라: 성공을 위한 매력 없는 기반
    • 권고 사항: AI 열망에 대한 현실 점검
      • 프로젝트 목적과 비즈니스 맥락을 이해하도록 보장
      • 지속 가능한 문제를 선택
      • 기술이 아닌 문제에 집중
      • 인프라에 투자
      • AI의 한계를 이해
  • 개발 시간 절반 줄이는 오픈 소스 AI 도구 25가지

    개발 시간을 절반으로 줄일 수 있는 25가지 오픈 소스 AI 도구를 소개합니다. 각 도구는 데이터 전처리, 모델 훈련, 배포, 모니터링 등 다양한 머신러닝 작업을 효율적으로 수행할 수 있도록 설계되었습니다.
    KitOps, LangChain, Pachyderm, ZenML, Prefect, Ray, Metaflow, MLflow, Kubeflow, Seldon Core, DVC, Evidently AI, Mage AI, ML Run, Kedro, WhyLogs, Feast, Flyte, Featureform, Deepchecks, Argo, Deep Lake, Hopsworks Feature Store, NannyML, Delta Lake

  • ChartDB - 무료/오픈소스 DB 디자인 편집기

    ChartDB는 가입 없이 즉시 사용 가능한 웹 버전과 로컬 배포를 지원하여 편리하게 데이터베이스를 시각화할 수 있습니다. 몇 번의 클릭만으로 빠르고 쉽게 데이터베이스 다이어그램을 작성할 수 있으며, AI를 이용한 Export 기능으로 DB 간 쉬운 마이그레이션을 지원합니다. PostgreSQL, MySQL, SQL Server, SQLite, MariaDB 등의 데이터베이스를 지원합니다.

  • Postgres를 검색엔진으로 활용하기

    Postgres를 활용하여 시맨틱, 전문, 퍼지 검색을 모두 갖춘 하이브리드 검색 엔진을 구축할 수 있으며, 이는 별도의 검색 서비스를 구축하는 것에 대한 훌륭한 대안입니다. FTS와 의미론적 검색을 구현하고, pg_trgm 확장을 사용하여 퍼지 검색을 추가함으로써 검색 품질을 크게 향상시킬 수 있습니다. Postgres의 강력한 기능을 활용하여 특정 요구사항에 맞춘 유연한 검색 엔진을 만들 수 있으며, 지속적인 반복과 미세 조정을 통해 검색 성능을 최적화할 수 있습니다.

  • React는 풀스택 프레임워크(가 되어가는 중)임

    React는 서버 컴포넌트와 서버 액션을 추가하여 풀스택 프레임워크로 진화하고 있으며, 이는 프론트엔드와 백엔드의 경계를 허물고 있습니다. Server Components와 Server Actions는 React를 통해 데이터베이스와 같은 서버 측 리소스에 직접 접근할 수 있게 합니다. 이러한 변화는 React 개발자들이 UI에서 데이터베이스까지 수직적 기능을 구현하는 새로운 시대를 열어줄 것입니다.

  • 검색에서의 경쟁 - 베네딕트 에반스

    구글이 검색 분야에서 독점권을 남용하고 있다는 법원의 판결은 검색 엔진 시장의 미래를 불확실하게 만듭니다. 애플의 자체 검색 엔진 개발 가능성과 LLM(대규모 언어 모델)의 등장으로 인해 검색 시장에 새로운 변화가 예상됩니다. 법원의 결정이 구글, 애플, 마이크로소프트 등 주요 기업들의 전략에 어떤 영향을 미칠지 주목할 필요가 있습니다.

  • Llama Tutor - 오픈소스 AI 튜터

    Llama Tutor는 사용자가 배우고 싶은 주제와 교육 수준을 지정하면 맞춤형 튜터를 생성해주는 오픈소스 AI 튜터입니다. 기본 설명과 주제 선택 후 상세 설명을 제공하며, 질문과 답변 기능도 지원합니다. Llama 3 70B 와 Together.ai 를 이용합니다.

  • Skip – 단일 Swift 코드베이스로 네이티브 iOS 및 Android 앱 개발

    Skip은 Swift 앱을 Android로 확장하여 두 플랫폼에서 네이티브 성능과 사용자 인터페이스를 유지할 수 있게 해주는 도구입니다. Xcode와 Android Studio를 모두 활용하여 개발자가 더 효율적으로 작업할 수 있으며, 오픈 소스 기반으로 투명성과 커스터마이징 가능성을 제공합니다. 또한, CI 친화적이며 테스트를 통해 플랫폼 간 동일한 성능을 보장합니다.

  • Anthropic, Claude를 움직이게 하는 "시스템 프롬프트" 공개

    시스템 프롬프트는 모델의 기본 특성과 행동 지침을 설정하는 초기 명령어입니다. Anthropic이 Claude 모델의 시스템 프롬프트를 공개하여 AI 모델의 투명성과 윤리성을 강조합니다. 경쟁사들에게도 시스템 프롬프트 공개를 고려하게 만드는 압력을 가하고 있어서 좋네요.

  • Remove-bg - WebGPU를 이용한 이미지 배경 지우기 오픈소스

    Remove-bg 오픈소스는 WebGPU를 이용해 이미지 배경을 로컬 브라우저 내에서 제거할 수 있습니다. 파일이나 폴더를 선택하거나 드래그 앤 드롭하여 간편하게 사용할 수 있으며, 서버 업로드가 필요 없습니다. 이런 모델 및 도구는 공개된게 여러 개 있으니 비교해보시고 선택하세요.

  • Meta의 Llama는 2023년 이후로 10배 성장했음 - 라마 채택 현황 업데이트

    Llama 모델은 지난 1년간 다운로드 수가 10배 증가하며 주요 오픈 소스 AI 모델로 자리 잡았습니다. Llama 3.1 출시 이후 다양한 기업들이 이를 활용해 혁신적인 솔루션을 개발하고 있으며, 특히 클라우드 서비스 제공업체들 사이에서 사용량이 급증했습니다. 오픈 소스 접근 방식을 통해 Llama는 개발자들에게 더 많은 선택권과 역량을 제공하며, AI 생태계의 활성화에 기여하고 있습니다. 현황 업데이트 면서 자랑이긴 합니다만, Llama 가 가져온 변화는 크다고 봅니다.

  • 커맨드 라인 살인사건 - 텍스트 더미에서 범인을 찾아라

    이 게임은 터미널 명령어를 활용해 단서를 찾고 범인을 추적하는 재미를 제공합니다. 간단하지만 흥미로운 게임 플레이를 통해 텍스트 파일을 탐색하는 즐거움을 느낄 수 있습니다. 주어진 지침을 꼼꼼히 읽는 것이 성공의 열쇠입니다.

  • 구글 크롬 버그 수정에 처음으로 기여한 경험 공유

    Chromium/Google Chrome의 버그를 처음으로 수정한 경험을 통해 대규모 오픈 소스 프로젝트에 기여하는 과정을 상세히 기록하고 있습니다. 버그 수정 과정에서 겪은 도전과 해결 방법을 공유하여 비슷한 작업을 시도하려는 개발자들에게 실질적인 도움을 제공합니다. 또한, Chromium의 방대한 코드베이스와 빌드 환경을 이해하고, 코드 리뷰 및 테스트 과정을 거쳐 최종적으로 수정 사항을 릴리스하는 과정을 배울 수 있습니다.

  • Avante.nvim - Neovim 을 Cursor AI IDE처럼 사용하기

    Neovim 사용자들이 Cursor AI IDE의 기능을 활용할 수 있도록 도와주는 Avante.nvim 플러그인을 소개합니다. AI 기반 코드 제안과 수정 기능을 통해 개발자들이 최소한의 노력으로 소스코드를 개선할 수 있습니다. 또한, OpenAI와 Claude를 기본 지원하며, 향후 LSP, Tree-sitter, LLM 연동 기능도 개발될 예정입니다.

  • SQL의 문제점과 해결 방안: SQL의 파이프 문법

    SQL의 복잡성과 학습 곡선을 줄이기 위해 GoogleSQL은 파이프 구조의 데이터 흐름 구문을 도입하여 기존 SQL의 문제점을 해결하고자 합니다. 이 접근 방식은 SQL의 유연성을 크게 향상시키며, 기존 SQL과의 완전한 호환성을 유지하면서도 데이터를 더 쉽게 필터링, 집계, 정렬할 수 있게 합니다. 또한, 사용자들은 복잡한 쿼리를 선형적으로 표현하고, 편집과 디버깅 작업이 용이해지는 등 긍정적인 피드백을 받고 있습니다.

  • Ruroco - "RUn RemOte Command" UDP를 이용한 원격 명령 호출

    Ruroco는 UDP 패킷을 통해 서버에 명령을 실행하는 도구로, 클라이언트는 명령을 정의하지 않고 서버에 저장된 명령을 선택하여 실행할 수 있습니다. RSA 암호화를 사용하여 보안을 강화하고, 서버는 포트 스캐닝을 방지하며, replay 공격을 차단하는 기능을 갖추고 있습니다. 또한, SSH 포트를 필요할 때만 열고 닫는 방식으로 서버 보안을 유지할 수 있습니다.

  • 매일 테스트되는 무료 공공 API 모음

    학생과 개발자를 위해 매일 테스트되는 222개의 무료 공개 API를 소개하며, 다양한 카테고리와 높은 신뢰성을 가진 API들을 제공합니다. 각 API는 특정 용도에 맞게 설계되었고, 건강 점수를 통해 신뢰성을 평가받아 프로젝트에 쉽게 통합할 수 있습니다. 특히, 오픈 소스 프로젝트와 비상업적 사용을 위한 무료 접근이 많은 API에서 제공되어 유용합니다.

  • 텔레그램, 진정한 암호화 메시징 앱인가?

    텔레그램의 암호화 기능에 대한 오해를 바로잡기 위해, 이 글은 텔레그램이 기본적으로 종단간 암호화를 제공하지 않으며 사용자가 직접 "비밀 채팅" 기능을 활성화해야 한다는 점을 강조합니다. 또한, 텔레그램의 암호화는 사용하기 어렵고 많은 사용자가 이를 인식하지 못하며, 메타데이터 문제도 여전히 남아 있다는 점을 지적합니다. 마지막으로, 기본 암호화를 제공하는 Signal이나 WhatsApp과 같은 메신저를 추천합니다.

  • Meta, 새로운 혼합 현실(MR) 기기 "Puffin" 계획중

    Meta가 새로운 혼합 현실 기기 "Puffin"을 개발 중으로, 이는 기존의 무겁고 부피가 큰 헤드셋의 대안입니다. Puffin은 가벼운 안경 형태로 설계되어 사용자에게 더 편안한 착용감을 제공하며, 손 제스처와 눈 움직임으로 제어할 수 있습니다. 이 기기는 2027년 출시를 목표로 하고 있으며, 혼합 현실 기술의 새로운 가능성을 열어줄 것으로 기대됩니다. 애플의 비전 프로는 좋지만 너무 무겁고 크긴 하죠. 빨리 경량화/고급화 되길 기대해봅니다.

  • 파이썬 데이터프레임 라이브러리 Ibis, Pandas 와 Dask 백엔드를 폐기

    Ibis가 pandas와 dask 백엔드를 폐기하고 DuckDB를 기본 백엔드로 채택한 이유는 DuckDB가 더 빠르고 설치가 쉬우며, Python 생태계와 잘 상호작용하기 때문입니다. pandas 백엔드는 Ibis의 지연 실행 모델과 맞지 않아 성능 저하와 복잡한 코드 문제를 일으켰습니다. DuckDB는 pandas DataFrame을 원활하게 쿼리할 수 있어 기능적으로 중복되지 않으며, 새로운 사용자에게 혼란을 줄일 수 있습니다.

  • Surfer - 온라인 플랫폼의 모든 개인 데이터를 중앙 집중화하는 도구

    다양한 서비스의 개인 데이터를 하나의 폴더에 모아주는 "Digital Footprint Exporter" 도구입니다. 현재 Twitter, LinkedIn, GitHub, YouTube, Spotify, Notion, ChatGPT, Gmail을 지원하며, 앞으로 iMessages, Twitter Bookmarks, Reddit도 지원할 예정입니다. 각 서비스의 로그인 여부를 판별하고 데이터를 스크랩하여 로컬 스토리지로 내보내는 방식으로 동작합니다.

  • Dokku: 내가 가장 좋아하는 개인 서버리스 플랫폼

    Dokku는 비용 효율적이고 사용하기 쉬운 오픈 소스 PaaS 플랫폼으로, Heroku와 유사한 기능을 제공하면서도 사용자가 소유할 수 있습니다. 다양한 애플리케이션을 쉽게 배포하고 관리할 수 있으며, Let’s Encrypt를 통한 자동 SSL 인증서 관리, GitHub Actions를 통한 자동 배포 등의 기능을 지원합니다. 또한, Cloudflare와 같은 서비스와 함께 사용하면 더욱 편리하게 서버를 운영할 수 있습니다.

  • 메이커 스킬 트리 프로젝트

    메이커 스킬 트리 프로젝트는 다양한 스킬을 체계적으로 학습하고 추적할 수 있는 유용한 프린트 템플릿으로, 개인의 관심사에 맞게 목표를 설정할 수 있어 다양한 분야의 스킬을 학습할 때 시도해볼 수 있습니다. 현재 44개의 스킬트리가 만들어져 있고, 웹 앱을 통해 자신만의 스킬 트리를 쉽게 만들 수도 있습니다.

  • Rspack 1.0 릴리즈

    Rspack 1.0은 Rust로 작성된 차세대 JavaScript 번들러로, Webpack API와 호환되면서도 10배 이상의 속도를 자랑합니다. 대규모 프로젝트에서도 뛰어난 성능을 제공하며, 다양한 JavaScript 실행 환경을 지원합니다. 또한, 점진적 마이그레이션과 최신 웹 표준을 수용하고 있습니다.

  • 트위터 임베드를 Semantic HTML로 교체하기

    트위터 임베드를 Semantic HTML로 교체해서, 사이트 방문자가 실수?로라도 트위터/X 사이트로 가는 것을 방지합니다. Python 스크립트를 사용해 트윗을 임베딩할 때 외부 링크 없이 모든 이미지와 링크를 인라인 처리하며, 트윗의 Like/Reply 수를 보여주고, Retweet 수와 Quote/Bookmark는 제외하며, Cards와 Polls도 지원합니다. Selenium Webdriver와 트위터 Embed API를 활용해 이미지와 내용을 캡쳐하며, 생성된 HTML은 간결하고 접근성도 지원됩니다.

  • Microsoft, Mono Project를 Wine 팀에 기부

    Microsoft가 Mono 프로젝트를 Wine 팀에 기부했습니다. Mono 프로젝트는 다양한 운영 체제에서 .NET을 사용할 수 있게 한 선구자적인 프로젝트로, 기존 사용자들은 .NET으로의 마이그레이션을 고려해야 합니다.

  • 호주 근로자들, 업무 시간 이후 업무용 이메일과 전화를 무시할 수 있는 권리를 갖게 됨

    호주 근로자들이 새로운 "연결 해제 권리" 법 덕분에 근무 시간 외 업무 이메일과 전화를 무시할 수 있게 되었습니다. 이 법은 직원들이 근무 시간 외에 고용주로부터의 연락을 거부해도 처벌받지 않도록 보호하며, COVID-19 대유행 이후 가정과 직장의 경계가 모호해진 상황에서 더욱 중요해졌습니다. 또한, 호주는 이번 법 시행으로 유럽과 라틴 아메리카의 유사한 법률을 가진 국가들과 함께하게 되었습니다. 먼나라 이야기 같이 들리는군요...

  • 북한의 엔지니어들이 미국 기술 회사에 지원 중

    북한 엔지니어들이 미국 기술 기업에 지원하는 사례가 증가하고 있으며, 이들은 AI로 생성된 프로필 사진과 가짜 이름을 사용해 원격으로 일하고 있습니다. 이러한 행위는 미국의 대북 제재를 위반할 가능성이 높아 법적 문제로 이어질 수 있으며, 특히 스타트업 기업들은 인재 확보 과정에서 주의가 필요합니다. 한국계 회사에는 지원 안 하겠지만, 흥미로운 기사네요.

  • AnandTech의 작별인사

    AnandTech는 27년 동안 컴퓨팅 하드웨어 리뷰와 기술 저널리즘의 변화를 이끌어온 영향력 있는 매체였는데요. 이제 서비스를 중단합니다. Future PLC가 AnandTech 웹사이트와 포럼은 무기한 유지할 예정이어서 기존 기사는 그대로 보존됩니다만 매우 아쉽네요. 글의 마지막에서 선정주의에 맞서 심층 보도의 필요성을 강조하며, 기술 저널리즘의 중요성을 다시 한번 당부합니다.

  • ElasticSearch가 다시 오픈 소스가 됨

    Elasticsearch와 Kibana가 다시 오픈 소스로 돌아왔습니다. 과거 AWS와의 문제로 인해 라이선스를 변경했지만, 3년이 지난 지금 Amazon은 자신들의 포크에 집중 투자하고 있습니다. 대부분의 시장 혼란이 해소되었으며, 충분한 시간이 지나면 오픈 소스 프로젝트로 돌아갈 수 있기를 바라고 있었고, 마침내 그렇게 되었다고 합니다. 사용자 편의를 위해 ELv2, SSPL에 AGPL을 추가하되 기존 라이선스는 제거하지 않아서, 이미 Elasticsearch를 사용하고 있다면 아무것도 바뀌지 않고, 다른 사람들은 이제 AGPL 옵션도 선택할 수 있게 됩니다.

  • 일론 머스크: Cellular Starlink는 모든 휴대폰에 무료 긴급 서비스를 제공할 것임

    일론 머스크는 비상시 모든 휴대폰에 무료로 셀룰러 Starlink 서비스를 제공할 계획이며, 이는 특히 외딴 지역에서 생명을 구하는 데 큰 도움이 될 것이라고 이야기 합니다. SpaceX는 현재 FCC에 "direct to cell" 기술 상용 운영 허가를 요청 중이며, AT&T와 Verizon 등 경쟁 통신사의 반대에 부딪히고 있는데 이 것 때문에 선심성?으로 이야기 하는듯 합니다. 물론 이 서비스는 기존 셀룰러 액세스가 없는 지역에서도 긴급 경보를 제공할 수 있어 공공 안전에 큰 기여를 할 것으로 기대됩니다.


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