java

Spring boot๋ฅผ ์ด์šฉํ•œ ๋‹ค๋ฐฉ ํ™ˆํŽ˜์ด์ง€๋งŒ๋“ค๊ธฐ

dev_summer 2021. 2. 27. 14:48

 

์ฝ”๋กœ๋‚˜19์™€ ํ•จ๊ป˜ํ•œ ํ”„๋กœ์ ํŠธ์˜€๋‹ค.

 

 

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ์•„๋ž˜์˜ ๋‹ค๋ฐฉํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ตฌํ˜„ํ–ˆ๋‹ค.

https://www.dabangapp.com/

 

๋ถ€๋™์‚ฐ ํ•„์ˆ˜ ์•ฑ ๋‹ค๋ฐฉ

์›๋ฃธ, ํˆฌ๋ฃธ, ์˜คํ”ผ์Šคํ…”, ์•„ํŒŒํŠธ๊นŒ์ง€ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฐฉ, ๋‹ค๋ฐฉ์— ๋‹ค ์žˆ๋‹ค!

www.dabangapp.com

 

๋‹ค๋ฐฉ์˜ ํŽ˜์ด์ง€๋Š” ์„ธ์ž…์ž, ๋ฐฉ์ฃผ์ธ, ๊ณต์ธ์ค‘๊ฐœ์‚ฌ ์ด ์…‹์˜ ์ฃผ์ฒด๋ณ„๋กœ ๊ฐ€์ž…๊ฒฝ๋กœ ๋“ฑ์˜ ํŽ˜์ด์ง€๊ฐ€ ๋‹ฌ๋ž๋Š”๋ฐ

ํ•จ๊ป˜ํ•˜๋Š” ์กฐ์›์ด 3๋ช…์ด๋ผ ํ•œํŽ˜์ด์ง€์— ๊ถŒํ•œ๋ณ„๋กœ ๋ณผ์ˆ˜์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ๋žŒ๋งŒ ํŽ˜์ด์ง€๋ฅผ ๋ณผ์ˆ˜์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

์Šคํ”„๋ง๋ถ€ํŠธ ํˆด์„ ์‚ฌ์šฉ, DB๋Š” Mysql 5.7๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

mvc model 2 ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์กฐ๋ฅผ ์žก์•˜๊ณ  JSP๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์˜€๋‹ค.

๋˜ํ•œ jstl, lombok, jasper, mybatis๋“ฑ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์นด์นด์˜ค์ง€๋„ API๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

AWS amazon EC2๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐํฌ ํ•  ์˜ˆ์ •์ด๋‹ค.

 

* ์ฃผ์ฒด

(1) ์„ธ์ž…์ž : ๋ฐฉ(๋งค๋ฌผ)์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

(2) ๋ฐฉ์ฃผ์ธ : ๋ฐฉ(๋งค๋ฌผ)์„ ๋“ฑ๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

(3) ๊ณต์ธ์ค‘๊ฐœ์‚ฌ : ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์ธ์ฆ๋ฐ›์€ ๊ณต์ธ์ค‘๊ฐœ์‚ฌ๋งŒ ๋ฐฉ(๋งค๋ฌผ)์„ ์Šน์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

(4) ๊ด€๋ฆฌ์ž : ๊ณต์ธ์ค‘๊ฐœ์‚ฌ์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ  ์Šน์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ

์กฐ์›์ด ์ด 3๋ช…์ด๊ณ , git์— ์˜ฌ๋ฆฌ๋ฉด์„œ ์ž‘์—…๋ฌผ์„ ํ•ฉ์น˜๋Š” ๊ณผ์ •์ด ์žˆ์–ด

์ดˆ๋ฐ˜ ์ž‘์—…์€ ์ถฉ๋Œ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋””๋น„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ตœ๋Œ€ํ•œ ์ž๊ธฐ ๋ชซ๋งŒํผ์˜ ํŒŒ์ผ๋งŒ ์ถ”๊ฐ€ํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋„๋ก ์ง„ํ–‰ํ–ˆ๋‹ค.

์ดˆ๋ฐ˜์˜ ์ฃผ์š” ์ž‘์—…์€ ์œค์ •์ด๋Š” ๋ฐฉ ์˜ฌ๋ฆฌ๊ธฐ, ํ–ฅ๋ฏธ๋Š” ๋ฐฉ ๊ฒ€์ƒ‰, ์„œํ•˜๋Š” ์œ ์ €๊ธฐ๋Šฅ์„ ๋งก์•„ ์ฃผ์š” ๊ธฐ๋Šฅ์˜ ๋ผˆ๋Œ€๋ฅผ ์žก๊ณ  ์ถ”๊ฐ€๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

 

 

 

1. ๋ฉ”์ธํ™”๋ฉด

 

 

 

๋ฉ”์ธํ™”๋ฉด

- ๊ฒ€์ƒ‰๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ ๊ฒ€์ƒ‰ํ•œ ์ง€์—ญ์— ๋Œ€ํ•œ ๋ฐฉ(๋งค๋ฌผ) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

- ์นด์นด์˜ค ์ฃผ์†Œ์ฐพ๊ธฐ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„๋กœ๋ช…์ฃผ์†Œ, ๊ตฌ์ฃผ์†Œ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

๋Œ€ํ‘œ์‚ฌ์ง„ ์‚ญ์ œ

 

์œ ์ €์˜ ์ตœ๊ทผ ๋ณธ ๋ฐฉ

- ๋กœ๊ทธ์ธ์„ ํ•œ ์œ ์ €์˜ ์ตœ๊ทผ๋ณธ ๋ฐฉ์„ ์ตœ๋Œ€ 3๊ฐœ๊นŒ์ง€ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

- ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฉ”์ธํ™”๋ฉด์„œ ์ด ํ™”๋ฉด์€ ํ™œ์„ฑํ™” ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

2. ํšŒ์›๊ฐ€์ž…

 

ํšŒ์›๊ฐ€์ž…

- email ์œ ํšจ์„ฑ๊ฒ€์‚ฌ, ์ค‘๋ณตํ™•์ธ, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ผ์น˜์—ฌ๋ถ€, ๊ธธ์ดํ™•์ธ, ์ด๋ฆ„, ์ „ํ™”๋ฒˆํ˜ธ ๋“ฑ์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•˜์—ฌ ajax๊ธฐ์ˆ ๋กœ ๋ฐ”๋กœ ์•ˆ๋‚ดํ• ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„ ๋˜์—ˆ๋‹ค.

- ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋ฉด ๊ทธ ์ •๋ณด๋กœ session์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ”๋กœ ๋กœ๊ทธ์ธ ๋œ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

 

3. ๋กœ๊ทธ์ธ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ

 

 

๋กœ๊ทธ์ธ

- ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ผ์น˜์—ฌ๋ถ€ ํ™•์ธํ•˜์—ฌ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

- cookie๋ฅผ ์ด์šฉํ•˜์—ฌ ์•„์ด๋””๋ฅผ ๊ธฐ์–ต ํ•  ์ˆ˜ ์žˆ๋‹ค.(์ผ์ฃผ์ผ ๋ณด๊ด€)

 

 

 

 

๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝํ•˜๊ธฐ

 

- ์ด๋ฉ”์ผ๊ณผ ํ•ธ๋“œํฐ๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด ๋ณธ์ธํ™•์ธ์„ ํ• ์ˆ˜ ์žˆ๋‹ค.

- ๋ณธ์ธํ™•์ธ์ด ๋˜๋ฉด ajax๊ธฐ์ˆ ์„ ํ†ตํ•ด ์ƒˆ๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ • ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์ถ”ํ›„ ์ด๋ฉ”์ผ ์ธ์ฆ์—ฌ๋ถ€๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ ํ™”๋ฉด์„ ๋ณ€๊ฒฝ ํ•  ์˜ˆ์ •

 

4. ๋งˆ์ดํŽ˜์ด์ง€

๋งˆ์ดํŽ˜์ด์ง€

- ์„ธ์ž…์ž, ๋ฐฉ์ฃผ์ธ์€ ๋ณ„ ๋‹ค๋ฅธ ์ธ์ฆ์ •๋ณด๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€์•Š๋Š”๋‹ค.

- ๊ณต์ธ์ค‘๊ฐœ์‚ฌ ์ธ์ฆํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ธ์ฆ์ •๋ณด๋ฅผ ์ž…๋ ฅ ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๊ด€๋ฆฌ์ž์˜ ์Šน์ธ์„ ๋ฐ›์€ ๊ณต์ธ์ค‘๊ฐœ์‚ฌ๋งŒ์ด ๋งค๋ฌผ ์Šน์ธํ•˜๊ธฐ ๋ฉ”๋‰ด๊ฐ€ ํ™œ์„ฑํ™” ๋œ๋‹ค.

 

 

์ค‘๊ฐœ์‚ฌ๋ฌด์†Œ ์ •๋ณด ์—…๋กœ๋“œ

- ์ค‘๊ฐœ์‚ฌ๋ฌด์†Œ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

5. ๊ณต์ธ์ค‘๊ฐœ์‚ฌ ์Šน์ธํ•˜๊ธฐ

 

๊ณต์ธ์ค‘๊ฐœ์‚ฌ ์Šน์ธํŽ˜์ด์ง€

- ํŽ˜์ด์ง€ ๊ด€๋ฆฌ์ž๋งŒ ๊ณต์ธ์ค‘๊ฐœ์‚ฌ ์Šน์ธํŽ˜์ด์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

- ๊ณต์ธ์ค‘๊ฐœ์‚ฌ ์Šน์ธ์„ ํ•˜๋ฉด ์Šน์ธ์—ฌ๋ถ€๊ฐ€ Y๋กœ ๋ฐ”๋€๋‹ค.

 

 

์ค‘๊ฐœ์‚ฌ๋ฌด์†Œ ์ •๋ณด ๋ณด๊ธฐ

 

 

6. ๋ฐฉ๋‚ด๋†“๊ธฐ

 

 

๋ฐฉ๋‚ด๋†“๊ธฐ

- ์ฃผ์†Œ์ฐพ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ฃผ์†ŒํŒ์—…์ฐฝ์ด ๋œจ๋ฉด ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์นด์นด์˜ค๋งต API๋ฅผ ํ†ตํ•ด ์œ„์น˜๋ฅผ ๋งˆ์ปค๋กœ ํ‘œ์‹œํ•˜๊ณ  WCONG ์ขŒํ‘œ๊ณ„์˜ ๊ฒฝ๋„, ์œ„๋„์˜ ๊ฐ’์„ ๋ฐ›์•„์˜จ๋‹ค.

 

 

 

- ๊ฑฐ๋ž˜์ •๋ณด ๋“ฑ์„ ์ž…๋ ฅ ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์ถ”๊ฐ€์ •๋ณด์˜ ์˜ต์…˜ํ•ญ๋ชฉ๋“ฑ์„ ์ค‘๋ณต์„ ํƒํ•˜์—ฌ ์•„์ด์ฝ˜์œผ๋กœ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

- ํŒŒ์ผ์„ ๋‹ค์ค‘์œผ๋กœ ์„ ํƒํ•˜์—ฌ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค.(commons-fileupload, commons-io ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ)

 

 

7. ๋งค๋ฌผ ์Šน์ธํ•˜๊ธฐ

 

 

 

- ๋ฐฉ๋“ฑ๋ก์„ ํ•˜๋ฉด ๋งค๋ฌผ์Šน์ธ์š”์ฒญ๊ธ€์ด ์˜ฌ๋ผ๊ฐ„๋‹ค.

- ๊ณต์ธ์ค‘๊ฐœ์‚ฌ๋Š” ๋งค๋ฌผ์„ ์ง์ ‘ ํ™•์ธํ•˜๊ณ  ๋งค๋ฌผ์„ ์Šน์ธํ•˜๋ฉด ๋ฏธ์Šน์ธ -> ์Šน์ธ ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ์ด ๋œ๋‹ค.

 

 

 

- ๋งค๋ฌผ ํ™•์ธํ•˜๊ณ  ์Šน์ธํ•˜๋ฉด ๊ณต์ธ์ค‘๊ฐœ์‚ฌ๊ฐ€ ํ™•์ธํ•œ ๋งค๋ฌผ์ด๋ผ๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

8. ๋ฐฉ์ฐพ๊ธฐ

 

 

- ๋ฐฉ ์ข…๋ฅ˜, ๋งค๋ฌผ์ข…๋ฅ˜๋ณ„๋กœ ์˜ฌ๋ผ์˜จ ๋ฐฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์ง€๋„์—์„œ ๋งค๋ฌผ์˜ ์œ„์น˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- ์œ„์น˜ ๋ณ„ ํด๋Ÿฌ์Šคํ„ฐ๋ง

 

 

๋Œ€ํ‘œ์‚ฌ์ง„ ์‚ญ์ œ

์‚ฌ์ง„ ์„ค๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”.

- ๋งค๋ฌผ ์‚ฌ์ง„์˜ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์˜ ํ•˜ํŠธ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๊ด€์‹ฌ๋ชฉ๋ก์— ์ถ”๊ฐ€๋œ๋‹ค.

 

 

- ํ•˜ํŠธ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ๊ด€์‹ฌ๋ชฉ๋ก ๋งค๋ฌผ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

- ๊ณต์ธ์ค‘๊ฐœ์‚ฌ๊ฐ€ ํ™•์ธํ•œ ๋งค๋ฌผ์ธ์ง€ ์•„๋‹Œ์ง€ ๋ฆฌ์ŠคํŠธ์—์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

9. ๋ฐฉ ์ƒ์„ธ๋ณด๊ธฐ

 

 

 

 

- ๊ธฐ๋ณธ์ •๋ณด, ๋งค๋ฌผ์‚ฌ์ง„, ์˜ต์…˜์‚ฌํ•ญ๋“ฑ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

- ํ•ด๋‹น ๋งค๋ฌผ์„ ์Šน์ธํ•œ ๊ณต์ธ์ค‘๊ฐœ์‚ฌ๊ฐ€ ์Šน์ธํ•œ ๋‹ค๋ฅธ ๋งค๋ฌผ์„ ์ตœ๋Œ€ 3๊ฐœ๊นŒ์ง€ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

์ถ”๊ฐ€๋กœ ์นด์นด์˜คํ†ก ๋กœ๊ทธ์ธํ•˜๊ธฐ, ์ด๋ฉ”์ผ์ธ์ฆ์„ ํ†ตํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ, ํด๋Ÿฌ์Šคํ„ฐ๋ง ๊ธฐ์ˆ  ๋“ฑ์˜ ์—…๋ฐ์ดํŠธ, ์‹œํ๋ฆฌํ‹ฐ๊ฐ€ ํ•„์š”ํ•˜์—ฌ ๋ฒ„์ „ ์—…๋กœ๋“œ ํ•˜์—ฌ AWS ๋ฐฐํฌ ์˜ˆ์ •์ด๋‹ค.

 

2์ฃผ๋™์•ˆ ์ˆ˜๊ณ ๋งŽ์•˜์–ด ์นœ๊ตฌ๋“ค:-)

 

 

 

 

ใ… ใ… ํฌํด์šฉ์ด๋ผ ๊ณ„์† ์—ด์–ด๋‘๊ณ  ์žˆ์—ˆ๋Š”๋ฐ AWS ๊ณผ๊ธˆ์œผ๋กœ ์ธํ•ด ๋‹ซ์•„์•ผ๊ฒŸ๋”ฐ

์†์ƒํ•˜๋‹ค.. ๋งŒ์‚ฌ์ฒœ์˜ค๋ฐฑ์› ๋‚˜๊ฐ“๋‹ค ํ‘..