본문 바로가기

First-Project

First Project - (Festival)

19.10.28 ~ 19.11.09 (2주)

기획의도 및 프로젝트 소개

메인 화면

사람들이 많은 축제 정보 속에서 원하는 축제를 보다 더 편리하게 이용하고 효과적으로 참여할 수 있도록 하기 위해 기획된 앱

 

 

소개

다양한 대형 축제에서 드넓은 공간의 모든 공연, 모든 가수들을 볼 수만은 없습니다.

이렇다보면 나의 최애가수들을 놓치기 쉽죠??

이러한 시간낭비, 돈낭비 이제 그만!!

내가 원하는 공연만! 내가 원하는 가수만! 골라담아 나만의 일정을 만드는 축제 정보제공 서비스 앱, Festival 입니다.

 

검색기능

언제 어디서 축제가 열리는지 확인해보세요.

자신이 원하는 축제만 골라담아 확인할 수 있습니다.

축제 선택화면

 

시간표

축제를 정했으면 나만의 공연 일정표를 작성해보세요.

수많은 공연 중 원하는 공연만 골라담아 동선낭비 * 시간낭비하지 않고 공연을 즐길 수 있습니다.

공연 선택화면

 

채팅

혼자 공연을 즐기긴 싫고 같이 갈 사람마저 없다면 채팅기능을 활용해보세요.

축제 내에서 나와 같은 공연을 즐기는 사람들을 만나 함께 즐길 수 있습니다.

채팅 기능

 

포지션 및 스택

 이번 프로젝트에서는 백엔드 쪽을 맡았었는데 여기서 사용한 스택들은 Node.js / Express / MariaDB / AWS (EC2 / RDS) / Sequelize를 사용하였다. 그리고 MariaDB를 관리하기 위한 프로그램으로는 DBeaver 를 사용하였다.

 

- Node.js : 자바스크립트를 기계어로 컴파일해주는 chrome v8 엔진으로 빌드된, 자바스크립트가 구동중인 환경으로 프론트 뿐만 아니라 백 엔드까지도 자바스크립트로 비교적 쉽게 구현할 수 있게 해줘 현재도 필수적으로 사용하는 중이다.

 

- Express : node.js 에서 동작하는 프레임워크로써 다양한 미들웨어를 사용할 수 있고 라우팅이 쉽고 빨라 편리했다.

 

- AWS (EC2 - 서버, RDS - 데이터베이스) 배포

 

- MariaDB + DBeaver : 오픈 소스의 관계형 데이터베이스 관리 시스템으로 MySQL과 동일한 소스 코드를 기반으로 한다는 점을 이용하여 사용하였는데, 나중에 가서 MySQL보다 복잡하여 조금 후회했다.

 

기능

대부분 페어로 진행하였다.

 

- 사용자 , 축제 , 세부 공연 , 메시지 데이터 관리를 위한 MariaDB Schema 설계

 

- 각 DB 테이블 별 POST, GET, DELETE 관련 API 문서 작성 및 구현

 

- Sequelize ORM 이용 CRUD 구현

 

- Cheerio 를 이용해서 200여개의 국내 축제 데이터 크롤링을 위한 스크립트 작성

 

- Socket.io 를 이용한 실시간 채팅 기능 구현

 

- AWS EC2, RDS 배포

 

회고

 이번 프로젝트를 하면서 한가지는 확실히 경험하였다. 프로젝트 기간에는 절!! 대!! 로!! 아프면 안된다는 것을 말이다. 솔직히 2주 간의 프로젝트 기간 중에서 거의 일주일 동안은 아팠던 것 같다. 평소에 거의 아픈 적이 없어서 몸 관리를 안하고 있었는데 그게 하필 프로젝트 기간 중에 아픈 것이다. 그래서 몸이 회복되고 난 뒤에 프로젝트에 다시 참여를 하려했지만 이미 많은 진도가 나간 뒤고, 나랑 같이 페어를 하시던 분도 진도를 많이 나간 상태여서 중간에 낄 수가 없었다. 그 와중에도 어떻게든 참여하려고 하였는데 그 중에서 내가 한 부분이 Cheerio를 이용한 데이터 크롤링 부분이다. 

 처음에는 몸이 아직 완벽히 회복이 되지 않은 상태이고, 새로운 것을 접하여 그것을 이용하려고 하다보니 머릿 속이 터질 것만 같았다. 그래도 꾸역꾸역 진행을 하였는데 생각보다 자료도 많이 있었고, 그것들을 활용하여 적용해보니 금방 적용이 되어 쉽게 크롤링을 완료할 수 있었다. 기존의 계획은 더 많은 축제 정보와 데이터들을 가져와 활용하는 것이었는데 2주 간의 프로젝트다 보니 처음 사용하는 스택들도 있었고, 어플리케이션은 웹과 차이가 있어 다른 부분에서 시간을 많이 소비해 어쩔 수 없이 200개 정도만 가져오는 걸로 합의 할 수 밖에 없었다. 그 점이 나는 매우 아쉬웠다. 한가지 더 아쉬웠던 점을 말하자면 몸관리를 제대로 하지 못한 점이다. 프로젝트 처음 시작할 때에는 재밌겠다!! 할 수 있다!!라는 마음가짐으로 시작하였는데 몸이 아프니 이게 하고 싶어도 하지 못하고, 도움을 주고 싶어도 주지 못한 점이 너무 아쉬웠고, 후회된다. 평소에 관리 좀 할 껄.......ㅜㅜ

 그리고 내가 무슨 자신감으로 백엔드를 한다고 했었는지 기억이 나질 않는다. 희미한 기억으로는 프론트보다 백 쪽이 더 멋있어보여서 그랬던거 같기도 하고......ㅎㅎ 백엔드가 생각보다 어렵다는 것을 다시 한번 깨닫게 되었다. 우선 눈에 보이지 않으니 적용시키기 어려웠고, 데이터를 관리할 때에 조금이라고 실수하면 데이터들이 이상하게 들어간다는 점에서 머리가 터질 뻔했다. 만약 프론트엔드 쪽을 한다고 했으면 조금 더 낫지 않았을까라는 생각이 여러 번 들기도 한 프로젝트였다. 

 

프로젝트 작업 페이지

 

2. Festival / Code Fest

1. About

www.notion.so

 

 

LeeKyungJoon/Festival--server

Contribute to LeeKyungJoon/Festival--server development by creating an account on GitHub.

github.com