
회사와 비슷한 환경에서 최대한의 시행 착오를 하는 것이 목표이다.
다만, 회사와 달리 데드라인에 맞춰 어떻게든 해내는 것에 집중하는 것이 아니라 내가 실질적으로 이해하려고 노력하는 행위에 의미를 두는 것이 목표이다.
[역량 목표]
- 나에게 주어진 과제를 수행하기 위해 거대한 레거시에서 필요한 부분과 개념을 이해하기
- 질문을 잘 할 수 있도록 노력하기
- 내가 공부해보고 막히는 부분은 질의응답 채널을 이용하기
- 휘발되지 않는 공부를 하기 (되도록이면 AI를 사용하지 않고 능동적으로 공부하기)
[개인적 목표]
- 스스로에게 집중하려고 노력하기
- 팀원들과의 솔직하되 예의 있는 소통을 꺼리지 말기
- 압도되는 과제 속에서 나의 몫을 하루하루 해내기
- 처음 팀에서 정한 계획 및 규칙이 희석되지 않도록 노력하기
학습 민첩성 & 동료 학습: 혼자라면 해내기 어려운 과제를 4인 팀, 그리고 그 안에서도 2인 페어로 나누어 진행한 것은 학습 민첩성을 높이고 동료 학습을 해보기에 더할 나위 없이 좋은 환경이었다. 이를 통해, 거대한 코드에서 내가 사용할 부분을 파악하고 함수의 내부적인 동작을 모르더라도 호출해서 써보는 등의 활동을 진행하였다.
동료 학습이나 협업 면에서도 많은 실패를 해볼 수 있고 더 나은 협업을 만들기 위해 노력할 수 있어서 좋았다. 무엇보다, 투명하게 상태를 공유하는 것의 중요성과 팀을 우선시하는 것이 왜 중요한지를 배울 수 있었다.
아래에서 작성할 협업 룰과 겹치는 부분이라 간단히 정리만 하고 넘어간다.
전날에 잠을 많이 못 자서 걱정을 조금 했는데 생각보다 괜찮았다. Pintos 설명 시간에도 별로 안 졸았다. 이외에도 일정이 많았는데 생각보다 잘 소화했다고 생각한다.
이제 드디어 Pintos로 진입을 헀는데 팀끼리 진득하게 첫 스크럼을 해본 것이 매우 마음에 들었다. 아주 세세하게 정한 것은 아니었지만 꽤 오랜 시간을 들여 제대로 상의해서 나온 규칙과 진행 방향이어서 마음에 든다.
무엇보다 팀원들이 과제하고 싶어서 조급한 모습을 보인다거나 스크럼을 하는 데 있어 방해가 되는 모습을 보여주지 않아서 너무 고마웠다. 처음에는 몰랐는데 나중에 2주 동안 같은 팀을 하게 된다는 것을 알게 되었다. 그래서 오랜 시간을 들여 규칙을 정한 것이 더욱 의미 있게 느껴졌다.
오늘 내가 할 수 있는 양보다 조금 적은 양을 공부한 것 같아서 약간은 아쉽다. 그러나 오늘은 내가 할 수 있는 만큼 나름대로 해보았다고 생각한다. 다음에는 약간만 더 집중하는 시간을 두거나 오히려 환기하는 시간을 조금 가져보면 좋을 것 같다. 지금 생각해 보면 중간에 집중이 안 된다고 느끼는 지점이 있었다.
그리고 다시 한번 OS 개념에 대해서 내가 제대로 알고 있지 않다는 생각이 들었다. 하루 끝 스크럼에서 팀원들이 모르는 개념에 대해서 설명할 때 명확하게 설명하지 못 했다. 내가 얼마나 수동적인 공부를 했는지 느낄 수 있는 부분이었다. 처음 배우는 것이라면 의문을 가질 만한 구멍들이 많은데도 나는 그걸 모르고 그냥 배우고 이해했다고 생각했다.
확실히 설명하려는 개념을 모르는 사람에게 설명해보는 것은 도움이 된다. 이제 내일부터는 페어 학습 및 프로그래밍이 시작될 텐데, 이를 잘 활용해보자.
대전제
이를 기반으로 다음 방식을 적용한다.
💡 하루 일정 흐름
1. 과제 전반적인 흐름에 대한 이해를 잡는다. (예: 동작 원리 및 핵심 개념)
- 단계별 코드 구현
- 구현에서 막히거나 중요하다고 느껴지는 개념을 Digging (Pintos 질의응답방 활용)
스크럼 및 회고
스크럼 (하루의 시작)
회고 (하루의 끝)
2인 팀 협업 방식
전체 팀 협업 룰
Github 룰
잠을 좀 많이 자보려고 했는데 그러지 못해서 많이 아쉽다.
어제 못 끝냈던 일들은 다음과 같다.
이 중에서 오늘 끝낸 것은 '동기화' 밖에 없다.
동기화를 읽는 데 너무 오래 걸렸다는 피드백도 들었다. 맞는 것 같다. 확실히 혼자서 공부하다 보면 많이 늘어지게 된다. 페어 프로그래밍 방식을 도입하고 싶었던 것이 집중이 잘 안 돼서였는데 여전히 집중을 못하고 있는 것일까봐 무섭다.
아직 내 생각에는 집중을 못하는 것 같지는 않다. AI를 사용하지 않고 내용을 필사하면서 이해하다 보니 시간이 오래 걸리는 것은 있다. 하지만 이 방식을 사용하는 덕분에 최소한 내용을 덜 빠뜨리고 이해할 수 있게 된다.
정신적인 환기를 위해 런닝도 다녀오기는 했다. 그러나 뒤로 갈수록 피곤해서 집중을 더 못했다.
다행히 피곤함이 있기는 해도 학습에 지장은 거의 없는 수준이었다.
그리고 끝 스크럼을 진행할 때 테스트 코드를 읽어 봤는데 방향을 확실히 못 정한 느낌이었다. 테스트 코드 자체를 한 줄 한 줄 이해할 필요는 없었다고 생각하는데 너무 깊게 본 것 같다. 다음에는 어떻게 할지 팀원들과 확실히 정하는 게 좋겠다. 뭐가 좋고 안 좋다기보다는 그것을 다른 사람들은 어떤 방식으로 하고 싶고 왜 하고 싶은지 알고 내가 그것에 참여하는 것이 중요하다고 느낀다.
전반적으로는 짧고 굵게 집중하는 시간을 늘려야겠다는 생각이 많이 든다.
"시간 관리하기"라는 이번 주차의 목표를 달성하기 위해 노력해보자.
Alarm Clock 구현을 들어가고 싶었던 날인데 그러지 못해서 아쉽다.
지금 생각해보면 명확하게 계획을 세우지 않았고 팀원들 간의 합의가 이뤄지지 않은 것이 가장 큰 문제 같다.
크게 두 가지 문제가 있었다. 팀원 한 명이 집에 갔다가 오후 6시에 돌아오기로 예정되어 있었다는 것과, 내가 교육장 사람들이 리그 오브 레전드 게임의 5:5 내전을 진행하는 데 참여하느라 오후 6시부터 없었다는 것이다.
그리고 점심을 오후 1시 반쯤 출발해서 오후 3시쯤 교육장으로 돌아오는 바람에 시간이 조금 뜨기도 했다. 오후 6시에 롤하러 가기 전까지의 시간을 제대로 활용할 수 없었다. 물론, 핑계기는 하다. 그 시간 동안 뭔가를 할 수 있었을 텐데 하지 않았다. 노션 템플릿을 만드느라 시간을 썼던 것으로 기억한다.
하여튼 중요한 것은 일요일은 사실상 휴식해야 하는 것이 기정 사실임에도 전날에 Alarm clock 구현을 하기로 대충 합의하고 넘어 갔다는 점이다. 그랬으면 안 됐다. 정말 구현을 할 것이었다면 오후 6시에 리그 오브 레전드도 하면 안 됐다.
여전히 내 상황과 주관보다 주변 분위기에 맞춰주는 것이 우선되는 것 아닌가 하는 고민이 조금 들었다.(원래 나는 롤을 하기 싫었다.) 학창 시절 내내 나를 괴롭혔던 것이 '주변에 쉽게 휘둘린다'는 점이었다. 이번에는 교육장 분위기를 맞춰주고 싶은 것이 나의 선택이자 마음이었기 때문에 큰 문제는 없지만 객관적으로 봤을 때 나의 팀을 위해서는 최악의 선택이었다고 생각한다.
주니어 코치님이 00:30분에(자정이 넘어서) 오셔서 어디까지 했냐고 여쭤보셨을 때 구현을 못 했다고 하니 놀라셨다.
아무리 우리 팀의 속도대로 한다고 해도 데드라인이 있는 과제인데 조금 안일했던 것 아닌가 하는 생각이 들었다.
팀과 긴밀히 소통하자.
Todo mate를 이용해서 오전/점심/저녁에 할 일을 구분하자.
이제 피곤해지니 슬슬 예민함이 올라오는 것 같은데, 그건 핑계다. 절대 남한테 짜증을 내거나 되는 대로 뱉지 말자. 나의 본성이다.
(작성: 04/28 화)
처음으로 구현에 들어간 날이었다. 생각보다 잘 되지 않았고 잠도 매우 부족한 상태였다. 아침 운동을 나가기로 했는데 전날 KAIST Pintos 동영상 강의 내용을 정리하다가 새벽 4시에 들어가서 3시간 자고 운동을 했다. 배가 아파서 운동은 제대로 못 했고 무동력 트레드밀만 10분 정도 뛰었다.
피곤함이 하루 내내 유지되고 머릿속에 구현 방향이나 논리적인 생각이 전혀 진행되지 않아서 힘들었다. 중간에 낮잠이라도 편하게 잤으면 좋았을 텐데 막상 이제 구현을 들어가니 조금은 설레서 쉴 생각을 하지 않고 너무 매몰되었다. 차라리 중간에 낮잠이라도 잤다면 훨씬 나았을 것 같다.
결국, Alarm Clock을 끝까지 구현하지 못한 것이 너무 아쉽다. Pintos는 내가 정글에 온 이유기도 한데, 막상 실제로 하려니 마음 같지 않다. 일정 관리를 제대로 못한 것 같다.
다른 사람과 비교하고 싶지는 않지만 확실히 속도가 느리다는 느낌은 받는다. 온전히 구현과 설계에만 집중하고 싶은데 프로젝트를 실행하는 과정에서도 오류가 많았어서 그게 좀 거슬렸다.
오늘은 오전에 다른 팀이 구현했던 Alarm Clock 코드 설명을 듣고 의장님 티타임을 가진 뒤로 Priority 스케줄링 구현에 들어갔다.
사실상 구현을 거의 못했다. 일단 저녁 먹고 나서까지 KAIST 동영상 정리를 너무 오래 잡고 있었던 탓도 있고, git 세팅하는 데에 너무 많은 시간을 소요했다는 느낌이 있다. 팀원들이 git 사용 경험이 많은 편도 아닌데 fork하고 PR을 올리는 오픈 소스식 git flow를 쓰고 있는 점도 쓸데없는 복잡성을 더하고 있다.
자체적으로 터미널에서 git을 쓰는 경험을 하고 싶다고 하여 도구도 사용하지 않는 편인데 의미가 별로 없는 것 같다. 내일부터는 Github Desktop 적극 사용을 건의해야겠다. AI는 우리의 뇌를 대체하니까 그렇다고 쳐도 이미 있는 유용한 버전관리 유틸리티 도구를 사용하지 않는 것은 별로 좋은 생각은 아닌 것 같다. 해결할 수 없는 복잡한 상황이 왔을 때 어차피 git 명령어를 직접 작성해야 할 텐데 그런 명령어를 작성할 수 있으면 충분하다. git pull, git push, git commit은 일일이 작성할 필요가 없을 것 같다. 브랜치별 관계나 머지 시각화도 안 되고 답답한 부분이 있다.
(방금 팀원에게 물어봤는데 그것도 git을 써보는 일환이라고 생각하고 해보자는 답변이 돌아왔다. 잘 모르겠지만, 팀의 결정을 따르는 것이 좋겠다. 정말 문제라고 느껴지면 그때 다시 문제제기를 하자.)
그리고 '쓸데없이 깨어있는' 시간이 많다. 집중과 휴식을 적절히 번갈아가면서 할 필요가 있다. 이제 일정 관리의 마일스톤을 세우기는 상당히 어려워서, 러프하게 시간 관리를 해보면 좋을 것 같다.
(작성 시점: 04/30 목)
여러모로 회고할 것이 많은 1주차다. 이전 날짜 WIL에 그날에 쓴 것을 온전히 담지 못해서 수요일 WIL에서 그 내용들을 풀어보려고 한다.
월요일에 팀과 협업하는 과정에서 상대방의 기분을 상하게 할 수 있는 말투를 썼다. 말투가 굉장히 공격적이거나 신경질적이었다. 그리고 나의 페어와 긴밀히 협업해야 하는데 나의 페어가 아닌 다른 조의 페어에게 나의 집중이 쏠려 있다든지, 궁금한 것이 생기면 팀끼리 먼저 협의하는 것이 아니라 다른 팀의 사람들에게 개념을 물어본다든지 하는 등 팀으로서는 적절하지 못한 모습을 많이 보였다. 이건 내가 어떻게 생각했는지와 별개로 내 행동이 다른 누군가에게 문제로 느껴졌다면 고쳐야 하는 것이 맞다.
이와 별개로 수요일은 꽤 만족스러운 날이었다. 페어 프로그래밍도 처음으로 제대로 진행된 느낌이었다. 1개의 오류 빼고는 크게 막히는 부분도 없었고 서로의 부족한 부분을 잘 채우면서 진행한 것 같았다. 내가 중간중간 페어의 집중을 끊은 것 같아서 신경이 쓰이기는 한다. 그래도 만족스러웠던 이유는 전반적인 내용 및 흐름을 주석으로 직접 생각하여 적어 두고 구현했기 때문이었다. 구현은 페어 프로그래밍 방식으로 약 1시간마다 코드를 작성하는 역할과 옆에서 지켜보며 이야기하는 역할을 번갈아가면서 진행했다.
서로의 빈 논리는 메꿔주고 실수는 빠르게 알려주면서 진행이 빠르게 됐다고 생각한다. 이번 주차에서 가장 구현 흐름이 잘 잡혔던 날이었다.
[역량 목표]
- 나에게 주어진 과제를 수행하기 위해 거대한 레거시에서 필요한 부분과 개념을 이해하기
- 질문을 잘 할 수 있도록 노력하기
- 내가 공부해보고 막히는 부분은 질의응답 채널을 이용하기
- 휘발되지 않는 공부를 하기 (되도록이면 AI를 사용하지 않고 능동적으로 공부하기)
[개인적 목표]
- 스스로에게 집중하려고 노력하기
- 팀원들과의 솔직하되 예의 있는 소통을 꺼리지 말기
- 압도되는 과제 속에서 나의 몫을 하루하루 해내기
- 처음 팀에서 정한 계획 및 규칙이 희석되지 않도록 노력하기
(척도: 매우 불만족, 불만족, 보통, 만족, 매우 만족)
만족도 평가: 보통
학습에 너무 오랜 시간이 걸렸으며 협업 과정에서 특정 팀원에게 지나치게 공격적으로 말한 것이 마음에 걸린다. 그리고 구현을 하는 과정에서도 특히 월요일에 멘탈이 많이 흔들렸고 구현을 제대로 진행하지 못했다. 압도되는 과제 속에서 나의 몫을 해내지 못한 셈이다. 막히는 부분이 있을 때 AI에게 바로 힌트를 받아 버렸다. 수요일의 만족도는 '만족' 수준이지만 전반적인 진행과 내 개인적 목표에 있어서는 보통을 줘야 한다. 팀의 원래 목표도 많이 희석되었다. 사실은 불만족에 가깝기는 하지만, 너무 부정적으로 쓰고 싶지 않아서 여기에서 이만 줄인다.
유지사항
- WIL 날마다 조금씩이라도 쓰기
- 러프하게라도 시간 관리하기
- 최대한 중재하지 않기(충돌이 생길 때까지 기다리기)
- 말과 행동을 조심하고 선 지키기
시도해 볼 것
- 팀과 긴밀히 소통하기
- 내 정신을 환기 시킬 수 있는 산책, 트레드밀 이용하기
Pintos의 첫 주차가 끝났다. 생각했던 것보다 쉬운 부분도 있고 내가 생각했던 것만큼 어려운 부분도 있었다. Pintos에 대한 후기글들에서 봤던 것처럼, Kernel 혹은 OS에 대한 이해를 높인다기보다는 레거시 코드를 분석하고 활용하는 능력을 배양할 수 있는 프로젝트라고 느꼈다. 그리고 이 과정에서 협업을 하면서 생기는 갈등을 해결하고 주어진 문제를 적절히 분할하는 능력을 키우는 것 등이 부가적인 목표임을 느끼고 있다.
과제를 진행하면서 일정 관리나 시간 관리 같은 것들을 팀 내에서 주도적으로 하게 되는데, 팀별로 생기는 문제는 모두 다르며 이 문 제를 해결하는 것은 해당 팀과 그 팀에 속한 개인의 몫이다. 협업 방식을 정하는 것도 마찬가지이며 문제에 접근하는 방식과 마음가짐을 공유하는 일도 모두 해당 팀의 몫이 된다.
1주차는 전반적으로 시간 관리에 실패했던 주차였다. 학습에 너무 많은 시간을 쏟았고 팀원의 의견을 충분히 반영하지 않은 채로 과제에 들어갔다. 예를 들자면 AI 사용에 관해 의견이 완전히 갈렸다. 나를 포함한 2명은 AI를 최대한 사용하고 싶지 않아했고, 나머지 2명은 AI를 사용하고 싶어했다. 이러한 부분에서 AI를 사용하고 싶지 않아하는 팀원들의 의견이 자나치게 많이 반영되었다. AI를 '적절히' 사용하고 싶었던 나머지 2명은 진행과 관련하여 분명 답답한 느낌을 받았을 것이다.
2주차부터는 어떻게 진행해야 할지 다시 정립하는 시간을 가져야겠다. Pintos 첫 주차를 진행하면서 팀으로 협업한다는 것이 생각보다 어렵다는 것을 느꼈고 처음에 거창하게 정한 목표를 꾸준히 유지하는 것이 얼마나 어려운지를 느꼈다. 특히, 페어 프로그래밍 환경에서는 원래 4명으로 이뤄졌던 팀이 2명씩 분할되면서 총 2개의 팀이 서로의 의견을 공유해야 하는 상황이 생긴다. 일단 이 과정에서 일어나는 커뮤니케이션 비용도 문제지만 2명의 팀이더라도 서로의 시간과 생각을 공유하는 작업은 생각보다 쉽지 않았다.
예를 들어, 2명의 팀원 중 한 사람의 팀원이라도 화장실에 가거나 조금 오래 자리를 비우게 되면 더이상 진도를 나갈 수 없게 된다.
협업도 최대한 잘 해보고 끝까지 해보는 경험 등을 하기 위해서 포기하지 말고 노력해야겠다.

멋지십니다