GitHub / software-development

3 개의 포스트

github

GitHub for Beginners: Getting started with GitHub Issues and Projects (새 탭에서 열림)

제공해주신 텍스트는 해당 블로그 글의 작성자인 Kedasha(GitHub의 Developer Advocate)에 대한 **소개 문구(Bio)**입니다. 요청하신 "소프트 삭제"나 "트리거 기반 보관"과 같은 기술적 내용을 요약하기 위해서는 블로그의 **본문 내용**이 필요합니다. 사용자께서 예시로 들어주신 "소프트 삭제의 문제점" 등의 키워드로 미루어 보아, Kedasha가 작성한 **"Soft deletes are bad; do this instead(소프트 삭제는 나쁘니 대신 이렇게 하세요)"**라는 글을 요약하고자 하시는 것으로 이해됩니다. 해당 글의 핵심 내용을 바탕으로 요청하신 형식에 맞춰 요약해 드립니다. --- 데이터베이스 설계 시 관행적으로 사용되는 '소프트 삭제(is_deleted 플래그)'가 시스템 복잡성과 성능 저하를 초래한다는 점을 지적하며, 이를 대체할 수 있는 더 깨끗하고 효율적인 데이터 관리 방안을 제시합니다. 궁극적으로 소프트 삭제 대신 별도의 이력 테이블이나 아카이빙 전략을 사용할 것을 권장합니다. ### 소프트 삭제의 문제점 * **인덱스 및 성능 저하**: 삭제된 데이터가 테이블에 계속 남아 인덱스 크기를 키우고, 쿼리 시 `WHERE deleted = false` 조건을 항상 포함해야 하므로 실행 계획의 효율성을 떨어뜨립니다. * **유니크 제약 조건 충돌**: 특정 필드(예: 이메일)에 유니크 제약이 있을 경우, 소프트 삭제된 행이 존재하면 동일한 값으로 새 데이터를 삽입할 수 없는 논리적 오류가 발생합니다. * **쿼리 복잡성 증가**: 모든 조회 쿼리에 삭제 여부 필터를 적용해야 하므로, 개발자가 이를 누락할 경우 삭제된 데이터가 사용자에게 노출되는 버그가 발생할 위험이 큽니다. ### 트리거 기반의 보관(Archiving) * **별도 테이블 이동**: 본 테이블(Main Table)에는 활성 데이터만 남기고, 삭제된 데이터는 트리거(Trigger)를 통해 별도의 보관용 테이블(Archive Table)로 자동 이동시키는 방식을 제안합니다. * **무결성 유지**: 이 방식을 통해 본 테이블의 유니크 제약 조건을 깨끗하게 유지할 수 있으며, 인덱스 성능 또한 최적으로 관리할 수 있습니다. * **성능 최적화**: 운영 쿼리가 훨씬 적은 양의 데이터만 탐색하게 되어 전반적인 애플리케이션 응답 속도가 향상됩니다. ### 감사 로그(Audit Logs)의 활용 * **상태 변경 추적**: 단순 삭제 여부만 저장하는 대신, 누가 언제 왜 데이터를 변경/삭제했는지 기록하는 감사 로그 시스템을 구축하는 것이 장기적으로 데이터 거버넌스 측면에서 유리합니다. * **데이터 복구 용이성**: 단순 플래그보다 더 풍부한 맥락 정보를 담고 있어, 필요 시 데이터를 복구하거나 이력을 추적하는 데 훨씬 효과적입니다. 단순히 플래그 하나로 삭제를 처리하기보다는, 데이터의 생명 주기를 고려하여 **운영 데이터와 아카이브 데이터를 물리적으로 분리**하는 설계가 확장성 있는 시스템 구축의 핵심입니다. 만약 다른 본문의 요약을 원하신다면 전체 텍스트를 다시 제공해 주세요.

github

What’s new with GitHub Copilot coding agent (새 탭에서 열림)

10년 이상의 개발자 도구 분야 경력을 보유한 GitHub의 Senior Developer Advocate 안드레아(Andrea)는 복잡한 엔지니어링 개념과 실제 구현 사이의 가교 역할을 수행하며 첨단 기술의 접근성을 높이는 데 주력하고 있습니다. 군 복무와 건설 관리직에서 소프트웨어 개발자로 전향한 그녀의 독특한 이력은 기술적 깊이와 실무적 적용을 결합하는 데 중요한 밑바탕이 됩니다. 현재 그녀는 글로벌 오픈 소스 이니셔티브를 통해 혁신을 주도하며 전 세계 개발자 커뮤니티의 성장을 지원하고 있습니다. ### 기술적 전문성과 경력 배경 * GitHub의 시니어 개발자 애드보킷으로서 10년 넘게 개발자 도구(Developer Tools) 분야에서 전문성을 쌓아왔습니다. * 미 육군 복무 및 건설 관리직에서 소프트웨어 엔지니어링으로 전향한 이색적인 경력을 통해 문제 해결에 대한 다각적인 시각을 보유하고 있습니다. * 이러한 배경은 복잡한 기술적 난제를 실무 중심의 언어로 풀어내고, 고급 기술을 더 넓은 사용자 층이 쉽게 수용할 수 있도록 돕는 기반이 됩니다. ### 기술 접근성 향상 및 오픈 소스 활동 * 추상적이고 복잡한 엔지니어링 개념을 실제 구현 가능한 단계로 연결하는 것을 핵심 미션으로 삼고 있습니다. * GitHub의 글로벌 이니셔티브에 참여하여 오픈 소스 생태계를 활성화하고, 개발자들이 최신 도구를 효과적으로 활용할 수 있도록 혁신을 추진합니다. * 온라인 채널(@acolombiadev)을 통해 기술 지식을 공유하며, 실무 환경에서 마주하는 엔지니어링 복잡성을 낮추는 데 기여하고 있습니다. 다양한 배경에서 비롯된 실무 중심의 기술 전달 능력은 복잡한 도구와 기술이 쏟아지는 현대 개발 환경에서 매우 중요한 가치를 지닙니다. 기술의 깊이를 유지하면서도 이를 대중화하려는 안드레아의 접근 방식은 복잡한 시스템을 설계하고 운영하는 엔지니어들에게 실용적인 통찰력을 제공합니다.

github

How AI is reshaping developer choice (and Octoverse data proves it) (새 탭에서 열림)

GitHub의 시니어 개발자 애드보케이트인 Andrea는 10년 이상의 개발자 도구 분야 경험을 바탕으로 복잡한 공학 개념을 실용적인 구현 단계로 연결하는 데 주력하고 있습니다. 그녀는 군 복무 및 건설 관리라는 독특한 이력을 기술에 접목하여 고급 기술을 누구나 더 쉽게 접근할 수 있도록 만드는 미션을 수행 중입니다. 이를 통해 전 세계적인 기술 혁신을 주도하고 오픈 소스 생태계를 지원하는 데 기여하고 있습니다. **기술적 깊이와 접근성 강화** * 10년이 넘는 기간 동안 개발자 도구 분야에서 쌓아온 전문성을 바탕으로 시니어 개발자 애드보케이트로서 활동 * 단순한 기술 전달을 넘어, 복잡하고 고도화된 엔지니어링 개념의 진입 장벽을 낮추어 더 많은 개발자가 기술을 활용할 수 있도록 지원 * GitHub의 글로벌 이니셔티브를 통해 오픈 소스 프로젝트의 혁신을 장려하고 커뮤니티의 성장을 도모 **커리어 전환을 통한 차별화된 관점** * 군 복무(Army service) 및 건설 관리(Construction management)라는 비전형적인 배경을 소프트웨어 개발에 융합 * 현장 중심의 관리 경험을 기술적 문제 해결에 적용하여, 이론에 매몰되지 않는 실용적인 엔지니어링 시각을 제공 * 서로 다른 산업 영역의 가교 역할을 수행하며 복잡한 시스템을 보다 효율적이고 실무적인 방식으로 구조화 **실무적인 결론** Andrea의 사례는 기술적 전문성만큼이나 다양한 산업적 배경이 개발자 관계(DevRel)와 기술 대중화에 얼마나 중요한지를 보여줍니다. 복잡한 기술을 다루는 팀일수록 현장 경험과 공학적 깊이를 동시에 갖춘 접근 방식을 채택함으로써, 기술의 실용적 가치를 극대화하고 사용자 접근성을 높일 수 있을 것입니다.