‘풀 스택(full-stack) 개발자’란 하나의 시스템을 처음부터 끝까지 구현할 수 있는 개발자를 말합니다. 모든 영역을 깊게 알지 않더라도 전체를 볼 수 있는 풀 스택 개발자의 역량은 팀에 긍정적 영향을 줄 수 있습니다.
그리고 프론트엔드와 백엔드 개발, 데이터 엔지니어, 데브옵스까지 서비스의 전 과정을 경험만 해도 개발 실력이 굉장히 성장한다는 걸 알고 계시나요? 백엔드 개발자가 프론트엔드 렌더링 이슈를 이해한다면 서버를 더욱 효율적으로 활용하는 아이디어를 얻을 수 있는 것처럼 말이죠!
최근 소프트웨어 개발 프로세스에는 점점 더 큰 나무를 볼 수 있는 ‘제너럴리스트’가 중요해지고 있다고 합니다. 시스템 혹은 애플리케이션 전체를 빠르게 완성한 후 구동하는 게 중요한 스타트업이 늘어나고 있기 때문입니다. 풀 스택 개발자는 스타트업이 간절히 원하는 인재입니다.
또한 연차가 쌓이고 고급 개발자로 성장하기 위해서 풀 스택 개발에 대한 경험이 꼭 필요합니다. 한 분야만 아는 개발자는 숲을 볼 수 없기 때문이죠. 크래프톤의 최고 개발 책임자 스티브 파푸트시스는 올해 11월 지콘의 키노트 강연에서 “우리는 게임 개발에 있어 수백만 개의 결정을 한다. 게임 제작자라면 전체 구성을 바라보고 핵심 요소를 고려해 훌륭한 경험을 제공해야 한다.”라고 했어요.
시스템의 문제를 해결하는 것 이상으로 의사 결정과 제작에 참여하는 개발 고수가 되기 위해 풀 스택을 다룰 수 있는 제너럴리스트가 될 필요가 있음을 강조한 말인데요.
이쯤 되면 풀 스택 개발을 위한 토이 프로젝트를 고민하시는 분이 많을 것이라 예상됩니다. 토이 프로젝트 주제로 어떤 걸 정해야 좋을까요?
비제이퍼블릭은 ‘영화 추천 웹 서비스’를 추천해 드려요! 개발 커뮤니티 핵인싸로 활동 중이신 실력 있는 프로그래머 최규민 개발자님의 추천 주제이기도 해요.
넷플릭스 알고리즘과 유사하게 영화를 추천하는 웹 프로그램을 개발할 수 있어서 재미있기도 하고 프론트엔드(Front-End), 백엔드(Back-End), 서버 인프라를 관리하는 데브옵스(DevOps) 뿐만 아니라 데이터 세트를 가공하는 데이터 전처리 기술로 데이터 엔지니어의 역할도 경험할 수 있어 도움이 됩니다.
먼저, 영화 추천 웹 서비스를 어떻게 구성하면 좋을지 프로젝트 구조를 알려드리겠습니다.
프로젝트의 이름은 DQFLEX라고 붙여보았습니다. 넷플릭스 알고리즘처럼 재미있는 DQFLEX 프로젝트를 위해 아래와 같은 작업을 해주면 되겠죠!
1. pandas를 이용해 데이터를 DQFLEX에서 쓸 수 있는 형태로 전처리
2. FastAPI를 이용해 API 설계 및 구축 작업, local 환경에서의 결과 확인
3. AWS EC2 설정, EC2 위에 docker와 GitLab runner 설치
4. docker로 가상화 작업, Gitlab runner로 배포 자동화
5. 리액트 프론트엔드 작업(http 통신이 잘 되는지 확인)
6. GitHub Pages로 배포
실제로 위와 유사한 프로젝트를 수행할 계획이라면 지금 설명드린 것처럼 먼저 구조도를 그리고 작업 순서를 정한 다음 작업해 보세요. 이렇게 계획적으로 작업하면 애플리케이션 개발이 어디까지 완료됐는지 한눈에 볼 수 있고 일정을 좀 더 지킬 수 있게 된답니다.
최규민 개발자님이 비제이퍼블릭에게만 공개해 주신 소중한 꿀팁이라는 점!
다음으로 앞으로 완성할 프로젝트 DQFLEX의 핵심 화면을 소개해 보겠습니다. 화면을 보면서 필요한 데이터의 형태, API 종류 등을 미리 생각해 보세요!
자, 그러면 마지막으로 정의한 화면을 간단하게 설명해 보겠습니다.
첫 번째 화면은 유저가 영화에 대한 평점을 매길 때마다 그에 맞는 추천 결과를 보여주는 화면입니다. 영화 ‘매트릭스’에 좋은 평점을 준 유저의 대부분이 영화 ‘스타워즈’에도 좋은 평점을 줬다면, ‘매트릭스’에 ‘좋아요’를 누른 유저에게 스타워즈를 추천하는 식이죠. 참고로 이러한 추천 방식을 Collaborative Filtering(협업 필터링) 방식이라고 부릅니다. 넷플릭스 알고리즘 역시 협업 필터링 방식을 적용한 개인화 추천 시스템이랍니다.
두 번째는 전체 영화를 랜덤하게 출력하는 화면입니다. 페이지를 ‘새로 고침’할 때마다 새로운 영화 목록이 보이도록 구성하면 되겠죠?
영화를 탐색하기 편하도록 장르별로 영화를 출력하는 부분도 필요하겠죠? 세 번째 화면처럼 특정 장르의 영화 목록이 보이도록 구성해 줍니다.
그리고 영화 상세 화면도 필요합니다. 영화 포스터를 클릭했을 때 영화의 디테일한 정보를 확인할 수 있고 평점도 매길 수 있는 화면이랍니다.
마지막은 영화별 추천 화면인데요. 사용자가 영화를 클릭해 상세 화면이 나타났을 때, 그 영화에 기반한 추천 영화를 보여주는 화면입니다. Collaborative Filtering 기반의 추천 시스템에서는 사용자 기반의 추천 결과와 아이템 기반의 추천 결과를 둘 다 뽑을 수 있기 때문에 이렇게 두 가지 화면에서 활용이 가능합니다.
이제 모든 준비가 끝났습니다! 본격적으로 영화 추천 서비스 프로젝트를 시작해 봅시다!
프로젝트를 진행하다가 막히는 부분이 있으면 이 책을 참고해 보세요. 파이썬, 리액트. 깃허브 액션 등 위에서 소개한 기술로 혼자서 누구나 웹 서비스 전체를 완성할 수 있도록 저자의 노하우를 듬뿍 담았어요. 개발자들이 실무에 적용할 수 있도록 책 속에 저자가 현업을 통해 얻은 꿀팁도 녹여서 개발자로 성장하는 데 도움이 많이 되실 거예요.
이 책의 베타 리더로 참여하신 김지민 님(소프트웨어학과)은 책의 도움으로 데이터 전처리, API 구축, WAS 설정, 배포하는 법 등을 하나씩 자세히 배울 수 있었고 프론트엔드와 백엔드에 대한 지식 에러 처리법까지 알 수 있어 빠르고 쉽게 웹 사이트를 구축할 수 있었다고 해요.
좋은 개발자로 더 성장하길 원하는 모든 개발자와 입문자에게 이 책을 강력히 추천합니다.
▼책 구매하러 가기▼
최고의 PHP 프레임워크 라라벨의 A to Z를 설명한 책: 어썸 라라벨, 실전 프로젝트로 배우는 라라벨 입문서 (0) | 2023.05.02 |
---|---|
김범준, 김병한 교수 추천 과학 철학 도서: 라파엘로가 사랑한 철학자들 (0) | 2023.05.02 |
데이터 리터러시 쑥쑥 올리고 데이터 드리븐 문화를 정착시키기 위한 기초 지식 (0) | 2023.04.24 |
댓글 영역