π https://bookstore-zip.site/μμ μμ μ§μ λ§λ보μΈμ!
μ΄ νλ‘μ νΈλ κ°μΈλ§μ νΉμ±μ λλ¬λ΄λ λ 립μΆνλ¬Όμ κ°μ±μ μ¦κΈ°λ μ¬μ©μκ° λ 립μΆνλ¬Όμ λ μ μ°ΎμλΌ μ μλλ‘, λ 립μΆνλ¬Όμ λΉμΉν μμ μ λν μμΉ, ν€μλ, μ΄μμκ° λ±μ μ 보μ λμμΆνμ μ°λ§μ λ±λ‘λμ§ μμ λ 립μΆνλ¬Ό 리뷰 μ 곡 λ° μΆμ² μμ€ν μ μ 곡ν©λλ€.
-
BOOKSNAP (μ¬μ©μ 리뷰 κΈ°λ° λ 립μΆνλ¬Ό λ°μ΄ν° ꡬμΆ)
- μ¬μ©μκ° μ§μ λ 립μΆνλ¬Όμ λν 리뷰λ₯Ό λ±λ‘ (μ± μ λͺ©, μκ°, νμ , μμ μ¬μ§ λ±)
- μ¬μ©μ μ°Έμ¬ κΈ°λ° λ°μ΄ν°λ₯Ό ꡬμΆνμ¬ λ 립μΆνλ¬Ό μ 보λ₯Ό ν보
- μΆμ λ 리뷰 λ°μ΄ν°λ₯Ό νμ©νμ¬ μΆμ² μμ€ν νμ΅ λ°μ΄ν°λ‘ νμ© κ°λ₯
-
μμ ZIP (μ§λ κΈ°λ° μμ νμ)
- μ¬μ©μμ νμ¬ μμΉ λλ κ²μ μμΉλ₯Ό κΈ°μ€μΌλ‘ μ£Όλ³ λ 립μμ μ μ§λμμ μκ°ν
- Kakao μ§λ API λ° κ±°λ¦¬ κ³μ° μκ³ λ¦¬μ¦μ νμ©νμ¬ μμΉ κΈ°λ° νν°λ§, νκ·Έ κΈ°λ° λΆλ₯ μ§μ
- μμ λ³ λ³΄μ λμ, μ΄μ μκ°, νκ·Έ μ 보 λ± μμΈ μ 보 μ 곡
-
Bookie (RAG κΈ°λ° λ 립μΆνλ¬Ό μΆμ²)
- LLM + Vector DBλ₯Ό νμ©ν RAG κΈ°λ° AI μΆμ² μμ€ν
- μ¬μ©μ 리뷰, κ²μ, μ° λͺ©λ‘ λ±μ νλ λ°μ΄ν°λ₯Ό λ°νμΌλ‘ κ°μΈνλ λ 립μΆνλ¬Ό μΆμ²
- μ±λ΄ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μ§κ΄μ μΈ μΆμ² κ²½ν μ 곡
-
Java Development Kit(JDK)
- version : Java 17
-
λ°μ΄ν°λ² μ΄μ€ μ€λΉ
-
InteliJ IDEA
- localμμ νλ‘μ νΈ μ€νμ μν΄ νμν©λλ€.
-
λΆκ° κΈ°λ₯ apiν€ μ€λΉ
- spring.mail
- λ©μΌ λ°μ μ μμ΄λ (example@example.comμ΄λ©΄ example)
- λ©μΌ μ± λΉλ°λ²νΈ
- kakao
- λ‘κ·ΈμΈμ μν rest api key
- cloudinary
- api key
- clode name
- ai
- gpt api key
- spring.mail
- Repository ν΄λ‘
git clone https://github.com/TEAM-ZIP/Backend.git
- .env
- μ λ¬λ°μ
.envνμΌμ μ¬μ©νκ±°λ μ§μ .env νμΌμ νκ²½λ³μλ₯Ό μ€μ ν©λλ€. - .env νμΌμ μμΉλ src/main/resourcesμ λλ€.
ai.base.uri = {ai μλ² μ£Όμ}
BOOKSTORE_CAFE_KEY = { 곡곡λ°μ΄ν°ν¬νΈ μΉ΄νκ° μλ μμ api key }
BOOKSTORE_CHILD_KEY = { 곡곡λ°μ΄ν°ν¬νΈ μλ μμ api key }
BOOKSTORE_INDEP_KEY = {곡곡λ°μ΄ν°ν¬νΈ λ
립 μμ api key}
cloudinary.api_key = {cloudniary api key}
cloudinary.api_secret = {cloudniary secret key}
DB_PASSWORD = {MySQL DB λΉλ°λ²νΈ}
DB_URL = {MySQL url}
DB_USERNAME = {MySQL DB name}
jwt.secret = {60μ μ΄μμ jwt μμ±μ© λ¬Έμμ΄}
kakao.client.id = {kakao rest api key}
kakao.redirect-uri = {kakao λ‘κ·ΈμΈ μ© redirect uri}
mail.password = {λ©μΌ μ± λΉλ°λ²νΈ}
mail.username = {λ©μΌ νΈνΈ μ΄λ¦}
openai.api.key = {gpt api key}
spring.redis.host = {redis μ£Όμ}
spring.redis.port = {redis ν¬νΈ λ²νΈ}
- λΉλ
cd Capstone-Backend
./gradlew build
- μλ² μ€ν
cd build/libs
nohup java -jar bszip-0.0.1-SNAPSHOT.jar &
-
μλ² μ€ν ν,
http://localhost:8080/μ μ μ -
api testλ₯Ό μνλ©΄,
http://localhost:8080/swagger-ui/index.html#/μ μ μνμ¬ swaggerλ₯Ό ν΅ν΄ api νΈμΆ ν μ€νΈν μ μμ

-
νλ‘ νΈμ μ°λλμ΄ ν μ€νΈ μ§ν μ, νλ‘ νΈμλ λΉλ/μ€νν λ‘컬 μ£Όμ νΉμ λ°°ν¬λ μ£Όμμμ μ€μ μ΄μ©νκ³ μλ api νΈμΆ κ²°κ³Ό νμΈ κ°λ₯
- λ°°ν¬λ μ£Όμμμ λ€μκ³Ό κ°μ μ΄λ©μΌκ³Ό λΉλ°λ²νΈλ‘ λ‘κ·ΈμΈ μ κΈ°μ‘΄ λ°μ΄ν°λ‘ ν μ€νΈν μ μμ΅λλ€.
- email : user@example.com
- password : password123
![]() |
![]() |
|---|---|
| νμ§ν | μνμ |
π src/main/java/com/capstone/bszip
ββ π Book βΆοΈ λμ κ΄λ ¨ κΈ°λ₯ λͺ¨λ
β ββ π controller
β ββ π domain
β ββ π dto
β ββ π repository
β ββ π service
ββ π Bookie βΆοΈ μ±λ΄ κ΄λ ¨ κΈ°λ₯ λͺ¨λ
β ββ π controller
β ..
β ββ π service
ββ π Bookstore βΆοΈ μμ κ΄λ ¨ κΈ°λ₯ λͺ¨λ
β ββ π controller
β ..
β ββ π service
ββ π Member βΆοΈ νμ κ΄λ ¨ κΈ°λ₯ λͺ¨λ
β ββ π controller
β ..
β ββ π service
ββ π auth βΆοΈ μΈμ¦ κ΄λ ¨ λͺ¨λ
β ββ π blackList βΆοΈ λ‘κ·Έμμ
β ββ π dto βΆοΈ ν ν° μμ²/μλ΅ κ°μ²΄
β ββ π refreshToken βΆοΈ Refresh ν ν°
β ββ π security βΆοΈ Jwt
β ββ AuthController
β ββ AuthService
ββ π cloudinary βΆοΈ ν΄λΌμ°λλ리 μ΄λ―Έμ§ μ
λ‘λ κ΄λ ¨ κΈ°λ₯
β ββ π service
ββ π commonDto βΆοΈ κ³΅ν΅ μλ΅ κ°μ²΄ λ° μμΈ μ²λ¦¬
β ββ π exception
β ββ ErrorResponse
β ββ SuccessResponse
ββ π config βΆοΈ μ μ μ€μ
ββ BszipApplication βΆοΈ λ©μΈ μ ν리μΌμ΄μ
μ€ν ν΄λμ€
controller: HTTP μμ²μ λ°μ μ²λ¦¬νλ μ§μ μ service: λΉμ¦λμ€ λ‘μ§ κ΅¬νrepository: λ°μ΄ν°λ² μ΄μ€μ μ κ·Όνλ κ³μΈ΅domain: λ°μ΄ν°λ² μ΄μ€ λ§€νμ μν λλ©μΈ λͺ¨λΈdto: μμ²/μλ΅μ μ¬μ©λλ λ°μ΄ν° μ μ‘ κ°μ²΄
- Spring Boot : Spring Boot Official Site
- Lombok : Lombok Official Site
- MySQL : MySQL Official Site
- Redis : Redis Official Site
- Swagger : Swagger Official Site





