우테코에서 찾은 나만의 효과적인 공부법

Jun.28.2022 이 원미

Education

안녕하세요. 테크코스교육개발팀 이원미입니다.
어느덧 우아한테크코스 (이하, 우테코) 4기도 과정의 중반을 지나가고 있습니다.(시간이 왜 이렇게 빠르게 흘러가는지..)
기수가 더해 갈수록 새로운 얼굴들과 더 많아진 인원으로 글쓰기의 소재나 내용들이 점점 다양해지고 있는데요. 글쓰기 교육을 담당하는 저로서는 정말 즐거운 일이 아닐 수 없습니다 😊

레벨 1에 이어, 레벨 2 글쓰기의 주제는 “우테코에서 찾은 나만의 효과적인 공부법”입니다. 매해 같은 주제를 던지지만, 크루들이 직접 경험하고 깨달으면서 찾은 학습법은 늘 다양하고 새로운 것 같아요.

느낌 있는 사진을 제공해 주신 공원! 감사합니다 : )

이전에도 말씀드렸듯 우테코는 학습의 방향성만 제시해 줄 뿐, 어떤 학습법을 선택하고 자신의 것으로 발전시킬 것인지는 온전히 크루의 몫으로 남겨두고 있고, 이 또한 배움의 과정 중 하나로 생각하고 있어요.

이 글을 읽는 여러분의 학습법도 한 번 정도는 돌이켜 생각해 보고, 정리해 보는 글이 되기를 바랍니다.

더불어 6명의 크루를 포함하여 최선을 다해 작성해 준 모든 크루들에게 다시 한번 감사의 말을 전합니다.🥰


“우테코에서 찾은 학습 방법도 러닝과 같았다.”

뛰기 전 준비운동 🏃🏻‍

무작정 러닝을 시작했을 때 발목이 아파 2일을 내내 앓았던 적이 있다. 근육통에 대해 찾아보니 안 쓰던 근육들이 놀라서 뭉치는 것이고, 준비 운동을 통해 근육에 곧 쓸 것임을 알리면 상당 부분이 해소됨을 알게 되었다. 머리, 어깨, 팔, 무릎, 발목 순으로 가볍게 돌려주는 것을 운동 루틴 시작으로 두었다.

뛰는 방법

걷는 법, 뛰는 법을 배운 적이 있던가? 걸음마 이후로 걷는 법에 대해서 고민하지 않았던 것 같다. 걷는 법도 다른 사람이 걷는 모습을 보며 흉내 내다가 걷기를 시작했다. 러닝도 마찬가지였다. 앞에서 뛰는 사람을 흉내 내며 뛰었다. 잘 안 맞는 것 같으면 곁에 있는 다른 사람을 따라 하며 내게 맞는 방식을 찾아갔다.

그렇게 찾은 나만의 뛰는 방법이다. 첫 번째 뛸 때 발바닥 정 중앙을 내딛는다. 그래야 관절에 무리가 덜 간다. 두 번째 몸을 살짝 앞으로 기울인다. 몸이 넘어지지 않기 위해 자동으로 뛰기 적합한 자세가 나온다.세 번째 호흡할 때 코로 들이마시고, 입으로 뱉는다. 입으로 들이마시게 되면 목이 아파진다. 여러 번의 시행착오 끝에, 평균 페이스를 5분 50초 정도로 할 때 가장 효과적임을 느꼈다.💯

우테코에서 찾은 학습 방법도 러닝과 같았다.

무작정 학습을 시작했을 때 머리가 아파서 2일을 내내 앓았던 적이 있다. 두통에 대해 찾아보니 안 쓰던 뇌가 놀라서 아픈 것이고, 준비 운동을 통해 뇌에 곧 공부할 것임을 알리면 상당 부분이 해소됨을 알게 되었다. 커피를 사고, 앉아서 5분 정도 멍을 때리고, 이어폰을 꽂고, 심각한 표정을 짓고 있는 것을 공부 시작 루틴으로 두었다.

학습 방법

학습법을 배운 적이 있던가? 그동안 문제를 해결하는 데만 초점을 맞춰 학습 내용에 대해 크게 고민하지 않았던 것 같다. 우테코에 와서 블로그 주도 개발, 독서 주도 개발, 기도 주도 개발 등 다양한 학습 방법이 있다는 것을 알게 되었다. 이후 그 방법들을 흉내내며 내게 맞는 방식을 찾아갔다. 🤡

첫 번째, 미션에서 최소한 얻어 가야 할 포인트를 찾는다. problem point를 해결하고 이해하는 것을 목표로 설정한다. 두 번째, 페어를 하며 현재 알고 있는 지식과 새롭게 알게 된 지식의 연결 고리를 찾는다. 러닝을 알게 되었다면, 기존에 알고 있던 마라톤을 떠올려 차이점을 생각해본다. 세 번째, 노션에 정리한다. 느낌 적으로 알고 있는 내용을 꺼내서 부족한 점을 파악한다. 네 번째, 매주 토론 스터디를 통해 한 주간 배운 내용에 대한 나만의 생각을 만든다. 그리고 스스로 칭찬해준다. 🥕

공부 후기

공부 방법을 찾은 이후, 나 .. 좀 멋지다_? ✨라고 생각하는 빈도가 늘었다. 예전엔 추상적인 목표만 가득해서 성취감을 느끼기 어려웠다. 요즘엔 학습 키워드를 목표로 설정하고, 작은 목표들을 이룰 때마다 스스로 멋지다고 느낀다. 그래서 계획을 세우는 게 중요하다고 느낀다. 레벨 3 때는 미션이 아닌, 프로젝트이기 때문에 근로 때 배운 OKR 계획 수립법을 사용해서 조금 더 작은 단위로 성취감을 느껴보고자 한다. 인생은 폼생 폼사! 멋지게 살아보자.😎

우테코 사람들에게 물었다. 어떻게 공부하세요? ✨

대다수가 잘 모르겠어요, 생각해본 적 없는데요?라고 답했다. 정말 다들 공부 방법이 없는 걸까? 나는 생각이 다르다. 우테코 사람들은 공부 쟁이다. 다들 이미 습관이 형성되어 무의식적으로 공부를 위한 준비 운동을 하고 있다. 나는 이번 글쓰기를 통해 스스로가 누락 지식 주도 개발을 한다고 알게 되었다. 여러분도 이번 글쓰기가 자신만의 학습법에 대해 알아가는 의미 있는 시간이었길 바란다.👏

지친 크루들에게 남기는 한마디

이번 레벨 2 때 시도했던 방법이 맞지 않다고 자책하지 말자. 실패하는 과정이 없이는 맞는 학습 방법을 찾을 수 없다. 우리는 학습법 TDD 중이니까! 🔥 시도해보지 않고는 누구도 자신이 얼마큼 해낼 수 있는지 알지 못한다. 지금 힘들다는 생각이 든다면, 그동안 잘 뛰어왔다는 의미이니 스스로를 격려하자. 힘들어도 포기하지 않고 완주를 앞두고 있는 당신 애썼다!!!!! 👍🏻

🌱 길은 헤매는 것 같다면 페어와 코치님을 찾아가서 네비게이터를 부탁해 보자. 헤매도 좋다 우테코니까 ! 🌱


“이유-Driven Developent, 이유 주도 개발”

“나를 죽이지 못하는 고통은 나를 더 강하게 해줄 뿐이다”

‘이렇게 죽는 건가?’를 생각했던 적이 몇 번 있습니다. 그중 한 번은 바닷가에서 놀고 있던 어느 날이었어요. 제 키보다 높은 파도가 강하게 치는 바람에 그대로 휩쓸려 바다에 빠졌습니다. 10년도 더 지난 일인데 아직도 이 장면이 생생하게 기억나네요. 우테코에서의 레벨 1 기간은 그 어린 날과 같았습니다. 공부할 거리가 쌓이고 쌓여서 밀려오면 거기에 휩쓸려 빠졌다가, 잠깐 나왔다가, 또 빠지기를 정신없이 반복했습니다. 다른 점이라면 우테코라는 바다는 저를 해치지 않는다는 걸, 그의 파도는 오히려 저를 좋은 곳으로 데려다줄 거라는 걸 믿고 있었다는 거겠죠. 어렸을 때는 아등바등 바다에서 벗어나려고 했지만, 우테코에서는 휩쓸림에 따라 물을 먹어보기도 하고 부딪혀보기도 했습니다. 레벨 2의 끝자락에 있는 지금은 파도의 영향이 조금은 약해진 곳에서 둥실둥실 나아가고 있습니다.

선택과 집중

할 일은 어린 날의 파도처럼 밀려오는 데에 반해 시간은 터무니없이 부족합니다. 처음에는 모든 걸 해내겠다는 욕심을 잔뜩 안고 허우적거리면서 지냈습니다. 정신을 차리고 보니 이도 저도 만족스럽게 해내고 있지 않더라고요. 그래서 욕심을 하나둘 내려놓았습니다. 새로운 미션이 시작되면 미션과 학습 중 어디에 더 집중할지를 선택합니다. 미션에 욕심이 생긴다면 구현 자체에 더 집중하고, 공부하고 싶은 내용이 있다면 학습에 더 집중하죠. 학습 스터디에 참여하기보다는 혼자서 공부하기를 선택했습니다. 이 덕분에 A를 공부하고 싶을 때 A를 공부할 수 있게 되었고, 의견을 나누고 싶을 때 의견을 나눌 수 있게 되었습니다. 혼자서 하는 공부가 흐트러지지 않도록 해주는 장치를 선택하기도 했습니다. daily planner 스터디에서 매일 아침에 꼭 지킬 만큼의 하루 계획을 세우고, 주간 회고 스터디에서 매주 일요일 아침에 일주일을 회고합니다. 매일, 그리고 매주 조금씩 성장하고 있다는 것을 체감하면서 혼자서 하는 공부에 집중하고 있습니다.

이유-Driven Development

‘이유 주도 개발’, 특히 저만의 이유를 코드에 담으려고 노력하고 있습니다. 이 노력은 뜬금없게도 의견을 좀 더 강하게 이야기하면 좋겠다는 페어 프로그래밍 피드백으로부터 시작되었습니다. 일상생활에서 의견을 강하게 이야기하는 일이 거의 없습니다. 확실한 반대 의견을 가진 게 아니라면, 상대방의 뜻을 따르는 게 훨씬 더 기분 좋고 이에 편안함을 느끼기 때문이에요. 이러한 성격은 페어 프로그래밍에 치명적이었습니다. 페어 프로그래밍에서 의견을 내는 것은 코드에 대한 책임을 야기합니다. 페어를 배려한답시고 의견을 내지 않는 것이 오히려 페어에게 부담을 주는 행위가 될 수 있는 거죠. 어떤 문제에 관해 깊이 토론하는 기회를 뺏음과 동시에 코드에 대한 책임까지 떠넘기는 셈이 되는 겁니다. 스스로 이 부분을 개선점이라고 생각하여 고민하고 있었는데, 고맙게도 페어들이 개선점으로 꼽아주었습니다.

페어의 의견에 반대하지 않을 때 어떻게 의견을 강하게 이야기할 수 있을지를 오랫동안 고민했습니다. 혼자서는 도무지 해답이 나오지 않아 코치님과의 면담 시간에 고민으로 털어놓았어요. 코치님께서는 꼭 서로 반대 의견을 가지고 토론하지 않아도 된다고 말씀해 주시면서 동의의 의견을 제시해 보라고 조언해 주셨습니다. 이 조언은 꽤 신선한 충격으로 다가왔습니다. 동의할 때마다 그저 “오, 좋은데요?”, “그렇게 해봅시다!”를 내뱉었던 자신이 부끄러웠습니다.

페어 또는 리뷰어가 어떤 의견을 제시했을 때 그 의견에 동의한다면, 동의하는 저만의 이유를 최대한 구체적으로 제시하기 시작했습니다. 자연스레 코드에 대한 책임도 지게 되었어요. 이유의 근거는 대부분 공식  문서에서 찾습니다. 가장 최신의, 가장 정확한 정보를 가장 빠르게 얻을 수 있으니까요. 알고 있던 것, 당연하게 생각했던 것에도 근거 있는 이유를 찾아 제시하면서 동의의 의견을 이야기하고 있습니다. 그렇게 코드에 점점 저만의 이유가 녹아들고 있다는 걸 느낍니다. 지금은 이유를 녹이는 것에 그치지만, 여유가 더 생긴다면 반대 의견까지도 함께 녹여서 더욱더 의미 있는 코드를 작성하고 싶습니다.


“조금은 뻔뻔해져서, 용기를 가지고, 메시지를 보내 봅시다!”

적극적 소통의 필요성을 발견하다

레벨 1 회고 결과였습니다.
소통하라!

미션을 진행하며 리뷰어의 피드백을 이해하기 어려운 순간이 많았어요. 혼자서 해석을 시도하고 코드에 반영해 보았지만, 번번이 리뷰어의 의도를 빗나간 시도였어요. 시간이 지날수록 자신감을 잃게 되고, 의욕도 저하되었어요. 왜 리뷰어가 본인의 의도를 분명히 드러내어 이야기해 주지 않을까 원망스럽기도 했어요.

그런데 또 다른 크루는 제가 어려워했던 그 리뷰어를 통해 엄청나게 성장하고 있었어요. 리뷰어와 온라인 공간에서 1:1로 만나 질문 답변을 나누고, 의견을 주고받으며 정말 긍정적인 경험을 만들어가고 있었어요. 저에겐 충격이었습니다. 문제가 제게 있다는 걸 분명히 확인시켜주는 사례였으니까요.

그때는 리뷰어에게 DM 보내기조차 두려웠었어요. 리뷰어가 너무 하늘같이 느껴졌달까요? 리뷰어와 편하게 소통할 수 있는 크루들이 부러웠어요. 저의 레벨 1 회고 결과는 적극적으로 소통하자였습니다. 다른 크루들처럼 리뷰어와 적극적으로 소통해서 더 많이 얻어 가야겠다고 다짐했습니다.

포비에게 메시지를 보내다

생일인 크루에게 포비의 축하 메시지를 선물로 주고 싶었어요.
그래서, 포비에게 DM을 드렸습니다!

2022년 5월 7일. 저에게 큰 변화가 있었어요. 포비에게 DM을 보냈거든요.

레벨 1에 같은 조였던 크루의 생일을 축하해주고 싶었어요. 그래서 데일리 팀원들끼리 온라인으로 롤링페이퍼를 작성했는데요, 포비도 축하 메시지를 남겨준다면 정말 특별한 선물이 될 것 같았어요. 포비에게 축하 메시지 작성을 부탁하는 메시지를 열심히 작성하고 전송 버튼을 누를지 말지 엄청나게 고민했어요. 에라 모르겠다 하는 맘으로 메시지를 보냈어요. 인사말과 구구절절 사연 소개와 굽신굽신이 가득 담긴 장문의 메시지에 대한 포비의 답변은 두 글자였어요.

ㅇㅋ

포비가 정말 축하 메시지를 남겨주셨고, 이 일로 인해 오히려 제가 큰 선물을 얻어 갔어요. 그 누구에게도 DM을 보낼 수 있는 자신감이 생겼거든요.

리뷰어에게 메시지를 보내다

한 번 해보니, 그다음부턴 쉽더라고요!

포비에게 DM을 보냈던 경험, 긍정적 결과를 얻었던 경험이 자신감으로 연결됐어요. 그 뒤로는 리뷰 요청을 드릴 때마다 리뷰어에게 DM으로 인사도 드리고 고민됐던 내용에 대해 스스로 요약한 내용을 전달해 드렸어요. DM으로 직접 연락을 드리다 보니 리뷰어가 가깝게 느껴지고 점점 더 편하게 느껴졌어요.

리뷰어에게 만남도 요청해 봤습니다! DM과 PR로 소통하는 과정에서 리뷰어의 소프트 스킬에 매료되어 꼭 만나서 이야기를 나눠보고 싶었거든요. 함께 리뷰 받는 크루들에게 의사를 확인하고 리뷰어에게 식사 혹은 티타임을 요청했어요. 거절하실 수도 있지만 그건 리뷰어의 자유이고, 나는 메시지를 보낸다는 생각이었어요. 감사하게도 리뷰어가 시간을 내주셨고 다 같이 식사도 하고 티타임도 가졌어요. 너무나 행복하고 유익한 시간이었고, 이후로도 계속 DM으로 종종 인사를 드리고 있어요. 레벨 2를 마친 뒤에 또 한 번 식사하기로 했답니다. 😎

그리고 이 과정에서 미션, 리뷰어에 대한 저의 인식에 큰 전환이 있었어요. 이전에는 생각지 못했던 '리뷰어는 자신의 피드백을 통해 리뷰이가 성장하는 모습을 보고 싶어 할 것 같다','리뷰어에게 보람을 느끼게 해주고 싶다'와 같은 생각을 할 수 있게 됐어요! 이때부턴 리뷰어와 함께하는 미션이 과제나 숙제로 느껴지지 않았어요. 오히려 친절한 선생님과 함께 자유롭게 성장을 그려갈 수 있는 연습장처럼 느껴졌어요. 더 이상 리뷰어가 만족할 만한 결과물로 만들어가기 위해 노력하지 않았어요. 공부하고 고민한 내용들을 적용해 보고 장단점을 느껴보는 의식적인 연습의 장으로 미션 수행 과정을 활용했어요.

레벨 2를 마치며

조금은 뻔뻔해질 필요가 있을지도?!

메시지를 보내라는 이 외에도 여러 가지 긍정적인 경험을 가져다줬어요.

구구께 DM을 드려 티타임과 함께 라이브 코드 리뷰를 받아보기도 했고요, 리뷰 받아본 적 없는 리뷰어께 DM으로 인사를 드리고 질문을 드려보기도 했습니다. 3기 분의 포스팅을 보고 궁금한 점을 DM으로 질문한 적도 있는데요, A4 2페이지 분량의 답변을 주셔서 깜짝 놀라고 감사했던 적도 있었어요. 이처럼 우아한테크코스에서 성장하며 너무 많은 걸 받고 있어요. 그에 대한 작은 성의 표시로 앞으로는 우테코에 기여함으로써 다음 기수에게 저의 메시지를 남겨볼까 합니다.

자신을 우아한테크코스 세계 속 협력하는 하나의 객체로 바라본다면, 객체 간의 협력은 너무나 자연스러운 일 아닐까요? 협력의 방법은 메시지를 보내는 것이에요. 요청에 응하는 방식은 상대가 결정하지만, 우리가 할 일은 메시지를 보내는 거예요. 혹시 용기가 부족하시다면 포비에게 DM을 보내보세요. 그 누구에게라도 DM을 보낼 용기가 생기실 거예요 ㅎ_ㅎ

구현은 상대에게 맡기고, 조금은 뻔뻔해져서, 용기를 가지고, 메시지를 보내봅시다! ✉️


“Just Do It”

첫 단원만 너덜너덜

“봄에도 집합 공부, 겨울에도 집합 공부 첫 단원만 너덜너덜 🎶” 오래전에 들었던 모 학습 교재의 TV 광고 문구이다. 개인적으로 정곡을 찔렸던 문구이기에 유독 기억에 남는다. 우아한테크코스에 오기 전, 프로그래밍 학습 방식도 이와 동일했다. 책에서 제시하는 목차를 하나하나 순차적으로 따라가며 공부했고, 앞부분에서 막히면 뒷부분으로 넘어가지 못하는 경우가 대다수였다. 책의 뒷부분은 거의 손도 대지 못한 채 변수, 조건문, 반복문만 주야장천 봤던 책들이 수두룩했다. 학습을 능동적으로 주도하기보다는 책에서 제시하는 목차를 수동적으로 따를 뿐이었다.

‘학습’하면 떠오르는 전형적인 이미지가 있다. 정숙한 환경에서, 독립적으로 공부하는 것이다. 공부할 때는 당연히 도서관 혹은 독서실에 갔고, ‘절대 정숙’이라는 팻말 곁에서 조용히 혼자서 공부했다. 학점을 위한 공부, 자격증 취득을 위한 공부 모두 이러한 방식으로 공부했고 그럭저럭 잘 해낼 수 있었다. 아무래도 시험을 위한 공부는 정해진 범위가 있고, 정답이 있으며, 명확한 평가의 기준이 있었기 때문에 가능하지 않았을까 싶다.

하지만 프로그래밍 학습에는 동일한 방식을 적용할 수 없었다.

야생에서 살아남기

프로그래밍 학습을 흔히들 ‘야생 학습’이라고 부른다. 정해진 범위가 없고, 정답이 없고, 명확한 평가 기준조차 없기 때문이다. 유명한 책을 읽는다고 해서 프로그래밍을 잘 할 수 있는 것도 아니었고, 그 책을 읽지 않는다고 해서 프로그래밍을 못 하는 것도 아니었다. ‘수학의 정석’은 있었지만 ‘프로그래밍의 정석’은 없었다. 그렇기에 프로그래밍 학습에 보통의 학습 방식을 적용할 수는 없었고, 생각을 비틀기로 했다.

첫 번째로, 학습의 방향을 ‘위에서 아래’로 수정했다. 기존의 학습 방향은 기초부터 차근차근, 아래에서 위로 올라가는 상향식 학습 방법이었지만, 이러한 방식으로 학습할 경우 우아한테크코스에서 매주 주어지는 미션과 쏟아지는 학습 키워드들을 소화할 수는 없었다. 시간이 부족하기도 했고, “첫 단원만 너덜너덜”과 같은 상황을 반복할 수 있었기 때문이다. 밑바닥부터 차근차근 다져가기보다는 미션 해결에 필요한 큰 키워드들을 우선하여 정리했다. 이후 해당 키워드를 이해하기 위해 필요한 연관 지식은 무엇이 있을지 탐색하는 방식으로 학습해나갔다. 이를 통해 학습의 속도를 향상시킬 수 있었고, 새로운 키워드를 학습하는 것에 대한 부담감도 떨쳐낼 수 있었다.

두 번째로, 독립된 학습보다는 동료 학습을 중시했다. 고정 관념처럼 여겨왔던 학습의 이미지를 전환한 것이었다. 이 부분은 어렵지 않았다. 우아한테크코스 교육장 내 대부분의 공간은 오픈된 공간이었고, 크루들과 자연스럽게 소통할 수 있는 공간이었기 때문이다. 궁금한 것을 물어보면 모든 크루들은 친절하게 답해주었다. 이 과정에서 가장 효과적인 방식은 페어 프로그래밍이었다. 페어 프로그래밍을 하면서 1+1=2 이상이 될 수도 있겠다는 생각을 하게 되었다. 지금까지 페어로 만났던 모든 크루들은 각각 장점이 있었고 배울 점들이 있었다. 나보다 실력이 뛰어난 크루들도, 나와 실력이 비슷했던 크루들도 모두 다른 방식으로 함께 자랄 수 있었다. 각자 몰랐던 지식을 알려주는 것도, 의견 충돌을 해결해나가는 과정도 모두 서로의 성장에 있어 밑거름이 되어주었다. 특히 의견 충돌 과정에서 각자의 생각을 공유하고 생각에 대한 근거를 제시하는 토론 과정이 가장 큰 도움이 되었고, 페어 프로그래밍의 장점에 매료되어 심지어 step2 미션까지도 페어 프로그래밍으로 진행한 적도 있었다.

Just do it

어릴 적 자전거에 달린 보조 바퀴를 떼고, 두발자전거를 처음 배울 때가 떠오른다. 그때의 나는 ‘코어 자전거’, ‘자전거 딥 다이브’와 같은 책을 먼저 읽고 자전거를 탔을까? 아니었다. 일단 자전거에 올라탄 뒤, 넘어지고 또다시 넘어지고, 무릎이 까지고 나서야 자전거 타는 방법을 스스로 체득하게 된 것이었다.

프로그래밍 학습도 마찬가지가 아닐까? 아무리 정답이 존재하지 않고, 범위가 없다고 하더라도 꾸준히 반복하다 보면 어느 순간 잘 할 수 있게 되지 않을까? 끊임없이 넘어지면서 자전거를 배우듯, 일단 부딪쳐보고 프로그래밍에서 마주하는 여러 문제를 끊임없이 해결해나가다 보면 어느 순간 프로그래밍에 익숙해지고 잘 할 수 있게 되는 순간이 오지 않을까 싶다.

주변 환경에 휘둘리지 않고, 잘하고자 하는 마음가짐 하나만으로 의식적인 연습을 반복 해나가려 한다. 오직 어제의 나 자신과 비교하며 나만의 방식으로 달려 나갈 것이다. 더 이상의 고민은 사치인 것 같다.


“요리사처럼 학습하기”

⌘ + B 또는 Ctrl+B

IntelliJ(인텔리제이)에서 필드, 클래스, 메서드 등의 선언으로 이동하는 단축키에요. 우테코 전, 후로 비교해서 가장 많이 사용하는 IntelliJ 단축키가 아닐까 생각해요. 이전에는 코드가 생각한 대로 동작하기만 하면 만족했어요. 동작하게만 하는 게 목표였기 때문에, 왜 동작하는지는 주된 관심사가 아니었죠. 하지만 우테코의 크루들은 달랐어요. 동작은 당연하고 왜 동작하는지를 궁금해했죠. 왜 돌아가는지는 궁금하지 않았지만, 크루들이 궁금해하고 질문을 하니까 저도 덩달아 궁금해졌어요. 하지 말라면 괜히 하고 싶어지는 청개구리 심보가 동작했나 봐요.

⌘ + B로 내부 구현을 살펴본 저는 왜 돌아가는지 궁금해하는 크루들을 이해할 수 있게 되었어요. 내가 작성한 프로그램이 화면 속에서만 동작하는 게 아니라 마치 머릿속에서 살아 움직이는 느낌이었어요. 그렇게 더 많은 코드가 머릿속에서 살아 움직였으면 하는 마음에 계속 ⌘ + B를 누르게 되었어요.

심연

괴물과 싸우는 사람은 그 싸움 속에서 스스로 괴물이 되지 않도록 조심해야 한다. 당신이 그 심연을 오랫동안 들여다본다면, 심연 또한 당신을 들여다보게 될 것이다. – 프리드리히 니체 『선악의 저편』

레벨 2를 시작하고 얼마 지나지 않아, 데일리 미팅에서 제이슨은 “레벨 2는 스프링에 이러한 기술이 있고, 이렇게 코드를 쓰면 동작하는구나”를 배우라고 하셨어요. 사실 그 당시에는 귀담아듣지 않았어요. 과거의 제가 그런 식으로 학습했고 레벨 1 때는 그러한 방식으로 학습하지 않았으니까요. 하지만 얼마 지나지 않아서 제이슨의 말을 떠올리게 되죠.

레벨 2부터는 스프링이라는 괴물과 싸우게 되었어요. 레벨 1처럼 ⌘ + B라는 무기로 싸우겠다고 마음먹었지요. 호기롭게 내부 구현을 살펴보지만, 스프링은 저에게 괴물이고, 심연이었어요. 코드가 머릿속에서 살아 움직일 정도로 이해가 되지 않아서 오래, 깊게 들여다보았어요. 스프링은 너무 거대한 심연이었고, 계속되는 ⌘ + B로 인해 깊은 심연으로 빠져드는 기분이었어요. 동작 원리를 이해하려고 아무리 내부 구현을 살펴보고, 공식문서를 찾아봐도 머릿속은 물음표만 더 채워졌어요.

기술 부채

심연을 깊게 들여다본 후 지금까지의 학습 방법을 되돌아보았어요. ‘학습을 계속해도 머릿속이 물음표로 가득 차는 이유는 무엇일까?’, ‘레벨 1 때는 내부 구현을 살펴보면서 잘 학습했는데?’, ‘왜 제이슨은 지금은 스프링을 깊게 파지 말라고 했을까?’ 이러한 질문을 스스로 던지면서 앞으로의 학습 방법을 고민했어요.

깊게 파는 학습을 하기 위해서는 기술 부채가 쌓였다는 전제 조건이 필요하다고 판단했어요. 우테코 이전에는 자바의 여러 기능이 기술 부채로 쌓여있었어요. 레벨 1 때 이러한 부채들을 깊이 있는 학습으로 청산했죠. 기술 부채를 청산하면서 경험한 깊이 있는 학습의 좋은 경험만 기억한 저는, 아직 스프링이라는 심연을 깊이 있게 학습할 준비가 되어있지 않았어요.

요리사처럼 학습하기

요리를 잘하는 사람은 요리하면서 설거지를 동시에 해요. 요리를 한 번이라도 해본 경험이 있다면 요리와 설거지를 동시에 하는 게 얼마나 어려운 일인지 알지 않을까 생각해요. 이러한 점을 기술 부채에 적용해 볼 수 있어요.

기술 부채는 절대 만들지 않아야 하는 존재가 아니에요. 맛있는 음식을 요리하기 위해서 발생하는 설거짓거리와 같아요. 새로운 기술을 사용하다 보면 자연스럽게 기술 부채가 쌓이죠. 훌륭한 요리사가 설거짓거리가 요리 진행을 발목 잡지 않게 잘 다루듯이, 쌓인 기술 부채를 어떻게, 언제 청산하는지가 중요해요.

간단한 설거짓거리는 사용한 즉시 정리할 수 있어요. 쌓인 기술 부채의 주제, 개념이 익숙하거나 난도가 낮다면 빠르게 청산할 수 있어요. 하지만 커다란 접시나 기름기에 뒤덮인 프라이팬은 사용 즉시 정리하기 부담스러워요. 설거지가 요리를 진행하는 데 방해할 수 있으니까요. 기술 부채에서도 마찬가지랍니다. 지금 당장 학습해서 청산하기 부담스러운 기술 부채라면 학습을 나중으로 미루는 게 효과적이죠. 뛰어난 요리사는 설거지를 마치고 주방 대청소를 하지도 않아요. 요리하는 도중에는 필요한 정도의 설거지만 하죠. 기술 부채를 청산할 때는 학습할 범위를 넘어서 너무 깊게 학습하지 않도록 자신을 경계해야 해요.

앞으로는 훌륭한 요리사처럼 학습하는 방법을 적용해 볼 생각이에요. 당장 청산할 수 있는 쉬운 기술 부채는 빠르게 청산하고, 그렇지 않다면 나중으로 미루는 식으로요. 과거에 경험한 학습 방법들을 활용해서 또 하나의 저만의 학습 방법을 찾았다고 생각해요. 새롭게 찾은 학습 방법을 적용한 제가 얼마나 더 성장할지 기대가 되네요. 앞으로의 저를 기대해 주세요. 😎


“조선왕조실록, 그리고 에덴개발실록”

잠시 잊고 지내던 글쓰기 미션이 찾아왔다. 우테코에서 찾은 나만의 효과적인 공부법이라는 주제와 본인의 기존 학습 방식과는 다른 점을 서술, 나아가 어떻게 발전시킬지라는 요구사항도 있었다. 어떻게 풀어나갈지 생각해 보다가 가장 기록이 잘 된 글에 대해 생각해 보았고, 문득 조선왕조실록이 떠올랐다. 조선시대에 있었던 일들과 나의 공부법을 연관 지어 본 것들에 대해 말해 보고자 한다.

임진왜란

왜인들이 명나라를 침범하고자 한다는 말이 유구국까지 번져 있고 조선도 이미 일본에 굴복하여 삼백 명이 투항해 가서 길을 인도하기 위한 배를 만들고 있다는 말이 퍼져 있었다.
선조 실록 1591년 10월 24일

유비무환, 무비유환

임진왜란이 일어나기 전 조선은 조선 통신사를 파견해 일본의 조선 침공 정보를 수집하고 전쟁 준비를 하였다. 다만 전쟁 정보를 입수했으나 일본이 왜, 어떻게, 얼마나 쳐들어 오는지 정확히 알지 못한 채, 기존의 전쟁 대비를 답습하는 수준이었다. 결과적으로 조선은 큰 화를 면치 못하였다. 난세의 영웅이 있었기에 나라를 지켜낼 수는 있었지만 고국산천이 불타고 커다란 인명피해를 입게 되었다.

기존의 학습 방법을 답습

나는 레벨 1 기간 동안 미션에 대한 준비를 전혀 하지 않았다. 기존에 알고 있던 지식과, 미션을 진행하면서 배우게 되는 개념들을 그때그때 공부하며 미션을 마무리 지었다. 앞으로 맞닥뜨리게 될 개념의 홍수를 대비하지 못한 채 레벨1 마지막 미션이자 레벨 2 첫 미션인 체스를 마주하였다. 결과적으로 레벨 2를 시작하자마자 체력에 큰 피해를 입었고 내 머릿속 기억장치들은 빠르게 불타버렸다.

대비를 하자!

이에 앞으로의 미션에 대해 대비를 하기 시작했다. 미션의 내용과 필독서들을 보면서 레벨 2에서 어떤 것들을 배우게 될지 알아보고 데이터베이스와 네트워크에 대해 공부하기 시작했다. 또한 브리가 제공해 준 spring learning test를 학습하며 스프링에 대한 감각도 익히게 되었다. 공부한 내용 중에는 data source, driver 등 이미 쓰이는 개념들도 있고, http header 또는 body 등 언제 쓰일지 모르는 개념들도 있다. 앞으로 또 어떤 미션에서 어떤 개념들을 요구할지는 모르지만 미리 준비를 하고 있다는 점에서 마음의 안정을 찾아가고 있다.

탕평책

” … 동인(東人)·서인(西人)·남인(南人)·북인(北人)을 물론하고 재주에 따라서 쓴 뒤에야 공도(公道)를 넓힌 것이라 할 수 있을 것입니다.”
하니, 임금이 그 공정함을 칭찬하였는데, 이 뒤부터 임금이 또 남인과 소북(小北)을, 등용하려 하였다.
영조 실록 1740년 6월 5일

함께 어우러지자

영조는 노론, 소론을 막론하고 고루 등용하는 정책을 폈다. 하나의 분파, 색채, 생각에 매몰되지 않고 여러 관직에 소신 있는 인재들을 등용시켰다. 물론 결국에는 다시 당파가 나뉘고 후에 세도정치가 등장하는 원인이 되는 정책이었지만, 오래도록 이어져오던 파벌 싸움을 해결해 보고자 하는 노력에 의의를 둘 수 있다.

한 쪽의 관점에만 서서

나는 학습하는 내용에 대해서 정의를 내리고자 하였다. 그리고 해당 내용을 쓸 수 있는 경우와 쓸 수 없는 경우로 나누어 생각하였고, 반대되는 글이나 의견이 나올 때에는 이를 치열하게 재반박하기 일쑤였다. 이렇게 한 쪽의 관점으로만 생각을 정립하고 사용하다 보니, 점점 내가 한 말에 대해 내가 다시 반박할 수 있게 되는 아이러니한 상황에 놓이게 되었다.

소신이 없는 소신

그래서 한 쪽의 관점과 다른 쪽의 관점을 고루 등용하기 시작했다. 이전 미션에서 받았던 리뷰와 다음 미션에서 받았던 리뷰의 내용이 반대되더라도 각 리뷰어의 관점과 각각의 상황이 다를 수 있다고 생각하였다. 한 쪽의 색채에 매몰되지 않도록 양쪽의 의견을 함께 들여다볼 수 있도록 학습하고 있다. 결과적으로 기존에 내가 생각하던 개념과 반대되는 글이나 의견에 대해서도 여유롭게 받아들일 수 있게 되었다.

에덴개발실록

하지만 여전히 갈 길이 멀다. 학습한 내용을 기록하는 데에 서툴고, 노력하지 않기 때문이다. 앞으로는 학습한 내용, 학습을 하는 당시에만 느낄 수 있는 감정들을 글로 써 내려가고 기록하는 방법을 취하려고 한다. 당시에 있었던 일들을 기록함으로써 후대에게 직접 경험해 보지 못한 일들에 대한 간접적 경험과 상상, 그리고 앞으로 나아갈 방향을 제시하는 조선왕조실록처럼 말이다.



⬇️⬇️⬇️ 글은 잘 읽어보셨나요? 크루들의 생활이 궁금하다면! 😄 ⬇️⬇️⬇️

♡ 선릉캠퍼스 Vlog 보러 가기!

♥︎ 잠실캠퍼스 Vlog 보러 가기!