[Pintos] Pintos를 시작하면서 - 협업에 대한 고민, AI의 활용 범위

2025. 5. 9. 12:00·크래프톤 정글/Code 정글(C언어)

Pintos를 시작하면서 - 협업에 대한 고민, AI의 활용 범위

단독행동에서 협업을 시작하는 단계

예전부터도 팀 단위 활동을 목표로 했지만, 그것이 무색하게 각 주차의 진행은 바로 저번 주차까지도 개인적인 성취를 이룬 뒤 그걸 나누는 형태로 진행되어 왔었다. 일부 예외도 있을 수 있겠지만 대부분 이런 경향을 가지고 있었다고 본다. 그래서 한 명이 쭉 치고나가는 것도 가능했고, 이를 통해 다른 팀원들을 이끌어주는 것도 가능했다. 그런데 다르게 말하면 이는 묻어가는 게 가능했다는 말로도 해석될 수 있다.

 

다만 이제부터는 그런 묻어가는 일이 있어서는 안된다고 생각한다. 나는 솔직히 말해 반에 묻어갈 정도로 실력이 떨어지는 팀원이 있다고 생각하지 않는다. 반 학우들 모두가 입학시험과 면접을 거치고 선별된 진짜 정예들이라고 생각하기 때문이다. 다만 그중에 현업에서 뛰다 온 경력자들도 있고, 공부를 열심히 해서 탄탄한 실력을 갖춘 전공자들도 있고, 그 사람들이 쭉 치고 나가는 걸 보면서 주눅들 수도 있겠지만, 그 사람들은 그 사람들대로 열심히 하고 있는 것일 뿐이다. 경력자도 아니고, 전공자도 아니면 어떤가? 나는 나대로 열심히 공부하고 노력하면 된다.

 

그런 생각이 아니었다면 이제껏 9주차에 시작하는 시점 기준으로 블로그에 230여 개의 포스트를 쓰지 못했을 것 같다. '나는 나대로' 라는 생각을 늘 깊이 새기고 뭐 하나라도 더 배우고 발전하고, 성장하기 위해 노력하는 것이 중요하다. 그리고 이제는 그 과정이 개인이 아닌 팀 단위가 되어야 한다. '우리 팀은 우리 팀대로'로 변해야 하는 것이다. 다시말해 이제는 개인적인 성공과 성취가 아니라, 팀의 성공과 성취를 위해서는 어떻게 생각하고 행동해야 할 지 고민해야 하는 단계가 온 것 같다.

 

그래서 구체적으로는 어떻게 해야 할까? 주차마다 프로젝트가 주어질 것이고, 그 프로젝트는 또 여러 개의 하위 목표로 나눠질 것이다. 예를 들어 pintos 9주차의 경우에는 Thread에 대한 프로젝트이고, 그 프로젝트는 또 Alarm Clock, Priority Scheduling, Advanced Scheduler로 나눠진다. 다만 하위 목표가 3개라고 해서 조원들이 하나씩 나눠가지는 건 굉장히 치명적인 실수가 될 수 있다. 하위 목표마다 수행해야 할 분량이나 난이도가 천차만별이기 때문이다.

 

그렇다면 어떻게 해야 하나. 하위 목표를 또 삼등분으로 나눠야 한다. 그렇게 하위 목표를 팀 단위로 하나씩 해결해나가면서 최종 목표인 모든 하위 목표 해결에 도달해야 한다. 결국 추상적이면서 최종 목표인 pintos를 정복하기 위해서, 프로젝트 별로, 하위 목표 별로, 또 개인 별 역할 분담(더 하위의 목표)으로 나누어져야 한다. 코끼리를 냉장고에 넣는 방법은 코끼리를 잘게 나누는 것부터 시작해야 하는 것과 같다. 하위로 내려갈수록 목표는 더 구체적으로 변한다. 다만 이는 각 팀원이 동등한 실력을 전제로 했을 때의 일이지만, 위에서도 말했듯이 적어도 그 부분은 문제가 되지 않는다고 생각한다.

 

그러면 여기서 또 문제가 발생할 수 있다. 작업을 나누었을 때, 의존적인 작업이 생기는 경우에는 어떻게 해야 하나? A라는 작업이 완료되어야 B, C라는 작업이 시작할 수 있다면? 그래서 내가 생각한 방법은 '마라토너/자전거 페이스메이커'전략이다. 하나의 목표에 대해 작업을 분담해 맡게 되면 그 사람이 그 작업의 '핵심 역할자(마라토너)'가 된다. 이 사람은 최대한 AI의 도움을 받지 않거나 혹은 최소한의 방향에 대한 코칭을 받으면서 본인 스스로 해당 기능의 구현을 목표로 달려간다. 그리고 나머지 팀원들은 '프로젝트 리더(조언자, 자전거 페이스메이커)'의 역할을 부여받게 된다. 해당 작업에 대해 AI의 도움을 받아 단계별 클론 코딩을 하면서 학습을 병행한다. 이를 통해 작업 이해도를 전원이 보유할 수 있고, 핵심 역할자가 막혔을 때 곧바로 기술적인 지원이 가능해진다. 그리고 최종 디버깅/테스트 및 병합 시 팀원 전원의 실질적인 기여를 기대할 수 있다.

 

곧 이 전략을 사용함으로써 의존적인 작업을 통해 '죽은 시간'이 '투자 시간'으로 바뀌게 된다. 단순히 대기하게 되는 시간을 의미있는 복습과 사전 준비로 전환하는 것이다. 이를 통해 프로젝트 전체 이해도를 균등하게 유지할 수 있다. 또한 마라토너가 달리는 동안, 자전거를 탄 팀원들이 로드맵을 함께 그려준다. 물어봤을 때 '어? 그거 내 담당이 아니라서 나도 모르겠는데?'가 아니라 즉각적으로 기술적인 도움을 줄 수 있는 팀원이 옆에 존재한다는 건, 마라토너에게 있어 큰 심적 안정 장치가 된다. 이로 인해 막혔을 때 빠르게 컨텍스트를 공유하고, 병렬적인 디버깅이 가능해진다. 그리고 무엇보다도 전원이 직접 한 번씩 구현해보기 때문에 팀 전원의 기술적 성숙도 상승, 즉 경험치 파티가 보장된다. 또한 팀 프로젝트의 성공에 있어 특정 팀원의 부재나 병목에 전체 프로젝트가 의존하지 않게 되므로 이 또한 큰 장점이 될 것이다.

 

그런데 위의 경우는 선행 작업이 있을 때를 전제로 한다. 그러면 반대로 확률적인 문제겠지만 의존적인 작업이 없고 병렬적으로 각 팀원에게 작업이 나눠지게 된다면 어떻게 해야 할까? 마라토너만 있을 뿐, 이제는 자전거 페이스메이커는 없는 것이다. 이 경우에는 각자 주도하되, 교차적인 검토 및 통합적으로 조율하는 절차를 가져야 한다. 병렬적으로 나눠졌지만, 팀 모두가 각자의 작업 뿐만 아니라 전체 목표에 대한 작업 이해도를 높이기 위해 각자의 작업을 설명하고 진행 상황을 공유하는 시간이 마련되어야 한다.

 

결론적으로 pintos 프로젝트는 릴레이가 아니라 '팀 타임트라이얼 사이클 경기'에 가깝다. 서로 역할을 나눠 바람을 막아주고, 지치지 않도록 리드와 추종을 반복하면서 끝까지 완주하는 것. 다만 때로는 리드가 없을 수도 있다. 그러면서 팀 전체가 성장하고 팀 단위 프로젝트를 성공적으로 완수하는 것이 이번 pintos의 최종적인 목표가 아닐까 싶다.

 

 

AI를 얼마나 써야 하는가?

다만 학습 단계에서 AI를 사용하는 것은 부정적으로 비춰지는 경우가 많다. 그런데 개인적으로 이는 AI만에 의존해서 학습을 마치는 경우에만 부정적인 영향을 끼친다고 생각한다. AI라는 것을 어떻게 활용할지 주도적으로 계획한 뒤 한정된 영역에서만 부분적으로 활용한다면 학습 효과는 극대화하면서도 경험치 손실을 최소화할 수 있다고 본다.

 

곧, AI를 '등받이'로 삼지 않고, '훈련 파트너'로 활용해야 한다. '답을 달라'가 아니라, 내가 짠 설계와 구현을 검증받는 용도로 써야 한다는 것이다. 이를 통해 곧 결과가 아니라 과정을 주도한다는 점에서 AI를 통한 성장이나 성취에 대한 저해를 효과적으로 막을 수 있다. 그리고 위의 '마라토너/자전거 페이스메이커' 전략처럼 팀 내 협업 강화를 위한 '지식 간극 메우기 용도'로써 AI를 활용할 수도 있다. 주도자가 아닌 팀원들도 클론 코딩을 통해 동일한 구현을 따라가며, 로직의 흐름과 데이터 구조를 체화하고 주도자의 작업을 더 깊이 이해하고, 더 효과적으로 지원해 줄 수 있다. 이는 집단 학습 경험을 만드는 데에도 중요하다.

 

즉 의존이 아니라 '한정된 개입'으로 학습 효과를 최대화해야 한다. '전면 위임'이 아니라 '한정된 영역에서의 질문, 검증, 요약'에 활용한다면 오히려 AI 때문에 본인, 그리고 팀이 얻는 경험치가 감소하지 않고 더 능동적으로 배우고, 더 많이 기억하게 될 것이다. AI를 무분별하게 쓰면 경험치를 잃지만, 통제된 범위 내에서는 오히려 더 많은 경험치를 얻을 수 있다.

 

결론적으로 AI를 '정답을 내뱉는 답지'가 아니라 '생각을 체계화하는 도우미'로 활용한다면 학습 효과는 극대화되고, 경험치는 축적될 것이다.

 

저작자표시 비영리 변경금지 (새창열림)

'크래프톤 정글 > Code 정글(C언어)' 카테고리의 다른 글

[Pintos] Pintos 학습 프로세스 ver1.0  (0) 2025.05.10
[Pintos] Threads: Alarm Clock 단계별 구현 및 테스트하기  (0) 2025.05.09
[WebProxy] 캐시 기능이 추가된 동시성 프록시 서버 단계별 구현 및 테스트하기  (0) 2025.05.07
[VSCode] 내가 쓰는 VSCode 유용한 단축키 모음  (0) 2025.05.06
[WebProxy] 동시성 프록시 서버 단계별 구현 및 테스트하기  (0) 2025.05.06
'크래프톤 정글/Code 정글(C언어)' 카테고리의 다른 글
  • [Pintos] Pintos 학습 프로세스 ver1.0
  • [Pintos] Threads: Alarm Clock 단계별 구현 및 테스트하기
  • [WebProxy] 캐시 기능이 추가된 동시성 프록시 서버 단계별 구현 및 테스트하기
  • [VSCode] 내가 쓰는 VSCode 유용한 단축키 모음
그냥사람_
그냥사람_
IT 관련 포스팅을 합니다. 크래프톤 정글 8기 정경호
  • 그냥사람_
    그냥코딩
    그냥사람_
  • 전체
    오늘
    어제
    • 글 전체보기
      • 크래프톤 정글
        • 로드 투 정글(입학시험)
        • CS기초(키워드, 개념정리)
        • 컴퓨터구조(CSAPP)
        • Code 정글(C언어)
        • Equipped in 정글(나만무)
        • 마이 정글(WIL, 에세이)
      • 자료구조&알고리즘
        • 자료구조
        • 알고리즘
      • 일상
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
그냥사람_
[Pintos] Pintos를 시작하면서 - 협업에 대한 고민, AI의 활용 범위
상단으로

티스토리툴바