Skip to content

gotogether-s/gotogether-s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


last commit most language release


๐Ÿ‡ฐ๐Ÿ‡ท For Korean User: ํ•œ๊ตญ์–ด๋กœ ๋œ ํ”„๋กœ์ ํŠธ ์„ค๋ช…์€ ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•ด์ฃผ์„ธ์š”.

๐Ÿย Go Together (English)

๐Ÿ“‘ Table of Contents


๐Ÿš€ Quick Start

  1. Clone this repo: git clone https://github.com/gotogether-s/gotogether-s.git
  2. Move to the directory: cd <YOUR_PROJECT_NAME>.
  3. Install packages: yarn install
  4. Start project
    • Localhost: yarn run dev
    • After build: yarn build then yarn run dev
  5. Please contact [email protected] if you need an env key to run the project
  6. Reference

๐Ÿ—“ Project Duration

Sep 6, 2022 - Present

Timeline

  • Version 0.1.0 released: Feb 8, 2023

โœจ Project Summary

Go Together is a travel service platform where people can book vacation packages. The service targets mainly seniors who have more challenge planning travel.

  • Client: Go Together Travel Agency (The Shiny)
  • Service: Website Design & Development
  • Team Members: 8

Problems & Company's Requirements

The existing website of Go Together was created with a CMS (Content Management System) called I'm Web, allowing limited functions. The Shiny, which operates the Go Together service, requested the creation of a new website that reflects the following three requirements:

  1. Web page renewal based on the mobile layout โœ…
  2. Vacation packages recommendation function tailored to users' interest โœ…
  3. Create an admin page that allows product registration (Click here to see Go Together admin Github repo)

๐Ÿ‘€ย Demo

Mockup

๐Ÿ”— View mockup with Adobe XD

Live Website

๐Ÿ”— Visit the live website on Vercel

Short Video Demo

Homepage Category All Filter by Age Group
1-homepage 2-category-all 3-filter-by-age-group

Sign Up Sign in & Sign Out Survey
4-signup 5-signin-signout 6-survey

Product Search Product Detail Booking & Payment
7-product-search 8-product-detail 9-booking-payment

My booking Saved Products Language Setting
10-my-booking 11-saved-products 12-language-setting

๐Ÿช„ Tech Stack & Tools

Design Tools

  • For wireframe and mockup creation: Adobe XD

Front-End Tech Stack

๐Ÿ”—ย GitHub Repo: https://github.com/gotogether-s/gotogether-s

  • Framework: Next.js
  • Programming Language: TypeScript
  • Router: next/router
  • State Management: Redux toolkit
  • API Request: getServerSideProps, axios
  • Design: MUI, Scss, CSS Module

Back-End Tech Stack

๐Ÿ”—ย GitHub Repo: https://github.com/gotogether-s/gotogether-s-BE

๐Ÿ”—ย ERD Cloud: https://www.erdcloud.com/d/bdPHHqeiiKZ6GC9rP

  • Programming Language: Java
  • Framework & DB: IntelliJ, Gradle, Spring, Spring Boot, Data JPA, Security, JWT, MySQL
  • CI/CD & Infrastructure: Jenkins, Docker, EC2, RDS, S3
  • Other: POSTMAN, ERD Cloud

Other Tools

  • Issue: Github Issue
  • Documentation: Notion
  • Communication: Slack, Discord, Zoom

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Roles & Responsibilities

Front-End Roles & Responsibilities

Seunghun Hyeonah
@SeungHun6450 @hyeonahc
Main Page (product display)
โ€ข Create banner slider (Go to the survey page or product detail page by clicking banner)
โ€ข Create a category menu that shows product lists by destination, age group, companion type, and interest
โ€ข Bundle the related products to show a list of relevant vacation packages upon keyword selection

Product List Page (SSR, display, filter)
โ€ข Show product list for the selected category (destination, age group, companion type, interest)
โ€ข Show product lists when category details are selected with a filter
โ€ข Move to the detail page when clicking the product list

Product Detail Page (SSR, Redux, display)
โ€ข Create a page for displaying detailed product information (hotel, flight, and travel details)
โ€ข Provides booking functions upon logging in (making a reservation is only available with login)
โ€ข Save the product list to the wishlist by clicking the save button
โ€ข When the user clicks the book button, save the product data in Redux before moving to the book page
User Function
โ€ข Create user-related functions such as sign up, log in, change password, booked product inquiry and deletion, and wishlist product inquiry and deletion

Travel Preferences Survey
โ€ข Create a survey page that recommends vacation packages suitable for the user's interest
โ€ข Homepage shows a list of recommended vacation packages that match to user's interest when a user completes a travel preferences survey
โ€ข Survey is available for both login and non-login users, surveys are saved permanently for login user and 30 minutes for non-login users, and shows a list of recommended vacation packages on the homepage

Product Search / Recent Search History
โ€ข Show product search results when the search keyword matches the product title
โ€ข Save search history in chronological order

Booking Page
โ€ข Receive various user information (booker, the number of travellers, depositor's name, etc.) to process a reservation before moving to the payment page
โ€ข Viewing booking details and cancelling reservations are handled on my booking page

Website Language Settings (provided in Korean and English)
โ€ข Depending on the language setting on the user's web browser, the language of the Go Together website is provided either in Korean or English
โ€ข Enable to switch the language with the language setting button at the top of the header

Others
โ€ข Sidebar shows the number of booked and saved products in real-time
โ€ข Customized title of each web page to improve SEO
โ€ข Create Layout, navigation, 404 page

Back-End Roles & Responsibilities

Hyunjun Hyunseong Daegon Woorim
@khjun723 @iheese @bbyuggyu @jinwoorim
products (detailed, recommended, categorized), search feature user, survey, admin, AWS S3 server deployment (AWS EC2, RDS, ROUTE 53), CI/CD, Dokcer booking & saved products feature

โš™๏ธย Key Features and Logic

  1. Vacation packages recommendation function through a user survey
    • The homepage shows a list of recommended vacation packages that match to user's interest when a user completes a travel preferences survey
    • Travel Preferences Survey is available for both login and non-login users, surveys are saved permanently for login user and 30 minutes for non-login users, and shows a list of recommended vacation packages on the homepage
  2. Implement Server-Side Rendering (SSR)
    • Improve the rendering speed of product detail and product list pages with large amounts of data by implementing server-side rendering
  3. Token-based authentication logins using JWT
    • Issue access tokens to login users
    • Validate client requests to the server by sending tokens along with the header
  4. Central state management using the Redux toolkit
    • Easy to manage the state centrally because of no boilerplate code and the inclusion of immer feature in Redux toolkit
  5. Data Patching with RTK Query
    • Use RTK Query to prepare a template for API requests
  6. Improve web accessibility and SEO
    • Use semantic tags
    • Use rem
    • Put alt tags in images
    • Customized titles by a web page
    • Use server-side rendering
  7. Apply responsive design
    • Implement responsive design for a mobile device size (320px to 900px)





๐Ÿย ๊ณ ํˆฌ๊ฒŒ๋” (ํ•œ๊ตญ์–ด)

๐Ÿ“‘ ๋ชฉ์ฐจ


๐Ÿš€ ํ”„๋กœ์ ํŠธ ์‹คํ–‰ํ•˜๊ธฐ

  1. ๋ฆฌํฌ ํด๋ก ํ•˜๊ธฐ: git clone https://github.com/gotogether-s/gotogether-s.git
  2. ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜๊ธฐ: cd <YOUR_PROJECT_NAME>.
  3. ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ: yarn install
  4. ํ”„๋กœ์ ํŠธ ์‹คํ–‰ํ•˜๊ธฐ
    • ์‚ฌ์šฉ์ž ๋กœ์ปฌํ˜ธ์ŠคํŠธ: yarn run dev
    • ๋นŒ๋“œํ›„ ์‚ฌ์šฉ: yarn build then yarn run dev
  5. ํ”„๋กœ์ ํŠธ ์‹คํ–‰์‹œ env ์ธ์ฆํ‚ค๊ฐ€ ํ•„์š”ํ•˜์‹  ๋ถ„์€ ์•„๋ž˜๋กœ ์—ฐ๋ฝ์„ ์ฃผ์‹œ๋ฉด ์ œ๊ณตํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
  6. ์ฐธ๊ณ 

๐Ÿ—“ ํ”„๋กœ์ ํŠธ ์ œ์ž‘๊ธฐ๊ฐ„

2022๋…„ 9์›” 6์ผ - ์ง„ํ–‰์ค‘

ํƒ€์ž„๋ผ์ธ

  • ๋ฒ„์ „ 0.1.0: 2023๋…„ 2์›” 8์ผ

โœจ ์„œ๋น„์Šค ์†Œ๊ฐœ

๊ณ ํˆฌ๊ฒŒ๋”๋Š” ์‹œ๋‹ˆ์–ด์ธต์„ ์ฃผ์š” ๋Œ€์ƒ์œผ๋กœ ํŒจํ‚ค์ง€ ์—ฌํ–‰ ์ƒํ’ˆ์„ ์˜ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌํ–‰ ์„œ๋น„์Šค ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ: ๊ณ ํˆฌ๊ฒŒ๋” (๋” ์ƒค์ด๋‹ˆ)
  • ์„œ๋น„์Šค: ์›น ๋””์ž์ธ ๋ฐ ๊ฐœ๋ฐœ
  • ํ”„๋กœ์ ํŠธ ์ฐธ์—ฌ ์ธ์›: 8๋ช…

๋ฌธ์ œ์  & ๊ธฐ์—…์ธก ์š”๊ตฌ์‚ฌํ•ญ

๊ธฐ์กด ๊ณ ํˆฌ๊ฒŒ๋” ์›น์‚ฌ์ดํŠธ๋Š” ์•„์ž„์›น์ด๋ผ๋Š” CMS(Content Management System)๋กœ ์›น์‚ฌ์ดํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ ธ ์žˆ์–ด ํ•œ์ •๋œ ๊ธฐ๋Šฅ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ณ ํˆฌ๊ฒŒ๋” ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋Š” ํšŒ์‚ฌ ๋”์ƒค์ด๋‹ˆ์—์„œ ์•„๋ž˜ 3๊ฐ€์ง€ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•œ ์ƒˆ๋กœ์šด ์›น์‚ฌ์ดํŠธ ์ œ์ž‘์„ ์š”์ฒญํ•˜์˜€์Šต๋‹ˆ๋‹ค:

  1. ๋ชจ๋ฐ”์ผ ๋ ˆ์ด์•„์›ƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์›น ํŽ˜์ด์ง€ ๋ฆฌ๋‰ด์–ผ
  2. ์‚ฌ์šฉ์ž ํŠน์„ฑ์— ๋งž๋Š” ํŒจํ‚ค์ง€ ์—ฌํ–‰ ์ƒํ’ˆ ์ถ”์ฒœ ๊ธฐ๋Šฅ
  3. ์ƒํ’ˆ ๋“ฑ๋ก์ด ๊ฐ€๋Šฅํ•œ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ œ์ž‘ (๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊นƒํ—ˆ๋ธŒ ๋ฆฌํฌ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ)

๐Ÿ‘€ย ๋ฐ๋ชจ

๋ชฉ์—… ๋งํฌ

๐Ÿ”— Adobe XD์—์„œ ๋ชฉ์—… ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

๋ผ์ด๋ธŒ ์‚ฌ์ดํŠธ ๋งํฌ

๐Ÿ”— Vercel๋กœ ๋ฐฐํฌํ•œ ๋ผ์ด๋ธŒ ์‚ฌ์ดํŠธ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

์ฃผ์š” ํŽ˜์ด์ง€ ๋ชฉ์—…

๋ฉ”์ธ ํŽ˜์ด์ง€ ์นดํ…Œ๊ณ ๋ฆฌ: ์ „์ฒด ์—ฐ๋ น๋Œ€๋ณ„ ์—ฌํ–‰ ์ถ”์ฒœ
๋ฉ”์ธ ๋ชจ๋“  ์นดํ…Œ๊ณ ๋ฆฌ ์—ฐ๋ น๋Œ€๋ณ„์—ฌํ–‰์ถ”์ฒœ

ํšŒ์›๊ฐ€์ž… ๋กœ๊ทธ์ธ & ๋กœ๊ทธ์•„์›ƒ ์„ค๋ฌธ์กฐ์‚ฌ
ํšŒ์›๊ฐ€์ž… ๋กœ๊ทธ์ธ ๋กœ๊ทธ์•„์›ƒ ์„ค๋ฌธ์กฐ์‚ฌ

์ƒํ’ˆ ๊ฒ€์ƒ‰ ์ƒํ’ˆ ์ƒ์„ธ ์˜ˆ์•ฝ ๋ฐ ๊ฒฐ์ œ
๊ฒ€์ƒ‰ ์ œํ’ˆ์ƒ์„ธ ์˜ˆ์•ฝ, ๊ฒฐ์ œ

์˜ˆ์•ฝ ์ฐœํ•˜๊ธฐ & ์ฐœํ•œ ์ƒํ’ˆ ์–ธ์–ด ๋ฐ”๊พธ๊ธฐ
๋‚ด์˜ˆ์•ฝ ์ฐœํ•˜๊ธฐ ์–ธ์–ด๋ฐ”๊พธ๊ธฐ

๐Ÿช„ ๊ธฐ์ˆ  ์Šคํƒ

๋””์ž์ธ ์‚ฌ์šฉ ์†Œํ”„ํŠธ์›จ์–ด

  • ์™€์ด์–ดํ”„๋ ˆ์ž„, ๋ชฉ์—… ์ œ์ž‘: Adobe XD

ํ”„๋ก ํŠธ์•ค๋“œ ๊ธฐ์ˆ  ์Šคํƒ

๐Ÿ”—ย ํ”„๋ก ํŠธ์—”๋“œ ๋ฆฌํฌ: gotogether-s ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

  • ํ”„๋ ˆ์ž„์›Œํฌ: Next.js
  • ์–ธ์–ด: TypeScript
  • ๋ผ์šฐํ„ฐ: next/router
  • ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: Redux toolkit
  • API ์š”์ฒญ: getServerSideProps, axios
  • ์Šคํƒ€์ผ ์ ์šฉ: MUI, Scss, CSS Module

๋ฐฑ์•ค๋“œ ๊ธฐ์ˆ  ์Šคํƒ

๐Ÿ”—ย ๋ฐฑ์—”๋“œ ๋ฆฌํฌ: gotogether-s-BE ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

๐Ÿ”—ย ERD Cloud ๋งํฌ: ERD Cloud ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

  • ์–ธ์–ด: Java
  • ํ”„๋ ˆ์ž„์›Œํฌ & DB: IntelliJ, Gradle, Spring, Spring Boot, Data JPA, Security, JWT, MySQL
  • CI/CD & INFRASTRUCTURE: Jenkins, Docker, EC2, RDS, S3
  • ๊ธฐํƒ€: POSTMAN, ERD Cloud

๊ธฐํƒ€ ์‚ฌ์šฉ ํˆด

  • ์ด์Šˆ๊ด€๋ฆฌ: Github Issue
  • ๋ฌธ์„œํ™”: Notion
  • ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜: Slack, Discord, Zoom

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ ์—…๋ฌด ๋ถ„๋ฐฐ

ํ”„๋ก ํŠธ์•ค๋“œ ์—…๋ฌด ๋ถ„๋ฐฐ

๋ณ€์Šนํ›ˆ ์กฐํ˜„์•„
@SeungHun6450 @hyeonahc
๋ฉ”์ธ ํŽ˜์ด์ง€ (์ƒํ’ˆ ๊ฒ€์ƒ‰, ์กฐํšŒ)
์„ค๋ฌธ์กฐ์‚ฌ, ์—ฌํ–‰์ƒํ’ˆ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š” ๋ฐฐ๋„ˆ ์Šฌ๋ผ์ด๋” (๋ฐฐ๋„ˆ ํด๋ฆญ์‹œ ์„ค๋ฌธ์กฐ์‚ฌ ํŽ˜์ด์ง€, ํ•ด๋‹น ์ƒํ’ˆ์˜ ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™)
์ „์ฒด ์ƒํ’ˆ, ๊ตญ๊ฐ€๋ณ„, ์—ฐ๋ น๋Œ€๋ณ„, ๋™ํ–‰์ž ์œ ํ˜•๋ณ„, ํ…Œ๋งˆ๋ณ„๋กœ ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ ๋ฉ”๋‰ด
๊ด€๋ จ์žˆ๋Š” ์—ฌํ–‰์ƒํ’ˆ์„ ๋ฌถ์–ด ์ถœ๋ ฅํ•˜๊ณ  ํ‚ค์›Œ๋“œ ์„ ํƒ์‹œ ํ•ด๋‹นํ•˜๋Š” ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ

์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€ (SSR, ์ƒํ’ˆ ๊ฒ€์ƒ‰, ์กฐํšŒ)
๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ(๊ตญ๊ฐ€, ์—ฐ๋ น๋Œ€, ๋™ํ–‰์ž ์œ ํ˜•, ํ…Œ๋งˆ)์— ๋งž๋Š” ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ
ํ•„ํ„ฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ ์„ธ๋ถ€์‚ฌํ•ญ์„ ์„ ํƒํ•œ ํ›„ ์ƒํ’ˆ ์ถœ๋ ฅ
์ƒํ’ˆ ํด๋ฆญ์‹œ ์ƒ์„ธ ํŽ˜์ด์ง€๋กœ ์ด๋™

์ƒ์„ธ ํŽ˜์ด์ง€ (SSR, Redux, ์ƒํ’ˆ ์กฐํšŒ)
์ƒํ’ˆ์— ๋Œ€ํ•œ ์ƒ์„ธ์ •๋ณด(์ง€์—ญ, ํ•ญ๊ณต, ์—ฌํ–‰์ƒ์„ธ ์†Œ๊ฐœ)๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€
๋กœ๊ทธ์ธ์‹œ ์ฐœํ•˜๊ธฐ, ์˜ˆ์•ฝํ•˜๊ธฐ ๊ธฐ๋Šฅ ์ œ๊ณต (๋น„๋กœ๊ทธ์ธ์‹œ ์ฐœํ•˜๊ธฐ, ์˜ˆ์•ฝํ•˜๊ธฐ ๊ธฐ๋Šฅ ์ด์šฉ ๋ถˆ๊ฐ€)
์‚ฌ์šฉ์ž๊ฐ€ ์ƒํ’ˆ์˜ ์ฐœํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„๋•Œ ํ•ด๋‹น ์ƒํ’ˆ์ด ์ฐœ ๋ชฉ๋ก์— ์ถ”๊ฐ€
์‚ฌ์šฉ์ž๊ฐ€ ์˜ˆ์•ฝํ•˜๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญํ–ˆ์„๋•Œ Redux๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ ํ›„ ์˜ˆ์•ฝ ํŽ˜์ด์ง€๋กœ ์ด๋™
์‚ฌ์šฉ์ž ๊ณ„์ •
ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ, ์˜ˆ์•ฝํ•œ ์ƒํ’ˆ ์กฐํšŒ ๋ฐ ์‚ญ์ œ, ์ฐœํ•œ ์ƒํ’ˆ ์กฐํšŒ ๋ฐ ์‚ญ์ œ ๋“ฑ ์‚ฌ์šฉ์ž ๊ณ„์ •๊ณผ ์—ฐ๋™๋œ ๊ธฐ๋Šฅ

์„ค๋ฌธ์กฐ์‚ฌ (์—ฌํ–‰์ง€ ์ถ”์ฒœ ๋ฐ›๊ธฐ)
์‚ฌ์šฉ์ž ํŠน์„ฑ์— ๋งž๋Š” ํŒจํ‚ค์ง€ ์—ฌํ–‰์ƒํ’ˆ์„ ์ถ”์ฒœํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ
์‚ฌ์šฉ์ž๊ฐ€ ์„ค๋ฌธ์กฐ์‚ฌ๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ํ™ˆํŽ˜์ด์ง€์— ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„๋‹˜์„ ์œ„ํ•œ ์ถ”์ฒœ ์ƒํ’ˆ ์„น์…˜์— ๊ณ ํˆฌ๊ฒŒ๋”์—์„œ ํ•ด๋‹น ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”์ฒœํ•˜๋Š” ์—ฌํ–‰์ƒํ’ˆ ๋ชฉ๋ก์ด ์ถœ๋ ฅ๋จ
ํšŒ์›๊ณผ ๋น„ํšŒ์› ๋ชจ๋‘ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ํšŒ์›์˜ ์„ค๋ฌธ์€ ์˜๊ตฌ์ ์œผ๋กœ, ๋น„ํšŒ์› ์‚ฌ์šฉ์ž์˜ ์„ค๋ฌธ์€ 30๋ถ„๊ฐ„ ์ €์žฅ๋˜์–ด ์ถ”์ฒœํ•˜๋Š” ์—ฌํ–‰์ƒํ’ˆ ๋ชฉ๋ก์ด ์ถœ๋ ฅ๋จ

์ƒํ’ˆ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ/์ตœ๊ทผ ๊ฒ€์ƒ‰ ๊ธฐ๋ก
๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ๊ฐ€ ์ƒํ’ˆ์˜ ์ œ๋ชฉ๊ณผ ์ผ์น˜ํ• ๋•Œ ์ƒํ’ˆ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ ์ถœ๋ ฅ๋จ
์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰ํ•œ ํ‚ค์›Œ๋“œ๋ฅผ ์ €์žฅํ•ด ๊ฒ€์ƒ‰์‹œ ๊ฒ€์ƒ‰ํ•œ ๋‚ด์—ญ์„ ์‹œ๊ฐ„์ˆœ๋Œ€๋กœ ์•Œ ์ˆ˜ ์žˆ์Œ

์˜ˆ์•ฝ ํŽ˜์ด์ง€
๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ์ •๋ณด(์˜ˆ์•ฝ์ž ์ •๋ณด, ์ธ์›, ์ž…๊ธˆ์ž๋ช… ๋“ฑ)๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ƒํ’ˆ ์˜ˆ์•ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฐ์ œํŽ˜์ด์ง€๋กœ ์ด๋™ํ•จ
์˜ˆ์•ฝ ์ƒ์„ธ ์ •๋ณด ์—ด๋žŒ๊ณผ ์˜ˆ์•ฝ ์ทจ์†Œ๋Š” ์˜ˆ์•ฝํ•œ ์ƒํ’ˆ ๋ฉ”๋‰ด์—์„œ ์ฒ˜๋ฆฌ

์›น์‚ฌ์ดํŠธ ์–ธ์–ด์„ค์ • (ํ•œ๊ตญ์–ด, ์˜์–ด ์ œ๊ณต)
์‚ฌ์šฉ์ž๊ฐ€ ์›น๋ธŒ๋ผ์šฐ์ €์— ์„ค์ •ํ•œ ์–ธ์–ด์— ๋”ฐ๋ผ ์›น์‚ฌ์ดํŠธ์˜ ์–ธ์–ด๊ฐ€ ํ•œ๊ตญ์–ด ๋˜๋Š” ์˜์–ด๋กœ ์ œ๊ณต
์ƒ๋‹จ์— ์œ„์น˜ํ•œ ์–ธ์–ด์„ค์ • ๋ฒ„ํŠผ์œผ๋กœ ํ•œ๊ตญ์–ด ๋˜๋Š” ์˜์–ด๋กœ ์–ธ์–ด๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

๊ธฐํƒ€
์‹ค์‹œ๊ฐ„ ์˜ˆ์•ฝํ•œ ์ƒํ’ˆ๊ณผ ์ฐœํ•œ ์ƒํ’ˆ์˜ ์ˆ˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ด๋“œ๋ฐ”
SEO ํ–ฅ์ƒ์„ ์œ„ํ•ด ๊ฐ ์›นํŽ˜์ด์ง€์˜ ์ œ๋ชฉ ์ปค์Šคํ…€ ์ž‘์—…
๋ ˆ์ด์•„์›ƒ, ๋„ค๋น„๊ฒŒ์ด์…˜, 404 ํŽ˜์ด์ง€ ์ œ์ž‘

๋ฐฑ์•ค๋“œ ์—…๋ฌด ๋ถ„๋ฐฐ

๊น€ํ˜„์ค€ ์ดํ˜„์Šน ๊น€๋Œ€๊ณค ์ง„์šฐ๋ฆผ
@khjun723 @iheese @bbyuggyu @jinwoorim
์ƒํ’ˆ ์กฐํšŒ(์ƒ์„ธ, ์ถ”์ฒœ, ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„), ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์‚ฌ์šฉ์ž, ํ๋ ˆ์ด์…˜, ๊ด€๋ฆฌ์ž ๊ธฐ๋Šฅ, AWS S3 ์„œ๋ฒ„ ๋ฐฐํฌ(AWS EC2, RDS, ROUTE 53), CI/CD, Dokcer ์˜ˆ์•ฝ ๋ฐ ์ฐœ ๊ธฐ๋Šฅ

โš™๏ธย ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ๋กœ์ง

  1. ์‚ฌ์šฉ์ž ์„ค๋ฌธ์„ ํ†ตํ•œ ์—ฌํ–‰์ƒํ’ˆ ์ถ”์ฒœ ๊ธฐ๋Šฅ
    • ์‚ฌ์šฉ์ž ํŠน์„ฑ์— ๋งž๋Š” ํŒจํ‚ค์ง€ ์—ฌํ–‰์ƒํ’ˆ์„ ์ถ”์ฒœํ•˜๊ธฐ ์œ„ํ•œ ์„ค๋ฌธ ๊ธฐ๋Šฅ
    • ์‚ฌ์šฉ์ž๊ฐ€ ์„ค๋ฌธ์กฐ์‚ฌ๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ํ™ˆํŽ˜์ด์ง€์— ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„๋‹˜์„ ์œ„ํ•œ ์ถ”์ฒœ ์ƒํ’ˆ ์„น์…˜์— ๊ณ ํˆฌ๊ฒŒ๋”์—์„œ ํ•ด๋‹น ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”์ฒœํ•˜๋Š” ์—ฌํ–‰์ƒํ’ˆ ๋ชฉ๋ก์ด ์ถœ๋ ฅ
    • ํšŒ์›๊ณผ ๋น„ํšŒ์› ๋ชจ๋‘ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ํšŒ์›์˜ ์„ค๋ฌธ์€ ์˜๊ตฌ์ ์œผ๋กœ, ๋น„ํšŒ์› ์‚ฌ์šฉ์ž์˜ ์„ค๋ฌธ์€ 30๋ถ„๊ฐ„ ์ €์žฅ๋˜์–ด ์ถ”์ฒœํ•˜๋Š” ์—ฌํ–‰์ƒํ’ˆ ๋ชฉ๋ก์ด ์ถœ๋ ฅ
  2. ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR) ๊ตฌํ˜„
    • ์ƒํ’ˆ ์ƒ์„ธํŽ˜์ด์ง€, ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€๋ฅผ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์œผ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ์šฉ๋Ÿ‰์ด ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํŽ˜์ด์ง€์˜ ๋ Œ๋”๋ง ์†๋„๋ฅผ ํ–ฅ์ƒ
  3. JWT ์‚ฌ์šฉํ•œ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ๋กœ๊ทธ์ธ
    • ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•  ๋•Œ๋งˆ๋‹ค ํ—ค๋”์— ํ† ํฐ์„ ํ•จ๊ป˜ ๋ณด๋‚ด ์š”์ฒญ์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰
  4. Redux toolkit์„ ์‚ฌ์šฉํ•œ ์ „์—ญ์ƒํƒœ๊ด€๋ฆฌ
    • ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๊ฐ€ ์—†๊ณ  immer ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๋ณ€์„ฑ์„ ์ง€ํ‚ค์ง€ ์•Š๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜์˜€์Œ
  5. RTK Query๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ ํŒจ์นญ
    • API ์š”์ฒญ์˜ ํ…œํ”Œ๋ฆฟ์„ ๋งˆ๋ จํ•˜๊ธฐ ์œ„ํ•ด RTK Query๋ฅผ ์‚ฌ์šฉ
  6. ์›น ์ ‘๊ทผ์„ฑ ๋ฐ SEO ๊ฐœ์„ 
    • ์‹œ๋ฉ˜ํ‹ฑํ•œ ํƒœ๊ทธ ์‚ฌ์šฉ
    • rem ์‚ฌ์šฉ
    • ์ด๋ฏธ์ง€์— alt ํƒœ๊ทธ ๋„ฃ๊ธฐ
    • ์›นํŽ˜์ด์ง€๋ณ„๋กœ ์ œ๋ชฉ ์ปค์Šคํ…€ ์ž‘์—…
    • ์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ์‚ฌ์šฉ
  7. ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ
    • ๋ชจ๋ฐ”์ผ ๋””๋ฐ”์ด์Šค ํฌ๊ธฐ(320px ~ 900px)์— ํ•œ์ •ํ•˜์—ฌ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์„ ๊ตฌํ˜„

About

Go Together is a travel service platform that provides convenient vacation package bookings

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages