본문 바로가기
교육, 대외활동, 봉사/엘리스 AI 트랙 2기

[엘리스] 엘리스에서의 첫 프로젝트

by g0n1 2021. 9. 11.
728x90

안녕하세요~ 고니입니다!

지금까지 블로그를 보시면 아시겠지만, 저는 현재 엘리스라는 교육 기관에서 AI 트랙 2기 레이서로 교육을 받고 있습니다. 그러던 와중에 감사하게도 엘리스 내에서 관련 포스팅을 해줄 레이서 블로거를 모집한다는 공지를 보고 신청 및 합격하여 지금 글을 쓰고 있습니다. 물론 지금도 정성껏 쓰고 있지만 좀 더 정성껏 써보도록 하겠습니다. ㅎㅎ

운영진, 다른 수강생과의 소통을 위한 디스코드 캡쳐화면

프로젝트 

9주차. 프로젝트 주간

9주차에는 지난 8주간 배운 다음 과목들을 바탕으로 프로젝트를 진행하였습니다. 

  • 프로그래밍 기초(CLI, Git, 자료구조, 알고리즘, HTML, CSS, JS)
  • 백엔드(Flask, MySQL, MongoDB)
  • 프론트엔드(React)
  • 모던 웹 애플리케이션(비동기, ...)

프로젝트 주제

프로젝트 주제는 총 세가지가 있었는데, 다행히도 구체적인 주제, 와이어프레임, 프레임워크, 패키지, 데이터까지 모두 엘리스에서 제공해주었습니다! 우리가 할 것은 오직 구현 뿐. 그렇다고 구현이 마냥 쉽지는 않았습니다. ㅎㅎ

구체적인 주제는 다르지만 크게 분류해보자면 다음 세가지였습니다.

  • 프론트엔드 - 심리검사
  • 백엔드 - 도서관 대출 시스템
  • 풀스택 - 포트폴리오 사이트

저는 개인적으로 구현하고 싶은 사이트가 있는데, 해당 내용이 도서관 시스템이랑 제일 비슷하기도 했고, 제 능력치, 이해도를 고려했을 때 백엔드는 완성할 수 있을 것 같아서 백엔드를 선택했습니다.

실제 프로젝트 안내가 담긴 Notion 페이지, 구체적인 패키지 버젼까지 ㄷ

사용 도구

  • Gitlab
  • Discord
  • 엘리스 플랫폼

제가 가장 마음에 들었던 것은 Gitlab을 활용한 부분이었습니다. 엘리스 시작 전까지는 잘 몰랐는데 이번에 프로젝트를 진행하면서 issue, milestone 등의 기능을 여러모로 활용해볼 수 있어 좋았습니다. ㅎㅎ

Gitlab을 활용하여 개인 프로젝트를 관리했다.

2주 간의 시간표 구성

개인 개발 시간(2주 내내, 매일매일)

말 그대로 자기가 프로젝트를 구현하는 시간입니다. 처음 며칠은 아예 손도 못 대신 분도 계신 것 같았습니다. 저는 다행히 이전 실습 코치님과 진행했던 기억, 혼자서 Flask를 공부해봤던 기억을 더듬더듬해서 뜨문뜨문 폴더 구조를 짜긴 했습니다. 나중에 오피스아워에서 코치님께서 말씀하시기로는 flask best practice 같은 키워드로 검색하면 좋은 레퍼런스를 찾을 수 있다고 합니다.

오피스아워(2주 중 5일)

코치님께서 학생 한명한명의 궁금증, 어려움을 해결해주는 시간입니다. 코치님께서도 답변을 준비하실 수 있도록 최소 한시간 전에는 작성해달라고 하셨습니다. 코치님의 도움 덕분에 순환 참조나 여러 문제를 해결할 수 있었습니다.

gitlab의 issue를 활용해 질문 사항을 정리한 모습.

(개발하다보니 어느샌가 1시간 남아서 허겁지겁 쓰느라 조금 어색하다)

코드리뷰(주 1회, 총 2번)

이 부분 또한 많은 도움이 되었습니다. SCREAMING_SNAKE_CASE라던가, return early pattern, SQLalchemy의 relationship 등 많이 배우고, 그만큼 코드의 질을 올릴 수 있었습니다.(물론 내가 쓴 코드가 구려서 발전할 점이 많았다 ㅎㅎ)

실제 코드리뷰 캡쳐 화면

어려웠던 점, 아쉬웠던 점

CSS가...디자인이 너무 어려웠습니다. 강의를 다시 봐도 헷갈리고 다른 강의를 찾아봐도 안 되고.... 아직 머리가 CSS랑 안 친한 거 같습니다.

그래서 결국 시간이 모자라 선택기능들을 모두 구현하지 못한 점도 아쉽습니다. 

좋았던 점

실제 현업에서 일을 하시는 개발자의 코드리뷰를 받아볼 수 있다는 것이 무엇보다 좋았던 점 같습니다. 모르던 용어나 개념을 접할 수도 있고, 내 코드의 개선점을 알 수 있어서 참 좋았습니다.

또 하나는 엘리스에서 배포를 위한 VM을 제공해준 것입니다. 사실 CI/CD를 잘 못 써서 100%활용은 못 했지만, 내 지인들이 실제로 접속할 수 있다는 점은 개발을 하면서 참 즐거운 경험이었습니다.

배운 점, 기억해두고 싶은 점

  1. PEP8과 pylint
  2. sqlalchemy없이도 relationship을 이용해 다른 테이블에 접근할 수 있다.
  3. table명은 자유긴 하지만 SCREAMING_SNAKE_CASE를 써보자
  4. return early pattern

내가 할 일

이번 프로젝트를 진행하면서 끝까지 의문으로 남은 것들이 있어서, 공부할 것과 해야할 것을 적어보았다.

  1. 나만의 flask boilerplate 만들기(굉장히 작고 심플한)
  2. migration에 대한 이해
  3. 웹, 네트워크에 대한 이해(웹서버(nginx, apache), WSGI(Gunicorn, uWSGI)
728x90

댓글