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

프로젝트
9주차. 프로젝트 주간
9주차에는 지난 8주간 배운 다음 과목들을 바탕으로 프로젝트를 진행하였습니다.
- 프로그래밍 기초(CLI, Git, 자료구조, 알고리즘, HTML, CSS, JS)
- 백엔드(Flask, MySQL, MongoDB)
- 프론트엔드(React)
- 모던 웹 애플리케이션(비동기, ...)
프로젝트 주제
프로젝트 주제는 총 세가지가 있었는데, 다행히도 구체적인 주제, 와이어프레임, 프레임워크, 패키지, 데이터까지 모두 엘리스에서 제공해주었습니다! 우리가 할 것은 오직 구현 뿐. 그렇다고 구현이 마냥 쉽지는 않았습니다. ㅎㅎ
구체적인 주제는 다르지만 크게 분류해보자면 다음 세가지였습니다.
- 프론트엔드 - 심리검사
- 백엔드 - 도서관 대출 시스템
- 풀스택 - 포트폴리오 사이트
저는 개인적으로 구현하고 싶은 사이트가 있는데, 해당 내용이 도서관 시스템이랑 제일 비슷하기도 했고, 제 능력치, 이해도를 고려했을 때 백엔드는 완성할 수 있을 것 같아서 백엔드를 선택했습니다.

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

2주 간의 시간표 구성
개인 개발 시간(2주 내내, 매일매일)
말 그대로 자기가 프로젝트를 구현하는 시간입니다. 처음 며칠은 아예 손도 못 대신 분도 계신 것 같았습니다. 저는 다행히 이전 실습 코치님과 진행했던 기억, 혼자서 Flask를 공부해봤던 기억을 더듬더듬해서 뜨문뜨문 폴더 구조를 짜긴 했습니다. 나중에 오피스아워에서 코치님께서 말씀하시기로는 flask best practice 같은 키워드로 검색하면 좋은 레퍼런스를 찾을 수 있다고 합니다.
오피스아워(2주 중 5일)
코치님께서 학생 한명한명의 궁금증, 어려움을 해결해주는 시간입니다. 코치님께서도 답변을 준비하실 수 있도록 최소 한시간 전에는 작성해달라고 하셨습니다. 코치님의 도움 덕분에 순환 참조나 여러 문제를 해결할 수 있었습니다.

(개발하다보니 어느샌가 1시간 남아서 허겁지겁 쓰느라 조금 어색하다)
코드리뷰(주 1회, 총 2번)
이 부분 또한 많은 도움이 되었습니다. SCREAMING_SNAKE_CASE라던가, return early pattern, SQLalchemy의 relationship 등 많이 배우고, 그만큼 코드의 질을 올릴 수 있었습니다.(물론 내가 쓴 코드가 구려서 발전할 점이 많았다 ㅎㅎ)

어려웠던 점, 아쉬웠던 점
CSS가...디자인이 너무 어려웠습니다. 강의를 다시 봐도 헷갈리고 다른 강의를 찾아봐도 안 되고.... 아직 머리가 CSS랑 안 친한 거 같습니다.
그래서 결국 시간이 모자라 선택기능들을 모두 구현하지 못한 점도 아쉽습니다.
좋았던 점
실제 현업에서 일을 하시는 개발자의 코드리뷰를 받아볼 수 있다는 것이 무엇보다 좋았던 점 같습니다. 모르던 용어나 개념을 접할 수도 있고, 내 코드의 개선점을 알 수 있어서 참 좋았습니다.
또 하나는 엘리스에서 배포를 위한 VM을 제공해준 것입니다. 사실 CI/CD를 잘 못 써서 100%활용은 못 했지만, 내 지인들이 실제로 접속할 수 있다는 점은 개발을 하면서 참 즐거운 경험이었습니다.
배운 점, 기억해두고 싶은 점
- PEP8과 pylint
- sqlalchemy없이도 relationship을 이용해 다른 테이블에 접근할 수 있다.
- table명은 자유긴 하지만 SCREAMING_SNAKE_CASE를 써보자
- return early pattern
내가 할 일
이번 프로젝트를 진행하면서 끝까지 의문으로 남은 것들이 있어서, 공부할 것과 해야할 것을 적어보았다.
- 나만의 flask boilerplate 만들기(굉장히 작고 심플한)
- migration에 대한 이해
- 웹, 네트워크에 대한 이해(웹서버(nginx, apache), WSGI(Gunicorn, uWSGI)
'교육, 대외활동, 봉사 > 엘리스 AI 트랙 2기' 카테고리의 다른 글
[엘리스] 팀 프로젝트 1~2주차 기록 (0) | 2021.10.10 |
---|---|
[엘리스] Docker, 팀 스터디, 팀 프로젝트 (13주차, 방학) (0) | 2021.09.26 |
[엘리스 AI 트랙 2기] Day 18~20 - ORM과 Flask (12) | 2021.07.18 |
[엘리스 AI 트랙 2기] Day 17 - SQL (0) | 2021.07.14 |
[엘리스 AI 트랙 2기] Day 16 - flask, sql (0) | 2021.07.12 |
댓글