E-Dobavki - ํ•™์ƒ๋“ค์ด ์ž‘์„ฑํ•œ Java ๋ฐ Spring Boot๋กœ ์‹ํ’ˆ ์ฒจ๊ฐ€๋ฌผ์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

์†Œ๊ฐœ

์ง€๋‚œ XNUMX๋…„ ๋™์•ˆ ์ €๋Š” ํ‚ค์˜ˆํ”„์— ์žˆ๋Š” IT ํ•™๊ต ์ค‘ ํ•œ ๊ณณ์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ฐ€๋ฅด์น˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด Just For Fun์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ๋•Œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ธ”๋กœ๊ทธ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๊ฐ€ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ด€์‹ฌ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์•Œ๋ ค ์ฃผ๊ณ  ์‹ถ์€ ๋งˆ์Œ์€ ์‚ฌ๋ผ์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด ์ฃผ์š” ์–ธ์–ด๋Š” Java์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ํœด๋Œ€ํฐ์šฉ ๊ฒŒ์ž„, ๋ฌด์„  ํ†ต์‹ ์šฉ ์†Œํ”„ํŠธ์›จ์–ด, ๋‹ค์–‘ํ•œ ์›น ์„œ๋น„์Šค๋ฅผ ๊ทธ ์œ„์— ์ผ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ์ž๋ฐ”๋ฅผ ๊ฐ€๋ฅด์นฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋‚˜๋Š” ๋‚˜์˜ ๋งˆ์ง€๋ง‰ ๊ทธ๋ฃน์˜ ํ›ˆ๋ จ์— ๊ด€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ณ  ์‹ถ๋‹ค. ํ›ˆ๋ จ ์‹œ์ž‘๋ถ€ํ„ฐ ์ž‘๋™ํ•˜๋Š” ์›น ์„œ๋น„์Šค ์ž‘์„ฑ๊นŒ์ง€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜์—ˆ๋Š”์ง€. ์˜์–‘ ๋ณด์ถฉ์ œ๋ฅผ ์ฐพ๋Š” ๋ฐ ์œ ์šฉํ•œ ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ์ด๋ฉฐ ๊ด‘๊ณ , ๋“ฑ๋ก ๋ฐ SMS๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ์ž์ฒด๋Š” ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค - E-Dobavki.com.

E-Dobavki - ํ•™์ƒ๋“ค์ด ์ž‘์„ฑํ•œ Java ๋ฐ Spring Boot๋กœ ์‹ํ’ˆ ์ฒจ๊ฐ€๋ฌผ์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ต์œก์ ์ด๋ฉฐ ๊ด‘๊ณ ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋Œ€๋กœ ์ด ๊ฐ„ํ–‰๋ฌผ, ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์ž์ฒด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์ „์— ๊ทธ๋ฃน์˜ ํ•™์Šต ๊ณผ์ •์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ๊ทธ๋ฆผ์ด ๋ถˆ์™„์ „ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

9๊ฐœ์›” ํ›ˆ๋ จ

์ œ๊ฐ€ ๊ฐ€๋ฅด์น˜๋Š” ํ•™๊ต์—์„œ๋Š” Java ๊ณผ์ •์ด ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๊ณผ์ •์€ ๋ชจ๋“  ๋ฐฉํ•™(์„ค๋‚  ์—ฐํœด, ์ค‘๊ฐ„ ํ”„๋กœ์ ํŠธ ์ž‘์„ฑ ์‹œ๊ฐ„)์„ ํฌํ•จํ•˜์—ฌ ์•ฝ 2๊ฐœ์›”์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์—์„œ๋Š” ํ•™์ƒ๋“ค์—๊ฒŒ ์–ธ์–ด์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜, ๋ฉ”์†Œ๋“œ, OOP ๊ธฐ๋ณธ ๋ฐ ๊ทธ ๋ชจ๋“  ๊ฒƒ.

๊ณผ์ •์˜ ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์—์„œ๋Š” ํ•™์ƒ์ด ์ด๋ฏธ Java ์ž‘์„ฑ ๋ฐฉ๋ฒ•์„ ์–ด๋Š ์ •๋„ ์ดํ•ดํ•˜๊ณ  ์žˆ์œผ๋ฉฐ "์„ฑ์ธ์šฉ" ๊ธฐ์ˆ  ์Šคํƒ์„ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ชจ๋‘ SQL๋กœ ์‹œ์ž‘ํ•œ ๋‹ค์Œ JDBC, Hibernate๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ HTTP, ์„œ๋ธ”๋ฆฟ. ๋‹ค์Œ์€ git๊ณผ maven์— ๊ด€ํ•œ Spring์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•™์ƒ๋“ค์€ ์ตœ์ข… ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ต์œก์€ ๋ชจ๋“ˆ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ์ผ์ฃผ์ผ์— ๋‘ ๋ฒˆ์”ฉ ์ˆ˜์—…์„ ์ง„ํ–‰ํ–ˆ์–ด์š”. XNUMXํšŒ ์ˆ˜์—…์‹œ๊ฐ„์€ XNUMX์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

๋‚˜์˜ ํ•™์Šต ๋ฐฉ์‹

5๊ฐœ ๊ทธ๋ฃน์„ ๋ฐœ๋งคํ–ˆ์–ด์š”. 2๋…„์ด๋ผ๋Š” ์‹œ๊ฐ„์ด ๋งŽ์€ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๊ฑฐ์˜ ํ•ญ์ƒ XNUMX๊ฐœ ๊ทธ๋ฃน์„ ๋ณ‘ํ–‰ํ•ด์„œ ์ด๋Œ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹ค์–‘ํ•œ ์ ‘๊ทผ๋ฒ•์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์€ ์ด๋ก ์ด ํฌํ•จ๋œ ํ”„๋ ˆ์  ํ…Œ์ด์…˜์— ํ•œ ์Œ์ด ํ• ๋‹น๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์Œ์€ ์ˆœ์ˆ˜ํ•œ ์—ฐ์Šต์ž…๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์–ด๋Š ์ •๋„ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ œ ์ƒ๊ฐ์—๋Š” ๋ณ„๋กœ ํšจ๊ณผ์ ์ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์„ ํƒํ•˜๊ณ  ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋‘ ๋ฒˆ์งธ ์˜ต์…˜์€ ์ „์ฒด ์ปคํ”Œ์„ ์ด๋ก ์— ์ „๋…ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋Œ€์‹ ์— ์ €๋Š” 5~10๋ถ„ ๋™์•ˆ ์ด๋ก ์˜ ์งง์€ ๋ถ€๋ถ„์„ ํ˜ผํ•ฉํ•˜๊ณ  ์‹ค์ œ ์‚ฌ๋ก€๋ฅผ ํ†ตํ•ด ์ฆ‰์‹œ ์ด๋ฅผ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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

๋ชจ๋‘๊ฐ€ ๋๊นŒ์ง€ ๊ฐ€๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค

๋‚˜์—๊ฒŒ ๊นจ๋‹ฌ์€ ์ ์€ ์ „์ฒด ๊ทธ๋ฃน์ด ์ฝ”์Šค๋ฅผ ๋๊นŒ์ง€ ์™„๋ฃŒํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์ด์—ˆ์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋“ค์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ ๋– ๋‚œ๋‹ค.

์ฒซ ๋ฒˆ์งธ๋Š” ๋ณต์žก์„ฑ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ๋ญ๋ผ๊ณ  ๋งํ•˜๋“  Java๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์–ธ์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด ํด๋ž˜์Šค, ๋ฉ”์†Œ๋“œ์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์™œ ๊ธ€์„ ์จ์•ผ ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๋ฉด ๊ณต๊ฐœ ์ •์  ๋ฌดํšจ ๋ฉ”์ธ(String[] arg) ์ดํ•ดํ•ด์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ๊ฐœ๋…์ด ๋” ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์ €๋ฅผ ํฌํ•จํ•˜์—ฌ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‹œ์ž‘ํ•œ ํ„ฐ๋ณด ํŒŒ์Šค์นผ๊ณผ ๋น„๊ตํ•ด ๋ณด์„ธ์š”.

begin
    writeln("ะŸะตั€ะฒะฐั ะฟั€ะพะณั€ะฐะผะผะฐ");
end.

์ œ๊ฐ€ ์•„๋Š” ํ•œ, ํ•™๊ต์—์„œ๋Š” ์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผ ๋„์ž…ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  ์‚ฌ๋žŒ์ด Java๋ฅผ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์•„์ง์€ ์ปจ์…‰ ๋‹จ๊ณ„์ด์ง€๋งŒ ๊ทธ ๋‹จ๊ณ„๋Š” ๋ถ„๋ช…ํžˆ ์˜ฌ๋ฐ”๋ฅธ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ ์ด์œ ๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

E-Dobavki - ํ•™์ƒ๋“ค์ด ์ž‘์„ฑํ•œ Java ๋ฐ Spring Boot๋กœ ์‹ํ’ˆ ์ฒจ๊ฐ€๋ฌผ์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์€ ์ข…์ข… ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ๋งŽ์€ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๊ทธ์— ๋Œ€ํ•œ ๋Œ€๊ฐ€๋กœ ๋งŽ์€ ๋ˆ์„ ๋ฒ„๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์นดํ”ผ๋ผ์ดํ„ฐ์ฒ˜๋Ÿผ ๋ˆ๋งŒ ๋” ๋งŽ์ด ๋ฒŒ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ˜„์‹ค์€ ์กฐ๊ธˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ˆ˜๋งŽ์€ ์ผ์ƒ์ ์ธ ์ฝ”๋“œ, ๋ˆˆ์— ๋„์ง€ ์•Š๋Š” ๋ฒ„๊ทธ, ๋Š์ž„์—†๋Š” ํ•™์Šต ๊ณผ์ •. ํฅ๋ฏธ๋กญ์ง€๋งŒ ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ํ•ด๋‹น๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ํ†ต๊ณ„์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ํ™”๊ฐ€ ๋‚˜์„œ ๋‚ด๊ฐ€ ๋ญ”๊ฐ€ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋Š” ๊ฒŒ ์•„๋‹Œ๊ฐ€ ํ•˜๋Š” ์ƒ๊ฐ๋„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‚˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”์Šค์—์„œ ํ†ต๊ณ„๊ฐ€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ๋Š” ๊ฑฑ์ •ํ•˜์ง€ ์•Š๊ณ  ๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์„ ๊ฐ€๋ฅด์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฐ์•ผ ์„œ๋น„์‚ฌ

ํ•™์ƒ๋“ค์ด ์ „์ฒด ๊ณผ์ •์„ ๋งˆ์น˜๊ณ  ๋‚˜๋ฉด ์ตœ์ข… ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์„ฑํ•  ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์•„์ด๋””์–ด๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ToDo ์‹œํŠธ, ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ ๋“ฑ์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•˜์ง€๋งŒ ์œ ์šฉํ•œ ์ผ์„ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ธฐ์ค€์€ ๊ฐ„๋‹จํ–ˆ๋‹ค. ๋‚˜์™€ ๋‚ด ์นœ๊ตฌ๋“ค์ด ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š๋ƒ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์‹ํ’ˆ ์ฒจ๊ฐ€๋ฌผ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ์›น ์„œ๋น„์Šค๋Š” ์ด๋Ÿฌํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„์ด๋””์–ด๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ƒ์ ์—์„œ ์ œํ’ˆ์„ ๊ตฌ๋งคํ•˜๋ฉด ๊ตฌ์„ฑ ์š”์†Œ์— ์ผ์ข…์˜ E-์ฒจ๊ฐ€๋ฌผ์ด ๋“ค์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์œ„ํ—˜ํ•œ์ง€ ์ฝ”๋“œ์—์„œ๋Š” ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ๋งŽ์€ ๊ตญ๊ฐ€์—์„œ ๊ธˆ์ง€๋œ ์œ„ํ—˜ํ•œ ์ฒจ๊ฐ€์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค).

์›น์‚ฌ์ดํŠธ๋ฅผ ์—ด๊ณ  ๋ณด์ถฉ์ œ ์ด๋ฆ„(๋ฒˆํ˜ธ, ๋Œ€์ฒด ์ด๋ฆ„ ์ค‘ ํ•˜๋‚˜)์„ ์ž…๋ ฅํ•˜๊ณ  ๋ณด์ถฉ์ œ ์š”์•ฝ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

E-Dobavki - ํ•™์ƒ๋“ค์ด ์ž‘์„ฑํ•œ Java ๋ฐ Spring Boot๋กœ ์‹ํ’ˆ ์ฒจ๊ฐ€๋ฌผ์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋ณด๊ฐ€ ํ•ญ์ƒ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋‹จ์ˆœํžˆ Google์— ์ฒจ๊ฐ€์ œ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ต์œก์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์œ„์˜ ์–ด๋ ค์›€์ด ์šฐ๋ฆฌ๋ฅผ ๋ง‰์ง€๋Š” ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค :)

ะ ะตะฐะปะธะทะฐั†ะธั

๋‹ค๋“ค ์ž๋ฐ”๋กœ ์ผ๋Š”๋ฐ, Github์˜ ํ”„๋กœ์ ํŠธ ์†Œ์Šค ์ฝ”๋“œ.

๋‚˜๋ฅผ ํฌํ•จํ•ด ์šฐ๋ฆฌ๋Š” 7๋ช…์ด์—ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ ํ’€ ์š”์ฒญ์„ ํ–ˆ๊ณ , ๋‚˜ ๋˜๋Š” ๊ทธ๋ฃน์˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด ํ’€ ์š”์ฒญ์„ ์ˆ˜๋ฝํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„์ด๋””์–ด๋ฅผ ํ‘œ๋ช…ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ํ˜„์žฌ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๊นŒ์ง€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์•ฝ ํ•œ ๋‹ฌ์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.

์ฒจ๊ฐ€์ œ ๋ถ„์„

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์—”ํ‹ฐํ‹ฐ, ์ €์žฅ์†Œ ๋“ฑ)๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ ์™ธ์— ํ•™์ƒ ์ค‘ ํ•œ ๋ช…์ด ๊ฐ€์žฅ ๋จผ์ € ํ•œ ์ผ์€ ๊ธฐ์กด ์ •๋ณด ์‚ฌ์ดํŠธ์—์„œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” ๋‚˜๋จธ์ง€ ํฌ์ธํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฑ„์šฐ๋Š” ๋ฐ ์ถ”๊ฐ€ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ฒจ๊ฐ€์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ตฌ๋ฌธ ๋ถ„์„ํ•œ ํ›„ UI, ์ •๋ ฌ ๋ฐ ํ•„ํ„ฐ๋ง์„ ์ถ”๊ฐ€๋กœ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

Spring Boot๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ํ”„๋กœํ•„์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœํ•„์€ ์„ค์ •์ด ํฌํ•จ๋œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ๋กœ์ปฌ H2 DBMS์™€ ๊ธฐ๋ณธ HTTP ํฌํŠธ(8080)๊ฐ€ ์žˆ๋Š” ํ”„๋กœํ•„์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ง€์›Œ์กŒ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํŒŒ์„œ๊ฐ€ ์šฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฒ€์ƒ‰ ๋ฐ ํ•„ํ„ฐ๋ง

์ค‘์š”ํ•œ ์ ์€ ๊ฒ€์ƒ‰๊ณผ ํ•„ํ„ฐ๋ง์ž…๋‹ˆ๋‹ค. ์ƒ์ ์— ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๋ณด์ถฉ์ œ ์ฝ”๋“œ๋‚˜ ์ด๋ฆ„ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋น ๋ฅด๊ฒŒ ํด๋ฆญํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์–ป์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Additive ์—”ํ„ฐํ‹ฐ์—๋Š” ์—ฌ๋Ÿฌ ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์ฝ”๋“œ, ๋Œ€์ฒด ์ด๋ฆ„, ์„ค๋ช…์ž…๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์€ ๋ชจ๋“  ํ•„๋“œ์—์„œ ๋™์‹œ์— ์ข‹์•„์š”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  [123]์ด๋‚˜ [amaranth]๋ฅผ ์ž…๋ ฅํ•ด๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด ๋ชจ๋“  ๊ฒƒ์„ ์‚ฌ์–‘์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ๋ณธ ๊ฒ€์ƒ‰ ์กฐ๊ฑด(์˜ˆ: ์ผ๋ถ€ ํ•„๋“œ)์„ ์„ค๋ช…ํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์กฐ๊ฑด(OR ๋˜๋Š” AND)์„ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” Spring์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

์ˆ˜์‹ญ ๊ฐœ์˜ ์‚ฌ์–‘์„ ์ž‘์„ฑํ•˜๋ฉด "์„ค๋ช…์— [๋นจ๊ฐ„์ƒ‰]์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ๋ชจ๋“  ์œ„ํ—˜ํ•œ ์ฐฉ์ƒ‰ ์ฒจ๊ฐ€์ œ"์™€ ๊ฐ™์€ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Spring ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ์ธก๋ฉด์—์„œ ์ €๋Š” ์ด๊ฒƒ์ด ๋งค์šฐ ํŽธ๋ฆฌํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋กœ ์ž‘์—…ํ•  ๋•Œ ํŠนํžˆ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ž์ฒด์ ์ธ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ˆ˜๋™์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ  ์ตœ์ ํ™”ํ•œ SQL ์ฟผ๋ฆฌ๊ฐ€ ๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋œ๋‹ค๋Š” ์ ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ €๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋ฏธ๋ฆฌ ์ตœ์ ํ™”ํ•  ํ•„์š”๋Š” ์—†๋‹ค๋Š” ๊ด€์ ๋„ ๊ณ ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์€ ์‹œ์ž‘, ์ž‘๋™ ๋ฐ ๊ฐœ๋ณ„ ๋ถ€ํ’ˆ ๊ต์ฒด๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ถ€ํ•˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ๊ฐœ๋ณ„ ๋ถ€๋ถ„์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ

๊ฐ„๋‹จ ํ•ด. ADMIN ์—ญํ• ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์‚ฌํ•ญ์„ ํŽธ์ง‘ํ•˜๊ณ  ์‚ญ์ œํ•˜๊ณ  ์ƒˆ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  (๋“ฑ๋ก ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด) ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ฒจ๊ฐ€์ œ ๋ชฉ๋ก์„ ํƒ์ƒ‰ํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒƒ์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

Spring Security๋Š” ๊ถŒํ•œ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋Š” ์•„๋ฌด๊ฒƒ๋„์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์ด ๊ณ„์†ํ•ด์„œ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์ผ๋ถ€ ๊ฐœ์ธํ™”๋œ ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•œ๋‹ค๋ฉด ๋“ฑ๋ก์ด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘์„ฑ๊ณผ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ

๋‹ค์Œ ํฌ์ธํŠธ๋Š” ์ ์‘์„ฑ์ด๋‹ค. ์šฐ๋ฆฌ ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ(์ ์–ด๋„ ์šฐ๋ฆฌ๊ฐ€ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ) ๋Œ€๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๋Š” ํœด๋Œ€ํฐ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํœด๋Œ€ํฐ์—์„œ ๋ณด์ถฉ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

CSS๋กœ ์ธํ•œ ์–ด๋ ค์›€์„ ๊ฒช์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” Bootstrap์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ธ๊ณ , ๋ช…๋ž‘ํ•˜๊ณ , ๊ดœ์ฐฎ์•„ ๋ณด์ธ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ด์ƒ์ ์ด๋ผ๊ณ  ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธํŽ˜์ด์ง€๋„ ๋œํ•˜๊ณ , ์ฒจ๊ฐ€๋ฌผ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช… ํŽ˜์ด์ง€๋„ ์ข์•„์„œ ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ์ข€ ๋” ๋„“๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์— ์ตœ๋Œ€ํ•œ ๊ฐ„์„ญํ•˜์ง€ ์•Š์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋‹ค๊ณ ๋ฐ–์— ๋ง์”€๋“œ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์•„์ง ํ•™์ƒ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก , ์‚ฌ๋žŒ๋“ค์€ ๋‚˜์ค‘์— ๊ทธ๋Ÿฌํ•œ ์ˆœ๊ฐ„์„ ๋ฐ”๋กœ์žก์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

SEO ์ตœ์ ํ™”์˜ ์ˆœ๊ฐ„

์ €๋Š” XNUMX๋…„ ๋„˜๊ฒŒ ์›น์‚ฌ์ดํŠธ์™€ SEO์— ๊ด€๋ จ๋œ ๋ชจ๋“  ์ผ์— ๋ฐ€์ ‘ํ•˜๊ฒŒ ์ฐธ์—ฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์†Œํ•œ ๊ธฐ๋ณธ์ ์ธ SEO ์ตœ์ ํ™” ์—†์ด๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ถœ์‹œํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ๊ฐ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ œ๋ชฉ ๋ฐ ์„ค๋ช… ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. URL์€ ๋” ์งง๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฑฐ์˜ CNC์ž…๋‹ˆ๋‹ค.

์ถœ์„ ์นด์šดํ„ฐ๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ์—”์ง„์˜ ๊ฒฝ๊ณ ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด Yandex ์›น๋งˆ์Šคํ„ฐ ๋ฐ Google Search Console์— ์‚ฌ์ดํŠธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ „์ฒด ์ƒ‰์ธ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด robots.txt ๋ฐ sitemap.xml๋„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ํ•™์ƒ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋“ค์—๊ฒŒ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋งํ•ด ์ค„ ๊ฒƒ์ด๊ณ , ๊ทธ๋“ค์ด ์›ํ•œ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

SSL ์ธ์ฆ์„œ๋ฅผ ์ฒจ๋ถ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ Let's Encrypt๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” Spring Boot๋ฅผ ์œ„ํ•ด ์ด๊ฒƒ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋ ต์ง€ ์•Š๊ณ  PS์— ๋Œ€ํ•œ ์‹ ๋ขฐ๋„๊ฐ€ ๋†’์•„์ง‘๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ทธ๋ ‡๋‹ค๋ฉด ์‚ฌ์‹ค ์„ ํƒ์€ ๋‚จ์ž๋“ค์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์˜ ์›๋ž˜ ์•„์ด๋””์–ด์—๋Š” ์ฒจ๊ฐ€์ œ์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ๋Š” ์ œํ’ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„ ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

"Snickers"๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์–ด๋–ค ์˜์–‘ ์ฒจ๊ฐ€๋ฌผ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

ํ”„๋กœ์ ํŠธ ์ดˆ๋ฐ˜์—๋„ ์ œํ’ˆ์ด ์—†์„ ์ค„ ์•Œ์•˜๊ฑฐ๋“ ์š” :) ๊ทธ๋ž˜์„œ ์ฒจ๊ฐ€๋ฌผ๋งŒ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฒŒ ๋์–ด์š”.

์ด์ œ ์ œํ’ˆ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ถ”๊ฐ€ ์ œํ’ˆ์„ ์†Œ๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋นต. ๊ด‘๋ฒ”์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ผ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ „๊ฐœ

์ด ํ”„๋กœ์ ํŠธ๋Š” VPS, Aruba Cloud์— ๋ฐฐํฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ €๋ ดํ•œ VPS์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด XNUMX๋…„ ๋„˜๊ฒŒ ์ด ๊ณต๊ธ‰์ž๋ฅผ ์‚ฌ์šฉํ•ด ์™”์œผ๋ฉฐ ๋งค์šฐ ๋งŒ์กฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

VPS ํŠน์„ฑ: 1GB RAM, 1 CPU(์ฃผํŒŒ์ˆ˜๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค), 20GB SSD. ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๋Š” ์ผ๋ฐ˜์ ์ธ mvn clean ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋Š” ๋ชจ๋“  ์ข…์†์„ฑ์ด ํฌํ•จ๋œ ์‹คํ–‰ ํŒŒ์ผ์ธ fat jar์ž…๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๊ฒƒ์„ ์•ฝ๊ฐ„ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ bash ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด์ „ jar ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ ํŒŒ์ผ์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์Šคํฌ๋ฆฝํŠธ๋Š” ์กฐ๋ฆฝ๋œ jar์„ ์‹คํ–‰ํ•˜์—ฌ ํ•„์š”ํ•œ ํ”„๋กœํ•„์˜ ์ด๋ฆ„์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœํ•„์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋™์ผํ•œ VPS์˜ MySQL์ž…๋‹ˆ๋‹ค.

์ „์ฒด ํ”„๋กœ์ ํŠธ ์žฌ์‹œ์ž‘์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • SSH๋ฅผ ํ†ตํ•ด VPS์— ๋กœ๊ทธ์ธ
  • ์ตœ์‹  Git ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”.
  • local-jar.sh ์‹คํ–‰
  • ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…๋ฃŒ
  • launch-production.sh๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

์ด ์ ˆ์ฐจ๋Š” XNUMX๋ถ„ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ž‘์€ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด๊ฒƒ์ด ํ˜„๋ช…ํ•œ ์„ ํƒ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์–ด๋ ค์›€

ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ฐ€์žฅ ํฐ ์–ด๋ ค์›€์€ ์กฐ์ง์  ์„ฑ๊ฒฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•์„ ์•„๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๊ทธ๋‹ค์ง€ ์ž˜ ์•Œ์ง€ ๋ชปํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ญ”๊ฐ€๋ฅผ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ทธ๊ฒƒ์„ ์‹ค์ œ๋กœ ์ ์šฉํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด์ œ ๊ทธ๋“ค์€ ํ•œ ๋‹ฌ ์•ˆ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ๊ทธ๋ฃน์—์„œ ์กฐ๊ฑด๋ถ€ ํŒ€ ๋ฆฌ๋”๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์ž‘์—… ๋ชฉ๋ก, ์ž‘์—… ๋ฐฐํฌ๊ฐ€ ํฌํ•จ๋œ Google ๋ฌธ์„œ๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ํ•ด๋‹น ์ž‘์—…์˜ ์ˆ˜๋ฝ์„ ํ†ต์ œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋˜ํ•œ ํ’€ ์š”์ฒญ์„ ์ˆ˜๋ฝํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ํ•™์ƒ๋“ค์—๊ฒŒ ๋งค์ผ ์ €๋… ๊ทธ๋“ค์ด ํ”„๋กœ์ ํŠธ์—์„œ ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์— ๋Œ€ํ•œ ์งง์€ ๋ณด๊ณ ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋„๋ก ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ทธ๋ƒฅ "์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ์“ฐ์„ธ์š”. ์ด๊ฒƒ์€ ํ›Œ๋ฅญํ•œ ์—ฐ์Šต์ด๋ฉฐ ์•ฝ๊ฐ„ ๊ธด์žฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ด ๊ทœ์น™์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ์šด๋™์˜ ๋ชฉ์ ์€ ๊ฐ„๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ์งง์€ ์‹œ๊ฐ„์ด๋ผ๋„ ํŒ€์„ ๊ตฌ์„ฑํ•˜์—ฌ ํ•จ๊ป˜ ์ผํ•˜์„ธ์š”.

๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ž์‹ ์˜ ์ผ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋Š๋ผ๊ธฐ๋ฅผ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง„๊ณต ์ƒํƒœ์—์„œ ๊ตฌํ˜• ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ์ดํ•ดํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์ด ํ•จ๊ป˜ ํ•˜๊ณ  ์žˆ๋Š” ์ผ์€ ๋‚˜์ค‘์— ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•  ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

์ฒ˜์Œ XNUMX, XNUMX์ฃผ๋Š” ์Œ“์ด๋Š” ๊ธฐ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์—”ํ„ฐํ‹ฐ์™€ ์†Œ๊ทœ๋ชจ ์ปค๋ฐ‹์ด ๋Š๋ฆฌ๊ฒŒ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ์”ฉ ๊ทธ๋“ค์„ ํœ˜์ €์–ด์ฃผ์—ˆ๊ณ , ์ž‘์—…์€ ๋”์šฑ ์žฌ๋ฏธ์žˆ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ฑ„ํŒ…์˜ ์˜์‚ฌ์†Œํ†ต์ด ๋”์šฑ ํ™œ๋ฐœํ•ด์กŒ๊ณ  ํ•™์ƒ๋“ค์€ ์ถ”๊ฐ€ ๋‚ด์šฉ์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชฉํ‘œ๊ฐ€ ๋‹ฌ์„ฑ๋˜์—ˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๊ณ  ์‚ฌ๋žŒ๋“ค์€ ํŒ€์—์„œ ์ผํ•˜๋ฉด์„œ ์•ฝ๊ฐ„์˜ ๊ฒฝํ—˜์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ์นœ๊ตฌ๋“ค์—๊ฒŒ ๋ณด์—ฌ์ฃผ๊ณ  ๋”์šฑ ๋ฐœ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์‹œ์ ์ด๊ณ  ์‹ค์งˆ์ ์ธ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ์‚ฌ ๊ฒฐ๊ณผ

ํ•™์Šต์€ ์žฌ๋ฏธ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์—…์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค ๋‚˜๋Š” ๊ฐ์ •์ ์œผ๋กœ ๋™์š”๋˜์–ด ๋Œ์•„์™”์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐ ์Œ์„ ๋…ํŠนํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ์ง€์‹์„ ์ „๋‹ฌํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ฐ€๋ฅด์น˜๋Š” ์กฐ๊ฐ€ ๊ฒฐ์Šน์— ์ง„์ถœํ•˜๋ฉด ๊ธฐ์˜๋‹ค. ๋‚จ์ž๋“ค์ด "๋‚˜ ์ทจ์งํ–ˆ์–ด, ๋‹ค ๊ดœ์ฐฎ์•„, ๊ณ ๋งˆ์›Œ"๋ผ๊ณ  ์“ธ ๋•Œ ํŠนํžˆ ๋ฉ‹์ ธ์š”. ํ›„๋ฐฐ๋ผ๋„, ์ฒ˜์Œ์—๋Š” ํฐ ๋ˆ์€ ์•„๋‹ˆ๋”๋ผ๋„. ํ•˜์ง€๋งŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ทธ๋“ค์ด ์ž์‹ ์˜ ์š•๋ง์„ ํ–ฅํ•ด ํ•œ ๊ฑธ์Œ ๋‚ด๋”›์—ˆ๊ณ  ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ์‚ฌ๊ฐ€ ์ƒ๋‹นํžˆ ๋ฐฉ๋Œ€ํ•ด์กŒ์ง€๋งŒ ๋ชจ๋“  ์š”์ ์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ๋ถˆ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋Œ“๊ธ€์— ์งˆ๋ฌธ์„ ์ ์–ด์ฃผ์„ธ์š”.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€