코드스테이츠 AI 부트캠프 주차별 회고 전체 모음.zip
TABLE OF CONTENTS
해당 포스팅은 이전에 운영하던 깃허브 블로그에서 옮겨온 게시글입니다.
탑승기
직업군인이었던 내가 전역 후 '개발자'로서의 길을 걸으려는 이유는 그리 복잡하지 않다. 항상 사회에 맞춰 '소비자'로서만 살았는데, 이제는 가치를 제공하는 사람이 되고 싶었다. 사실 목적은 '경제적 자유'였다. 창업가로서 무언가를 창조해내고 싶었다. 기술이 없는 내가 해 볼 수 있는 건 다 해보고 싶었다. 그렇게 코딩을 배우기 시작했다.
첫 시작은 웹사이트였다. 컴퓨터의 컴 자도 모르던 내가 '생활코딩'을 따라 하며 하나의 웹사이트를 만들었다. 머릿속으로 생각하던 무언가를 구현하고, 호스팅까지 했을 때의 성취감은 글로 표현할 수 없다. 하나하나 개발을 공부하면 할수록 지식의 한계가 보였다. 하지만 욕심이 났다. 체계적으로 배워 보고 싶었다.
그렇게 찾게 된 국비 지원교육. 우리나라에 이런 제도가 있다는 것, 코드스테이츠라는 회사가 있다는 것에 큰 감사함을 느꼈다. 'AI 부트캠프'라는 교육 타이틀을 보자마자 사실 다른 기관을 생각해보지도 않았던 것 같다. 미래학에 관심이 많던 나로서는 인공지능의 위대함과 가능성을 알기 때문에 더더욱 가슴이 뛰었다.
하지만 교육에 지원하기까지는 굉장한 고민이 있었다. 내가 정말 하고 싶은 게 뭘까? 난 코딩을 하고 싶은 걸까? 개발이 적성에 맞나? 데이터를 다루는 일을 잘 할 수 있을까? 온갖 고민으로 며칠을 버티다 마음을 굳게 다지고 지원을 했고, 합격했다. 나중에 들어보니 경쟁률이 9:1 정도가 된다고 하는데, 합격해서 정말 기뻤다.
내일부터 교육이 시작된다. 벌써 디스코드에서 동기들을 만나고, 오리엔테이션을 끝마쳤다. 설레는 마음과 걱정되는 마음이 공존한다. 처음 시작할 때의 설렘과 긴장감을 끈기있게 가져가 보려 한다.
1개월 차
1주 차(EDA): 시작
교육의 첫 부분인 섹션1 스프린트1을 공부하면서, 데이터에 대한 지식이 완전 제로 베이스기 때문에 사실 굉장히 막막했다. ‘정말 내가 하고 싶은 것일까?’라는 생각도 했던 것 같다. 처음 사용하는 Colab부터 처음 보는 Dataframe, 처음 해 본 PR까지. 이 모든 것이 처음이라 생소하고 어색했다.
그랬지만 아직 일주일밖에 안 된 지금, 적응의 동물답게 벌써 많은 것들이 익숙해졌다. 처음 보는 모든 것들을 검색으로 알아낼 수 있었고, 알아낸 것을 이것저것 사용했다. 너무 다양한 지식을 습득해야 했기 때문에 모든 것을 소화할 수 없었지만, 익숙지 않은 부분들은 블로그를 통해 정리하고 필요할 때 가져다 쓸 수 있도록 만들었다. 아직 교육 기간이 많이 남았지만, ‘모르는 게 많구나’라는 생각보단 ‘벌써 이만큼이나 할 줄 아는구나’라는 마음으로 임하고 있다.
무엇보다 코드스테이츠의 과제형 교육 방식이 나에게 너무 환상적이라고 느껴졌다. 지금까지 해왔던 일반적인 수업과는 굉장히 달랐다. 자기 주도적 학습법이라는 게 처음에는 와닿지 않았는데, 첫 주 차를 해보니 확실하게 깨달았다. 지식을 달달 외우는 게 아닌, 문제가 주어졌을 때 능동적으로 해결하려고 서칭하는 능력과 커뮤니케이션을 키우는 느낌이라 너무 좋다.
처음이라고 너무 겁먹지 말아야 할 것을 깨달았다. 코드를 짜는 과정 뿐 아니라 다른 많은 문제에 직면했을 때도 능동적으로 해결할 수 있을 것만 같다. 또한 과제가 매일, 시험이 주마다 있는 교육을 7개월 동안 끈질기게 가려면 맨탈과 체력이 중요하겠다고 생각해서 무작정 오래 잡고 있기 보단, 삼시 세끼 영양가 있게 잘 챙겨 먹고, 운동도 꼬박꼬박 해줬다
과제를 해결하다 보면 겉핥기식으로 코드를 복붙하고 지나치는 경우가 종종 있었다. 해당 기능의 중요도를 잘 판단해서 알고 싶은 부분은 개인 학습 시간을 통해 블로그를 통해 보기 쉽게 정리를 해야 할 필요성을 느꼈다. 또한 정말 해결하기 힘든 문제에 직면했을 때도 낙담하지 않을 것이다. 주커버그도 모든 걸 안 상태에서 시작하지 않았으니까. 무엇보다 영어의 중요성을 절실히 느꼈다. 아무래도 깊게 파고들려 하다 보면 영문서의 정보들이 많이 필요했다.길게 가려면 조금이나마 영어 능력을 키워야 할 것 같다.
2주 차(Statistics): 상가
1주 차에 대략적인 판다스를 이용한 데이터 프로세스와 Dataframe을 다루는 방법 배웠다면, 이번 섹션에서는 각종 통계의 개념과 Test 방법들을 배웠다. T-test나 Chi-test, 베이지안 테스트도 처음 보는 개념이라 숙지가 어려웠지만, 무엇보다 가설 검정을 이해하는 것이 굉장히 오래 걸렸다. 또한, 스프린트 챌린지를 진행하면서 이번 섹션 동안은 개념에만 너무 집중한 탓인지 Dataframe을 다루는 스킬이 미숙해져서 시간을 오래 소모해 아쉽게 도전과제를 끝까지 풀지 못했다.
확실히 이번 섹션은 기술이 아닌 개념에 대해서 이해하는 게 우선시 되어야 한다고 생각했기 때문에 굉장한 어려움을 느꼈는데, 통계학에 대해 지식이 있으셨던 동기 '주연'님이 물심양면으로 도와준 덕에 다행히 이해하고 넘어갈 수 있었다. 혼자 공부할 때와 다르게 누군가와 함께할 때의 지식의 극대화를 절실히 느끼고 있다. 또한, 이 전에 공부했던 내용은 외우진 못하더라도 어떤 키워드로 찾았는지 아카이브 해놔야 한다는 중요성을 크게 느꼈다.
혼자서만 깨우칠 수 없는 것도 있다는 점을 깨달았다. 내가 도움받는 만큼 내가 도움 줄 수 있는 부분에 대해서는 돕도록 더 노력해야겠다. 외람된 말이지만 산스크리트어 중에 '상가'라는 단어가 있다. 직역하면 '모임, 공동체'로써 '사랑과 지지, 격려를 보내는 승려나 수녀들을 일컫는 말'이지만, 현대로 따졌을 때 '친절과 존중이 넘치는 분위기 속에서 서로를 돕는 공동체'라면 '상가'라고 볼 수 있다고 한다. 현재 내가 속해 있는 코드스테이츠 AI 과정 5기를 '상가'라고 생각한다. 여기서 지식을 쌓아감에 감사하다. 교육 당일 항상 어려웠거나 찾기 힘들었던 내용을 블로그에 하나씩 포스팅해놓긴 했는데, 스프린트 챌린지를 진행하면서 느낀 점은 이제부터는 이전에 해보았던 테크닉을 더욱더 빠르고 정확하게 수행하기 위해 더 많은 정보를 아카이브 해야겠다고 생각했다.
현재 블로그에 'Did Unknown List'를 만들었다. 몰랐던 모든 것을 그때 바로 정리할 수는 없겠지만, 꼭 알아뒀으면 하는 것들이나 나중에 반드시 도움이 될 것들을 리스트화해서 시간이 날 때마다 추가로 공부하며 정리해 볼 생각이다. 또, 바로바로 찾기 위해서 시리즈나 키워드, 태그 분류도 좀 더 신경 써서 해야겠다. 무엇보다 중요한 건 복습인 것 같다. 블로그 포스팅을 백날 천날 해봐야 보지 않는다면 소용이 없다고 생각한다. 주말을 이용해 그 주에 배우고 공부하며 정리한 내용을 꼭 다시 한번 복습할 예정이다.
3주 차(Linear Algebra): 초심
시작한 지 벌써 3주 차가 되었기 때문에 스스로 나태해진 걸 많이 느낀 것 같다. 지금까지 살아오면서 항상 그랬듯, 난 확실히 초반에 너무 힘을 줘버리기에 점점 빠진다. 이번 부트캠프에서 그걸 느낀 게 딱 이번 주 차였던 것 같다. 7개월의 교육과정 치곤 생각보다 빨리 찾아왔다. 저번 주 스프린트 챌린지가 끝나고 난 후로 의욕이 떨어져 과제만 마무리하기에 급급했고, 제대로 된 개념 정리가 안되다 보니 다음날, 그다음 날 내용을 이해할 수 없었다. 학습의 방향성을 바꿔야 할 것 같다고 생각한 그 날 단아님의 조언 덕에 해결하는데 3시간가량을 써먹어버리는 도전과제를 과감히 포기하고 초석을 다지는 데에 집중했다.
지금까지 과제를 해결하는 데에 집중했던 것 같다. 그토록 싫어했건만, 아직도 여태껏 해왔던 주입식 교육에서 내가 헤어나오지 못한 것 같다(ㅠㅠ). 중요한 건 이해와 응용력이라고 느꼈다. 과제는 단지 힌트를 주는 매개체라는 생각이 든다. 이 부트캠프가 내 학습의 끝이 아니기에, 도움받으며 학습 방향을, 또 스스로 해볼 힘을 더 길러야 할 것 같다.
사실 이번 섹션을 배우는 주말을 포함한 6일 동안, 4일을 통째로 날렸다. 그러다 보니 남들만큼은 소화하고 싶어서 이틀을 새벽까지 공부했다. 밸런스를 유지하자고 그렇게 다짐했었건만, 지키지 못했다. 꾸준히 조금씩이라도 해놓지 않으면 미래의 내가 개고생한다는 교훈을 얻었다. (하지만 잘 부탁해,,,)
그저께, 어제 학습에 대한 관점에 완전히 바뀌었다. 그 태도를 유지하며 앞으로도 집중해야 할 것에만 집중하며 시간을 아껴야겠다! 정말 주말을 사랑하지만, 주말에 조금씩이라도 눈에 담아두지 않으면 월요일이 됐을 때 다 리셋되는 걸 경험했으니, 주말에 조금씩이라도 학습할 테다!
4주 차(Introduction to Data Science): 적응
성황리에 섹션 1이 끝이 났다! 참 빠르게 흐른 시간 동안 많은 일이 있었던 것 같다. Pandas를 만나게 되고 가설검정을 지나 통계학과 선형 대수까지 배워 첫 번째 프로젝트를 마쳤다. 오늘은 동기들의 프로젝트를 보고 서로 피드백도 주고받을 수 있는 값진 시간까지 가졌다. 프로젝트를 진행하면서, 확실히 이번 섹션 동안 배운 내용을 소화하지 못한 느낌이 들었다. 동기 중 누군가 ‘카이제곱 테스트를 한다.’, ‘PCA를 해볼 거다.’라고 할 때 ‘그게 뭐였지...?’, ‘그걸 왜 쓰는 거지…?’라는 생각이 들며 기억이 나지 않았다(ㅠㅠ)
이른 시간안에 모든 걸 소화하려는 게 욕심이었다. 내가 할 줄 아는 것만큼만 프로젝트에 쏟았다면 그것에 만족하고 충분히 뿌듯해 하려 하지만 동기들의 프로젝트를 여러 개 보면서 ‘다들 진짜 열심히 했구나’라는 생각이 절로 들었다. 내 작업물을 보니 뭔가 대충한 것 같은 느낌까지 들었다. 하루빨리 나 스스로의 주입식 교육에서 빨리 빠져나와, 배우는 내용을 꼭꼭 씹어서 조금이라도 소화시켜 마음껏 활용하고 싶다.
같은 데이터를 보고 심지어 필수사항까지 많이 주어진 프로젝트에서도 도출된 결론이 가지각색이었다. 정말 신기했고, 이렇게 다양한 사람들이 많나 각종 지식이 합해지면 무적이겠다는 생각이 들었다. 또 한 달이지만 벌써 동기들과 친해진 기분이 들어서 좋다.
어느 정도 코드스테이츠에 적응이 됐다. 적응되어서 교육을 수월하게 받을 수 있겠지만, 나태해질 수 있을 거라는 생각이 들었다. 이번 주 동안 재충전을 얼른 해서 다음 주부터는 처음 교육받는 마음으로 임해야 할 것 같다. 섹션 2부터는 앞서 다짐했듯, 집중해야 할 것에만 집중할 것이다. 다행히 섹션 2에 들어가기 전까지 오늘부터 주말까지의 시간이 있어서 충분한 듯 충분하지 않은 시간동안 섹션 1을 깔끔히 정리하고 머리에 집어넣어야 할 것들을 꼭 붙잡아 둘 거다
2개월 차
5주 차(Linear Models): 기초
머신러닝의 첫 시작, 선형회귀부터 로지스틱 회귀까지 배우면서 쉽진 않았다.~~(근데 솔직히 넘 재밌,,,)~~ 지금까지 배운 건 몇몇 개를 제외하고는 그렇게 많이 쓰이진 않는다하고 더 많은 모델링 방법을 배우게 되겠지만 기대를 해봐도 될 것 같다.
솔직히 교육 처음에 부트캠프만 하세요. 다른 일은 수료 후의 나에게 양보하세요
라는 문구를 보고 약간 콧방귀를 꼈었다. 섹션 1 때는 좀 공부가 끝나도 시간이 널널하고 할 거 다 했다! (그래서 내가 지금 이 모양 이 꼬라진가..?) 근데 섹션 2가 시작되고 그 문구의 의미를 절실히 깨달았다. 이번 주는 정말 정규 시간뿐 아니라 늦은 밤까지 학습을 했는데, 이게 아니였다면 진도를 따라가기 쉽지 않았을 것 같다. 그 때문에,,, 이번주는 저녁을 두번이나 걸렀다. 오늘 몸무게 재보니 살이 많이 빠져있어서 기분은 좋은데, 앞으로는 절대 한끼도 거르지 말도록!
섹션 2로 넘어오면서 1을 공부할 때의 방법과 완전 다르게 학습을 진행해보았다. 원래 강의를 보자마자 바로 과제를 진행하며 여러 가지를 익혔었는데, 이번엔 개념 학습이 모두 되었을 때만 과제를 시작했다. 과제를 늦게 시작하기 때문에 제출 시간이 살짝은 빡빡해지는 단점도 있었지만, 개념 정리가 다 되고 과제에 적용해보니 훨씬 이해도가 높고 과제를 수월하게 해결할 수 있어서 좋았다. 앞으로 이런 학습 형태를 유지해나가며 공부할 생각이다. 현재 내가 느낀 나의 제일 큰 문제점이 ‘무엇’을 물어봤을 때 그게 바로바로 머릿속에서 떠오르지 않고, 설명할 수 없는 점이었다. 겉핥기식으로 빨리빨리 넘어가니까 일어나는 문제라고 생각하고, 기초부터 복습에 재복습을 해야겠다.
동기들 자체적으로 생각해볼만한 것들을 토의할 스터디 그룹을 만들었다. 오늘부터 시작하는데 서로에게 좋은 도움이 되었으면 한다!
6주 차(Tree Based Models): 흥미
머신러닝 2주차 Tree Based Model을 배웠다. 전에 많이 언급되었던 RandomForest를 배운다니 기대가 됐다. Pipeline까지 배우고나니 모델 학습이 비교적 간편해서 많은 모델 기법을 만든 개발자에게 감사했다(ㅋㅋㅋ)
사실 이번주부터 학습내용이 재밌어졌다. 전까지는 '이걸 왜배우지?'의 연속이었는데, '이걸 왜배우지?'들이 '아 결국 이거 하려고 배운거구나'가 되어서 흥미가 올랐다. 사실 캐글을 진행하며 점수에 욕심이 나서 많은 시간을 특성공학과 하이퍼파라미터 튜닝에 쏟았다. 많은 시간을 쏟다보니 자연스럽게 모델링에 대한 감이나 이해도가 굉장히 올랐다.
조금이라도 만지면 올라가는 점수에 짜릿함을 많이 느꼈는데 특히 생각했던 논리가 들어맞았을 때의 짜릿함이란... 말로 설명할 수가 없다... 때문에 더 좋은 논리가 생기기 위해선 기초를 탄탄히 해야겠다고 생각했다. 주말을 이용해서 섹션1에서 배웠던 내용을 쭉 훑어보면서 복습했는데 그 당시에 볼 때보다 확실히 이해가 더 잘되고 머리에 잘 들어왔다. 배웠던 RandomForest 말고도 다양한 부스팅 방법도 구글링을 통해 맛봤는데 좋은 모델들이 많았던 것 같다. 아마 앞으로 배우게 될텐데 굉장히 기대가 된다.
캐글에 미쳐서 기본 새벽 2시까지하다 잠들었다... 피로는 점점 쌓였고 금요일엔 졸음을 참을 수 없었다. 아무리 흥미로워도 그만둘 줄 알아야 할 것 같다. 또 시간 분배를 잘 해서 개념 정리도 놓치지 않아야겠다. 이번에 해본 것 처럼 많이 만져볼수록 실력이 늘 것이라는 확신이 생겼다. 지금 h1n1 데이터가 너무 지겨워서 꼴도 보기 싫은데, 다양한 좋은 데이터가 널리고 널렸으니 맛보면서 여러가지를 잘 모델링 할 수 있도록 노력해야겠다.
7주 차(Applied Predictive Modeling): 약점
드디어 머신러닝의 마지막 Sprint가 끝났다. 이번 주차는 새로운 Boosting과 시각화 방법 등을 배우면서 개념보다 실전에 관해 공부한 것 같다.
머릿속에서 흐름을 파악하고 그 흐름에 따라 모델링을 해가는 과정이 재밌었다. EDA와 Feature Engineering에 약하다는 것을 깨달았다. Data가 주어지면 바닥이 보일 때까지 파고드는 습관을 길러야겠다.
확실히 정형화된 과제를 풀기보다 내가 선택한 데이터를 끊임없이 이리저리 굴리다 보니 어디까지가 한계인지 확인하기 어려워서 계속 붙잡고 있었다. 논리대로만 결과가 나온다면 만족할 줄도 알아야겠다.
이제 프로젝트 시작하는데 마음에 쏙 드는 Dataset을 골랐으니, 이 Data가 닳아 해질 때까지 해볼 수 있는 모든 것들을 해볼 것이다. 저번 프로젝트에서 지적받았던 것을 토대로 신경 써서 남에게 잘 전달할 수 있게끔 진행을 해볼 것이다.
8주 차(Machine Learning): 점검
현재 시각 아침 7시 37분... 밤샌 상태로 쓰는 섹션2 회고록이라니ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
프로젝트가 끝나자마자 제주도 휴가를 다녀오고 + 어제 만취 술파티를 보내고 나니 눈이 말똥말똥 잠이 너무 오지 않더라... 어쩔 수 없이 배고파서 짜파게티 하나 끓여 먹고 다행히 이번 섹션3 교육 자료가 일찍 열려 있어서 미리 예습 좀 했다. conda와 git은 사실 익숙해져있는 터라 오늘 수업은 힘들 부분은 없을 느낌이다.
말로만 듣던 어마어마 해보이던 ML이 끝났다. 쉽지 않은 과정이지만 이렇게 빨리 끝나버리니 아쉽다. 제대로 배운 지도 잘 모르겠다. 정말 많은 지식이 필요로 할텐데 발만 담궜다가 다른 곳으로 달리는 기분이라 해야하나... 잊지 않도록 꾸준히라도 모델링을 해야겠다. 아무튼 정말 이번 한 달은 내가 데이터 과학에 흥미를 느끼게 해주는 값진 달이었다.
모델링도 해보고, 캐글도 해보고, 점수를 찔끔찔끔 올리며 캐글뽕에도 취해보고, 무엇보다 codestates 통틀어 1등을 한 경험이 오래도록 잊히지 않을 것 같다. 이 경험 덕분에 더욱 학습에 매진할 수 있었고 순탄하고 재미를 크게 느끼며 공부를 한 것이 참 좋았다.
마지막에 Project를 할 때도 재밌었다. 내가 선택한 데이터로 이리저리 굴리며 모델을 만들어가는 과정이 뿌듯했다. 잘 하지도 못했고, 성능이 그렇게 좋지도 않았으며 내 단점을 더욱 파악하는 계기가 되었지만, 그래서 더 좋은 거 아닐까 싶다.
벌써 두 달이라는 시간이 지나니까 확실히 처음 시작할때와 많은 것들이 바뀌었다. 바이오리듬을 제대로 잡지 못하고, 체력이 떨어짐을 절실하게 느끼고 있다. 부득이하게 운동을 못 한 탓도 있는데 아무리 바쁘고 학습량이 많더라도, 무조건 운동은 해야겠다. 밥도 많이 거른다. 남들은 다 살이 찐다고하는데, 나는 뭔가 일이 끝나지 않으면 식사를 하지 않는 버릇이 있어서 살이 쪽쪽 빠진다. 시작할때보다 5kg 가량 빠졌다.
점검할 때가 왔다. 어쩌면 생활하며 놓치고 있는 부분이 없는지 잘 살펴야겠다. 진정 처음에 내가 시작한 이유를 계속 상기하고, 그 마음을 잃지 않으려 노력해야겠다.
시작은 밤샌 뒤 아침이었지만, 지금은 자기 전 심야다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 오늘 캐글 그랜드마스터의 강연을 들었는데 또 가슴이 두근거렸다...! 지금은 커리큘럼이 바빠서 힘들겠지만, 조금이라도 여유날 때마다 연습해야겠다.
3개월 차
9주 차(Env, RDB): 상승
섹션 3에 들어오고 지금까지 배웠던 것과는 많은 것이 바뀌었다. Colab으로 ipynb만 다루다가 Git과 conda 가상환경을 써보고 SQL 작성법과 DB를 관리하는 법을 배웠다. 각종 데이터를 다룰 수 있는 툴을 배우면서 날이 가면 갈수록 어려웠지만, 많은 것을 배워감에 기분은 좋았다. 다행히 깃허브 블로그를 일찍 시작했던 탓에 Git에 대한 부분은 어려움 없이 쉽게 익혔다. 또 아직 익숙하지 않은 동기에게 조금이나마 도움을 줄 수 있어서 뿌듯했다. SQL 작성도 Pandas에서 DataFrame과 유사하지만, 좀 더 직관적이고 쉽게 다룰 수 있어서 재밌게 진행했다.
이전까지는 개념에 대한 부분을 많이 다뤘다면, 이젠 프로그래밍적인 부분을 많이 다루는 중이다. 사실 여러 개념공부보다 이런 부분을 학습하는 것이 나에게 있어 더욱 재밌지만, 앞서 배운것들이 휘발되지 않도록, 틈틈히 복습해야할 것 같다.
벌써 부트캠프 섹션3이라니... 중반부에 들어서니 놓치고 있는 것이 많을 것 같다는 생각을 했다. 처음 들어왔을 때의 마음가짐 그대로 휩쓸리지 않고 끝까지 이어갈 수 있도록 다지고 또 다져야겠다.
날이가면 갈수록 시간의 부족함을 더욱 느낀다. 찾아보고 배우고 싶은 것의 토대가 기초를 배워감에 점점 마련되어 많아지지만, 가용시간은 많지 않다. 시간은 부족하지만, 부족하다는 생각을 버리고 리스트를 만들어 하나하나 도장깨기 하는 마음으로 꾸준히 천천히 해나가자. 화이팅
섹션 QNA를 진행하며 동기와 코치로부터 에이스라는 소리를 들었다. 당연히 기분은 굉장히 좋지만, 내 생각에 난 아직 에이스까지는 멀었다. 아직 기초적인 단계이고 꾸준히 학습한 것을 복습하고 정리하며 쌓아간 씨앗들의 새싹이 이제야 살짝 틔웠다고 생각한다. 어쩌면 과대평가 받는 것일 수 있다고 생각하고 나 스스로에게도, 모두에게도 에이스라는 기준에 부합할 수 있도록 꾸준히 나아가야한다. 자만하지 말고 아직 모자람을 인정하고 학습을 이어나가자! 지금처럼 재밌게! 긍정적으로! Light weight!
10주 차(데이터 수집과 NoSQL): 몰입
이번 회고는 추석이 껴있어서 굉장히 오랜만에 적는 기분이 든다.
이번 스프린트 동안은 코드에 대한 공부와 연습을 많이 했다고 느꼈다. 정말이지… 너무 재밌었다. 무조건적인 정답이 없는 코드를 짜보며 어떻게 하면 더 쉽고 간단하게 기능을 구현할까라는 고민을 계속 해보며 연구하는 것과 트러블 슈팅을 해결하는 과정이 정말 나와 잘 맞았다. 몇 시간을 끈질기게 붙잡고 해결한 기능에 대해서는 이상하게 애착감과 자부감(?)도 들었다.(이 과정이 어쩌면 머신러닝 모델링을 진행할 때와 비슷하지 않을까란 생각도 했다.) 스크래핑과 API, DB를 다루며 생소했지만 알아가는 과정이 즐거웠다. 부트캠프를 진행하면 할수록 스스로 깨우치는 재미에 푹 빠지게 되고, 벌써 많은 것을 알아간다는 사실에 놀라곤 한다.
사실 이번 스프린트를 진행하면서 사적인 생활 때문에 온전히 교육에 전념하지는 못했고, 학습자체를 몰아서 미리 끝내고 과제 레포가 오픈되었을 때 과제에만 집중하는 등 유동적으로 진행했다. 섹션 1을 진행했을 적 한 차례 이런 상황이 있었는데, 그 땐 학습을 잘 따라가지 못했을 뿐더러 과제를 끝내기에만 급급했고(그 때문에 얻을 수 있는게 없었다.) 방향성에 대해 자괴감을 느꼈었다.
하지만 이번 스프린트에선 아무리 정신없고 집중하기 어려웠던 환경과 상태였더라도 학습을 하고 과제를 진행할 때 만큼은 미친듯한 몰입감을 느꼈다. ‘공부하는게 왜 노는거보다 재밌지..?’라는 이상한 생각도 했는데ㅋㅋㅋ잠시였지만 아무튼 긍정적으로 받아들이는 중이다. 추석이라는 짧지만 달콤했던 방학으로 재충전을 잘했으니 앞으로도 이 끈을 붙잡고 쭈욱 나아갈 예정이다! 아 근데 예전에 배웠던 것들이 점점 날라가는 것만 같은 기분이다. 복습.. 복습.. 또 복습…!
11주 차(API, Dashboard): 황홀
이번에 Python에 대해 깊게 파고들면서 쉽지만은 않았다고 생각한다. Basic은 재밌었지만, 한 발 딛기가 어렵다는 표현이 와닿았다. Class에 대해 더 많은 이해가 필요할 것으로 판단된다.
Flask를 통한 HTTP API 까지 통달하려면 많은 시행착오가 있어야할것 같다고 생각했고, 그 시행착오를 이번 프로젝트를 통해 겪을 수 있을 거라 생각해서 기대 반 걱정 반이다.
'Data Engineering'이라는 Part 자체가 나에겐 너무 황홀했던 Section이었던 것 같다. '개발을 하고싶다'는 마음으로 아무것도 모르던 상태로 입교해서 생소했던 것들을 다루다가 이번에 비로소 ‘개발’이란 것을 배워본 것 같았다.
물론 Engineering 뿐만 아니라 분석에 관한 지식을 쌓는 것도 좋았지만, 처음으로 이번 주말에 코드스테이츠 커리큘럼 외의 여러가지 툴을 익히며 공부했다. 이런 행동을 미루어 보아… Data Engineering 파트는 내가 정말 익히고 싶은 어떤 것 중의 하나라는 생각이 많이 든다.
정말 어렵고 생소하고 낯설다. 하지만 벌써 3개월차가 되니 처음보는 것들이 두렵지 않다. 자기 주도적 학습의 효과를 톡톡히 보고 있다는 생각을 한다. 아무리 어려워도 어떻게든 풀어나갈수 있는 상태가 된 것이 행복하고, 이제 어떻게 학습을 이어나갈 지 감이 잡힌다. keep going 해야겠다.
12주 차(Data Engineering): 적성
Section3에서 배운 것: Python, GIT, conda, SQL, NoSQL, Cloud DB, 스크레이핑, HTML, CSS, API, Flask, Docker, Dashboard, Heroku > 추가로 학습해 본 것: AWS Postgres, DynamoDB, S3, Athena, Zeppelin, Apache Spark, Crontab, Selenium, Tableau 이렇게 보니 많이 배웠네... 역대 Section 중 제일 많이 학습했다고 생각한다. 많은 것을 빠른 시간에 학습하다보니 정신도 없었지만, 그래서인지 한 달이 꽤 길게 느껴졌고, 프로젝트까지 마치고나니 후련함이 가장 크게 남았다. 매번 생각했지만, 재밌었다는 생각이 가장 크게 드는 파트였다. 사실 Data Engineering을 할 때는 특히 '내가 공부를 한다, 학습을 한다.'보다, '내가 무언가를 만들어 낸다.'라는 생각을 많이 한 것 같아서 재밌다고 느꼈던 것 같다.
이번엔 주도적으로 배우고 싶은 것을 골라 열심히 파고 또 팠다. 물론 스스로 선택하는 과정과 한발 내딛기가 쉽진 않았지만, 또 다른 재미와 자기효능감이 있었던 것 같다. 정규 커리큘럼을 따라가기 바빴던 이전에 비해 큰 성장이라고 생각한다. 아직 딥러닝 파트가 남았지만, 서서히 내가 어떤 쪽으로 뿌리를 내려야할 지 갈피가 잡히는 것 같다. 어쩌면 Data Engineering은 내가 좋아하면서도 잘하는 두마리 토끼를 잡을 수 도 있지 않을까 하는 생각이 컸다. 프로젝트를 진행하며 Pipeline을 구축하는 과정이 즐거웠는데, 머신러닝에 얽메이다보니 많은 것을 적용하지 못했다고 생각한다. 내부에 사용된 논리나 모델은 사실 100% 마음에 들지 않지만, 그래도 처음부터 모든 것을 설계하고 완성해놓고 보니 뿌듯한 마음은 200%이다. 프로젝트를 만드는 일주일 동안 정말 열심히 했다고 나 스스로도 느낀다. 잠자고 밥먹는 시간을 제외하면 모든 시간을 컴퓨터 앞에서 보냈으니... 그래서 힘들긴 했는데, 새로운 Pipeline 프로젝트를 준비중이다. 코드스테이츠에서 요구하는 형식에서 조금 벗어나 자유롭게 해보고 싶은 것들을 적용해보고 싶어서 진행중인데, 조금 쉬고 싶었지만 그래도... 달려야지뭐ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
4개월 차
13주 차(Neural Networks): 고난
누가 스챌 전날 술먹었냐?
반성... 숙취에 쩔었지만 우여곡절 잘 끝냈다. 너무 힘들어서 회고도 대충 적어버림.
딥러닝의 시작! 제일 기대를 많이 한 섹션이다. 그랬지만... 섹션 3까지 너무 세게 달렸던 탓일까. 몸이며 마음이며 정상으로 돌리기에 큰 어려움을 느꼈다. 하지만 그냥 하자는 마음과 명상과 갑자기 아무생각없이 웃기 등의 방법으로 어찌저찌 돌려는 놨는데, 내용이 너무 어렵다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
이론공부를 너무 오랜만에 했던 탓인지 이해에 생각보다 많은 시간을 쏟아야했다. 정말 이론공부만으로 새벽 1시까지 꽉꽉 채워야만 따라갈 수 있었던 것 같다. 특히 이번 도전과제는 강의자료 만들기, 자신만의 언어로 정리하기가 많았는데, 여기에 많은 시간을 쏟아야 했지만, 이게 생각보다 도움이 크게 됐다.
사실 이론 공부보다 코드 구현에서 재미를 크게 느끼는 한 사람으로써, 자칫 게을리할 뻔 했던 이론 공부 꾸역꾸역 한 나자신, 도와준 사람들에게 감사하다. 진짜 수학이든 뭐든 놓지 않고 꾸준히 보려는 습관을 가져야겠다.
다음주부터는 아마 내가 좋아할만한 것들이 준비되어있을 것 같다. 자연어 처리부터 이미지 처리까지 배울 것 같은데... 생각보다 큰 기대가 된다.
머신러닝 때 느꼈던점이, 논리가 좋으면 좋을수록 좋은 모델링을 할 수 있다는 것이었는데, 딥러닝도 별반 다르지 않을 것 같으니 좋은 논리를 위해 지금까지 겉핥고 간 지식들을 빨리 내 것으로 만들어야겠다.
오늘 스챌 끝났으니까... 오늘만 좀 놀아야징ㅎ
14주 차(Natural Language Processing): 속상
이번주는 컨디션이 좋지 않아서 주 초에 수업을 따라가기가 힘들었었다. 컨디션도 컨디션인데, 계절이 너무 급격하게 바뀌어서 그런지 기분이 싱숭생숭했다.
자연어 처리에 대해 처음 배웠다. 굉장히 흥미로운 작업이 될 수 있을 것 같아 기대를 많이 했는데, 확실히 이론적인 부분은 너무 어려웠다. QA시간에 코치님이 굉장히 쉽게 알려주려고 노력하셔서 내용을 이해하고 싶었는데 확실히 공부량이 적으니 이해가 어려워서 속상했다. 진짜 무슨말을 하는지를 모르겠더라...
컨디션을 회복시키고 잠, 밥 시간 빼고 공부에 모든 시간을 쏟았다. 다행히 슬슬 따라갈 수 있었다. 솔직히 딥러닝이 처음에 어려워도 너무 어려워서 재미가 너무 없었는데, JUST DO 하니 딥러닝도 재밌어졌다.
짧은 시간만에 모두 소화하기 힘든 양이지만, 조금이라도 딥러닝을 이해하기위해 빡세게 공부할 것이다.
15주 차(Deep Learning Applications): 선택
아직 프로젝트는 진행하진 않았지만, 일단 딥러닝 수업은 끝이 났다. 약간 역대급으로 정신없는 섹션이었다. 기간이 오래되어 헤이해진 탓도 있고, 어려웠던 탓도 있고... 배울 때마다 차곡차곡 쌓여가는 느낌이 아니라 좀 공부했다 치면 헬륨풍선이 되어 날아가는 느낌이었다. AIB 들어오면서 제일 기대했던 섹션을 이렇게 정신없이 흘려버리다니 굉장히 아쉽지만, 큰 틀을 배웠으니 시간 날때마다 처음으로 다시 돌아가서 사이사이를 메꿔봐야겠다. 이번 주 따라 미래에 대한 걱정이 많아졌다. 어차피 미래는 불확실한데 괜한 걱정 때문에 현재를 좀먹고 있는 건 아닐까 생각했다. 지금 손 닿을 수 있는 곳에만 집중하고 신경쓰자!ㅎ
어느정도 선택해야 할 시간이 온 것 같다. 내가 흥미있고 잘할 수 있는 분야를 잘 선택해서 어느 방향으로 나아갈지 잘 결정하여 뿌리를 잘 내렸으면 좋겠다. 잘잘잘!
16주 차: 폭풍
드디어 딥러닝 섹션이 끝났다. 정말 폭풍처럼 지나간 섹션이라는 생각이 든다. 체력적으로도 힘들었고 내용적으로도 어려워서 더 그랬다. 끝났지만 시원섭섭한 감정보다는 앞으로 더 공부할 것이 굉장히 많이 남았을 거라는 생각이 많이 들었다.
매번 생각했지만, AIB에서 가장 기대한 파트인 만큼 아쉽다는 생각이 가장 컸다. 아쉽다는 생각은 넣어두고 정진하자.
프로젝트에서도 사실 딥러닝보다는 뭔가 데이터 엔지니어링 쪽으로 많이 집중한 기분이었다. 딥러닝에 대해 잘 모르니 이런결과가…ㅎㅎ 처음부터 천천히 열심히 학습해보자.
섹션 5로 넘어가니까 이제 그곳에 집중하고, 내용을 까먹지 않기 위해 한번씩 꼭 읽어보자.
5개월 차
17주 차(Python and Problem Solving): 집중
벌써 마지막 섹션에 닿았고 CS가 시작됐다. 이번 주는 파이썬 프로그래밍과 문제해결, OOP와 Big O 등을 배웠는데, 지금까지 달리다보니 자연스레 파이썬이 익혀진 탓인지 코드 짜는 것도 재밌고 어렵다는 느낌은 없어서 다행이었다.
하지만 이게 1주차만 그렇다고 하니, 긴장을 놓지 말고 CS도 집중해서 임해야겠다. 지금까지 대충 사용했던 것들을 복습한다고 생각하고 체계적으로 익히고 좀 더 파이써닉한 코드를 짤 수 있도록 해야겠다. 파이써닉한 코드를 위해서는 확실히 내장 함수를 많이 알아둬야겠다는 생각을 많이 했다.
이론 섹션이 끝난 탓인지, 하루에도 몇번씩 불안감이 엄습한다. 지금까지 내가 뭘했지라는 생각이 많이 들지만, 하루에 할 수 있는 양 만큼 한다면 만족해야겠다. 불확실성을 사랑하자.
18주 차(Data Structure and Algorithm Core): 회복
이번 주는 본격적으로 자료구조와 알고리즘을 배웠다. ADT(추상자료형), 재귀, 트리, 검색, 반복정렬, 퀵정렬, 병합정렬, 분할정복 등 꽤나 많은 걸 배웠다. 파이썬 프로그래밍에서 심화되니 확실히 쉽지만은 않은 것 같다. 저 많은 것들을 알려주는 컨텐츠가 많아 배우긴 쉬웠으나, 개념들이 살짝 둥둥 떠다니는 기분이다. 이를 위해 각 개념에 맞는 백준 문제를 여러가지 풀어보고 있는 중인데 그래도 하나씩 깨 나가는 기분이라 재밌긴 하다. 개발을 진행할 때 과연 이것들이 어떻게 쓰일지 아직 사실 연결이 되지 않아서 궁금하다.
계절이 바뀌면서 느낀 미래에 대한 불안감이나 썩 좋지 못했던 정신적 컨디션이 다행히 회복된 것 같다. 불안을 완전히 없애진 못하겠지만 불확실성을 있는 그대로 봐주기로 했다. 이렇게 회복되고나면 '내가 언제 불안해 했어...?'라는 생각이 든다. 참 이상하면서도 다행이다. 사실 계속 데이터 직군에서 고졸인 내가 취업할 수 있을지에 대한 걱정이 제일 컸던 것 같다. 하지만 모든 일에 정답이 없듯, 결국 나 하기 나름이라고 생각한다. 나를 뽑아야 할 이유를 만들자. 더 뼈를 갈고 열심히하자. 이제 코드스테이츠를 통해 배우는 내용은 한 주 밖에 안남았다 프로젝트 기간 때 정말 열심히 해야겠다.
지금은 현 섹션인 컴퓨터 사이언스 공부에다가 SQL 공부 + 통계 복습 + 새로운 Tool 학습 + 영어공부 + 운동까지 하루하루를 살인적인 스케쥴로 진행하고 있는데 바쁘게 지내다보니 하루하루를 만족하게 되어 도움이 되는 것 같다. 그리고 재밌다..ㅎ
수료까지, 그리고 잡서칭과 취업까지 꾸준히 차근차근 달려보자!
19주 차(Data Structure and Algorithm Intermediate): 반복
드디어 코드 스테이츠의 마지막 스프린트가 끝났다. 끝난 게 맞나...? 어안이 약간 벙벙하다. 이번 주는 해시 테이블, 해시 충돌, 그래프, 순회, BFS, DFS, 동적 계획법, 탐욕 알고리즘 등 매우 어려웠던 개념들을 배웠다. 쉽지 않았지만 파이썬과 더 친해질 수 있었던 시간이었던 것 같다.
뭔가 심화가 되고 나니, 단순히 파이썬이라는 언어를 배운다는 느낌보다 사고를 확장 시킬수 있는 기분이었다. 괜히 수학 문제를 풀 듯 두뇌가 총명해지는 듯 했다. 문제를 풀 때 좀 골똘이 생각해야 했는데, 집중해서 그런 지 시간이 훌쩍 지나있는게 신기했다. 어려운 문제도 해결하고 나면 괜시리 기분이 좋았다.
그래도 여전히 어렵다. 아직 개념이 둥둥 떠다닌다. 꾸준한 게 중요할 것 같다. 조금씩이라도 코딩테스트 문제를 맛보며 해결해나가는 능력을 계속 키우며 실력을 향상시켜야 한다. 기초가 중요할 것이라 생각이 되니 개념도 정복해야겠다. 알고리즘 뿐만 아니라 앞의 모든 것들을...ㅎ
이제 취준의 시작이고 프로젝트의 시작이니 시간 분배를 잘 해야겠다. 빡세게 몰입하자.
21주 차(CP1): 아쉬움
2주짜리 첫번째 장기 프로젝트를 마쳤다. 프로젝트가 긴 시간이 주어졌지만, 그 전의 프로젝트 만큼 집중하지 못했던 것 같다. 어떻게보면 새로운 툴을 배우고 사용하는 과정은 좋았는데 사실 이번 프로젝트는 포트폴리오에 올리지 못할 것 같다는 생각이 크게 든다. 이번 프로젝트는 이게 끝이 아니고 추가적으로 할 것이 많다. 스파크와 에어플로우까지만 다뤘는데, 플링크와 카프카도 더 다뤄볼 예정이다. 혼자서라도 마무리 지어서 좋은 프로젝트가 될 수있게 다듬을 것이다. 아무래도 프로젝트 제출 자체가 중간과정을 보고한 것 같다. 그래도 동기분들의 중간 과정 피드백을 저장해두고 싶다.
좋았던 점
- 발표 자료가 깔끔하고 개념부터 차근차근 설명해주셔서 많이 배웠습니다. 택시 요금 등 사회적으로 자주 이슈가 되는 요소를 머신러닝으로 분석한 것이 흥미로웠습니다. 목소리의 속도 등의 전달력이 좋아서 집중이 잘 되었습니다. 프로젝트를 통해 분산처리를 적극적으로 배우고 활용하는 자세가 멋있다고 생각합니다! 분석 자체 뿐만 아니라 지속적인 분석이 가능한 일련의 데이터플로우를 설계하는 것에 저 또한 관심을 가질 수 있게 되어 감사합니다.
- 막연했던 파이프라인 구현이 프로젝트 주제여서 흥미롭게 시청하였습니다. 툴 설명을 자세하게 해주셔서 내용 파악에 도움이 많이 되었습니다.
- 발표주제와 자료도 좋았고 음질도 괜찮았고 전반적으로 좋았다. 그리고 무엇보다 프로젝트 결과물이 성공적인 것 같았다.
아쉬운 점
- 굳이 아쉬운 점을 꼽자면 모빌리티와 관련해서 택시 요금 외에도 더 다양한 데이터를 활용할 수 있을 것 같습니다. 혹은 택시 요금과 관련한 프로젝트를 한 만큼 경영 의사결정에 도움이 될만한 내용을 따로 정리를 한다면 모빌리티 산업에 관심이 있다는 것을 어필하는 데에 도움이 될 것 같습니다.
- 추후 프로젝트 보강에 대한 설명이 자세하면 좋을 것 같습니다.
- 설명이 어려워요 ㅠ.ㅠ
일단은 CP2 기업협업 프로젝트에 집중하고, 그 후에 보강할 것이다.