๐ฐ๐ท For Korean User: ํ๊ตญ์ด๋ก ๋ ํ๋ก์ ํธ ์ค๋ช ์ ์ฌ๊ธฐ๋ฅผ ํด๋ฆญํด์ฃผ์ธ์.
- ๐ Quick Start
- ๐ Project Duration
- โจ Project Summary
- ๐ย Demo
- ๐ชย Tech Stack & Tools
- ๐งโ๐คโ๐ง Roles & Responsibilities
- โ๏ธย Key Features and Logic
- Clone this repo:
git clone https://github.com/gotogether-s/gotogether-s.git
- Move to the directory:
cd <YOUR_PROJECT_NAME>
. - Install packages:
yarn install
- Start project
- Localhost:
yarn run dev
- After build:
yarn build
thenyarn run dev
- Localhost:
- Please contact [email protected] if you need an env key to run the project
- Reference
- Visit the live website: https://gotogether-s.vercel.app/
- View project code with GitHub: https://github.com/gotogether-s/gotogether-s
Sep 6, 2022 - Present
- Version 0.1.0 released: Feb 8, 2023
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
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:
- Web page renewal based on the mobile layout โ
- Vacation packages recommendation function tailored to users' interest โ
- Create an admin page that allows product registration (Click here to see Go Together admin Github repo)
๐ View mockup with Adobe XD
๐ Visit the live website on Vercel
Homepage | Category All | Filter by Age Group |
---|---|---|
![]() |
![]() |
![]() |
Sign Up | Sign in & Sign Out | Survey |
---|---|---|
![]() |
![]() |
![]() |
Product Search | Product Detail | Booking & Payment |
---|---|---|
![]() |
![]() |
![]() |
My booking | Saved Products | Language Setting |
---|---|---|
![]() |
![]() |
![]() |
- For wireframe and mockup creation: Adobe XD
๐ย 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
๐ย 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
- Issue: Github Issue
- Documentation: Notion
- Communication: Slack, Discord, Zoom
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 |
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 |
- 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
- 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
- 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
- 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
- Data Patching with RTK Query
- Use RTK Query to prepare a template for API requests
- 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
- Apply responsive design
- Implement responsive design for a mobile device size (320px to 900px)
- ๐ ํ๋ก์ ํธ ์คํํ๊ธฐ
- ๐ ํ๋ก์ ํธ ์ ์๊ธฐ๊ฐ
- โจ ์๋น์ค ์๊ฐ
- ๐ย ๋ฐ๋ชจ
- ๐ชย ๊ธฐ์ ์คํ
- ๐งโ๐คโ๐ง ์ ๋ฌด ๋ถ๋ฐฐ
- โ๏ธย ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ๋ก์ง
- ๋ฆฌํฌ ํด๋ก ํ๊ธฐ:
git clone https://github.com/gotogether-s/gotogether-s.git
- ํด๋น ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ๊ธฐ:
cd <YOUR_PROJECT_NAME>
. - ํจํค์ง ์ค์นํ๊ธฐ:
yarn install
- ํ๋ก์ ํธ ์คํํ๊ธฐ
- ์ฌ์ฉ์ ๋ก์ปฌํธ์คํธ:
yarn run dev
- ๋น๋ํ ์ฌ์ฉ:
yarn build
thenyarn run dev
- ์ฌ์ฉ์ ๋ก์ปฌํธ์คํธ:
- ํ๋ก์ ํธ ์คํ์ env ์ธ์ฆํค๊ฐ ํ์ํ์ ๋ถ์ ์๋๋ก ์ฐ๋ฝ์ ์ฃผ์๋ฉด ์ ๊ณตํด๋๋ฆฌ๊ฒ ์ต๋๋ค.
- ๋ณ์นํ: [email protected]
- ์กฐํ์: [email protected]
- ์ฐธ๊ณ
- ํ๋ก์ ํธ ์คํ: ๋ฐฐํฌ ์ฌ์ดํธ ๋งํฌ
- ํ๋ก์ ํธ ์ฝ๋: ๊นํ๋ธ ๋งํฌ
2022๋ 9์ 6์ผ - ์งํ์ค
- ๋ฒ์ 0.1.0: 2023๋ 2์ 8์ผ
๊ณ ํฌ๊ฒ๋๋ ์๋์ด์ธต์ ์ฃผ์ ๋์์ผ๋ก ํจํค์ง ์ฌํ ์ํ์ ์์ฝํ ์ ์๋ ์ฌํ ์๋น์ค ํ๋ซํผ์ ๋๋ค.
- ํด๋ผ์ด์ธํธ: ๊ณ ํฌ๊ฒ๋ (๋ ์ค์ด๋)
- ์๋น์ค: ์น ๋์์ธ ๋ฐ ๊ฐ๋ฐ
- ํ๋ก์ ํธ ์ฐธ์ฌ ์ธ์: 8๋ช
๊ธฐ์กด ๊ณ ํฌ๊ฒ๋ ์น์ฌ์ดํธ๋ ์์์น์ด๋ผ๋ CMS(Content Management System)๋ก ์น์ฌ์ดํธ๊ฐ ๋ง๋ค์ด์ ธ ์์ด ํ์ ๋ ๊ธฐ๋ฅ๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ์์ต๋๋ค. ๊ณ ํฌ๊ฒ๋ ์๋น์ค๋ฅผ ์ด์ํ๋ ํ์ฌ ๋์ค์ด๋์์ ์๋ 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 | ์์ฝ ๋ฐ ์ฐ ๊ธฐ๋ฅ |
- ์ฌ์ฉ์ ์ค๋ฌธ์ ํตํ ์ฌํ์ํ ์ถ์ฒ ๊ธฐ๋ฅ
- ์ฌ์ฉ์ ํน์ฑ์ ๋ง๋ ํจํค์ง ์ฌํ์ํ์ ์ถ์ฒํ๊ธฐ ์ํ ์ค๋ฌธ ๊ธฐ๋ฅ
- ์ฌ์ฉ์๊ฐ ์ค๋ฌธ์กฐ์ฌ๋ฅผ ์๋ฃํ๋ฉด ํํ์ด์ง์ ์๋ ์ฌ์ฉ์ ์ด๋ฆ๋์ ์ํ ์ถ์ฒ ์ํ ์น์ ์ ๊ณ ํฌ๊ฒ๋์์ ํด๋น ์ฌ์ฉ์์๊ฒ ์ถ์ฒํ๋ ์ฌํ์ํ ๋ชฉ๋ก์ด ์ถ๋ ฅ
- ํ์๊ณผ ๋นํ์ ๋ชจ๋ ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ ํ์์ ์ค๋ฌธ์ ์๊ตฌ์ ์ผ๋ก, ๋นํ์ ์ฌ์ฉ์์ ์ค๋ฌธ์ 30๋ถ๊ฐ ์ ์ฅ๋์ด ์ถ์ฒํ๋ ์ฌํ์ํ ๋ชฉ๋ก์ด ์ถ๋ ฅ
- ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR) ๊ตฌํ
- ์ํ ์์ธํ์ด์ง, ์ํ ๋ฆฌ์คํธ ํ์ด์ง๋ฅผ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ผ๋ก ๊ตฌํํ์ฌ ์ฉ๋์ด ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋ ํ์ด์ง์ ๋ ๋๋ง ์๋๋ฅผ ํฅ์
- JWT ์ฌ์ฉํ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ ๋ก๊ทธ์ธ
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ค์๊ฒ ์ก์ธ์ค ํ ํฐ์ ๋ฐ๊ธํ๊ณ , ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ํ ๋๋ง๋ค ํค๋์ ํ ํฐ์ ํจ๊ป ๋ณด๋ด ์์ฒญ์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์งํ
- Redux toolkit์ ์ฌ์ฉํ ์ ์ญ์ํ๊ด๋ฆฌ
- ๋ณด์ผ๋ฌํ๋ ์ดํธ ์ฝ๋๊ฐ ์๊ณ immer ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ณ์ฑ์ ์งํค์ง ์๊ณ ๊ฐํธํ๊ฒ ์ํ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ์์
- RTK Query๋ฅผ ์ฌ์ฉํ ๋ฐ์ดํฐ ํจ์นญ
- API ์์ฒญ์ ํ ํ๋ฆฟ์ ๋ง๋ จํ๊ธฐ ์ํด RTK Query๋ฅผ ์ฌ์ฉ
- ์น ์ ๊ทผ์ฑ ๋ฐ SEO ๊ฐ์
- ์๋ฉํฑํ ํ๊ทธ ์ฌ์ฉ
- rem ์ฌ์ฉ
- ์ด๋ฏธ์ง์ alt ํ๊ทธ ๋ฃ๊ธฐ
- ์นํ์ด์ง๋ณ๋ก ์ ๋ชฉ ์ปค์คํ ์์
- ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง ์ฌ์ฉ
- ๋ฐ์ํ ๋์์ธ ์ ์ฉ
- ๋ชจ๋ฐ์ผ ๋๋ฐ์ด์ค ํฌ๊ธฐ(320px ~ 900px)์ ํ์ ํ์ฌ ๋ฐ์ํ ๋์์ธ์ ๊ตฌํ