SK네트웍스 Family AI 캠프 1기 1개월차 회고
SK Networks AI Camp
Monthly 회고 - 1개월 차
수강 동기
제가 SK네트웍스 Family AI CAMP에 지원하게 된 이유는 크게 두 가지였습니다.
첫 번째 이유는 자연어처리와 LLM을 배우고 싶다는 것이고 두 번째 이유는 그렇게해서 배우게 된 LLM과 여태까지 혼자 공부했던 컴퓨터 비전에 대한 지식을 합쳐서 Multimodal 프로젝트를 진행해보고 싶었기 때문입니다.
한 가지 분야만 사용할 줄 아는 개발자보단 역량을 키워서 여러 분야에서 활동할 수 있는 개발자가 되는 것이 제 목표입니다. 목표를 달성하기 위해서 캠프에서 배울 수 있는 모든 것을 다 배우고자 합니다!
Skillset
지난 1개월동안 학습한 기술셋은 아래와 같습니다.
- Python 설치 및 사용법
- Visual studio code 및 jupyter notebook 사용법
- Beautifulsoup과 Selenium을 이용한 웹 크롤링
- pymysql을 이용한 MySQL database 연결 및 쿼리 작성
- streamlit을 이용한 웹앱 작성 방법
- pandas를 이용한 데이터 분석
- scikit-learn을 이용한 머신러닝 진행 방법
- MySQL 설치 및 사용법
- CLI를 이용한 Database 접속 및 쿼리 작성
- MySQL Workbench를 이용한 Database 접속 및 쿼리 작성
- Git을 이용하여 프로젝트 업로드
느낀 점
항상 혼자서 공부해왔었기 때문에, 누군가에게 강의를 듣고 누군가와 같이 강의를 듣는다는 것이 처음엔 낯설었습니다. 더불어 학교를 졸업한 이후 아침부터 저녁까지 쭉 공부해본적이 없기 때문에 다소 지친다는 생각도 들었습니다. 하지만 거기서 포기하지않고 스터디를 진행하고 아침에 운동을 하면서 더 바쁘고 부지런히 생활을 하다보니 금방 적응되어서 지금은 별로 힘들다는 생각이 들지 않는 것 같습니다. 오히려 지금은 내가 조금 더 바쁘더라도 무언가 더 배워보고 싶다는 생각이 듭니다. 그래서 알고리즘 공부를 한다거나 인프라에 대해 공부한다거나 하면서 주말엔 개인 공부를 더 진행하고 있습니다. 개인 시간이 없어서 다소 아쉽다는 생각이 들긴하지만 결국 목적은 취업이기 때문에, 나중에 취업에 도움이 될 것이다 라는 생각을 가지고 꿋꿋이 버티고 있습니다!
Keep
지난 한 달동안 캠프를 진행해보고 좋았던 것들 중에서 계속 유지해보자 하는 것이 크게 두 가지 있습니다.
첫 번째는 스터디입니다. 저는 캠프에 참여하면서 두 개의 스터디를 진행중인데, 한 가지는 제가 팀장으로 있는 “알고리즘” 스터디와 하루동안 배운 내용을 복습하는 “복습” 스터디입니다. 저는 캠프에 참여하기 전, 컴퓨터 비전 공부를 하면서 코딩테스트 준비도 할 겸 취미로 알고리즘 문제를 풀곤 했습니다. 그래서 혼자 알고리즘 공부하는 것이 쉽지 않다는 것을 알고있었기 때문에 같이 스터디 진행할 사람들을 모았습니다. 처음엔 10명정도만 생각했었는데 갈수록 인원이 늘어서 지금은 평균 14~15명정도 참여하는 스터디가 된 것 같습니다. 제가 사람들을 알려줘야하는 입장에 있기에 어떻게 하면 보다 쉽게 알려줄 수 있을까 라는 생각을 하며 공부를 하다보니 스스로 몰랐던 부분도 채울 수 있어서 앞으로도 열심히 진행해보고자 합니다! 그리고 복습 스터디는 강의 때 제대로 못들었거나 이해를 못한 부분을 수강생들끼리 의견을 나누면서 서로 이해할 수 있도록 도와주는 스터디입니다. 아직까지는 어려운 부분이 크게 없었기 때문에 스터디 인원이 얼마 없지만 머신러닝 및 딥러닝을 본격적으로 배우게되면 다른 수강생분들도 참여해서 더 많은 의견 교환이 이루어지지 않을까 기대하고 있습니다.
다른 한가지는 발표를 자주 하는 것입니다. 캠프에 참여하기 전의 저는 다른 사람 앞에 나서는 것을 좋아하지 않는 사람이었습니다. 그렇기 때문에 발표도 가급적 피하는 편이었고, 그러다보니 면접처럼 다른 사람들 앞에 나서서 말해야하는 것을 좋아하지 않았습니다. 하지만 취업을 하기 위해서 면접은 필수적이고, 그렇다고 바로 면접 준비를 하긴 어려우니까 남들 앞에서 발표를 해보자 라는 생각을 하게되었습니다. 그런 생각이 든 후, 알고리즘 스터디를 진행할 때에도 수강생들 앞에 나서서 알고리즘 설명을 하기도 하고 프로젝트 때는 발표를 맡아서 진행하기도 하였습니다. 이런 경험이 반복되면서 예전보다는 남들 앞에 서는 것이 편해졌고 발표할 때 긴장도 덜 한다고 생각합니다.
Problem
지난 5월에 아쉬운 점은 더 많은 수강생분들과 친해지지 못했다는 점입니다. 앞에서 언급했듯이 남들 앞에 나서는 걸 좋아하지 않다보니까 새로운 사람들과 친해지는 것도 항상 노력이 필요했습니다. 그래도 프로젝트를 같이 진행한 팀원들과 같은 스터디원들은 어느정도 친해졌지만 그런 접점이 없는 분들이랑은 아직 친해지지 못한 것이 아쉬움으로 남습니다. 이번 6월 안에는 보다 많은 수강생분들과 친해져서 편하게 얘기 나눌 수 있는 사이가 되었으면 합니다!
Try
지난 1개월과는 다르게 이번 달은 교육 커리큘럼 외적으로도 공부하고 싶은 내용이 있으면 스스로 공부해보고자 합니다. 이전 회고록에서 잠깐 언급했었는데, 인프라에 관심이 생겨서 Docker와 Kubernetes에 대해 공부하기 시작했습니다. 정규 커리큘럼 공부만 해도 시간이 부족한 것이 사실이지만, 다른 사람들보다 하나라도 더 공부하고 보다 많은 시간을 할애해야 성공적으로 취업할 수 있다고 생각하기 때문에 다소 어려움이 있더라도 꾸준히 공부해보고자 합니다. 이뿐 아니라 6월동안에 또 다른 관심사가 생긴다면 그것 또한 공부하도록 노력할 것입니다.
First Project
지난 5월엔 한 달간 배운 기술 스택들을 이용하여 진행해야 했던 프로젝트가 있었습니다. 저를 포함한 저희 팀은 회의 끝에 “통합 FAQ 조회 시스템” 이라는 주제로 결정하고 프로젝트를 진행하였습니다.
프로젝트를 진행하는 데에 주요하게 사용한 기술 스택은 아래와 같습니다.
- Python
- MySQL
- Selenium
- Streamlit
- Pymysql
- SQLAlchemy
저희 팀이 정한 주제는 국내 자동차 브랜드 점유율 상위 3개 브랜드의 FAQ를 웹 크롤링으로 수집한 다음, MySQL database에 넣어두고 웹앱에서 검색어를 입력하면 그 검색어를 포함한 FAQ 제목 및 내용을 표시해주는 것입니다. 각 회사의 FAQ를 크롤링 하기 위해 Selenium으로 동적크롤링을 구현하였고, 수집한 데이터를 pymysql을 이용하여 MySQL database에 넣어주었습니다. 그 후 streamlit을 이용하여 웹을 구성하였고 SQLAlchemy를 이용하여 웹에서 입력한 검색어를 포함한 FAQ를 가져오도록 하였습니다.
설명으로는 깔끔하게 완성한것처럼 들리시겠지만, 구현할 때까지 많은 어려움이 있었습니다. 첫 번째 난관은 회사마다 FAQ 페이지 구성이 다르다는 것이었습니다. 웹페이지가 회사마다 다른 것은 당연했지만 회사마다 동적 크롤링 코드를 다시 작성해주어야 한다는 것이 어려움이었습니다. 또한 크롤링한 데이터가 정상적으로 수집된 것인지 비교하는 것도 많은 시간이 요소되었습니다.
두 번째 난관은 팀원들이 각자 작성한 코드를 하나로 합치는 과정에서 발생하였습니다. 저희는 팀으로 깃 버전관리를 하는데 익숙하지 않았기 때문에, 각각 로컬에서 코드를 작성하고 클라우드로 코드를 공유하는 과정을 거쳤는데 코드를 합치는 과정에서 각자 작성한 작업 공간 경로가 달라서 작성한 모듈이 제대로 import 되지 않는 문제가 발생하였습니다. 분명 제대로 된 경로를 입력해주었는데 모듈이 없다는 에러메시지가 자꾸 표시되어, 그 문제를 해결하기 위해 작업 폴더를 아예 새로 만들어서 각각의 파일을 하나씩 정리해주는 방법을 사용하였습니다. 그리고 이번 난관을 바탕으로 깃으로 작업하는 것이 얼마나 효율적인지 느낄 수 있는 기회가 되었습니다.
프로젝트 완성 직전까지 난관이 있었지만 팀원들과의 의사소통과 빠른 상황 판단으로 인해 프로젝트 마감기한 전에 성공적으로 제출할 수 있었습니다!
캠프에서 진행한 첫 프로젝트였지만, 생각한 목표를 성공적으로 마무리해서 앞으로 진행하게 될 프로젝트가 더 기대됩니다!
보다 자세한 사항은 프로젝트 Github를 참고해주세요!