5주 간의 회고 (TIL 33일차)

EenSung Kim·2021년 5월 7일
3

"TIL 이라고 하기엔...?"


섹션 1 의 HA 를 통과했다는 이메일 안내를 받았습니다!! 차질 없이 다음 과정들을 밟아나갈 수 있게 되었네요. 코드스테이츠 부트캠프에서는 시험에 통과하지 못한다고 바로 탈락하지는 않습니다. 기수이동이라는 절차를 거쳐서 다음 기수에서 다시 공부를 할 수 있는 기회가 주어지는데요. 이렇게 개념을 충분히 이해할 수 있도록 시스템이 갖춰져 있기 때문에 기수 이동을 반복하다가 탈락하게 되는 경우는 거의 없다고 해요. 다만 저는 재정적으로 엄청 여유로운 상태로 공부를 시작한 게 아니라서 가급적 기수이동을 하는 상황이 발생하지 않았으면 좋겠어요. ㅠㅠ

원래 TIL 은 Today I Learned 라고 해서 그 날 배운 내용들을 정리하는 건데요. 오늘은 MIL 정도가 되려나요? 지난 5주 간의 경험과 앞으로의 다짐 등을 정리해보려고 합니다.


쉼 없이 달려온 5주(사실 아직 1/4 밖에 안 지났지만 말이죠..) 였습니다. 4월 5일 개강해서 벌써 5월 7일이니 딱 한 달하고도 이틀이 더 지났네요. 매일 9 to 6 로 진행되는 정규 공부시간 그리고 자발적인 개인학습시간을 더하면, 못해도 최소 10~12시간씩은 공부를 했던 것 같습니다. 저는 외국에서 학교를 나와서 수능 공부하듯이 이렇게 공부하는 경험이 처음인데요. 그래도 이렇게 해야 그나마 진도에 맞춰서 따라갈 수 있는 것 같습니다.

비전공자도 충분히 따라갈 수 있도록 코스를 구성해두었다곤 하지만, 그렇다고 그게 쉽다는 말은 아니겠죠. 매일매일 배워야 하는 내용들도 적지 않습니다. 처음에는 복습 위주로 공부했었고, 예습을 거의 하지 않았었는데요. 지금은 그렇지 않습니다. 예습도 복습도 다 해야 그날 그날 진행되는 공부를 잘 따라갈 수 있기 때문이죠.

사실 크루 분들이 가급적 미리 진행하지 말라고 안내를 하셨었긴 해요. 아마도 페어로 진행해야 되는 영역을 말씀하셨던 거겠죠. 문제를 미리 다 풀어버리면 페어와 함께 진행해야 할 때, 밸런스가 맞지 않으니까요. 근데 제가 그걸 무조건 당일 공부는 당일에 해야되는 걸로 오해하는 바람에, 초반에는 당일에 바로 개념을 숙지하고 문제를 풀다보니 좀 난항을 겪기도 했습니다. 앞으로도 개념 이해는 가능한 미리 훑어보려고 합니다.

잠시 곁다리로 빠지자면 HA 를 치뤄보고 나니 페어와의 프로그래밍 경험이 왜 중요한지를 알 수 있었습니다. '천 년에 한 번 나오는 천재 개발자'가 아닌 이상 누구나 프로그래밍을 하다가 막히는 지점이 생기죠. 그럴 때 새로운 시각으로 바라보고 이제까지와 다른 아이디어를 떠올린다는게 혼자서는 쉽지 않습니다. 자꾸 되짚기만 하고 어떻게 바꿔야겠다는 생각이 떠오르지 않을 때가 많은데요. 페어 프로그래밍을 진행하게 되면 서로 다른 시각으로 코드를 바라볼 수 있기 때문에 효율도 오르고 막힘 없이 진행할 수 있었습니다.

지난 5 주간을 돌아보면 그래도 아주 조금은 자신감이 생긴 것 같습니다. 구글링이야 예전에도 할 줄 몰랐던 건 아니지만, 지금은 구글링으로 원하는 정보를 찾고 이해하는 것들이 조금 더 손에 익어가는 느낌입니다. 외국어로 치자면 최소한 읽을 줄은 알게 된 상태랄까요. 이런 작은 성취감들을 잘 살려서 앞으로도 꾸준한 공부를 이어나갈 수 있었으면 합니다.


처음으로 진행된 HA 와 솔로데이, 어린이날과 내일 어버이날까지, 이번 주는 공부 외의 다른 일들이 겹쳐서 정신이 없었는데요. 그런 만큼 공부가 미진한 게 아닌가 싶은 느낌이 크지만, TIL 이 있기에 매일 뭐라도 하나 붙잡게 되는 것 같습니다.

신학을 전공하고 개발자의 길에 들어섰다던 어느 선배 수강생 분은 수료 이후에도 구글 캘린더로 스스로 일정을 관리하셨다고 해요. 갑자기 다른 일정들을 해결하다 보니 일정 관리의 중요성을 다시금 깨닫게 됩니다. 1일 1커밋이라는 것도 있다고 하던데, 매일매일 꾸준하게 걸어나갈 수 있는 자세와 준비가 필요한 것 같아요.

그러려면 '달성 가능한 목표 설정' 이 중요합니다. 소화가 가능하면서도 전체적인 일정에 무리를 주지 않는, 매일매일 꾸준하게 달성 가능한 목표 말이죠. 아직은 직접 계획을 잡아가는 게 조금 낯설고 어려운 일이지만, 코드스테이츠에서 제공하는 계획들을 눈여겨 보면서 향후에도 이를 실천해나가야 겠다는 다짐을 하게 되었습니다.

더불어서 이제는 조금씩 앞으로 어떤 길을 걸으면 좋을지를 탐색하고 경험해볼 수 있었으면 좋겠다는 생각을 하게 됩니다. 아직 꼭 이런 쪽에서 일하고 말꺼야 라는 생각이 있지는 않거든요. 차츰 공부해나가다보면 개발과 관련한 전반적인 분야를 좀 더 넓게 바라볼 수 있는 시야가 생길 수 있지 않을까 기대하고 있습니다.


오늘 살짝이나마 맛볼 수 있었던 개념을 제가 이해한 만큼만 적어보려고 합니다. 일정상 아마도 다음 주에 진행될 재귀함수가 바로 그 주인공입니다.

어떤 함수 내부에서 자기 자신을 호출하는 함수를 재귀함수라고 하는 것 같습니다. 언뜻 생각하기에 함수가 다시 자기 자신을 호출한다면 경우에 결국 무한 반복이 되는 것 아닌가 싶지만, 그런 만큼 무한반복하지 않고 함수가 종료될 수 있도록 리턴 조건을 잘 명시해줘야 할 것 같네요.

내용을 조금 더 배워보면 여러 다른 쓰임새를 알 수 있겠지만, 짧게 알아본 바로 재귀함수는 많은 내용을 축약해서 전달한다는 장점이 있는 것 같습니다. 프로그래밍을 배우다 보니 최대한 같은 내용을 반복하지 않도록 하는 것이 좋은 프로그래밍의 하나라고 생각하게 되었는데요. 리액트에서 컴포넌트로 기능에 따라 묶어두는 것이나 특정한 일을 반복하는 함수의 구현 등이 다 같은 내용을 반복하지 않도록 하는 역할을 하기 때문이죠.

reduce 메서드의 경우도 내부적으로 반복해서 진행되는 작업을 간단하게 축약해서 작성하게끔 해줍니다. 마찬가지로 재귀함수도 보다 간결하고 깔끔한 코드의 작성을 통해, 작성하는 사람이나 나중에 코드를 읽을 사람 모두가 그 내용을 쉽게 알아볼 수 있지 않을까 싶네요.

profile
iOS 개발자로 전직하기 위해 공부 중입니다.

1개의 댓글