2023 실리콘밸리 하계 SW 부트캠프

nagosu·2023년 8월 24일
3
post-thumbnail

💥 목차 💥

1. 시작 전

2. 과정

3. 후기


Just Do It 🔥

이 문장 하나로 부트캠프를 버텼다.

항상 많은 생각을 하지 않고 그냥 하는 것이 중요한 것 같다.

잠이 오고 마음이 흔들려도 그냥 하자는 생각이 참 멋있어서 "Just Do It !" 을 모토로 삼았다.


🙉 시작 전

나는 복학하고 나름 열심히 살았다고 생각했다.

21학점 수강에 학교에서 근로 장학생도 하며 나름 매일매일 공부를 했다.

그리고 학교에서 배우는 코딩을 하며 C++, JAVA 과제와 시험공부를 하며 그것이
개발인 줄 알고 있었다.

그런 아무것도 모르고 열정만 가득한 나에게 아는 형이 실리콘밸리 부트캠프를 추천해주었다.

이 부트캠프를 하면 잠도 많이 못자고, 6주 동안 하루종일 개발만 하니 매우 힘들다고 말하였다.

그리고 지금 내가 하고 있는 것은 진정한 개발이 아니라고 말해주었다.

그렇게 2달이 지나고 난 뒤 학교공지를 보다 우연히 실리콘밸리 부트캠프 공지를 발견하게 되었다.

보자마자 나는 예전에 들은 얘기가 떠올랐고 바로 모집공고를 읽어보았다.

처음에는 신청할까 말까 굉장히 고민했었다.

고민한 끝에 두려웠지만 도전한다는 생각으로 지원했고 이 선택은 지금 절대 후회하지 않는다.


💻 과정

2023.06.26 ~ 2023.08.05

1주차

처음 배정받은 곳은 Team K 였다.

모두들 처음 만나 아이스 브레이킹을 한 후에 팀 규칙을 정하고 아이디어 회의에 들어갔다.

하지만 3일이 지나고 다양한 아이디어를 내고 있던 도중 팀원이 많이 빠져 어쩔 수 없이 다른 팀으로 배정을 받아야하는 상황이 되었다.

그리고 두번째 배정받은 팀은 Team J.

전의 팀과는 사뭇 다른 분위기의 팀이었다.

팀장님은 부트캠프 경험이 많아 아는 지식이 많아보였고 다른 팀원들도 새로 들어온 나를 거리낌없이 반겨주며 새로운 팀에서의 활동이 시작되었고 나는 html, css, javascript 정도만 조금 건드려본 정도였기에 프론트엔드 포지션을 맡기로 하였다.

새로 들어온 팀에서는 아이디어 구체화가 진행중이었다.

가장 인기가 있었던 주제는 인생네컷을 모티브로 한 AI 이미지화 네컷 서비스였다.

사용자가 사진 4장을 업로드하면 AI 모델을 통해 애니메이션화하고 입맛에 맞게 커스텀할 수 있게 만드는 서비스이다.

주제를 픽스하고 "This is 4 you (T4Y)" 란 이름으로 프로젝트명을 정했다.

그리고 프론트엔드, 백엔드의 기술 스택을 정하는 시간을 가졌다.

프론트엔드React , Javascript 로 정하였다.

지금 생각해보면 아쉬운 점은 Typescript 를 하지 못해 Javascript 로 진행하였는데 초반에 힘들더라도 Typescript 를 배우고 적용했으면 하는 아쉬움이 있다.

그 다음으로는 시스템 아키텍쳐, ERD를 설계하였다.

1주차는 다들 페이스 조절을 위해 적당히 하는 분위기였다.

하지만 나는 남들보다 부족한게 많았기에 줌 회의가 종료된 후에도 개인적으로 공부를 진행하며 모르는 부분을 쌓아나갔다.

지금 생각해보면 적당히 페이스 조절을 했어도 됐을 것 같다.


2주차

개발환경 세팅이 매우 중요하다는 얘기를 들었다.

처음 프로젝트를 했던 나는 개발환경 세팅이란 것을 처음 알게 되었고 하나씩 배워갔다.

그리고 시스템 아키텍쳐 부분에 문제점이 있어 수정하였다.

이미지를 업로드하게 되면 데이터베이스 이미지를 저장 못함→ 
s3에 올림 →
url 가지고와서 데이터베이스에서 사용→
데이터베이스와 ai 서버와 연결되어야 한다고 판단

ERD 설계도 수정하였다.

그리고 백엔드 측에서는 API 설계를 시작하였다.

그러는 중에 AI 모델 관련 이슈가 생겼다.

그리고 회의를 통해 기능 수정을 하였다.

프론트엔드 측에서는 Figma 를 사용해 디자인 퍼블리싱을 진행하였는데, 나는 Figma 사용이 처음이라 유튜브로 강의를 들으며 사용법을 익혔다.

  • 기초 레이아웃 디자인

  • 페이지별 기능 요구 사항

    2주차까지는 실제 개발에 들어간 단계는 아니어서 기초 설계와 개인 공부에 집중했다.

    나는 React 마저 처음 다뤄보았기 때문에 React 의 사용법을 계속 공부했다.

    2주차부터는 부트캠프를 한다는 것이 슬슬 실감나기 시작했다.


3주차

이제 개발에 들어가는 단계이다.

개발에 들어가기 전 ERD 수정을 하였다.

  • 스웨거 명세

    백엔드 측에서는 API 연동 테스트를 하였다.

    JWT 토큰 을 이용하여 회원가입 / 로그인 / 로그아웃 기능을 구현하였으며, CeleryRabbitMQ 를 이용해 AI 비동기 처리를 완료하였다.

    모니터링 툴로는 PrometheusGrafana 를 연동하였다.

    ReactDjango 를 매핑하였으며, Nginx 를 연동 완료하였다.

    프론트엔드 측에서는 계속 퍼플리싱이 진행중이었다.

  • 메인페이지 디자인 완료 / 반응형 진행중

  • 앨범페이지 디자인 완료 / 반응형 진행중

  • 프레임 선택 / 이미지 업로드 / AI 변환 / 커스터마이징 페이지
    ⇒ 기본 레이아웃 구현, 상세기능 구현 중


4주차

이때는 프론트엔드, 백엔드 두 포지션 모두 API 연동에 힘을 쏟았다.

API 연동이 50% 정도 진행되었고, 프론트엔드 측의 퍼블리싱이 95% 정도 완성되었다.

커스터마이징 페이지에 커스터마이징, 이미지 캡쳐 기능을 구현하였다.

백엔드 쪽은 Nginx 를 매핑 완료하였고, PrometheusGrafana 대시보드 템플릿을 연동 완료하였다.

AI 캐릭터 변환 API 시간도 50초대에서 10초대까지 단축하였다.

그리고 ERD 설계에 지적을 받아 피드백을 통하여 수정하였다.

팀 회의 시간에 처음에 했던 스프린트 설계가 미흡했다고 판단해서 스프린트 재설계가 필요하다고 판단했다.

이때부터는 팀원들이 서서히 몸과 정신이 지쳐가는 것이 보였다.

잠을 줄이고 개발에만 몰두하니 지칠 수 밖에 없었다.

하지만 모두 프로젝트 완성이란 목표만을 바라보고 다시 한번 파이팅을 외쳤다.


5주차

ERD 설계에 대한 지적을 매주 받았다.

처음에는 ERD 설계가 왜 그렇게 중요한 지 이해가 가지 않았다.

하지만 5주차가 되었을 때 초반의 ERD 설계 뿐만 아니라 시스템 아키텍쳐 설계, Docker 세팅, 개발환경 세팅 등 초반 세팅과 설계가 매우 중요하다는 것을 깨달았다.

개발은 막무가내로 하는 것이 아니라 설계대로 하는 것이었으며, 개발환경 세팅 또한 팀 컨벤션에 굉장히 중요한 요소였다.

5주차에는 프론트엔드, 백엔드 전체 API 연동을 완료하였다.

백엔드 측에서는 Prometheus , Grafana 를 완벽하게 연동하였고 node exporter를 활용해 rds 모니터링이 가능하도록 연동하였다.

도메인 구입을 완료했고, 그에 따른 Nginx 내용 수정 및 Gunicorn 을 연결하였다.

EC2 환경 구축을 시도하였고, 부하 테스트를 진행하기 위해 관련 내용을 학습하였다.

프론트엔드 측에서는 API 연동이 완료되는 대로 디자인 개편을 할 예정이었기 때문에 메인페이지 디자인부터 개선해나갔다.

5주차 데모 영상

주말에는 팀원들 간의 갈등도 있었다.

모두 데드라인은 얼마 안남았는데 아직 할게 많으니 마음이 급해져서 그랬었다.

다행히 잘 해결한 후에 다시 개발에 들어갔다.


6주차

마지막 주이다.

백엔드 측에서는 개발이 거의 다 끝나서 개발, 발표준비를 인원을 분배해서 진행하였다.

마지막 주는 개발이 거의 완료되어서 기능 개발이 아닌 완성도를 높이는 작업에 집중하였다.

HTTPHTTPS로 변경하고, 도메인 적용을 완료하였다.

EC2 배포 테스트를 완료하였고, cAdvisor 을 적용하였다.

그리고 EC2 서버에서 부하 테스트를 진행하였다.

Grafana k6 를 사용하였고, 진행은 로그인 -> AI (캐릭터화) 변환 요청 4번 -> 로그아웃 순으로 간단히 진행하였다.

결과는 100명 30초.

프론트엔드 측에서는 완성도를 높이기 위해 CSS 를 대거 변경하였다.

네컷사진에 쓸 예쁜 프레임 들도 만들고 나서야 드디어 프로젝트가 끝이 났다.

6주차 데모

최종 발표

아쉽게 순위권에 들진 못했다.


🥁 후기

1학기의 나와 지금의 나의 "열심히"의 기준이 달라졌다고 생각한다.

부트캠프를 하기 이전에는 무조건 그냥 매일매일 하면서 잘거 다자고 하면 되는 줄 알았다.

하지만 잠을 줄여가며 부트캠프를 해본 결과, 절대적인 시간에서부터 많은 차이가 났다.

오늘 집중을 하든, 못 하든, 기분이 좋든, 안 좋든 상관없이 매일 의자에 앉아서 화면 보는 사람이 나중에 승자일 것 같다.

정말 좋은 시간이었고 안주하지 않고 부트캠프에서 들었던 내용들을 복습할 것이다.

하루하루 꾸준히 나아가자.

Just Do It...!

📕 Medium

📗 Github

profile
프론트엔드 개발자..일걸요?

0개의 댓글

관련 채용 정보