이번 2주 동안은 Pintos Virtual Memory를 진행한다.

지난주 User Programs를 하면서 AI에게 요구사항 분석과 디버깅을 너무 많이 넘겼다는 생각이 들었다.
이번 주에는 구현 속도보다, 직접 삽질하고 분석하고 검증하는 경험에 더 초점을 맞추려고 한다.

핵심 역량 목표

정글 과정을 통해 길러야 할 10가지 핵심 역량(문제해결, 설계, 구현, 품질, 유지보수, 협업, 태도, 비즈니스 이해, AI 활용, 학습 민첩성)을 기준으로 이번 주의 목표를 설정하고, 실제 과정과 결과를 돌아봅니다.

목표 1. Virtual Memory 과제를 AI를 거의 사용하지 않고 개발하기

관련 역량: 문제해결, 설계, 구현, 품질, 태도, 학습 민첩성

계획

이번 주에는 AI를 거의 사용하지 않고 Pintos VM을 구현해보려고 한다.

목표는 구현을 빠르게 끝내는 것보다, AI가 없던 때처럼 직접 요구사항을 읽고, 삽질하고, 디버깅하고, 검증하는 과정을 겪어보는 것이다.

팀원들도 이번에는 직접 부딪혀보고 싶다는 욕심이 있어, 팀 차원에서도 AI 사용을 강하게 제한했다.

AI는 일반적인 개인 학습이나 테스트 케이스를 읽는 정도에만 사용하고, Pintos 요구사항 분석, 구현 방향, 디버깅, 테스트 결과 분석은 직접 해야한다.
단, 반복되는 printf 추가처럼 판단이 거의 없는 단순 작업은 AI를 사용할 수 있다.

과정

AI는 최소한으로 사용했다. 개념 이해에 있어서도 검색 엔진 대체 정도로만 사용하고, 강의와 관련된 구현의 경우에는 제공된 자료나 구글링을 통해서 해결했다.

예외적으로 디버그 로그를 보기 좋게 분리하기 위한 debug_trace.h 매크로를 생성하는데 사용했다.

디버깅은 로그를 찍어가며 직접 분석하며 진행했다. 막히는 부분은 문서와 코드를 다시 읽거나, 다른 반 사람들에게 질문하면서 해결했다.

나중에 복기하는데 도움이 되도록 매일 작업 메모를 남기면서 진행했다.

하지만 마지막 2~3일에는 mmap과 swap in/out이 어떻게 구현되는지까지는 보고 싶어 AI의 도움을 받아 전체 흐름을 완성하고 공부했다.

결과 및 피드백

직접 한 줄씩 찍어보고, 테스트가 왜 깨지는지 좁혀가는 과정에 대부분의 시간을 소요했다.

끝까지 완전히 AI를 쓰지 않은 것은 아니지만, 직접 로그를 남기고 분석하며 개발한 부분은 오래 기억에 남을 것 같다.

학습 효과를 생각해보면, 공부한 부분이 확실히 기억에 많이 남는다. 시간 대비 효율 부분에서는 모르겠지만, 시간이 많다면 AI 없이 직접 부딪히는 게 확실히 효과가 좋다고 느꼈다.

그 외 작업

핵심 역량 목표와 직접 연결되지는 않지만, 이번 주에 따로 진행했거나 정리할 만한 활동을 작성합니다.

운동

정글에서 장기적으론 가장 바쁜 주차였다고 생각되는데, 그래서 러닝을 2번정도 간 것 외에는 운동을 하지 않았다.

Jungle Bell 작업

홍보 이후에는 D-day 기능이 포함된 릴리즈 정도를 추가했다.

이제는 유지보수 단계로 넘기려고 한다.

지금 기능만으로도 충분하고, 정글 수료 기간이 절반을 넘은 시점이라 새로운 사용자를 모으기도 어렵다고 판단했다.

지금은 공부나 오픈소스 쪽에 개인 시간을 더 할당할 생각이다.

오픈소스 기여 준비

지난주 만들었던 contribution-overlays을 사용해볼 겸, 익숙한 Spring Initializr 프로젝트에 기여를 해보았다.

작은 작업 두 개를 PR로 올렸다.

프로젝트 관련 AI 관련 문서를 모아두고 커밋 기록을 남길 수 있다는 점은 좋지만, 문서가 많아지면 사용하기에 불편할 수도 있을 것 같다.

그리고 2026 오픈소스 컨트리뷰션 아카데미 멘티에도 지원했다. 3년째 지원해보곤 있지만, 합격해본적은 없다.

WIL (What I Learned)

회고

Pintos 후기

PintOS를 통해 운영체제를 완전히 이해했다고 말하기는 어려울 것 같다. 하지만 컴퓨터가 어떤 계층으로 구성되어 있고, 어떻게 동작하는지 넒게 볼 수 있게 된 것 같다.

이 경험은 서버 개발자로서 기술을 선택하고 성능을 해석하는 능력을 키우기 위해서 어떤 공부를 해야하는지 방향을 잡는데 큰 도움이 된 것 같다.

혼자였다면 이런 프로젝트를 진행하지 않았을 것 같다. 하지만 이번 경험을 어려운 목표라도 어떻게든 해낼 수 있다는 자신감이 생겼다. 앞으로 오픈소스나 개인 학습에서도 더 도전적으로 시도해볼 수 있을 것 같다.

그리고 책이나 자료로 이해했다고 생각했지만, 직접 기능을 구현해보니 실제 이해와는 큰 차이가 있었다. 이처럼 토이 수준이지만 코드 레벨로 작성해보는 것이 효율적이라는 것을 더욱 체감하게 되어서, DB나 웹 서버, 시스템 콜 학습 같은 주제도 공개된 대학 강의나 자료를 찾아보고 진행하보지 않을까 싶다.

이와 관련해서 더 구체적인 내용을 정글의 절반을 지나며에 작성해 놓았다.

코어타임 / 협업 회고

협업은 많이 아쉬웠다고 생각한다.

팀원들 간의 격차로 인해서, 성향 차이, 생활패턴 차이 등으로 인해서 다른 팀처럼 병렬로 꾸준히 진행되는 느낌을 만들지는 못했다.

여러 요인이 있겠지만, 다른 팀들과 비교헀을 때, 이러한 진행도나 집중도에서 차이가 있던 것은 사실이다.

그렇다고 나나 팀원들을 남들과 비교하는 것은 의미있는 건 아닌 듯 하고, 개인적으로 반성하고 개선해야 할 점은.

이러한 문제가 있다는 것을 인지했지만, 개인 작업에 몰입하느라 회의하거나 이야기 하는 것을 미뤘다는 것이다.

중간에 몇 번 회의가 진행되진 했지만, 더 적극적으로 건의하고 활동해야하지 않았나 싶다.

다음 주차에 시도할 것

솔직히 잘 모르겠다.
새로운 주제가 시작되기도 하고, 어떤 식으로 진행될지도 예상이 가지 않는다.

이제 크게 보면 AI와 나만무만 남았는데,

과제에 집중하되, 개인적인 취업 준비나 학습을 병행하면서 잘 진행할 수 있게 시간 분배를 해봐야 할 것 같다.