Skip to content

Latest commit

ย 

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿšญ ็„ก์—ฐ

ํก์—ฐ ์ด๋ ฅ ๊ธฐ๋ฐ˜ ๊ธˆ์—ฐ ๊ด€๋ฆฌ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ์›น ์„œ๋น„์Šค

์‚ฌ์šฉ์ž์˜ ํก์—ฐ ์ด๋ ฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ธˆ์—ฐ ๊ฒฝ๊ณผ, ์ ˆ์•ฝ ๊ธˆ์•ก, ๊ฑด๊ฐ• ๋ณ€ํ™” ์ง€ํ‘œ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ณ ,
์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ์œผ๋กœ ๊ธˆ์—ฐ ์ง€์† ๋™๊ธฐ๋ฅผ ๋†’์ด๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

๋ฌด์—ฐ ๋Œ€ํ‘œ ์ด๋ฏธ์ง€


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

็„ก์—ฐ์€ ํ•ด์ปคํ†ค ์ฃผ์ œ์ธ โ€œIT ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ ํ˜„๋Œ€์ธ์˜ ๊ฑด๊ฐ•(wellness) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์›น ์„œ๋น„์Šคโ€์— ๋งž์ถฐ ๊ธฐํšํ•œ ๊ธˆ์—ฐ ๊ด€๋ฆฌ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.
๊ธˆ์—ฐ์€ ๊ฑด๊ฐ•๊ณผ ์ง๊ฒฐ๋˜์ง€๋งŒ ํ˜ผ์ž ๊พธ์ค€ํžˆ ์‹ค์ฒœํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์ ์— ์ฃผ๋ชฉํ–ˆ๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ๋ณ€ํ™”๋ฅผ ์ง์ ‘ ํ™•์ธํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋„๋ก ์„œ๋น„์Šค๋ฅผ ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ฐ€์น˜

  • ๊ธˆ์—ฐ ๊ฒฝ๊ณผ์™€ ๊ฑด๊ฐ• ๋ณ€ํ™”๋ฅผ ์ˆ˜์น˜๋กœ ํ™•์ธ
  • ์ ˆ์•ฝ ๊ธˆ์•ก, ํ”ผ์šฐ์ง€ ์•Š์€ ๋‹ด๋ฐฐ ์ˆ˜ ๋“ฑ ์ง๊ด€์ ์ธ ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต
  • ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํ†ตํ•œ ์ง€์† ๋™๊ธฐ ๋ถ€์—ฌ
  • ์ด๋ฉ”์ผ ์ธ์ฆ๊ณผ ํ”„๋กœํ•„ ๊ด€๋ฆฌ๊นŒ์ง€ ํฌํ•จํ•œ ์‚ฌ์šฉ์ž ์ค‘์‹ฌ ์„œ๋น„์Šค

2. ๊ธฐํš ๋ฐฐ๊ฒฝ

ํก์—ฐ์€ ์‹ฌํ˜ˆ๊ด€ ์งˆํ™˜, ํ˜ธํก๊ธฐ ์งˆํ™˜, ์ค‘๋… ๋ฐ ๊ธˆ๋‹จ ์ฆ์ƒ, ์•” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฑด๊ฐ• ๋ฌธ์ œ์™€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๊ธˆ์—ฐ์€ ๋‹จ์ˆœํ•œ ๊ฒฐ์‹ฌ๋งŒ์œผ๋กœ ์˜ค๋ž˜ ์œ ์ง€ํ•˜๊ธฐ ์–ด๋ ต๊ณ , ์ž์‹ ์˜ ๋ณ€ํ™”๊ฐ€ ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š์œผ๋ฉด ๋™๊ธฐ๋ฅผ ์žƒ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

็„ก์—ฐ์€ ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด,

  • ๊ธˆ์—ฐ ๊ฒฝ๊ณผ ์‹œ๊ฐ„
  • ํ”ผ์šฐ์ง€ ์•Š์€ ๋‹ด๋ฐฐ ๊ฐœ์ˆ˜
  • ์ ˆ์•ฝ ๊ธˆ์•ก
  • ๋Š˜์–ด๋‚œ ์ˆ˜๋ช…
  • ์ด ํก์—ฐ ๊ธฐ๊ฐ„
  • ๋ˆ„์  ์†Œ๋น„ ๊ธˆ์•ก
  • ๋ˆ„์  ํƒ€๋ฅด๋Ÿ‰

๋“ฑ์˜ ์ •๋ณด๋ฅผ ํ•œ ํ™”๋ฉด์—์„œ ๋ณด์—ฌ์ฃผ๋„๋ก ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.


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

3-1. ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ํšŒ์› ๊ด€๋ฆฌ

  • BCrypt ๊ธฐ๋ฐ˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”
  • JWT ๊ธฐ๋ฐ˜ ๋กœ๊ทธ์ธ ์ธ์ฆ
  • ํšŒ์›๊ฐ€์ž… / ๋กœ๊ทธ์ธ / ํšŒ์›์ •๋ณด ์ˆ˜์ • / ํšŒ์› ํƒˆํ‡ด
  • ์•„์ด๋”” / ์ด๋ฉ”์ผ ์ค‘๋ณต ํ™•์ธ
  • ์•„์ด๋”” ์ฐพ๊ธฐ ๊ธฐ๋Šฅ

3-2. ์ด๋ฉ”์ผ ์ธ์ฆ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •

  • JavaMailSender๋ฅผ ํ™œ์šฉํ•œ ์ด๋ฉ”์ผ ์ธ์ฆ๋ฒˆํ˜ธ ๋ฐœ์†ก
  • ์ด๋ฉ”์ผ๋ณ„ ์ธ์ฆ๋ฒˆํ˜ธ ๊ฒ€์ฆ ๋กœ์ง ๊ตฌํ˜„
  • ์ž„์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ฐœ๊ธ‰ ๋ฐ ๋ฉ”์ผ ์ „์†ก ๊ธฐ๋Šฅ ๊ตฌํ˜„

3-3. ๊ธˆ์—ฐ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋Œ€์‹œ๋ณด๋“œ

  • ๊ธˆ์—ฐ ์‹œ์ž‘์ผ, ํก์—ฐ ์‹œ์ž‘์ผ, ํ•˜๋ฃจ ํก์—ฐ๋Ÿ‰, ๋‹ด๋ฐฐ ๊ฐ€๊ฒฉ, ํ•œ ๊ฐ‘๋‹น ๊ฐœ๋น„ ์ˆ˜, ํƒ€๋ฅด๋Ÿ‰ ๊ด€๋ฆฌ
  • ๊ธˆ์—ฐ ๊ฒฝ๊ณผ ์‹œ๊ฐ„, ํ”ผ์šฐ์ง€ ์•Š์€ ๋‹ด๋ฐฐ ์ˆ˜, ์ ˆ์•ฝ ๊ธˆ์•ก, ๋Š˜์–ด๋‚œ ์ˆ˜๋ช… ๊ณ„์‚ฐ
  • ์ด ํก์—ฐ ๊ธฐ๊ฐ„, ๋ˆ„์  ์†Œ๋น„ ๊ธˆ์•ก, ๋ˆ„์  ํƒ€๋ฅด๋Ÿ‰ ์กฐํšŒ

3-4. ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ

  • ๊ฒŒ์‹œ๊ธ€ ์ƒ์„ฑ / ์กฐํšŒ / ์ˆ˜์ • / ์‚ญ์ œ
  • ์‚ฌ์šฉ์ž๋ณ„ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
  • ๋Œ“๊ธ€ ๊ธฐ๋Šฅ ๋ฐ ์ข‹์•„์š” ๊ธฐ๋Šฅ
  • ์‚ฌ์šฉ์ž ๊ฐ„ ๊ธˆ์—ฐ ๊ฒฝํ—˜ ๊ณต์œ  ๋ฐ ์†Œํ†ต ์ง€์›

3-5. ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ

  • ๊ฒŒ์‹œ๊ธ€ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์ง€์›
  • ํšŒ์› ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ฐ ์กฐํšŒ
  • multipart/form-data ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ

4. ๋ฐฑ์—”๋“œ ๊ตฌํ˜„ ํฌ์ธํŠธ

์ธ์ฆ/์ธ๊ฐ€

  • Spring Security ๊ธฐ๋ฐ˜ ์ธ์ฆ ํ๋ฆ„ ๊ตฌ์„ฑ
  • JWT ๋ฐœ๊ธ‰ ๋ฐ ๊ฒ€์ฆ ๋กœ์ง ๊ตฌํ˜„

๋ฉ”์ผ ์ฒ˜๋ฆฌ

  • ์ธ์ฆ๋ฒˆํ˜ธ ๋ฐœ์†ก ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ • ๋ฉ”์ผ ์ „์†ก ๊ธฐ๋Šฅ ๊ตฌํ˜„

๋„๋ฉ”์ธ ์„ค๊ณ„

  • ํšŒ์› ์ •๋ณด์— ํก์—ฐ/๊ธˆ์—ฐ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ด ๊ฐœ์ธํ™”๋œ ๊ธˆ์—ฐ ์ง€ํ‘œ ๊ณ„์‚ฐ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„

API ๋ฌธ์„œํ™”

  • Swagger(OpenAPI) ๊ธฐ๋ฐ˜ API ๋ฌธ์„œํ™” ์ง€์›

5. ๊ธฐ์ˆ  ์Šคํƒ

Category Stack
Language Java 17
Framework Spring Boot 3.2.2
Database MySQL
ORM Spring Data JPA
Security Spring Security, JWT
Mail JavaMailSender
API Docs Swagger / Springdoc OpenAPI
Build Tool Gradle

6. ์‹œ์—ฐ ํ™”๋ฉด

์„œ๋น„์Šค ๊ฐœ์š”

๊ฐœ๋ฐœ ๋ฐฐ๊ฒฝ ์„œ๋น„์Šค ๊ตฌ์กฐ
๊ฐœ๋ฐœ ๋ฐฐ๊ฒฝ ์„œ๋น„์Šค ๊ตฌ์กฐ

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

๋ฉ”์ธ ๋Œ€์‹œ๋ณด๋“œ ์ปค๋ฎค๋‹ˆํ‹ฐ
๋ฉ”์ธ ๋Œ€์‹œ๋ณด๋“œ ์ปค๋ฎค๋‹ˆํ‹ฐ

7. ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

1) ํ…์ŠคํŠธ + ํŒŒ์ผ ๋™์‹œ ์ „์†ก ๋ฌธ์ œ

๊ฒŒ์‹œ๋ฌผ ์ƒ์„ฑ/์ˆ˜์ • ์‹œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ์™€ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ํ•จ๊ป˜ ์ „์†กํ•  ๋•Œ @RequestBody ๋ฐฉ์‹์œผ๋กœ๋Š” ์ •์ƒ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด multipart/form-data ๊ธฐ๋ฐ˜์œผ๋กœ ์š”์ฒญ์„ ๋ณ€๊ฒฝํ•˜๊ณ , DTO์™€ ํŒŒ์ผ์„ ๋ถ„๋ฆฌ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

2) ๋„๋ฉ”์ธ ๋ถ„๋ฆฌ ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•œ CORS ์˜ค๋ฅ˜

ํ”„๋ก ํŠธ์™€ ๋ฐฑ์—”๋“œ ์ฃผ์†Œ๋ฅผ ๋ถ„๋ฆฌํ•ด ๊ด€๋ฆฌํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ CORS ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
์ „์—ญ CORS ์„ค์ •์„ ์ ์šฉํ•˜๊ณ  ์š”์ฒญ ๊ฒฝ๋กœ๋ฅผ ์žฌ์ ๊ฒ€ํ•˜์—ฌ ํ”„๋ก ํŠธ-๋ฐฑ์—”๋“œ ์—ฐ๋™ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.


8. ํŒ€ ๊ตฌ์„ฑ

์ด๋ฆ„ ์—ญํ• 
๊น€์ฐฌ์ฃผ ๊ธฐํš / ๋””์ž์ธ
๊ตฌํ˜œ์› ํ”„๋ก ํŠธ์—”๋“œ
๊น€์ฑ„์—ฐ ํ”„๋ก ํŠธ์—”๋“œ
์•ˆํฅ์ˆ˜ ํ”„๋ก ํŠธ์—”๋“œ
ํ™ฉ์„ฑ์œค ๋ฐฑ์—”๋“œ
ํ™์€ํƒ ๋ฐฑ์—”๋“œ

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages