GitHub Copilot 스택 세션 공부 정리
GitHub Copilot 앱에 새로 생긴 스택 세션과 스택 PR 기능을 정리해봤다. AI가 세션 간 맥락을 이어받는 방식이 흥미로웠다.
GitHub 블로그에서 Copilot 앱에 새로 추가된 기능 글이 올라왔다. 제목이 “Stacked sessions and pull requests”인데, 처음엔 그냥 UI 변경 글인 줄 알았다. 읽어보니 AI가 세션 간에 작업 맥락을 어떻게 이어받는지에 대한 이야기라 정리해봤다.
1️⃣ 이게 뭐냐?
스택 세션은 같은 저장소에서 각 세션이 이전 세션을 기반으로 이어지는 구조에 가깝다. 한 세션이 끝나면 결과와 맥락이 다음 세션으로 넘어가는 방식이다. 글에서는 10년 된 React 15 코드베이스를 현대화하는 과정을 예시로 들었는데, 스타일 포팅 → react-bootstrap 제거 순서로 작업을 나눠서 각 세션이 이전 결과물 위에 쌓이는 흐름으로 진행했다는 설명이었다.
스택 PR은 이 흐름과 연결된다. 각 PR이 독립적으로 존재하는 게 아니라 이전 PR의 브랜치를 대상으로 만들어지는 체인 구조인 것 같다. 첫 번째 PR이 병합되면 두 번째 PR이 그 위에서 자동으로 이어진다. 세션의 순서가 PR의 순서로 그대로 옮겨오는 셈이다.
글에서 “스코프 크리프를 방지하기 위해 작은 단위로 나눴다”는 표현이 계속 눈에 들어왔다. AI에게 큰 덩어리를 한 번에 맡기면 작업이 의도치 않은 방향으로 퍼진다는 경험에서 나온 접근인 것 같았다. 세션 단위를 작게 잡고, PR도 그에 맞게 따라간다는 흐름이다.
2️⃣ 내가 든 생각
처음엔 “그냥 여러 세션을 연속으로 실행하는 것”과 뭐가 다른가 싶었다. 근데 차이는 컨텍스트 관리 쪽에 있는 것 같다. 기존에는 세션이 바뀌면 AI가 이전 작업을 처음부터 다시 파악해야 했을 텐데, 스택 세션은 그 연결 자체를 도구가 담당해주는 개념인 것 같다. “AI한테 맥락을 다시 설명해야 한다”는 번거로움을 줄이려는 것처럼 읽혔다.
디자이너 입장에서 보면, 디자인 시스템을 정리할 때 비슷한 고민이 있었다. 전부를 한 번에 바꾸려다가 범위가 커지고 중간에 판단 기준이 흔들리는 경험. 코드베이스 현대화 작업도 비슷한 구조인 것 같다. 변경의 단위는 작게 유지하되 흐름은 끊기지 않게 해야 한다는 것.
👉🏻 “쌓는다”는 표현이 흥미로웠다. 그냥 순서대로 이어가는 게 아니라, 각 세션이 이전 것의 상태 위에 실제로 올라간다는 뉘앙스가 있다. 그게 PR 구조에도 그대로 반영된다는 점이 생각보다 일관된 설계처럼 느껴졌다.
💡 그러면 중간에 순서가 바뀌거나 하나를 되돌려야 할 때는 어떻게 될까? 스택 구조라면 아래 PR이 변경되면 위에 쌓인 PR들도 영향을 받을 것 같은데, 그 부분은 글에서 다루지 않아서 궁금해졌다.
3️⃣ 앞으로 어떻게 쓸까?
아직 Copilot 앱을 직접 닿아본 적은 없다. 공부한 내용 기준으로만 보면, 이 기능은 규모가 있는 리팩토링 작업에 특히 어울릴 것 같다는 생각이 들었다. 소규모 변경이라면 세션을 쪼갤 이유가 없을 것 같고, 코드베이스 전반에 걸친 점진적 변경이어야 스택이 의미 있는 상황이 되는 것 같다.
⭐️ 마지막으로
이런 류의 AI 도구를 공부할 때마다 자꾸 같은 질문을 하게 된다 — AI가 맥락을 “이어받는다”는 게, 실제로 상태를 이어받는 건지, 아니면 잘 정리된 요약을 다시 읽는 건지. 스택 세션도 결국 그 선 어딘가에 있을 텐데, 공부한 내용만으로는 구분이 잘 안 됐다.
참고 원문: Stacked sessions and pull requests in the GitHub Copilot app