github-copilot

41 개의 포스트

github2분 읽기큐레이션 요약

가까운 곳에서 열

소프트웨어 개발 전반이 AI 중심으로 빠르게 바뀌는 가운데, GitHub Copilot Dev Days는 개발자들이 GitHub Copilot을 실제 업무에 적용하는 방법을 함께 배우는 글로벌 오프라인 행사다. 초보자부터 숙련자까지 참여할 수 있으며, 라이브 데모와 실습을 통해 AI 보조 개발의 최신 도구와 모범 사례를 익히는 것이 목적이다. 행사는 2026년 3월부터 전 세계 여러 도시에서 열리며, 개발자 커뮤니티나 사용자 그룹이 직접 개최할 수도 있다. ## AI 보조 개발 역량을 함께 높이는 행사 - AI는 더 이상 미래의 도구가 아니라 코드 기획, 작성, 리뷰, 배포 방식에 이미 영향을 주고 있다. - 개발자는 빠르게 변화하는 개발 환경에 맞춰 AI 도구를 효과적으로 활용해야 한다. - Dev Days는 이러한 변화에 대응해 개발자들이 함께 학습하고 경험을 공유하도록 설계됐다. - 글로벌 시리즈이지만 각 행사는 지역 커뮤니티가 주도하는 대면 이벤트로 진행된다. ## 초보자부터 전문가까지 참여 가능 - 전문 개발자, 학생 등 다양한 배경의 참가자를 대상으로 한다. - AI 보조 개발을 처음 접하는 사람에게는 기본 도구와 성공적인 활용 방법을 소개한다. - 이미 Copilot을 사용 중인 개발자에게는 최신 기능, 팁, 활용 기법을 제공한다. - 행사별로 수준과 프로그래밍 언어, 주제가 다를 수 있으므로 등록 전에 세부 내용을 확인해야 한다. ## 실습 중심의 프로그램 - 라이브 데모, 실용적인 강의, 상호작용형 워크숍으로 구성된다. - GitHub Copilot CLI, Cloud Agent, VS Code, Visual Studio 및 기타 편집기 관련 교육 자료를 다룬다. - 일반적인 예시 일정은 다음과 같다. - GitHub Copilot 소개: 30~45분 - 지역 개발자 또는 커뮤니티 리더의 세션: 30~45분 - 코딩 실습과 실전 연습: 약 1시간 - GitHub Stars, Microsoft MVPs, GitHub Campus Experts, Microsoft Student Ambassadors, GitHub·Microsoft 직원 등이 진행자로 참여한다. - 행사마다 지역 개발자들의 관심사에 맞춰 일정과 주제가 조정될 수 있다. ## 지역 커뮤니티와의 교류 - 참가자는 Copilot 활용법뿐 아니라 지역 개발자들과 네트워킹할 수 있다. - 행사에는 음식, 간식, 기념품 등 커뮤니티 이벤트 요소도 포함된다. - 각 지역의 사용자 그룹은 공식 양식을 통해 Dev Days 개최를 신청할 수 있다. - 행사는 2026년 3월부터 전 세계 도시에서 시작되며, 좌석이 제한되어 있다. 가까운 지역에서 열리는 행사의 등록 페이지를 확인하고, 관심 있는 주제와 실습 환경이 포함되어 있다면 직접 참여하는 것이 좋다. 사용자 그룹을 운영한다면 자체 행사를 개최해 지역 개발자들에게 AI 보조 개발을 경험할 기회를 제공할 수 있다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

아이디어에서 풀 리퀘스트까지

GitHub Copilot CLI는 터미널에서 자연어로 아이디어를 구체화하고, 코드 작성·테스트·수정·Pull Request 생성까지 이어 주는 코딩 에이전트다. 다만 설계와 검토를 대신하는 도구가 아니라, 개발자의 판단 아래 반복 작업과 초기 구현을 빠르게 처리하는 도구로 활용해야 한다. CLI에서 빠르게 시작한 뒤 IDE에서 정교하게 다듬고 GitHub에서 협업·배포하는 흐름이 핵심이다. ## Copilot CLI의 역할과 한계 - 터미널에서 원하는 결과를 자연어로 설명할 수 있다. - `/plan` 또는 `Shift + Tab` planning mode로 작업 계획을 먼저 작성할 수 있다. - 명령어, 파일 변경, diff를 실행 전에 검토할 수 있다. - 사용자의 명시적인 승인 없이는 명령 실행이나 파일 변경을 수행하지 않는다. - 설계 결정과 코드 리뷰를 대체하지 않으며, 생성된 결과는 동료가 작성한 코드처럼 검토해야 한다. ## 의도에서 시작하는 프로젝트 설계 - 처음부터 프레임워크나 템플릿을 고르기보다 만들고 싶은 기능을 먼저 설명한다. - 예시: ```text Create a small web service with a single JSON endpoint and basic tests ``` - `copilot -p "..."`를 사용하면 단일 프롬프트로 제안 내용을 생성할 수 있다. - Copilot CLI는 기술 스택, 파일 구조, 초기화 명령 등을 제안하지만 자동으로 실행하지는 않는다. - 제안 내용을 검토한 뒤 실제 프로젝트 방향으로 채택할 항목을 선택한다. ## 필요한 만큼만 스캐폴딩하기 - 방향이 정해지면 최소한의 프로젝트 구조와 설정 파일을 생성하도록 요청한다. - 예시: ```text Scaffold this as a minimal Node.js project with a test runner and README ``` - 디렉터리, 설정, 테스트 러너, README 등 반복적인 보일러플레이트를 빠르게 만들 수 있다. - 생성된 구조는 일반적인 관례에 기반한 출발점일 뿐이며, 최종 설계로 받아들일 필요는 없다. - 불필요한 파일이나 설정은 직접 수정하거나 삭제해야 한다. ## 실패 지점에서 바로 반복하기 - 테스트를 CLI 내부에서 실행하고 실제 출력 결과를 바탕으로 다음 작업을 요청한다. - 예시: ```text Run all my tests and make sure they pass ``` ```text Why are these tests failing? ``` ```text Fix this test failure and show the diff ``` - `실행 → 결과 확인 → 원인 질문 → diff 검토`의 짧은 반복 주기가 중요하다. - 추상적인 설명보다 실제 테스트 실패나 명령 출력에 근거해 수정하도록 만들 수 있다. - 이해가 필요할 때는 `explain`, 구체적인 수정안을 원할 때는 `suggest`를 활용할 수 있다. ## 저장소 전체의 기계적 변경 - 이름 변경, 반복 패턴 수정, 테스트 갱신처럼 범위가 명확한 작업에 적합하다. - 예시: ```text Rename all instances of X to Y across the repository and update tests ``` - 작업 의도가 명확하고 변경 범위가 제한적이므로 diff 검토와 롤백이 쉽다. - 긴 생성 결과를 읽는 대신 저장소 전체에 적용된 구체적인 변경 내역을 확인할 수 있다. ## CLI에서 IDE로 정교하게 다듬기 - 초기 구현과 반복 작업이 끝나면 IDE로 이동해 코드의 정확성과 설계를 개선한다. - IDE에서는 다음과 같은 작업에 집중한다. - 예외 상황과 엣지 케이스 검토 - API 구조 개선 - 복잡한 비즈니스 로직 결정 - 리뷰에서 설명하고 책임질 설계 선택 - CLI는 낮은 형식 비용으로 빠르게 실제 결과물을 만드는 데 적합하다. - IDE는 코드를 원하는 수준으로 정제하고 장기적으로 유지 가능한 형태로 만드는 데 적합하다. ## 커밋과 Pull Request로 마무리하기 - 변경 사항을 커밋하고 push하는 작업도 자연어로 요청할 수 있다. - 예시: ```text Add and commit all files with applicable descriptive messages, push the changes. ``` - Pull Request를 생성하고 Copilot을 리뷰어로 추가할 수도 있다. - GitHub로 작업을 넘기면 결과물이 다음 단계로 연결된다. - 팀원이 검토할 수 있음 - CI에서 테스트할 수 있음 - 비동기 방식으로 수정·협업할 수 있음 - Copilot의 가치는 단순한 코드 제안보다 커밋, Pull Request, 리뷰까지 이어지는 전체 개발 흐름에서 커진다. ## CLI·IDE·GitHub의 역할 분담 - **CLI:** 아이디어를 빠르게 검증하고, 계획·스캐폴딩·테스트·기계적 변경을 수행한다. - **IDE:** 로직을 정밀하게 다듬고 설계와 엣지 케이스를 결정한다. - **GitHub:** 코드 리뷰, CI, 협업, Pull Request 병합과 배포를 진행한다. Copilot CLI는 개발자의 판단을 대체하기보다, 의도에서 검토 가능한 변경 사항까지 도달하는 시간을 줄이는 도구로 사용하는 것이 가장 효과적이다. generated code와 diff를 항상 직접 확인하고, 정밀한 설계가 필요한 순간에는 IDE와 팀 리뷰로 넘기는 방식을 권장한다.

원문 읽기(새 탭에서 열림)
github3분 읽기큐레이션 요약

GitHub Copilot 코딩 에

GitHub Copilot coding agent는 이슈를 할당받아 백그라운드에서 코드를 수정하고 테스트를 추가한 뒤, 검토 가능한 풀 리퀘스트를 생성하는 기능이다. 최근에는 작업별 모델 선택, 자체 코드 리뷰, 보안 검사, 사용자 정의 에이전트, 로컬 CLI와의 컨텍스트 공유가 추가되어 자동화 수준과 결과 품질이 향상됐다. GitHub는 향후 비공개 모드, 코딩 전 계획 수립, 이슈 요약과 보고서 생성까지 기능을 확장할 예정이다. ## 작업에 맞는 AI 모델 선택 Agents 패널에서 작업별로 사용할 모델을 지정할 수 있게 됐다. - 단순한 단위 테스트 추가에는 빠른 모델을 선택할 수 있다. - 복잡한 리팩터링이나 엣지 케이스가 많은 통합 테스트에는 더 강력한 모델을 사용할 수 있다. - `Auto`를 선택하면 GitHub가 작업에 적합한 모델을 자동으로 결정한다. - 사용 방법: - GitHub 우측 상단의 Agents 패널에서 저장소를 선택한다. - 모델을 고르고 작업 프롬프트를 입력한다. - 현재 Copilot Pro와 Pro+에서 사용할 수 있으며, Business와 Enterprise 지원은 추후 제공될 예정이다. ## 자체 코드 리뷰로 개선된 풀 리퀘스트 에이전트가 풀 리퀘스트를 열기 전에 Copilot code review를 실행해 자신의 변경 사항을 점검한다. - 코드가 동작하더라도 지나치게 복잡하거나 팀의 일반적인 작성 방식과 다른 부분을 찾아낸다. - 리뷰 피드백을 반영해 코드를 수정한 뒤 풀 리퀘스트를 생성한다. - 개발자는 에이전트의 작업 로그에서 코드 리뷰 실행과 수정 과정을 확인할 수 있다. - 사용자는 에이전트가 반복 작업을 마친 후 최종 풀 리퀘스트를 검토하면 된다. ## 작업 중 실행되는 보안 검사 Copilot coding agent는 작업 과정에서 생성된 코드를 대상으로 여러 보안 검사를 수행한다. - Code scanning으로 취약한 코드 패턴을 탐지한다. - Secret scanning으로 API 키나 비밀 값이 커밋되는지 확인한다. - 의존성 취약점 검사를 통해 알려진 CVE가 포함된 패키지를 탐지한다. - 검사 결과는 세션 로그에 표시되며, 풀 리퀘스트가 열리기 전에 문제를 확인할 수 있다. - 일반적으로 GitHub Advanced Security에 포함되는 code scanning을 Copilot coding agent에서는 별도 비용 없이 제공한다. ## 팀 규칙을 반영하는 사용자 정의 에이전트 사용자 정의 에이전트를 사용하면 팀의 개발 절차와 전문 작업 방식을 파일로 명시할 수 있다. - 저장소의 `.github/agents/` 아래에 에이전트 설정 파일을 만든다. - 특정 에이전트에 작업 범위와 수행 절차를 부여할 수 있다. - 예를 들어 성능 최적화 에이전트가 다음 순서로 동작하도록 만들 수 있다. - 먼저 벤치마크를 실행한다. - 특정 코드를 수정한다. - 변경 후 성능을 다시 측정한다. - 결과와 함께 풀 리퀘스트를 생성한다. - 조직이나 엔터프라이즈 전체에서 사용자 정의 에이전트를 공유할 수 있어 팀별 작업 방식의 일관성을 높인다. - 실제 데모에서는 조회 함수의 성능을 측정한 뒤 수정해 해당 함수에서 99% 개선을 달성했다. ## 클라우드와 로컬 CLI 간 작업 연속성 클라우드에서 시작한 작업을 로컬 터미널로 이어가거나, 로컬 작업을 클라우드 에이전트에 위임할 수 있다. - “Continue in Copilot CLI”를 선택하면 브랜치, 로그, 대화 컨텍스트가 유지된 채 로컬에서 작업을 이어간다. - CLI에서 `&`를 누르면 현재 작업을 클라우드로 다시 위임할 수 있다. - 클라우드와 로컬 사이를 이동할 때 대화를 처음부터 다시 설명할 필요가 없다. - 터미널 중심 개발과 GitHub 기반 자동화를 유연하게 결합할 수 있다. ## 앞으로의 확장 방향 GitHub는 Copilot coding agent를 단순한 풀 리퀘스트 생성 도구 이상으로 확장하려 하고 있다. - 비공개 모드 지원 - 코딩 전에 작업 계획을 세우는 기능 - 풀 리퀘스트가 필요 없는 이슈 요약 - 자동 보고서 생성 팀의 반복적인 개발 작업에는 사용자 정의 에이전트와 적절한 모델 선택을 적용하고, 보안 검사와 자체 리뷰 결과를 확인하는 방식으로 활용하는 것이 좋다. 복잡한 작업은 클라우드에서 위임하고 세부 수정은 CLI에서 이어가는 방식도 효과적이다.

원문 읽기(새 탭에서 열림)
github3분 읽기큐레이션 요약

멀티 에이전트 워크

멀티 에이전트 워크플로는 에이전트들이 상태, 실행 순서, 검증 방식에 대해 암묵적으로 가정하기 때문에 쉽게 실패한다. 이를 안정적으로 운영하려면 에이전트를 대화형 인터페이스가 아니라 분산 시스템의 구성 요소처럼 다뤄야 하며, 타입 스키마·명시적 액션·강제된 인터페이스가 필요하다. 특히 MCP(Model Context Protocol)는 이러한 계약을 실행 전에 검증해 잘못된 상태가 시스템에 전파되는 것을 막는다. ## 멀티 에이전트 시스템이 실패하는 이유 - 이슈 분류, 변경 제안, 테스트 실행, 풀 리퀘스트 생성처럼 관련 작업을 여러 에이전트가 나눠 처리하면 상태와 순서에 대한 암묵적 가정이 생긴다. - 한 에이전트가 이슈를 열자마자 다른 에이전트가 이를 닫거나, 후속 검사를 알지 못한 채 변경 사항을 배포하는 문제가 발생할 수 있다. - 자연어와 일관되지 않은 JSON만으로 통신하면 필드명, 자료형, 형식이 쉽게 달라져 자동화가 불안정해진다. ## 타입 스키마로 데이터 계약 정의 - 에이전트 간 데이터 교환에는 기계적으로 검증 가능한 타입과 엄격한 스키마를 사용해야 한다. - 예를 들어 사용자 프로필을 다음처럼 정의할 수 있다. - `id`: 숫자 - `email`: 문자열 - `plan`: `free`, `pro`, `enterprise` 중 하나 - 잘못된 메시지는 다음 단계로 전달하기 전에 실패시켜야 한다. - 재시도 - 메시지 수정 - 사람에게 에스컬레이션 - 디버깅도 로그를 해석하는 방식에서 “어떤 스키마 계약을 위반했는가”를 확인하는 방식으로 바뀐다. ## 액션 스키마로 의도 명확히 하기 - 데이터 형식이 올바르더라도 “분석하고 팀이 행동하도록 돕는다”처럼 지시가 모호하면 에이전트마다 다른 결정을 내릴 수 있다. - 가능한 결과를 제한된 액션 집합으로 정의하면 자동화 가능한 결과만 반환하게 만들 수 있다. - 예시 액션: - 추가 정보 요청: 필요한 정보 목록 포함 - 담당자 지정: 담당자 식별자 포함 - 중복 이슈로 종료: 원본 이슈 번호 포함 - 조치 없음 - 에이전트는 반드시 하나의 유효한 액션을 반환해야 하며, 그 외 결과는 검증 실패로 처리해 재시도하거나 에스컬레이션한다. - 글은 멀티 에이전트 장애의 상당수가 데이터 자체보다 “잘못된 행동 선택”에서 발생한다고 설명한다. ## MCP로 인터페이스 강제 - 스키마와 액션 규칙을 문서로만 정해두면 관례에 불과하며, 모든 에이전트가 이를 지킨다는 보장이 없다. - MCP는 각 도구와 리소스에 명시적인 입력·출력 스키마를 제공하고, 도구 호출 전에 이를 검증한다. - 예를 들어 `create_issue` 도구에 입력 스키마와 출력 스키마를 함께 정의할 수 있다. - MCP를 사용하면 에이전트가 다음과 같은 오류를 일으키기 어렵다. - 존재하지 않는 필드 생성 - 필수 입력 누락 - 에이전트 간 인터페이스 형식 변경 - 실행 전에 검증하므로 잘못된 호출이 운영 시스템에 영향을 주기 전에 차단된다. ## 실용적인 적용 방향 - 에이전트 간 모든 경계에 타입 스키마를 적용한다. - 자연어 지시의 최종 결과는 제한된 액션 스키마로 변환한다. - 도구 호출과 데이터 교환에는 MCP 같은 검증 계층을 둔다. - 스키마 위반을 자동 재시도, 수정, 에스컬레이션 대상으로 명시한다. - 멀티 에이전트 시스템을 챗봇이 아니라 계약과 인터페이스를 갖춘 소프트웨어 컴포넌트로 설계하는 것이 핵심이다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

AI가 개발자의 선택을

AI는 단순히 코딩 속도를 높이는 도구를 넘어, 개발자가 선택하는 언어·프레임워크·도구 자체를 바꾸고 있다. GitHub의 Octoverse 2025 데이터에 따르면 TypeScript가 2025년 처음으로 Python과 JavaScript를 제치고 가장 많이 사용된 언어가 되었으며, 이는 AI가 복잡한 기술의 사용 장벽을 낮춘 결과로 해석된다. 따라서 조직은 AI의 생산성 향상뿐 아니라, AI가 증폭하는 아키텍처 품질과 기술 선택의 변화까지 관리해야 한다. ## 편의성이 개발자 선택을 바꾸는 과정 개발자는 사용하기 쉽고 마찰이 적은 기술을 반복적으로 선택하며, 이러한 선택이 생태계 전체의 흐름을 바꾼다. - 작업이 편리했던 경험은 기억에 남아 이후의 기술 선택에 영향을 준다. - GitHub 신규 개발자의 **80%가 첫 주 안에 Copilot을 사용**한다. - AI가 보일러플레이트와 문법 오류를 처리하면서, 복잡한 언어를 선택할 때의 비용이 감소했다. - 개발자는 “배우기 쉬운 기술”보다 “목적에 가장 적합하고 AI가 잘 지원하는 기술”을 선택하게 된다. ## TypeScript와 AI 친화적 기술의 성장 Octoverse 데이터는 AI가 실제 기술 채택에 영향을 주고 있음을 보여준다. - 2025년 8월, TypeScript가 GitHub에서 가장 많이 사용되는 언어가 되었다. - TypeScript 사용량은 전년 대비 **66% 증가**했다. - JavaScript 사용량은 **24% 증가**했다. - AI가 생성한 프로젝트에서 Shell 스크립트 사용량은 **206% 증가**했다. - 이는 개발자들이 Bash를 갑자기 선호하게 되었다기보다, AI가 Shell 사용의 문법적·인지적 부담을 줄였기 때문으로 볼 수 있다. ## 강한 타입 시스템이 AI 코드 생성에 유리한 이유 AI는 가능한 코드의 범위가 명확할수록 더 안정적인 결과를 생성할 수 있다. - JavaScript에서는 변수의 타입이 상황에 따라 무엇이든 될 수 있다. - TypeScript에서 `x: string`처럼 타입을 선언하면 문자열이 아닌 연산을 배제할 수 있다. - 이런 제약은 AI가 생성할 수 있는 코드의 공간을 줄이고, 문맥에 맞는 코드를 만들 가능성을 높인다. - 타입 검사는 오류를 줄이는 강력한 안전장치지만, 비즈니스 로직의 정확성까지 보장하지는 않는다. - GitHub의 공개 저장소 중 **110만 개 이상이 LLM SDK를 사용**하고 있어, 생성형 AI 연동은 실험 단계를 넘어 주류가 되었다. ## 빠른 개발과 아키텍처 품질의 균형 AI는 생산성을 크게 높이지만, 잘못된 설계도 더 빠르게 확산시킬 수 있다. - AI는 기존에 정립된 패턴을 따르는 데 강하고, 좋은 구조를 처음부터 설계하는 데는 상대적으로 약하다. - 초기 API 엔드포인트나 컴포넌트를 명확한 구조로 작성하면 이후 생성되는 코드도 그 패턴을 따를 가능성이 높다. - 반대로 불안정한 구조를 먼저 만들면 AI가 이를 반복·확장해 기술 부채를 키울 수 있다. - AI 지원 개발로 처리량이 **20~30% 증가**할 수 있지만, 그만큼 아키텍처의 일관성이 빠르게 무너질 위험도 커진다. ## 개발자와 팀을 위한 실천 방법 - **생성 전에 패턴을 정한다.** API, 컴포넌트, 디렉터리 구조, 오류 처리 방식 등을 먼저 정의한다. - **타입 시스템을 가드레일로 활용한다.** 타입 통과를 완전한 정합성의 증거로 간주하지 않는다. - **AI 생성 코드를 더 엄격하게 테스트한다.** 코드가 자연스럽고 초기 검사를 통과하더라도 테스트와 리뷰를 생략하지 않는다. - **템플릿과 문서를 표준화한다.** AI가 참고할 수 있도록 템플릿 저장소와 명시적인 아키텍처 결정을 제공한다. ## 엔지니어링 리더가 관리해야 할 지표 AI 도입의 성공 여부는 단순한 코드 생성량이나 자동완성 수락률만으로 판단하기 어렵다. - Copilot 사용 지표를 통해 일·주간 활성 사용자, 에이전트 사용률, 추가·삭제된 코드 라인, 언어·모델별 사용 패턴을 확인한다. - 에이전트 사용률은 높은데 특정 팀의 결함이 증가한다면 프롬프트 교육이나 코드 리뷰 기준을 강화해야 한다. - 특정 언어나 모델에서 결함률이 높다면 해당 기술 선택과 사용 방식을 재검토할 수 있다. - Copilot API를 이용하면 사용자 단위 데이터를 기반으로 조직에 맞는 대시보드를 구축할 수 있다. - 개발 속도가 빨라질수록 시니어 엔지니어의 아키텍처 검토와 품질 관리 역량은 더욱 중요해진다. AI를 도입할 때는 “얼마나 많은 코드를 만들었는가”보다 “어떤 구조와 품질의 코드를 만들었는가”를 관리해야 한다. TypeScript 같은 강한 제약의 도구와 명확한 개발 패턴을 기반으로 AI를 활용하고, 테스트·리뷰·품질 지표를 함께 운영하는 것이 실용적인 접근이다.

원문 읽기(새 탭에서 열림)
microsoft원문

Microsoft Learn MCP 서버 구축기 (새 탭에서 열림)

Microsoft Learn MCP(Model Context Protocol) 서버는 AI 에이전트가 신뢰할 수 있는 최신 기술 문서를 실시간으로 활용할 수 있도록 설계된 원격 서버입니다. 기존의 복잡한 API 통합 방식 대신 표준화된 프로토콜을 채택하여 에이전트가 런타임에 도구를 스스로 발견하고 실행하게 함으로써, 개발자가 브라우저 이동 없이 개발 환경 내에서 정확한 기술 가이드를 받을 수 있도록 지원합니다. ### MCP 도입 배경과 서버 방식의 이점 * **에이전트 네이티브 표준:** MCP는 에이전트가 기능을 실시간으로 협상하고 결과를 스트리밍하는 표준을 제공하여, 수동 검색이나 별도의 임베딩 관리 없이도 최신 데이터를 활용할 수 있게 합니다. * **통합의 단순화:** 클라이언트가 개별 API의 인증, 요청 형식, 에러 처리를 직접 구현할 필요 없이 MCP 호환 에이전트라면 서버 연결만으로 도구 스키마를 자동 인식하고 사용할 수 있습니다. * **지식 서비스의 재사용:** "Ask Learn" 서비스와 동일한 벡터 저장소 및 지식 서비스를 백엔드로 사용하여, RAG(검색 증강 생성) 기반의 높은 정확도와 최신성을 보장합니다. ### 핵심 도구 및 아키텍처 * **제공 도구:** 문서 제목과 URL을 찾는 `microsoft_docs_search`, 전체 문서 내용을 가져오는 `microsoft_docs_fetch`, 언어별 코드 예제 검색에 최적화된 `microsoft_code_sample_search`를 제공합니다. * **시스템 구조:** Azure App Service에 호스트된 C# SDK 기반의 원격 서버로 운영되며, Streamable HTTP Transport를 통해 클라이언트와 통신합니다. * **에이전트 워크플로우 최적화:** LLM 에이전트가 익숙한 '검색 후 읽기' 패턴을 따를 수 있도록 내부 API의 복잡한 파라미터를 직관적인 도구 운영 방식으로 압축하여 제공합니다. ### 운영 및 설계상의 주요 교훈 * **도구 설명이 곧 사용자 경험:** AI 모델에게 도구와 파라미터 설명은 매뉴얼과 같습니다. 단어 선택의 미세한 차이가 도구 활성화율에 직접적인 영향을 미치므로 데이터 기반의 지속적인 최적화가 필요합니다. * **도구 조합의 시너지:** 검색 도구로 최적의 일치 항목을 찾은 후 전체 문서를 읽어 답변의 근거를 강화하는 '도구 조합' 방식을 명시적으로 가이드하여 인용 품질을 개선했습니다. * **분산 시스템으로서의 운영:** 공용 MCP 서버는 다중 지역 배포, 동적 확장, CORS 관리 등 일반적인 상태 비저장(Stateless) 서비스와 동일한 운영상의 복잡성을 가집니다. * **방어적 스키마 진화:** 동적 발견 구조임에도 불구하고 파라미터를 하드코딩하는 클라이언트를 위해, 명칭 변경 시 기존 이름을 병행 지원하는 유예 기간을 두는 등 안정적인 서비스 진화 전략이 중요합니다. ### 실용적인 활용 및 기대 효과 개발자는 이제 브라우저를 열고 검색 결과를 훑어보는 번거로운 과정 대신, 선호하는 AI 에이전트에 Learn MCP 서버를 연결하여 Microsoft 기술 문서를 코드 맥락에 즉시 적용할 수 있습니다. 이는 개발 워크플로우 내에서 정확한 공식 문서를 기반으로 한 자동화된 코딩 지원과 문제 해결을 가능하게 합니다.

github3분 읽기큐레이션 요약

GitHub Copilot의 에이전

GitHub Copilot의 에이전트 기능은 단순한 코드 자동완성보다 시스템 설계, 리팩터링, 마이그레이션, 다중 파일 변경을 지원하는 협업 도구로 활용할 수 있다. 다만 Copilot이 개발자의 판단을 대체하는 것은 아니며, 개발자는 제안된 구조와 변경 사항을 검토하고 반박할 수 있어야 한다. 핵심은 기능 구현 전에 아키텍처 경계와 영향 범위를 분석하도록 Copilot을 활용하는 것이다. ## 시스템 설계와 모듈 분해 - 코드를 바로 작성하기보다 먼저 다음 영역의 경계를 식별한다. - 도메인 로직 - 데이터 접근 계층 - 인터페이스와 컨트롤러 - 모듈 간 상호작용 - Copilot에 서비스 구조를 분석하도록 요청하면 다음 문제를 발견하는 데 도움을 받을 수 있다. - 모듈 경계와 계층 간 결합 - 비동기 처리 및 트랜잭션 관련 위험 - 중복 로직과 책임 혼재 - 테스트 가능성과 관측성 문제 - 헥사고날 아키텍처와 계층형 아키텍처를 비교하게 하고, 현재 코드베이스의 제약 조건에 맞는 선택과 트레이드오프를 설명하도록 할 수 있다. - 이 과정에서 Copilot은 자동완성 도구가 아니라 설계 리뷰어처럼 활용된다. ## 의존성 역전 기반의 모듈형 서비스 구축 - 도메인, 컨트롤러, 리포지토리를 독립적인 모듈로 나누도록 요청할 수 있다. - 의존성 역전을 적용하면 상위 수준의 도메인 로직이 특정 데이터베이스나 인프라 구현에 직접 의존하지 않게 된다. - Copilot은 다음과 같은 결과물을 생성할 수 있다. - 도메인 모델 인터페이스 - 리포지토리 추상화 - 도메인 서비스를 호출하는 컨트롤러 - 각 모듈의 책임, 가정, 계약을 설명하는 Markdown 문서 - 초급 개발자는 실제 서비스 설계 패턴을 학습하고, 숙련 개발자는 반복적인 기본 코드 작성 시간을 줄일 수 있다. ## 태깅 기능 추가 시 고려할 아키텍처 영향 - “노트에 태그 추가”는 단순한 기능처럼 보이지만 여러 계층에 영향을 준다. - 데이터 모델링 방식부터 결정해야 한다. - 노트에 태그를 직접 내장할지 - 정규화된 태그 테이블을 만들지 - 다대다 관계를 사용할지 - 검색 기능에서는 태그가 색인, 필터링, 검색 관련성에 어떤 영향을 주는지 검토해야 한다. - API에서 태그를 독립적인 리소스로 노출할지, 내부 구현 세부사항으로 둘지도 결정해야 한다. - 검증 규칙과 불변식을 어느 계층에서 강제할지 명확히 해야 한다. - 마이그레이션 방식과 배포·롤백 전략도 함께 설계해야 한다. - Copilot에 먼저 영향 범위를 분석하게 하면 다음 항목을 확인할 수 있다. - 태그와 노트의 관계 - 스키마 마이그레이션 필요성 - 검색 및 캐시·색인 영향 - 검증 로직 변경 - 테스트와 외부 API 소비자에 대한 영향 - 잠재적인 회귀 문제 ## 다중 파일 변경과 일관된 구현 - 설계가 끝난 뒤에는 도메인 모델, 스키마, 리포지토리, 컨트롤러를 하나의 의도로 연결해 구현하도록 Copilot에 요청할 수 있다. - 테스트와 문서도 함께 갱신하게 하고, 각 변경 사항을 diff 형태로 제시하도록 하면 검토가 쉬워진다. - 예시로 태그를 JSON 배열로 저장하는 스키마 변경, `Tag`와 `Note` 인터페이스 추가, 컨트롤러에서 태그 추가 서비스를 호출하는 코드가 제시된다. - 에이전트 모드의 장점은 한 파일의 코드 생성이 아니라 여러 파일에 걸친 변경을 조정하고 일관성을 유지하는 데 있다. ## 안전한 스키마 마이그레이션 - 중요한 것은 SQL 문법 자체보다 변경을 운영 환경에 안전하게 적용하는 전략이다. - 마이그레이션은 다음 조건을 고려해야 한다. - 기존 클라이언트와 호환될 것 - 변경을 되돌릴 수 있을 것 - 높은 부하에서도 안전할 것 - 의존 시스템에 변경 사항이 투명하게 전달될 것 - Copilot에게 마이그레이션을 작성하게 하기 전에 호환성, 가역성, 부하 상황을 기준으로 설계를 검토하게 하는 것이 바람직하다. ## 실용적인 활용 방식 Copilot에게 곧바로 “코드를 작성하라”고 요청하기보다, 먼저 구조 분석과 영향 범위 파악을 시킨 뒤 구현·테스트·문서화까지 단계적으로 진행하는 방식이 효과적이다. 생성된 결과는 반드시 개발자가 계약, 마이그레이션, 회귀 가능성, 운영 환경의 위험을 직접 검토해야 한다.

원문 읽기(새 탭에서 열림)
microsoft원문

상호작용이 모든 것을 (새 탭에서 열림)

마이크로소프트는 단순한 도구로서의 AI를 넘어, 개발 생명 주기 전반에서 함께 기획하고 분석하며 실행하는 ‘지능형 협업자’로서의 에이전트 활용 모델을 제시했습니다. 특히 수백 개의 리포지토리에 걸친 Entra SDK v1에서 v2로의 복잡한 마이그레이션 프로젝트에서, 에이전트를 팀원의 정체성을 가진 파트너로 대우함으로써 4~6주가 소요되던 작업을 2시간 이내로 단축하고 80~90%의 높은 정확도를 달성했습니다. 기술적 자동화의 한계를 극복하기 위해서는 AI에게 단순한 지시 사항을 나열하기보다 판단력을 발휘할 수 있는 역할과 맥락을 부여하는 프레임워크가 핵심입니다. ### 단순 자동화 사고방식의 한계 복잡한 기술적 마이그레이션은 단순히 기계적인 단계의 반복이 아니며, 맥락에 따른 판단과 보안 경계에 대한 세심한 평가가 필수적입니다. * 기존의 체크리스트나 스크립트 방식의 자동화는 모호한 상황이나 문서화되지 않은 커스텀 로직에 직면했을 때 반복적으로 실패했습니다. * 복잡한 작업에는 상황에 따른 판단(Judgment)이 필요하며, 이는 단순한 자동화 대상이 아니라 지능적인 협업을 통해 해결해야 할 영역입니다. * AI에게 단순히 "이 단계를 따르라"고 명령하는 방식은 에이전트가 예외 상황에서 잘못된 추측을 하거나 조용히 실패하게 만드는 원인이 됩니다. ### 지시를 넘어선 정체성 부여의 힘 성공적인 협업의 전환점은 AI 에이전트에게 단순한 작업 목록이 아닌, 구체적인 팀 내 역할과 미션을 부여했을 때 나타났습니다. * 에이전트를 '스크립트 실행자'가 아닌 '공동 창작 엔지니어(Co-creative engineer)'로 정의함으로써 문제 해결 능력이 극대화되었습니다. * 정체성이 부여된 에이전트는 단순한 패턴 매칭을 넘어 보안 경계를 인식하고, 불확실한 상황에서는 임의로 처리하는 대신 사람에게 질문을 던지기 시작했습니다. * 이러한 접근법은 에이전트가 작업의 중요성을 이해하고 우선순위가 충돌할 때 적절한 판단을 내릴 수 있는 심리적·맥락적 토대가 되었습니다. ### 공동 창작 파트너십 프레임워크의 8가지 요소 마이크로소프트가 실제 프로젝트에 적용한 프레임워크는 AI 에이전트가 인간과 같은 수준의 판단력을 발휘하도록 설계되었습니다. * **정체성과 미션(Identity & Mission):** 에이전트가 누구인지, 왜 이 일이 중요한지 설명하여 목표가 충돌할 때 우선순위를 정할 수 있게 합니다. * **목적과 의도(Purpose & Intent):** 속도보다 보안, 완료보다 정확성 같은 핵심 가치를 명시하여 판단의 기준을 제공합니다. * **우선순위가 지정된 목표(Key Goals):** 1차 목표부터 품질 목표까지 순위를 매겨 에이전트가 트레이드오프 상황에서 최선의 결정을 내리게 돕습니다. * **판단 지침이 포함된 단계별 가이드:** 단순한 행동 지침뿐만 아니라, 무엇을 보존해야 하는지 그리고 어떤 경우에 인간에게 에스컬레이션(보고)해야 하는지를 구체적으로 명시합니다. 복잡한 기술 부채 해결이나 대규모 아키텍처 변경을 고민하고 있다면, AI를 단순한 자동화 봇으로 활용하는 단계에서 벗어나야 합니다. 800줄의 상세 로직보다 더 중요한 것은 에이전트에게 팀의 일원으로서의 책임과 권한을 부여하는 프레임워크입니다. AI가 판단력을 발휘할 수 있도록 명확한 역할과 가치 기준을 제공할 때, 비로소 인간 개발자는 단순 코더가 아닌 '에이전트 오케스트레이터'로 거듭날 수 있습니다.

microsoft원문

AI 기반 코드 리뷰를 통한 대 (새 탭에서 열림)

마이크로소프트는 사내 풀 리퀘스트(PR)의 90% 이상에 AI 코드 리뷰 어시스턴트를 도입하여 매월 60만 건 이상의 리뷰를 처리함으로써 개발 생산성과 코드 품질을 획기적으로 높였습니다. 이 시스템은 단순 반복적인 리뷰 작업을 자동화하여 엔지니어가 아키텍처나 보안 등 고차원적인 문제에 집중할 수 있게 돕고, PR 완료 시간을 최대 20% 단축하는 성과를 거두었습니다. 마이크로소프트 내부에서 검증된 이 혁신 모델은 현재 깃허브 코파일럿(GitHub Copilot)의 PR 리뷰 기능으로 확장되어 전 세계 개발 생태계에 기여하고 있습니다. ### 기존 PR 리뷰의 페인 포인트 해결 * **저부가가치 피드백의 과중:** 리뷰어가 구문 오류나 명명 규칙 같은 단순 작업에 시간을 쏟느라 정작 중요한 설계상의 결함이나 보안 취약점을 놓치는 문제를 해결하고자 했습니다. * **리뷰 지연 및 컨텍스트 부족:** PR 규모가 크면 맥락 파악이 어려워 리뷰가 며칠씩 지연되기도 하는데, AI가 즉각적인 피드백을 제공하여 병목 현상을 제거했습니다. * **휴먼 에러 방지:** 수천 명의 개발자가 참여하는 대규모 환경에서 발생할 수 있는 일관성 없는 리뷰 품질을 AI를 통해 일정 수준 이상으로 상향 평준화했습니다. ### AI 리뷰어의 핵심 기능과 작동 방식 * **자동화된 체크 및 코멘트:** 스타일 불일치부터 널 참조(Null Reference), 비효율적인 알고리즘 등 논리적 오류를 식별하며, 예외 처리나 민감 데이터 포함 여부 등의 카테고리로 분류된 코멘트를 남깁니다. * **코드 수정 제안 (Apply Change):** 단순한 지적에 그치지 않고 구체적인 수정 코드를 제안하며, 개발자가 승인 버튼을 클릭하면 즉시 반영되는 워크플로우를 제공해 투명성과 책임성을 유지합니다. * **PR 요약 및 대화형 Q&A:** 복잡한 코드 변경 사항을 한눈에 알 수 있게 요약해 주며, "이 매개변수가 왜 필요한가?"와 같은 구체적인 질문에 AI가 답하는 인터랙티브 기능을 통해 코드 이해도를 높입니다. * **워크플로우 통합:** 별도의 UI나 도구 설치 없이 기존 PR 스레드 내에서 동료 개발자와 대화하듯 AI와 상호작용할 수 있도록 설계되었습니다. ### 품질 향상과 개발 속도 가속화 * **리뷰 사이클 단축:** 약 5,000개의 저장소 데이터를 분석한 결과, AI 도입 후 PR 완료 시간 중앙값이 10~20% 개선되었습니다. * **코드 품질의 상향 평준화:** 런타임 에러를 유발할 수 있는 API 호출 순서 오류 등을 미리 잡아내어 실제 배포 후 발생할 수 있는 사고를 미연에 방지합니다. * **멘토링 효과:** AI가 코드 한 줄마다 개선 방향과 이유를 설명해 주므로, 특히 신입 개발자들이 조직의 코딩 표준과 베스트 프랙티스를 빠르게 학습하는 데 큰 도움을 줍니다. ### 맞춤형 설정 및 에코시스템으로의 확장 * **팀별 맞춤 가이드라인:** 각 팀의 특성에 맞는 리뷰 프롬프트를 설정할 수 있어, 과거의 크래시 패턴을 분석하거나 특정 배포 게이트(flight gates) 준수 여부를 확인하는 등 특화된 리뷰가 가능합니다. * **1P-3P 선순환 구조:** 마이크로소프트 내부(1P)에서 검증된 기능은 2025년 4월 정식 출시된 깃허브 코파일럿의 PR 리뷰 기능(3P)으로 이식되었으며, 외부 사용자들의 피드백이 다시 내부 도구의 발전으로 이어지는 구조를 확립했습니다. 개발 조직의 규모가 커질수록 리뷰의 일관성을 유지하고 속도를 높이는 것이 큰 과제입니다. 마이크로소프트의 사례처럼 AI를 단순한 도구가 아닌 '첫 번째 리뷰어'로 워크플로우에 깊숙이 통합한다면, 단순 반복 업무는 AI에게 맡기고 인간 개발자는 창의적인 설계와 비즈니스 로직에 더 집중할 수 있는 환경을 구축할 수 있을 것입니다.

microsoft원문

마이크로소프트 엔지 (새 탭에서 열림)

마이크로소프트는 자사 엔지니어들이 대규모 AI 애플리케이션을 구축하는 실제 방법론을 공유하기 위해 'How Microsoft engineers build AI' 비디오 시리즈를 새롭게 공개했습니다. 첫 번째 에피소드에서는 'Copilot for Azure' 내의 'Ask Learn' 플러그인 개발 사례를 통해 검색 증강 생성(RAG) 기술을 안정적으로 구현하고 확장하는 핵심 전략을 다룹니다. 이를 통해 개발자들은 기업 내부 데이터와 대규모 언어 모델(LLM)을 결합하여 정확하고 맥락에 맞는 AI 서비스를 구축하는 실질적인 통찰력을 얻을 수 있습니다. ### RAG 기술의 핵심과 활용 차별화 * RAG(검색 증강 생성)의 기본 개념을 정립하고, 모델의 가중치를 직접 수정하는 파인튜닝(Fine-tuning) 기술과 비교하여 RAG가 가진 차별적 우위를 설명합니다. * Copilot in Azure뿐만 아니라 Microsoft Security Copilot, Dynamics 365 Business Central 등 마이크로소프트의 주요 제품군에 RAG가 실제로 어떻게 적용되어 비즈니스 가치를 창출하는지 사례를 제시합니다. * 단순한 이론을 넘어, 실제 서비스 환경에서 LLM이 고유 데이터에 접근하여 답변의 신뢰도를 높이는 메커니즘을 상세히 다룹니다. ### 엔지니어링 단계에서의 도전 과제와 해결책 * RAG 시스템 구축 시 직면하는 주요 난관인 콘텐츠 선택, 데이터 전처리(Preprocessing), 그리고 성능 평가(Evaluation) 과정을 체계적으로 관리하는 방법을 공유합니다. * 플러그인이 사용자에게 최신 상태의 정확한 정보를 실시간으로 전달할 수 있도록 보장하는 혁신적인 엔지니어링 솔루션을 소개합니다. * 프로토타이핑 단계에서 흔히 발생하는 실수들을 짚어보고, 이를 방지하기 위한 데이터 관리 및 운영상의 베스트 프랙티스를 제안합니다. ### Ask Learn 플러그인 구현 사례 분석 * Azure 개발자들이 작업 흐름을 방해받지 않고 몇 초 만에 답을 얻을 수 있도록 설계된 'Ask Learn'의 실제 작동 시연을 포함하고 있습니다. * 제품 관리자(PM)와 수석 소프트웨어 엔지니어링 매니저 등 실제 개발 주역들의 인터뷰를 통해, 대규모 스케일에서 RAG 솔루션을 안정화하기 위해 사용된 구체적인 기술 스택과 의사결정 과정을 공개합니다. * 사용자의 질문 의도에 가장 적합한 문서를 검색하고 이를 기반으로 맥락에 맞는 답변을 생성하는 구체적인 워크플로우를 학습할 수 있습니다. 성공적인 AI 애플리케이션 구축을 위해서는 Microsoft Learn의 관련 문서와 가이드를 참고하는 것이 좋습니다. 또한, 현재 무료로 제공되는 GitHub Copilot이 포함된 Visual Studio IDE를 활용하면 RAG 기반 앱 개발을 더욱 효율적으로 시작할 수 있습니다.

figma3분 읽기큐레이션 요약

VS Code 방식: 개발자의 이너

개발자의 생산성을 높이려면 코드 작성 자체보다 코드와 디버깅에 몰입하는 ‘이너 루프(inner loop)’를 최대한 끊기지 않게 해야 한다. VS Code는 외부 도구로 이동하는 횟수를 줄이고, 협업·프로젝트 관리·AI 지원 기능을 편집기 안으로 통합해 몰입과 협업을 함께 달성하려 한다. 궁극적으로 도구를 오가는 마찰을 줄이는 것이 코드 품질뿐 아니라 개발자의 만족도와 에너지에도 영향을 준다는 주장이다. ## 이너 루프와 아우터 루프의 구분 - **이너 루프**는 코드 작성, 컴파일, 디버깅을 코드 에디터 안에서 반복하는 집중 작업 과정이다. - **아우터 루프**는 버그 트래커 확인, 티켓 업데이트, 동료와의 Slack·Teams 대화, 문서 검색, 프로젝트 관리 등 에디터 밖의 활동을 의미한다. - 여러 프로젝트를 동시에 진행하면 브라우저, API 문서, 터미널, 데스크톱을 계속 오가게 되며 집중력이 분산된다. - 몰입 상태가 유지되면 코드의 엣지 케이스와 향후 확장 계획 같은 맥락을 머릿속에 유지할 수 있다. - 반대로 컨텍스트 스위칭이 발생하면 이러한 맥락이 사라져 생산성과 코드 품질이 떨어진다. ## 편집기 안에서 집중력 유지하기 - VS Code의 **Zen Mode**는 사이드바 등 불필요한 UI를 숨겨 방해 요소를 줄인다. - 화면 구성이 바뀔 때마다 뇌가 새로운 UI에 적응해야 하므로, 작은 UI 변화도 누적되면 집중을 방해할 수 있다. - 개발자는 필요한 확장 기능을 선택해 자신의 작업 방식에 맞게 편집기를 구성할 수 있다. - 단일 도구의 사용성을 개선하는 것만으로는 충분하지 않으며, 도구 사이를 오가는 행위 자체를 줄여야 한다. ## 아우터 루프를 이너 루프로 가져오기 - GitHub에서 풀 리퀘스트를 확인한 뒤 다시 에디터로 돌아오는 과정처럼, 작업 중 도구를 전환하면 흐름이 끊긴다. - 가능한 경우 다음 기능을 코드 에디터에 직접 통합해야 한다. - 협업자와의 커뮤니케이션 - 코드 리뷰와 풀 리퀘스트 처리 - 프로젝트 관리와 티켓 확인 - 디자인 및 API 문서 참조 - Figma for VS Code 확장 기능을 사용하면 VS Code에서 디자인을 직접 확인하고 검사할 수 있다. - 필요한 협업이나 프로젝트 관리 작업을 현재 작업 공간에서 처리하면 불필요한 브라우저 전환을 줄일 수 있다. ## AI를 활용한 작업 흐름 보완 - 생성형 AI는 개발자가 작성 중인 코드를 분석해 다음에 필요할 가능성이 높은 코드를 미리 제안할 수 있다. - 제안이 작업 흐름을 방해하지 않는 방식으로 제공되면 코드 작성 속도와 집중력을 동시에 높일 수 있다. - 글에서는 GitHub Copilot 사용 시 코딩 속도가 55% 향상되었다는 GitHub의 보고와, AI 사용 개발자의 75%가 더 큰 성취감을 느꼈다는 조사 결과를 소개한다. - AI의 가치는 단순한 속도 향상뿐 아니라 개발자가 반복 작업에서 벗어나 더 만족스럽게 일하도록 돕는 데 있다. ## 협업도 몰입을 깨지 않는 방식으로 - 협업은 필수지만 회의와 실시간 채팅, 메시지 왕복은 개발자의 집중을 끊을 수 있다. - 이상적인 협업은 한 사람이 다른 사람의 작업을 중단시키는 방식이 아니라, 서로 각자의 이너 루프를 유지하며 진행하는 것이다. - VS Code는 GitHub 기능을 편집기에 통합해 다음 작업을 에디터를 떠나지 않고 수행하도록 지원한다. - 이슈 작업 - 코드 리뷰 - 풀 리퀘스트 작성 및 제출 - 모든 협업이 실시간이어야 하는 것은 아니며, 비동기 댓글과 리뷰를 활용하면 집중과 협업을 함께 유지할 수 있다. ## 개발자 행복으로 이어지는 선순환 - 도구 간 전환이 줄어들면 작업의 마찰과 반복적인 불편이 감소한다. - 몰입 상태가 길어질수록 생산성뿐 아니라 개발자의 에너지와 만족도도 높아진다. - 개발자 도구를 만드는 팀은 기능을 추가하는 것뿐 아니라, 개발자의 흐름을 방해하는 요소를 지속적으로 제거해야 한다. - 장기적으로는 코드 에디터가 개발에 필요한 모든 도구를 연결하는 통합 작업 공간이 되는 것이 이상적인 방향이다. 개발팀은 자주 발생하는 도구 전환 지점을 먼저 파악하고, GitHub·디자인 도구·문서·프로젝트 관리 기능을 에디터와 연동하는 것부터 시작하는 것이 좋다. 또한 알림을 줄이고 비동기 협업을 기본값으로 삼으면 집중력을 보존하면서도 협업 품질을 유지할 수 있다.

원문 읽기(새 탭에서 열림)