Skip to content

BrokenFinger98/ZIPDA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

'์ง‘๋‹ค'๋Š” ๋ถ€๋™์‚ฐ ๋งค๋ฌผ ๊ฒ€์ƒ‰ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋žซํผ ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

  • SSAFY ๊ด€ํ†ต ํ”„๋กœ์ ํŠธ๋กœ ๋ถ€๋™์‚ฐ ๋งค๋ฌผ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณต ๋ฐ›์•„, ๊ฐœ๋ฐœํ•œ ํ”„๋กœ์ ํŠธ ์ž…๋‹ˆ๋‹ค.
  • ์‹œํ˜„ ์˜์ƒ โฌ‡๏ธ (ํด๋ฆญํ•˜์—ฌ ์žฌ์ƒ)

์‹œํ˜„ ์˜์ƒ

์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ  ๋ถ€๋™์‚ฐ ๋งค๋ฌผ ๊ฒ€์ƒ‰

  • ์ง€์—ญ๋ณ„, ์กฐ๊ฑด๋ณ„ ์•„ํŒŒํŠธ ๋งค๋ฌผ ๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ๋ง
  • ์นด์นด์˜ค๋งต ์—ฐ๋™ ์ง€๋„ ๊ธฐ๋ฐ˜ ๋งค๋ฌผ ์œ„์น˜ ํ™•์ธ
  • ๋งค๋ฌผ ์ƒ์„ธ ์ •๋ณด ์กฐํšŒ ๋ฐ ๊ฑฐ๋ž˜ ๋‚ด์—ญ ๋ถ„์„

๐Ÿ‘ค ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ

  • ์†Œ์…œ ๋กœ๊ทธ์ธ (Google, Kakao, Naver)
  • JWT ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ์‹œ์Šคํ…œ
  • ํšŒ์› ์ •๋ณด ๊ด€๋ฆฌ ๋ฐ ํ”„๋กœํ•„ ์ˆ˜์ •

๐Ÿ’ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ

  • ๋ถ€๋™์‚ฐ ๊ด€๋ จ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ/์กฐํšŒ/๋Œ“๊ธ€
  • ์‹ค์‹œ๊ฐ„ ์ชฝ์ง€ ์‹œ์Šคํ…œ
  • ๊ด€๋ฆฌ์ž ๊ณต์ง€์‚ฌํ•ญ ๊ด€๋ฆฌ

๐Ÿค– AI ์ฑ—๋ด‡

  • OpenAI ChatGPT ์—ฐ๋™ ๋ถ€๋™์‚ฐ ์ƒ๋‹ด ์„œ๋น„์Šค
  • ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ ํ™œ์šฉ
  • ๋ถ€๋™์‚ฐ ์ •๋ณด ๋ฐ ํˆฌ์ž ์กฐ์–ธ ์ œ๊ณต

โค๏ธ ๊ด€์‹ฌ ๊ธฐ๋Šฅ

  • ๊ด€์‹ฌ ์ง€์—ญ/์•„ํŒŒํŠธ ์ฐœํ•˜๊ธฐ
  • ๊ฐœ์ธํ™”๋œ ๋งค๋ฌผ ์ถ”์ฒœ
  • ๊ด€์‹ฌ ๋ชฉ๋ก ๊ด€๋ฆฌ

ERD

๊ธฐ์ˆ  ์Šคํƒ

Back-End

Java
Java 21
Spring Boot
Spring Boot 3.3.5
Spring Data JPA
Spring Data JPA
QueryDSL
QueryDSL
Swagger
Swagger

Front-End

Vue.js
Vue.js 3.5.12
CSS3
CSS
HTML5
HTML5
JavaScript
JavaScript

Database / Cache

Redis
Redis
MySQL
MySQL

์ฃผ์š” ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ (๋‹ด๋‹น)

Spring Boot ๊ธฐ๋ฐ˜ ๋‹จ์ผ ์„œ๋น„์Šค: ๊ธฐ์ˆ  ์Šคํƒ ์ •๋ฆฌ

์•„๋ž˜๋Š” ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•œ ์ฃผ์š” Spring Boot ๋ฐ ๊ด€๋ จ ๊ธฐ์ˆ ๋“ค์— ๋Œ€ํ•œ ์ •๋ฆฌ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ๋“ค์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

1. Spring Data JPA & QueryDSL

  • ๊ฐœ๋…: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ๊ณ„์ธต์„ ์œ„ํ•œ JPA ๊ตฌํ˜„์ฒด์™€ ํƒ€์ž… ์•ˆ์ „ํ•œ ์ฟผ๋ฆฌ ๋นŒ๋”
  • ํŠน์ง• ๋ฐ ์ ์šฉ ๋ฐฉ์‹
    • JPA Repository: ๊ธฐ๋ณธ CRUD ์ž‘์—…์„ ์œ„ํ•œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค ํ™œ์šฉ
    • QueryDSL: ๋ณต์žกํ•œ ์กฐ๊ฑด ๊ฒ€์ƒ‰๊ณผ ๋™์  ์ฟผ๋ฆฌ ๊ตฌ์„ฑ
      • ์˜ˆ: DealQueryRepository, HouseQueryRepository ๋“ฑ์—์„œ ๋‹ค์–‘ํ•œ ๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ฒ˜๋ฆฌ
    • MySQL ์—ฐ๋™: ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ MySQL 8.0 ์‚ฌ์šฉ

2. Spring AOP & JWT

  • ๊ฐœ๋…: AOP๋ฅผ ํ™œ์šฉํ•œ ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ€(Authorization) ์ฒ˜๋ฆฌ
  • ํŠน์ง• ๋ฐ ์ ์šฉ ๋ฐฉ์‹
    • JWT ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ: JwtProvider ํด๋ž˜์Šค๋ฅผ ํ†ตํ•œ ํ† ํฐ ์ƒ์„ฑ ๋ฐ ๊ฒ€์ฆ
      • Access Token๊ณผ Refresh Token ๋ถ„๋ฆฌ ๊ด€๋ฆฌ
      • ์„ค์ • ํŒŒ์ผ์—์„œ ๋น„๋ฐ€ํ‚ค์™€ ๋งŒ๋ฃŒ์‹œ๊ฐ„ ์™ธ๋ถ€ํ™” (@Value ํ™œ์šฉ)
    • AOP ๊ธฐ๋ฐ˜ ๊ถŒํ•œ ๊ด€๋ฆฌ: @UserAccess, @AdminAccess ๋“ฑ ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜๊ณผ Aspect๋ฅผ ํ†ตํ•œ ๊ถŒํ•œ ์ฒดํฌ
      • UserAccessAspect, AdminAccessAspect ๋“ฑ์œผ๋กœ ๋ฉ”์†Œ๋“œ ์‹คํ–‰ ์ „ ๊ถŒํ•œ ๊ฒ€์ฆ
    • ์ง์ ‘ ๊ตฌํ˜„ํ•œ ์†Œ์…œ ๋กœ๊ทธ์ธ: Google, Kakao, Naver OAuth Provider ์ง์ ‘ ๊ตฌํ˜„

4. Redis

  • ๊ฐœ๋…: ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ํ™œ์šฉํ•œ ์บ์‹ฑ ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ
  • ํŠน์ง• ๋ฐ ์ ์šฉ ๋ฐฉ์‹
    • Refresh Token ์ €์žฅ: ํ† ํฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์บ์‹œ ์ €์žฅ์†Œ
    • ๊ณ ์„ฑ๋Šฅ ์กฐํšŒ: ๋นˆ๋ฒˆํ•œ ์กฐํšŒ ์ž‘์—…์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ
    • ์„ค์ • ์™ธ๋ถ€ํ™”: application.yml์—์„œ Redis ํ˜ธ์ŠคํŠธ/ํฌํŠธ ๊ด€๋ฆฌ

5. Spring AI & OpenAI

  • ๊ฐœ๋…: AI ๊ธฐ๋Šฅ ํ†ตํ•ฉ์„ ์œ„ํ•œ Spring AI ํ”„๋ ˆ์ž„์›Œํฌ
  • ํŠน์ง• ๋ฐ ์ ์šฉ ๋ฐฉ์‹
    • OpenAI API ์—ฐ๋™: ChatGPT ๋ชจ๋ธ์„ ํ™œ์šฉํ•œ ์ฑ—๋ด‡ ์„œ๋น„์Šค
    • ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ: prompts/ ๋””๋ ‰ํ† ๋ฆฌ์˜ .st ํŒŒ์ผ๋กœ ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„ ํ”„๋กฌํ”„ํŠธ ๊ด€๋ฆฌ
    • AI Controller: ๋ถ€๋™์‚ฐ ๊ด€๋ จ ์ƒ๋‹ด ๋ฐ ์ •๋ณด ์ œ๊ณต ์„œ๋น„์Šค

6. Swagger/OpenAPI 3

  • ๊ฐœ๋…: API ๋ฌธ์„œํ™” ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ž๋™ํ™” ๋„๊ตฌ
  • ํŠน์ง• ๋ฐ ์ ์šฉ ๋ฐฉ์‹
    • ์ž๋™ API ๋ฌธ์„œ ์ƒ์„ฑ: @OpenAPIDefinition ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ API ๋ช…์„ธ์„œ ๊ตฌ์„ฑ
    • Controller Docs: ๊ฐ ๋„๋ฉ”์ธ๋ณ„ ControllerDocs ์ธํ„ฐํŽ˜์ด์Šค๋กœ API ๋ฌธ์„œํ™”
    • ์‹ค์‹œ๊ฐ„ ํ…Œ์ŠคํŠธ: Swagger UI๋ฅผ ํ†ตํ•œ API ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์ œ๊ณต


7. Spring Mail

  • ๊ฐœ๋…: ์ด๋ฉ”์ผ ๋ฐœ์†ก ๊ธฐ๋Šฅ์„ ์œ„ํ•œ Spring ๋ชจ๋“ˆ
  • ํŠน์ง• ๋ฐ ์ ์šฉ ๋ฐฉ์‹
    • Gmail SMTP ์—ฐ๋™: ์ด๋ฉ”์ผ ์ธ์ฆ ๋ฐ ์•Œ๋ฆผ ๊ธฐ๋Šฅ
    • ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •: ์ธ์ฆ ์ฝ”๋“œ ๋ฐœ์†ก์„ ํ†ตํ•œ ๋ณด์•ˆ ๊ฐ•ํ™”
    • ์„ค์ • ์™ธ๋ถ€ํ™”: application-secret.yml๋กœ ๋ฏผ๊ฐ ์ •๋ณด ๋ถ„๋ฆฌ

8. ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜

  • ๊ฐœ๋…: ๋„๋ฉ”์ธ๋ณ„๋กœ ํŒจํ‚ค์ง€๋ฅผ ๋ถ„๋ฆฌํ•œ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜
  • ํŠน์ง• ๋ฐ ์ ์šฉ ๋ฐฉ์‹
    • ๊ณ„์ธต ๋ถ„๋ฆฌ: presentation โ†’ application โ†’ domain โ†’ infrastructure
    • ๋„๋ฉ”์ธ๋ณ„ ๋ชจ๋“ˆํ™”: member, house, deal, article, auth ๋“ฑ
    • ์˜์กด์„ฑ ์—ญ์ „: Repository ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ domain์—, ๊ตฌํ˜„์ฒด๋ฅผ infrastructure์— ๋ฐฐ์น˜

ํŒ€์›

Backend Frontend
์œ ์„ ์šฐ ์กฐ์˜ˆ์Šฌ
์œ ์„ ์šฐ ์กฐ์˜ˆ์Šฌ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors