Repository files navigation
ํด๋น ํ๋ก์ ํธ๋ ์๋ผ๋ API๋ฅผ ์ด์ฉํด ๋ง๋ ๋์์ ๋ณด ๊ฒ์ ๋ฐ ๋ชจ์ ๊ตฌ๋งค ์ฌ์ดํธ์
๋๋ค.
AWS EC2๋ฅผ ์ฌ์ฉํด ๋ฐฑ์๋, ํ๋ก ํธ์๋ ์๋ฒ๋ฅผ ๊ฐ๊ฐ ๋ฐฐํฌํ์์ต๋๋ค.
์ฌ์ดํธ ์ฃผ์
https://bookleum.net
ํ
์คํธ ๊ณ์
ํ๋ก์ ํธ ๊ธฐ๊ฐ : 2024.09.15 ~ 2024.10.20
์ ์ํ
๋ฐ๋ณ๊ทผ
@Euihyunee
@Dejong1706
ํ๊ตญ๊ณตํ๋ํ๊ต ์ํํธ์จ์ดํ๊ณผ(์กธ)
ํ๋จ๋ํ๊ต ์ปดํจํฐ๊ณตํ๊ณผ(์กธ)
์ด๋ฆ
์ญํ
๋ด๋น
์ ์ํ
๋ฐฑ์๋ ๊ฐ๋ฐ
์์ฒญ ๋๋ฉ์ธ ๊ฐ๋ฐ๊ณผ Spring Boot๋ฅผ ์ด์ฉํ ๋ฐฑ์๋ ์๋ฒ์ MySQL์ ์ด์ฉํ DB ์ค๊ณ์ ๊ตฌ์ถ์ ๋ด๋นํ์ต๋๋ค.
๋ฐ๋ณ๊ทผ
ํ๋ก ํธ์๋ ๊ฐ๋ฐ
React์ NextJS ๊ธฐ๋ฐ์ ํ๋ก ํธ์๋ ์๋ฒ์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ๋ฅผ ๋ด๋นํ์์ผ๋ฉฐ ์ฌ์ฉ์ UI/UX ๊ธฐํ๊ณผ ๋์์ธ์ ๋ด๋นํ์ต๋๋ค.
Front : React, NextJS, Redux-toolkit, TypeScript, JWT, TailwindCSS
Back-end : Java17, Spring boot 3.3.4, IntelliJ IDEA, MySQL, postman
๋ฒ์ ๋ฐ ์ด์๊ด๋ฆฌ : Github
ํ์
ํด : Discord, Figma
๋ฐฐํฌ : AWS EC2
๐ ํ์ด์ง๋ณ ๊ธฐ๋ฅ ์ค๋ช
[๋ก๊ทธ์ธ, ํ์๊ฐ์
]
๋ก๊ทธ์ธ ํ์ด์ง์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์ด์ฉํด ํ์ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๊ฒ๋ฉ๋๋ค.
ํ์๊ฐ์
ํ์ด์ง์์๋ ์์ด๋, ๋น๋ฐ๋ฒํธ, ์ด๋ฉ์ผ, ์ด๋ฆ, ์ ํ๋ฒํธ, ์ฃผ์, ์๋
์์ผ๋ฅผ ์
๋ ฅ๋ฐ์ต๋๋ค.
๋น์นธ์ด ์๊ณ ๊ฐ๊ฐ์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๋ชจ๋ ํต๊ณผํ๋ค๋ฉด ํ์๊ฐ์
์ ์ฑ๊ณตํ๊ฒ ๋ฉ๋๋ค.
๋ก๊ทธ์
ํ์๊ฐ์
๋ก๊ทธ์ธ, ๋น ๋ก๊ทธ์ธ ์๊ด์์ด ๋ฉ์ธํ์ด์ง์์๋ ์ค๋์ ์ฑ
๊ณผ, ๋ฒ ์คํธ์
๋ฌ ์์ 3๊ถ์ ์ฑ
์ ์ดํด๋ณผ์ ์์ต๋๋ค.
๋ฉ์ธ ํ์ด์ง ๊ฒ์๋ฐ์์๋ ์๊ฐ, ์ฑ
์ ๋ชฉ์ ์
๋ ฅํ๋ฉด ํด๋น ๊ฒ์๊ฒฐ๊ณผ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๊ฒ์๊ฒฐ๊ณผ๋ ์ต๋ 50๊ฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ฉฐ ํ์์ผ ๊ฒฝ์ฐ ๊ตฌ๋งคํ๊ธฐ, ์ฐํ๊ธฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ๋ฉ๋๋ค.
๋ฉ์ธ
๊ฒ์๊ฒฐ๊ณผ
[๋ฒ ์คํธ์
๋ฌ, ์ ์๋ฆฌ์คํธ, ์ฑ
๊ฐ๋ณ]
๋ฒ ์คํธ ์
๋ฌ, ์ ์๋ฆฌ์คํธ๋ฅผ ํตํด ํด๋น ์นดํ
๊ณ ๋ฆฌ์ ์ผ์นํ๋ ์ฑ
50๊ถ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ฒ ์คํธ ์
๋ฌ์์๋ ๋
,์,์ฃผ์ฐจ๋ฅผ ์ ํํ์ฌ ๋ ์ง๋ณ ๊ฒฐ๊ณผ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.
๋ฒ ์คํธ์
๋ฌ, ์ ์๋ฆฌ์คํธ, ๊ฒ์๊ฒฐ๊ณผ์์ ๋์จ ์ฑ
์ ํด๋ฆญํ๊ฒ ๋๋ฉด ์ฑ
๊ฐ๋ณ ํ์ด์ง๋ก ๋์ด๊ฐ๊ฒ๋ฉ๋๋ค
๊ฐ๋ณ ํ์ด์ง์์๋ ํ์์ผ๊ฒฝ์ฐ ๊ตฌ๋งคํ๊ธฐ, ์ฐํ๊ธฐ, ์ฅ๋ฐ๊ตฌ๋๋ฅผ ์ด์ฉํ ์ ์์ผ๋ฉฐ, ๋นํ์์ผ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ์ด ํ์ํ๋ค๋ ๋ฌธ๊ตฌ๊ฐ ๋์์ง๋๋ค.
๋ฒ ์คํธ์
๋ฌ
์ ์๋ฆฌ์คํธ
์ฑ
๊ฐ๋ณ ํ์ด์ง
[์ฃผ๋ฌธ ๋ด์ญ ์กฐํ, ์ฅ๋ฐ๊ตฌ๋, ์ฐ ๋ชฉ๋ก]
ํด๋น ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ๋ก๊ทธ์ธ์ ์ด์ฉ๊ฐ๋ฅํ๋ฉฐ ๋ก๊ทธ์ธ ์ดํ ๋ง์ดํ์ด์ง๋ฅผ ํตํด์ ์ด๋ํ ์ ์๋ ํ์ด์ง์
๋๋ค.
์ฃผ๋ฌธ ๋ด์ญ ์กฐํ๋ฅผ ํตํด ๊ตฌ๋งคํ ์ฑ
์ด๋ฆ๊ณผ ๋ ์ง, ์๋ น์ธ, ๋ฐฐ์ก์ง, ๋ฉ๋ชจ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ฅ๋ฐ๊ตฌ๋์์๋ ๋ด๊ฐ ๋ด์ ๋ด์ญ๋ค์ ์ดํด๋ณผ ์ ์์ผ๋ฉฐ ์ ์ฒด ๊ตฌ๋งค์ ์ ์ฒด ์ญ์ , ๊ฐ๋ณ ๊ตฌ๋งค, ๊ฐ๋ณ ์ญ์ ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฐ๋ชฉ๋ก์์๋ ๋ด๊ฐ ์ฐํ ๋ชฉ๋ก๋ค์ ์ดํด๋ณผ ์ ์์ผ๋ฉฐ, ๊ฐ๋ณ๊ตฌ๋งค์ ๊ฐ๋ณ ์ญ์ ๋ง ์ด์ฉํ ์ ์์ต๋๋ค.
์ฃผ๋ฌธ ๋ด์ญ ์กฐํ
์ฅ๋ฐ๊ตฌ๋
์ฐ ๋ชฉ๋ก
[๊ณต์ง์ฌํญ, ์์ฃผํ๋ ์ง๋ฌธ , 1:1๋ฌธ์]
๊ณต์ง์ฌํญ, ์์ฃผํ๋ ์ง๋ฌธ ํ์ด์ง์์ ๊ด๋ฆฌ์๊ฐ ๊ฒ์ํ ๊ณต์ง์ฌํญ๋ค์ ์ดํด๋ณผ ์ ์์ผ๋ฉฐ ๊ฐ๋ณ ํด๋ฆญํ ๊ฒฝ์ฐ ์์ธ ํ์ด์ง๋ก ๋์ด๊ฐ๋๋ค
1:1๋ฌธ์ ํ์ด์ง๋ ๋ก๊ทธ์ธ์ ์งํํ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ด๋ฉฐ ๋ฌธ์์ ํ, ์ ๋ชฉ, ๋ด์ฉ์ ์
๋ ฅํด ๋ฌธ์ ์ฌํญ์ ์์ฑํ ์ ์์ต๋๋ค.
๊ณต์ง์ฌํญ
๊ณต์ง์ฌํญ ์์ธ
์์ฃผํ๋ ์ง๋ฌธ
1:1๋ฌธ์
----------
----------
์ด๋ฒคํธ ํ์ด์ง๋ฅผ ํตํด ๋ค๋ฅธ ์ ์ ๋ค๊ณผ ์์ ์ด ์์ฑํ ๊ฐ์ ๋ฌธ๊ตฌ๋ฅผ ์ดํด๋ณผ ์ ์์ต๋๋ค.
๊ฐ๋ณ๋ก ๊ธ์ ํด๋ฆญํ ๊ฒฝ์ฐ ์ด๋ฒคํธ ์์ธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ด๋ฒคํธ ์์ฑํ๊ธฐ ๋ฒํผ์ ํ์๋ง ์ด์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ด๋ฒคํธ
์ด๋ฒคํธ ์์ธ
โข๏ธ ์ฃผ์ ๋ฌธ์ ํด๊ฒฐ
1. catch์ error type ๋ฌธ์
TypeScript๋ catch ๊ตฌ๋ฌธ์์ ๋ฐ์ํ๋ error๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก unknown ํ์
์ผ๋ก ์ง์ ํ๋ ๊ฒ์ ๊ถ์ฅํจ, ํ์ง๋ง ๋ฌด์์ unknown์ ํ์
์ผ๋ก ์ค์ ํ๊ณ ์คํํ๋ฉด TypeScript์์ ์ค๋ฅ๋ฅผ ํ์ํจ, ์ด์ ๋ error๊ฐ AxiosError์ธ์ง ์๋์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ
ํด๊ฒฐ : ์ด๋ฅผ ํด๊ฒฐํ๊ณ ์ ํ์
์ขํ๊ธฐ(instanceof๋ฅผ ์ฌ์ฉ)์ ์ฌ์ฉํด error๊ฐ ํน์ ํ์
์ธ์ง ํ์ธ ํ ์คํํ๋๋ก ๋ณ๊ฒฝ
2. Either include it or remove the dependency array
์ด๋ ์์กด์ฑ ๋ฐฐ์ด์ ๋ด๋ถ์์ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ณ์๋ ํจ์๊ฐ ํฌํจ๋์ด ์์ด์ผ ํ์ง๋ง, ๊ทธ๋ ์ง ์์ ๋ ๋ฐ์ํ๋ ์ค๋ฅ
ํ๋ก์ ํธ ํ
์คํธ์์๋ ์๋ฌ์์ด ์คํ๋์๊ธฐ์ ํ์ธ์ ๋ชปํ์ง๋ง, ๋น๋ ์คํ ํ ๋ฐ์ํ ์๋ฌ๋ฉ์์ง๋ก ํด๋น ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌ
ํด๊ฒฐ : ๋ถํ์ํ ๋ณ์๋ ์ ๊ฑฐํ๊ณ ํ์ํ ๋ณ์๋ค์ ์์กด์ฑ ๋ฐฐ์ด์ ์ถ๊ฐ์ํค๋ ๊ฒ์ผ๋ก ๋ฌธ์ ํด๊ฒฐ
3. hostname "image.aladin.co.kr" is not configured under images in your next.config.js
์ด ์๋ฌ๋ NextJS์ next/image ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํด ์ธ๋ถ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๊ณ ์ ํ ๋ ๋ฐ์ํ๋ ์๋ฌ
NextJS์์๋ ๋ณด์์์ ์ด์ ๋ก, ์ธ๋ถ ํธ์คํธ์์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ๋ ค์ค๋ ค๋ฉด, next.config.jsํ์ผ์์ ํด๋น ํธ์คํธ๋ฅผ ํ์ฉํด์ผ ํจ
ํด๊ฒฐ: next.config.js์ iamges ์ค์ ์ ์ถ๊ฐํ์ฌ image.aladin.co.kr ํธ์คํธ๋ฅผ ํ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ํด๊ฒฐ
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
You canโt perform that action at this time.