Seize your moment! ๐Ÿ‘พ

์•ˆ๋…•ํ•˜์„ธ์š”. Eric์ž…๋‹ˆ๋‹ค. ์ œ ๋ธ”๋กœ๊ทธ์— ๋ฐฉ๋ฌธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ป ๊ฐœ๋ฐœ๊ณต๋ถ€/Project

[Spring Boot Project] Jambo! ๐Ÿ˜ ( JPA, AWS )

Eric_ko 2023. 2. 6. 21:34

โœ… ํ•œ์ค„ ์š”์•ฝ

IT๊ฐœ๋ฐœ ์Šคํ„ฐ๋”” ๋ชจ์ง‘ ๋ฐ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ

๐ŸŽฌ ์‹œ์—ฐ์˜์ƒ

https://www.youtube.com/watch?v=zw9jMcjHMfQ 

 

 

๐Ÿ”— GitHub Link

https://github.com/nonoro/Jambo

 

GitHub - nonoro/Jambo

Contribute to nonoro/Jambo development by creating an account on GitHub.

github.com

 

โœ… ์ƒ์„ธ๋‚ด์šฉ

์ €์˜ 3๋ฒˆ์งธ IT ํ”„๋กœ์ ํŠธ ์ด๋ฉฐ, Spring Boot ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘ํ•œ ํ”„๋กœ์ ํŠธ ์ž…๋‹ˆ๋‹ค.

๊ต์œก๋•Œ ๋ฐฐ์šด Jsp&Servelt ๊ธฐ๋ฐ˜์ด ์•„๋‹Œ, Thymeleaf ๋ฅผ front๋กœ ์‚ฌ์šฉํ•˜์˜€์œผ๋ฉฐ, AWS๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐํฌ๊นŒ์ง€ ์™„๋ฃŒํ•œ ํ”„๋กœ์ ํŠธ ์ž…๋‹ˆ๋‹ค.

 

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

 

๐Ÿ› ๏ธ ๊ฐœ๋ฐœํ™˜๊ฒฝ

- Spring Boot 2.7.6, Spring Security
- Java 11, Gradle
- JPA, Oracle 19c
- Thymeleaf
- SummerNote API, SSE(Server-Sent-Event)
- AWS
- Mac OS Ventura 13.0.1
- intelliJ IDEA
- Notion, Discord

 

๐Ÿ‘พ ๋‹ด๋‹น ๊ธฐ๋Šฅ

- ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - Spring Security ์ ์šฉ
    - ํšŒ์›๊ฐ€์ž…์‹œ ์•„์ด๋”” ์ค‘๋ณต์ฒดํฌ๋ฅผ AJAX๋กœ ๊ธฐ๋Šฅ ๊ตฌํ˜„
- ์Šคํ„ฐ๋”” ๊ฒŒ์‹œํŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - ์Šคํ„ฐ๋”” ๊ฒŒ์‹œํŒ ๊ธ€ ์ž‘์„ฑ์‹œ SummerNote API๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฒŒ์‹œ๊ธ€ ๊พธ๋ฏธ๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - ํšŒ์›์ด ์Šคํ„ฐ๋”” ๊ฒŒ์‹œ๊ธ€ ๋งˆ๊ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - ๋งˆ๊ฐ๋œ ์Šค๋”ํ„ฐ ๊ฒŒ์‹œ๊ธ€์ด ๊ฒŒ์‹œ๊ธ€ ๋ฆฌ์ŠคํŠธ์—์„œ ์ƒํƒœ์— ๋”ฐ๋ผ front ์—์„œ ๋‹ค๋ฅด๊ฒŒ ๋ณด์ด๋„๋ก ๊ธฐ๋Šฅ ๊ตฌํ˜„
- ์ผ๋ฐ˜ ๊ฒŒ์‹œํŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - ๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก, ์ˆ˜์ •, ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - ๊ฒŒ์‹œ๊ธ€ ์ข‹์•„์š” ๊ธฐ๋Šฅ ๊ตฌํ˜„ (ํšŒ์›๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํšŒ์›์€ ๊ฐ™์€ ๊ธ€์— ์ค‘๋ณต์œผ๋กœ ์ข‹์•„์š” ๋ถˆ๊ฐ€)
    - ๊ฒŒ์‹œ๊ธ€ ์‹ ๊ณ ํ•˜๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (ํšŒ์›๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํšŒ์›์€ ๊ฐ™์€ ๊ธ€์— ์ค‘๋ณต์œผ๋กœ ์‹ ๊ณ  ๋ถˆ๊ฐ€)
    - ํšŒ์›๋งŒ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๋„๋ก Srping Security ์ ์šฉ
- ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๊ธฐ๋Šฅ๊ตฌํ˜„
    - ๊ด€๋ฆฌ์ž ๋ฉ”์ธํŽ˜์ด์ง€์—์„œ ํšŒ์›์ด ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€, ํšŒ์›๊ฐ€์ž… ์ˆ˜, ํšŒ์› ์ •๋ณด, ์‹ ๊ณ ๋œ ๊ฒŒ์‹œ๊ธ€ ์ˆ˜ , ์Šคํ„ฐ๋”” ๊ฒŒ์‹œ๊ธ€ ์ˆ˜ ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - ํšŒ์›์ด ์‹ ๊ณ ํ•œ ๊ฒŒ์‹œ๊ธ€ ์‹ ๊ณ  ์‚ฌ์œ  ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - ํšŒ์›์ด ์‹ ๊ณ ํ•œ ๊ฒŒ์‹œ๊ธ€์„ ๊ฒŒ์‹œํŒ์—์„œ ์ˆจ๊ธฐ๊ธฐ, ํ™œ์„ฑํ™” ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - Spring Security ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ด€๋ฆฌ์ž ๊ณ„์ • ์ƒ์„ฑ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - ๊ด€๋ฆฌ์žํŽ˜์ด์ง€์—์„œ ๊ณต์ง€์‚ฌํ•ญ, ์†Œ์ž‘๋ชจ, ํ–‰์‚ฌ ๊ฒŒ์‹œํŒ ๊ธ€์“ฐ๊ธฐ
- AWS๋ฅผ ํ†ตํ•œ ๋ฐฐํฌ
    - AWS EC2 ์ธ์Šคํ„ด์Šค Amazon Linux ํ™˜๊ฒฝ
    - ssh๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค ์—ฐ๊ฒฐํ•˜์—ฌ ํ”„๋กœ์ œํŠธ build & run
    

๐Ÿ’ก ๊นจ๋‹ฌ์€์ 

- Git Commit message rule ์„ ๋งŒ๋“ค์–ด์„œ ํ™œ์šฉํ•จ ์œผ๋กœ์จ,์ˆ˜์ •ํ•  ๋ถ€๋ถ„์„ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉฐ commit message ์ด์šฉํ•œ ํ˜‘์—…์˜ ์ค‘์š”์„ฑ์„ ๊นจ๋‹ฌ์Œ.
- AWS๋กœ ์ธํ„ฐ๋„ท์œผ๋กœ ์ž๋ฃŒ๋ฅผ ์ฐพ์•„์„œ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•จ์œผ๋กœ์จ ๋ฐฐํฌ์— ๋Œ€ํ•˜์—ฌ ์ดํ•ดํ•˜๊ฒŒ ๋จ.
- Spring Boot + JPA ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ธฐ์กด์˜ ํ”„๋กœ์ ํŠธ์™€ ๋‹ค๋ฅด๊ฒŒ ์กฐ๊ธˆ๋” ๋น ๋ฅด๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.
- ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•˜์—ฌ MVC ๊ตฌ์กฐ์™€ Spring Boot & Spring Security ์˜ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ฒŒ ๋จ.

 

๐Ÿ”ฅ ๋ณด์™„ํ•ด์•ผํ•  ์ 

- ๊ฐ์ข… ์ •๋ณด ์ž…๋ ฅ์‹œ ์ •๊ทœํ™”์— ๋Œ€ํ•œ ํ•„์š”์„ฑ
- ๊ฐ method ํ๋ฆ„ ์ค‘์— ๋Œ€ํ•œ ๊ฒ€์ฆ์˜ ํ•„์š”์„ฑ
- ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ์‹œ DB์—์„œ ๊ฒŒ์‹œ๊ธ€์ด ๋ฐ”๋กœ ์‚ญ์ œ ๋˜๋Š”๋ฐ, ์ •๋ณด ์œ ์ง€๋ฅผ ์œ„ํ•ด์„œ ์ƒํƒœ ํšŒ์›์ด ์‚ญ์ œ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋„ ๊ฒŒ์‹œ๊ธ€์ด ์ˆจ๊ธฐ๊ธฐ ๊ธฐ๋Šฅ์œผ๋กœ ํ•˜๋„๋ก ํ•„์š”์„ฑ์„ ๋Š๋‚Œ.