플레이데이터 데이터 엔지니어링 트랙 수료 후기
6개월간의 데이터 엔지니어링 트랙 교육 수료 후기!
안녕하세요.
오늘은 6개월간의 국비지원 교육인 플레이데이터 데이터 엔지니어링 트랙 수료 후기를 작성하려고 합니다.
2023년 1월 4일부터 2023년 6월 30일까지, 엔코아 플레이데이터를 통한 6개월간의 교육 과정이 모두 끝났습니다.
처음 부트캠프에 가기 전에는 비전공자로서 막연하게 가서 하다 보면 나도 다 할 수 있겠지라는 마음이었는데, 수료하고 나서 드는 생각은 조금 다르더라고요.
그래서 첫 게시물이지만, 오늘은 6개월 동안 제가 어떤 생각과 마음으로 교육을 받았는지 정리해 보겠습니다.
2022년 (아직 요리를 하던 시기)
- 첫 CS라는 학문의 공부를 시작
사실, 제 전공은 대학 시절 요리였습니다.
졸업 후에는 강남과 여의도의 음식점에서 거의 1년간 일했습니다.
어느 정도 요리를 하다 보니 이 일이 제 적성에 맞는 일인지, 아니면 잘못된 길을 가고 있는 건 아닌지 고민하게 되었고, 결국 새로운 일거리를 찾기로 결정했습니다.
그러던 중 친구의 소개로 컴퓨터 공학이라는 학문에 발을 들이게 되었고, 부족한 CS 지식과 학력 보완을 위해 학점 은행제를 통해 CS에 대해 처음 배우게 되었습니다. 그러고 나서 플레이 데이터의 데이터 엔지니어링 트랙을 알게 되어 지원하게 되었습니다.
1월
- python
저에게 있어서 이 수업은 전체 과정 중에서 가장 흥미로웠고 가장 재미있었던 Top3 안에 듭니다.
사실, 파이썬을 처음 접하면서 덜컥 겁을 먹기도 했습니다.
주변에서는 이미 다뤄본 언어인 듯 로직을 뚝딱 구현하고, 수업시간에 진행했던 문제들을 쉽게 푸는 모습들을 보면서 자신감이 많이 떨어졌습니다.
하지만, 좋은 강사님 덕분에 첫 시작을 잘 끊을 수 있었습니다.
현재도 많은 가르침을 주시기에 감사하며, 그때의 순간은 정말 중요한 스타트였다고 생각합니다.
- 다른 일
사실 이 시기에는 다른 분들처럼 블로그를 작성하거나 코딩테스트를 위해 백준, 프로그래머스의 알고리즘을 공부하는 등의 다른 활동은 하지 못했습니다.
저에게는 처음 다뤘던 python을 이해하는 것만으로도 벅차서 할 수 없었다는 변명 아닌 변명을…ㅎㅎ
2월
- 첫 팀 프로젝트
한 달간 배운 Python을 활용하여 간단한 팀 프로젝트를 진행했습니다. Marker Cluster와 Folium 등의 기술을 사용하였습니다.
해당 링크와 같이 처음 깃허브를 활용하면서 코드 작업을 진행했지만, 깃허브를 제대로 활용하지 못해 작업한 코드는 구글 드라이브를 통해 공유했습니다. 깃을 잘 다루는 사람이 해당 코드를 깃허브에 업로드하는 방식으로 작업을 진행했습니다.
이 프로젝트는 노인 교통안전과 관련된 문제점과 대처 방식의 부족함을 데이터로 시각화하여 현 상황을 사실적으로 보여주고 개선 방안을 제시하는 프로젝트입니다.
지금 다시 생각해 보면, 당시는 아무것도 할 줄 모르는 상황에서 깃을 잘못 작성하고 비교적 간단한 기술들을 어렵게 생각했던 것 같습니다.
https://github.com/ykh9871/2023_02_01_python_project
GitHub - ykh9871/2023_02_01_python_project
Contribute to ykh9871/2023_02_01_python_project development by creating an account on GitHub.
github.com
- 새로운 기술 ML( 머신러닝)
파이썬 수업이 끝나고 다음 수업으로 진행된 머신 러닝은 진짜 생각지도 못했던 내용들이었고, 배워도 배워도 기본조차 알 수 없을 정도의 난이도를 보여서 시작하는 시점에서 많이 힘들었습니다.
하지만, 이론 설명을 먼저 들은 후 실습을 진행하는 수업 방식에서 실습수업방식이 매우 흥미로웠습니다.
실습 시에 강사님께서 특정 과제를 내주시고 해당 과제에 맞는 모델을 본인의 능력껏 구현한 후 제출하면 점수를 확인할 수 있었습니다.
이러한 방식 덕분에 다른 사람들과의 경쟁을 통해 혹은 다른 반 친구들의 노하우를 배우는 방식으로 열심히 노력하여 1등도 한 번 찍어보고 그 쾌감을 통해 공부를 했던 기억이 있습니다.
- 두 번째 미니프로젝트
해당 프로젝트는 8일간 배운 머신러닝을 활용하여 진행하였습니다.
이 시점에서는 깃을 잘 다루시는 형님 한분께 열심히 깃을 배워 사용하였습니다. (기본적인 커밋과 푸시, 리셋과 머지등을 습득)
또한 노션에 대한 것들을 많이 배웠습니다.
해당 프로젝트는 캐글의 Speed Dating Experiment 데이터 셋을 이용해 참가자가 참가 전에 자기 자신을 평가한 5가지 특성과, 매칭 성공 여부를 통해 자존감이 매칭 성공률에 미치는 영향을 파악하고 머신러닝을 통해 예측하는 목표를 가진 프로젝트입니다.
팀원 분들의 공통적인 역할은 데이터 전처리와, 모델링에 관한 부분이며 제가 중점적으로 한 역할은 모델의 성능 평가를 한 부분입니다. 여러 모델들을 사용하고 해당 파라미터들을 조정하며 보다 성능이 잘 나오는 모델을 찾고 해당 모델의 성능이 왜 나오는지에 대해 알아볼 수 있던 시간이었습니다.
https://github.com/ykh9871/Well-Founded-Confidence
GitHub - ykh9871/Well-Founded-Confidence
Contribute to ykh9871/Well-Founded-Confidence development by creating an account on GitHub.
github.com
- 새로운 기술 DL (딥러닝)
이번에는 머신러닝 수업이 끝이 나고 조금 더 향상된…? 마음만은 충분히 성장한 실력으로 딥러닝에 대해서 공부할 수 있었던 시간이었습니다.
머신러닝과 비슷했던 느낌이 들었지만 늘 생각했던 것처럼 새로운 것들을 단기간에 이렇게 배울 수 있다는 것이 가장 행복함을 가장 많이 느꼈던 시간이었습니다.
이 시점에 머신러닝, 딥러닝 모델을 조금 더 빨리 학습시키면 (학습시키는 시간을 줄이면) 남들보다 조금은 더 많이 공부를 할 수 있지 않을까 라는 생각이 들어 노트북을 장만했습니다.
가장 기초적인 딥러닝의 개요와 MLP, CNN, Dropout, RNN등과 같은 것들을 배웠습니다.
그리고 개인적으로 Tensorflow에서 그래픽카드인식을 시키기 위해서 CUDA에 대해서 공부할 수 있었던 시기입니다.
3월
- 정보처리기사 필기 탈락
정보처리산업기사는 이미 취득했던 터라 정보처리기사를 취득하려고 했고 세 번째 미니프로젝트와 기간이 겹쳐서 총 3일정도 공부한 후에 시험을 보게 되었는데 결과는 역시 처참하게 탈락을 하게 되었습니다.
다음에는 기필코 취득하겠다는 일념으로 공부하겠습니다.
- 세번째 미니 프로젝트
해당 프로젝트도 역시 마찬가지로 앞서 배운 딥러닝을 활용하여 진행하였습니다.
이때는 조금 더 노션을 통해 커뮤니케이션과 각자 작업내역을 공유하여 조금 더 세분화된 팀 프로젝트를 진행했습니다.
해당 프로젝트는 ai hub의 감성 대화 말뭉치 데이터 셋과 딥러닝을 활용해 문장을 입력받아 감성을 분석해 해당 감성에 어울리는 꽃말을 찾고, 꽃을 추천하는 프로젝트입니다.
제가 담당한 역할은 모델 구현, Fine tuning, Ko-bert 전이 학습 구현을 맡았습니다.
자연어 처리 기반으로 서비스를 만든다는 것이 참 어렵고 그만큼 재미있었던 순간이었습니다..
추가적으로 KoBERT를 활용해서 전이 학습도 해보고 세상에는 이런 것들을 만들어 내는 괴물들이 많이 있구나를 알게 됐습니다…. 세상은 넓고 괴물은 많다…
지금 와서 드는 생각이지만 이때도 역시 가장 재미있던 순간 Top3에 포함되는 순간이었습니다.
https://github.com/ykh9871/deeplearning_mini_pj
GitHub - ykh9871/deeplearning_mini_pj: 갬성터지는 꽃 추천기
갬성터지는 꽃 추천기. Contribute to ykh9871/deeplearning_mini_pj development by creating an account on GitHub.
github.com
- 새로운 언어 JAVA
지금까지 수업과 프로젝트에서 다뤘던 언어는 전부 Python기반의 언어였습니다.
처음 JAVA를 배웠을 때 완벽한 객체 지향 형 프로그램을 목표로 한다던가… Python 보다 복잡하고 까다로운 소스 코드의 구조라 적응하기 힘든 언어였습니다.
MVC 패턴과 디자인 패턴, JAVA기반의 웹 구현을 배웠는데 이건 또 새로운 영역으로의 한걸음이라는 생각이 들어서 무척 두근거렸던 기억이 있습니다.
- DB의 기초 (SQL 기초)
사실 이때까지만 해도 DB를 직접적으로 다룰 시간이 없었습니다.
JAVA수업이 끝나고 Oracle과 기본 SQL, 고급 SQL이라는 수업을 듣게 되었는데 제가 느끼기에 이 정도는 쉽게 다뤄야 내가 어느 정도 공부를 맛봤다 하는 조금 다른 영역이었습니다.
- JDBC와 웹 공부(JS, CSS, HTML)
앞서 다뤘던 자바에서 데이터베이스에 접속(연결되어 데이터를 주고받는)할 수 있도록 하는 JDBC에 대해서 배우게 되고 기본적인 HTML, CSS, JS를 통해서 웹을 꾸며보고 다뤄봤습니다.
4월
- Spring과 Spring boot
이전에 배웠던 JAVA 덕분에 보다 수월하게 Spring과 Spring boot에 대해서 배울 수 있었고 이 시점에 백엔드에 대해서 살짝 생각해 볼 수 있었던 순간이었습니다.
API가 무엇인지, 어노테이션은 어디에 어떻게 써야 하는지를 대략적으로 배웠습니다.
이때 간단하게 회원가입 기능이 있는 작은 중고거래 사이트를 만들었습니다.
사실 수업 내용으로는 회원가입 및 간단한 게시판 기능 까지였지만 살짝 욕심이 나서 그 이후를 더 해보고 싶어서 작은 기능들을 담고 있는 중고거래 사이트를 만들고 나서야 만족했습니다.
- Django
스프링이 강사님이 생각하신 기간보다 빠르게 끝나서 추가적으로 배운 Django이지만, Spring과는 다르게 어딘가 간단하면서도 많은 기능들이 포함된 파이썬 기반 웹 애플리케이션 프레임워크 였습니다.
해당 기간에는 중점적으로 Spring과 Django의 차이점을 파악해 보며 서로의 장단점이 무엇인지 배울 수 있던 시간이었습니다.
5월
- 네 번째 미니 프로젝트
해당 프로젝트는 앞서 배웠던 Django를 활용하여 간단한 웹 서비스를 개발해 보았습니다.
저희 클래스 내에서 정보처리기사 실기 시험이 유행이었던 시기에 실기 전용 문제 풀이 사이트를 개발하게 되었습니다.
매우 간단한 사이트지만 앞으로 있을 정보처리기사 실기 시험에 사용할 생각으로 만들었습니다.
최강기출 HoBT!
정보처리기사 실기 CBT, 일명 HoBT입니다! 지금 바로 풀어 보시고 자격증을 취득해보세요! HoBT
hobt.co.kr
도메인도 구입해서 배포한 상태입니다. 혹여 방문하신 분들이 사용하실 생각이 있으시다면 한번 써보시면 좋을 것 같습니다.
추가로 프로젝트 기간이 끝난 이후에 같은 클래스의 친한 형님께서 ADSP도 넣어주면 안 되겠냐는 말에 ADSP 기능을 추가하긴 했지만 아직 반영을 못하긴 했습니다.
지금에서야 드는 생각이긴 하지만 이때 Spring으로 구현을 해봤다면 더 좋았을까 하는 생각이 살짝 있습니다.ㅎㅎ
- 새로운 기술 리눅스와 하둡, 크롤링 등
이때 가장 많은 고뇌의 시간과 수업을 똑같이 따라 했는데도 안 되는 무수한 고난의 시기가 찾아왔지만 결국에는 개인 SSD에 가상 머신 환경을 구축하게 되었습니다.
해당 수업은 리눅스의 기본적인 수업과 네트워크 기본 구성, 하둡 구축과 설치 등과 같은 수업이 주를 이뤘고 해당 기술을 처음 접해보는 나로서는 여느 때와 다름없이 진짜 재밌다는 생각이 들었습니다.
또한 크롤링을 배울 때 사람들이 어떻게 데이터를 수집하는지 살짝 알게 되어 좋았습니다.
다른 기술들의 경우에는 Pig, Spark, Nosql, Hive, Pyspark 등을 배웠습니다.
- 정보처리기사 필기 합격
시험을 2번째 다시 보게 되었는데 하필 이번에는 몸살이 심하게 걸려 병가를 냈던 기간이었습니다.
그래도 다행히 평균 80 이상의 점수로 합격을 하게 되어 3월의 소원을 이뤘습니다.
6월
- 최종 프로젝트
마지막 달인 6월은 앞서 프로젝트를 진행했던 기간인 3~5일 과는 다르게 한 달이라는 충분한 기한을 가지고 기획부터 설계 구축과 배포의 경험을 하였습니다. 중간중간 우여곡절이 많았지만 그래도 재밌게 프로젝트를 진행했습니다.
제가 할 수 있는 모든 기술들과 한 달간 부족한 부분들을 열심히 배우며 진행했던 프로젝트라 더 기억이 많이 남는 것 같습니다. 제가 맡은 부분은 백엔드 포지션이며 기본적인 Rest API와 Fast API 서버를 구축하고 ERD 설계, 베이스가 되는 데이터 크롤링 후 DB에 적제 하는 일을 했습니다.
이번 프로젝트는 멘토링을 받으며 진행되었고 모르는 부분들은 클래스 분들과 협업하면서 하는 재미도 있어서 뜻깊은 경험이었습니다.
이제 와서 드는 생각이지만 제가 기본적인 지식들을 가진 상태였으면 Redis와 Jenkins 같은 기술들도 적용했으면 좋겠다는 생각이 듭니다.
최종 프로젝트 관련 게시물은 앞으로 꾸준히 작성해서 올리겠습니다.
해당 프로젝트는 레포를 역할별로 나눠서 작성하였으며 모든 작업과 관련된 회의록은 노션과 슬랙을 기반으로 커뮤니케이션을 진행하였습니다.
현재 사이트는 이관 작업 및 비용문제로 체급을 많이 낮춰 제기능을 다하지 못하는 상태입니다...ㅎㅎ
Oh My Stack!
ohmystack.co
https://github.com/ykh9871/OhMyStack_Spring
GitHub - ykh9871/OhMyStack_Spring: 파이널 프로젝트 스프링부트 배포용 레포
파이널 프로젝트 스프링부트 배포용 레포. Contribute to ykh9871/OhMyStack_Spring development by creating an account on GitHub.
github.com
마무리
6개월의 과정을 마치고 난 후 가장 먼저 든 생각은 처음 배워보는 과정의 것들이지만 배우면서 진짜 많이 행복했고 재밌었다는 말을 전해드리고 싶습니다.
6개월 동안 정말 공부 외에는 아무것도 못할 정도로 치열하게 살아왔던 것 같은데, 막상 끝나고 보니 조금 더 함께 하고 싶다는 생각이 들 정도니까요.
교육을 받으며 알게 된 사람들도 그렇고 앞으로 알아갈 사람들까지 모두 행복했으면 좋겠고 그중에 저도 포함되어 있으면 좋겠네요 ㅎㅎ
앞으로 취업을 하는 그 순간까지 열심히 해보겠습니다.
처음 작성하는 포스트임에도 불구하고 너무 고봉밥으로 담아서 ㅎㅎ… 읽기 부담스러우셨을 텐데
읽어주신 분들에게는 감사의 말씀드리겠습니다.
요약
- 플레이데이터 G밸리 캠퍼스는 매니저님들과 강사님들 시설이 아주 좋았다.
- 노력을 많이 하면 얻어갈 수 있는 것들이 무궁무진하게 많다.
- 다들 비슷한 꿈을 가지고 있고 같은 분야를 배우는 사람들이기에 좋은 분위기며, 혼자 공부하는 것보다 수십 배 이상의 효율이 있었다. (개인적인 생각입니다 ㅎㅎ)