사이트 바로가기
illoga 브로셔
여행계획을 지인들과 함께 작성하거나 원하는 조건의 여행계획을 추천받아보세요!
- 메인 페이지에서 새로 올라온 여행계획, 인기 있는 계획, 새로운 지역 정보를 확인할 수 있습니다.
- 원하는 지역 또는 키워드로 여행 장소 정보를 검색할 수 있습니다.
- 사이트에서 제공하는 여행 장소 정보를 활용하여 자신의 여행계획을 작성할 수 있습니다.
- 친구들과 함께 여행을 계획하고 싶다면, 친구들을 초대하여 공동 작성 및 채팅을 통해 소통할 수 있습니다.
- 원하는 지역, 예산, 기간 등의 조건을 입력하여 여행계획을 추천받을 수 있습니다.
- 추천된 여행계획 중 마음에 드는 일정으로 쉽게 여행을 떠나보세요!
- 현재 위치를 기반으로 지역 인증을 받고 지역 게시판에 나만의 장소를 추천해보세요!
지역 게시판
- 사용자는 지역 게시판을 통해 자신이 현재 위치하는 지역에 대한 정보를 알리, 다른 사용자와 소통할 수 있습니다. 게시판을 통해 여행 팁과 추천 장소를 공유할 수 있습니다.
김진성 (🔗 깃허브)
🔨 주요 작업
- 백엔드 User 부분
- 프론트엔드 User, main, Board, like, geoLocation 커스텀 훅을 이용한 지역인증
🪄 사용 기술 | Nest.js | Redis | nodemailer | S3 Bucket | React |
김민건 (🔗 깃허브)
🔨 주요 작업
- 백엔드 Plan, Schedule
- 프론트엔드 Plan, Profile, Category, Member, myplan 페이지 커스텀
🪄 사용 기술 | Nest.js | Redis | S3 Bucket | React |
이윤민 (🔗 깃허브)
🔨 주요 작업
- 백엔드 category, member, 채팅
- 프론트엔드 플랜과 스케줄 등록 및 조회, 채팅, 지역 정보 페이지
🪄 사용 기술 | Nest.js | Socket.io | React |
조완희 (🔗 깃허브)
🔨 주요 작업
- 백엔드 post, post-comment, location
- TourAPI를 통한 기본 DB 데이터 수집
- Puppeteer를 통한 DB 데이터 보충
- GeoLocation을 이용한 사용자 위치정보 인증
- 서버 환경 구축 및 배포: Router 53 > ACM > ALB > EC2 > PM2 > Docker
🪄 사용 기술 | Router 53 | ACM | EC2 | Docker | PM2 |
| 사용 기술 | 도입 이유 |
|---|---|
| React | JS 기반의 라이브러리로 가장 널리 사용됩니다. JSX 문법을 사용하여 가독성과 유지보수성이 뛰어납니다. |
| Axios | TypeScript를 강력하게 지원하며, 엔티티, 레파지토리 등 다양한 기능을 제공합니다. |
| 구분 | 내용 |
|---|---|
| 장점 | Memcached에 비해 다양한 자료형을 지원하고, 레플리카, 클러스터링 등 여러 기능을 제공합니다. 또한, 한 개의 키에 저장할 수 있는 데이터 범위가 더 커서 확장성 및 조작 측면에서 유리합니다. |
| 단점 | 트래픽이 급증하면 응답 속도가 불안정할 수 있고, Memcached에 비해 메모리 사용량이 많습니다. 또한, 데이터 변경이 잦은 경우 메모리 파편화가 발생하기 쉽습니다. |
| 선택 이유 | 1. 회원가입 로직 중 이메일 인증 코드를 저장하기 위해 사용했습니다. Nodemailer를 사용하여 응답속도 저하가 발생했지만, Redis의 빠른 처리 속도로 이를 개선했습니다. |
| 2. 빠른 추천 시스템을 구현하기 위해 메모리 기반의 Redis를 사용했습니다. 이미 추천된 플랜을 Redis에 저장하고, 각 키에 만료 시간을 설정하여 일정 기간 후 다시 추천할 수 있도록 했습니다. |
| 구분 | 내용 |
|---|---|
| 장점 | 웹소켓 기반으로 서버와 클라이언트 간에 실시간 양방향 통신이 가능합니다. 또한, 룸과 네임스페이스를 구분하여 특정 룸에만 메시지를 전달하는 등 다양한 채널 관리가 가능합니다. |
| 단점 | 코드의 복잡성 증가 및 오버헤드 발생이 있을 수 있습니다. 룸, 네임스페이스, 이벤트 관리 등 다양한 기능을 관리해야 하기 때문입니다. |
| 선택 이유 | 채팅 기능을 구현하기 위해 실시간 통신이 필요했습니다. 프로젝트 특성상 각 플랜에 해당하는 멤버들 간의 채팅방을 생성하기 위해 여러 채팅방을 구분하여 메시지를 보낼 수 있는 socket.io가 필요했습니다. |
| 구분 | 내용 |
|---|---|
| 장점 | Puppeteer는 Node.js 기반으로 작동하며 Chromium 브라우저를 대상으로 합니다. Selenium은 다양한 언어와 여러 브라우저를 지원합니다. |
| 선택 이유 | 두 도구 모두 필요한 크롤링 기능을 제공하지만, 속도 측면에서 Puppeteer가 더 빠르고 프로젝트의 언어가 Node.js이므로 Puppeteer를 선택했습니다. |








