https://github.com/kimhyeyun/spring-master-personal-assignment ์๋ฃ...?๐ค? ใ
ํ
์คํธ ์ฝ๋๋ ์๋ต... ๋ด๋ง๋๋ก... ์๋๋ค ๋ด์ผ๋ง์ ํด์ ์๊ฐ์์ ์์ฑํ์ ใ
ใ
JQuery์ ์๊ฐ์ ๋ง์ด์ ํ์ง๋ง ํด๋๋ค ๋๋ ํด๋๋ค. ์ธ๊ฒ์๋ค... ๋ด์ผ์ ์ด์ฌํ ํด์ผ๊ฒ ๋ค.
์ ์ฒด ๊ธ
JWT ํ ํฐ ๊ฒ์ฆ ์ ๊ณ์๋ ์๋ฌ ์์ง์์ง... ์ ์๊พธ ๋ชจ๋ ๊ฒ์ฆ์์ Unsupported JWT token ์๋ฌ๊ฐ ๋ฐ์ํ ๊น......... ์ด์ ํ์ ์์๋ ์ ๋์๊ฐ๋๋ฐ...... ํน์๋ ๋จ์ด๊ฐ ์๋๋ผ ์ํ๋ฒณ ํ๋ํ๋ ๋ค ์ชผ๊ฐ์ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ parseClaimsJws() ์ด parseClaimsJwt()๋ก ์๋ชป๋์ด์์๋ค. ์๋ ์์ฑ๊ธฐ๋ฅ์ ํํด... ์ฒ์์ ํ ํฐ์ ์์ฑํ ๋, parseClaimsJws() parseClaimsJws()๋ผ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๊ฑธ ๋ณผ ์ ์๋๋ฐ, ์ด๊ฑฐ ๋์ ์ parseClaimsJwt()๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.์ด๋, ์ฐ๋ฆฌ๊ฐ ์ฒ์์ ํ ํฐ์ ์์ฑํ ๋ signWith์ ํตํด์ ์๋ช
์ ์งํํ๊ธฐ ๋๋ฌธ์ ๋ณตํธํ ์์๋ ์๋ช
์ ๋ํ ๊ฒ์ฆ์ ์งํํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. (Jw..
DB ๋ฅผ Java ์ฑ๊ณผ ์ฐ๋ํ๊ธฐ ์ํด JDBC ํ์๐ JDBC(Java Database Connectivity) JDBC Driver๋ ์ฌ๋ฌ ํ์
์ DB์ ์ฐ๊ฒฐํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณต JDBC Driver Manager๋ ๋ฐํ์ ์์ ์ Connection(์ฐ๊ฒฐ)์ ์์ฑํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์์ฒญํ ์ ์๋ ์ํ๋ฅผ ๋ง๋ค์ด ์ฃผ๊ณ Statement(์ํ)๋ฅผ ์์ฑํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์์ฒญํ๊ฒ ํด์ฃผ๊ณ ResultSet(๊ฒฐ๊ณผ ์
)์ ์์ฑํด ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ฌ ์ ์๊ฒ ํด์ค๋ค. โ ๏ธ ๊ผญ ์ฌ์ฉ ํ์๋ close()๋ฅผ ํธ์ถํด ์์ ํด์ ๋ฅผ ํด์ค์ผ ํ๋ค. โ ๏ธ JDBC ์ ์ฌ๋ฌ ๋ฌธ์ ๋ก QueryMapper ํ์ ๐ JDBC๋ก ์ง์ SQL์ ์์ฑํ์ ๋์ ๋ฌธ์ SQL ์ฟผ๋ฆฌ ์์ฒญ ์ ์ค๋ณต ์ฝ๋ ๋ฐ์ DB ๋ณ ์์ธ์ ๋ํ ๊ตฌ๋ถ ์์ด Checked ..
๋ณต์ต๊ณผ์ ์? https://github.com/kimhyeyun/spring-challenge-assignment ์ฃผ์ด์ง ์๊ตฌ์ฌํญ๋ค์ ๋๋ถ๋ถ ๊ตฌํํ๋๋ฐ, ๋ชปํ ๋ถ๋ถ์ ๋ฑํ๋ (์ฑ๋ฆฐ์ง ๊ณผ์ ) ๊ฒ์๊ธ์ด ์ญ์ ๋ ๋ ์ฐ๊ด๋ ๋๊ธ๋ ๊ฐ์ด ์ง์ฐ๋๋ก ์ค์ผ์ค๋ฌ ์ฝ๋ ๊ธฐ๋ฅ ์ถ๊ฐ ์ด ๋ถ๋ถ์ธ๋ฐ, ์ดํด๊ฐ ์๊ฐ์ง์์๋ค... ์ค์ผ์ค๋ฌ๋ก ์ฐ๊ด๋ ๋๊ธ ์ญ์ ....? ํค?? ๊ทธ๋๋ ๋ค๋ฅธ ๊ฒ๋ค์ ์ํ๋ค,.. s3 ์ฐ๊ฒฐ๋ ํ๊ณ , ์์ ๋์ง 90์ผ์ด ์ง๋ ๋ฐ์ดํฐ๋ ์๋์ผ๋ก ์ง์ฐ๋ ์ค์ผ์ค๋ฌ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ ๋ถ๋ถ๋ ํ๋ค. ๋๋ ๋งค์ผ ์์ ์ ๋ง์ง๋ง ์์ ์ผ๋ก๋ถํฐ 60์ผ์ด ๋์ ๊ฒ์๊ธ์ ์ญ์ ํ๋ค. ๋ณดํต 2๋ฌ ๋จ์๋ก ํด๋จผ์ฒ๋ฆฌ๊ฐ ๋๋ ๊ฒ์ ๋ง์ด ๋ดค์ด์ ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง ์์ ์ผ๋ก 2๋ฌ์ด๋ฉด ์ด๋ฏธ ์ํ์ก๋ค๊ณ ๋๊ปด์ ธ์ ใ
ใ
๋ด์ผ๋ถํฐ๋ ์ฌํ๋ณต์ต๊ณผ์ ใฑใฑ
๋ณต์ต ๊ณผ์ ์ค ๐ญ (์ฑ๋ฆฐ์ง ๊ณผ์ ) ํ์ ๊ฐ์
์, ์ด๋ฉ์ผ ํน์ SNS๋ก ์ธ์ฆ ๋ฒํธ๋ฅผ ์ ๋ฌ ๋ฐ๊ณ 5๋ถ ์ด๋ด์ ํด๋น ์ธ์ฆ ๋ฒํธ๋ฅผ ๊ฒ์ฆํด์ผ ํ์ ๊ฐ์
์ ์ฑ๊ณตํ๋๋ก ํด๋ณด๊ธฐ (redis TTL ํน์ง์ ์ข ๋ ํ์
ํ๊ธฐ ์ํจ.)์ด ๋ถ๋ถ์์ ๋งํ๋ค. ๋ง์ ๊ณ ๋ฏผ์ ํ๋ค๊ฐ ๊ฒฐ๊ตญ ๋ด์ผ๋ก ๋ฏธ๋ค๋ค. ๊ณ ๋ฏผ๋๋ ๋ถ๋ถ์ด view ๋จ์ด ์๊ธฐ ๋๋ฌธ์ ํ์๊ฐ์
์ด ์ฒ๋ฆฌ ์๋น์ค ์ฝ๋ ์ ์ ์ฒ๋ฆฌ๊ฐ ๋์ด์ผ ํ๋ค. ์ด๋ฉ์ผ ์ธ์ฆ์ด ๋์ง ์๋๋ค๋ฉด, ํ์๊ฐ์
์ด ๋๋ฉด ์๋๋ค. ์ด ๋ถ๋ถ์ด ๋ทฐ ๋จ์ด ์์ผ๋๊น, ์ด๋ป๊ฒ ๋ก์ง์ ์ง์ผํ๋์ง ๊ณ ๋ฏผ๊ณ ๋ฏผ ๐ค ํ์ ๊ฐ์
์ค์ ๋ฉ์ผ ์ธ์ฆ ๋ก์ง์ ๋ฃ๋ ๊ฒ์ด ๋ง๋๊ฐ? ์๋๋ฉด, ๋ฐ๋ก ์ปจํธ๋กค๋ฌ๋ฅผ ์ง๊ณ , ์ด ๊ณณ์ ๋์ด์ฌ ๋๋ ์ด๋ฏธ ๋ฉ์ผ์ธ์ฆ์ด ์๋ฃ๋์ด์์์ ํ์ ํ๊ณ ๊ฐ์
ํด์ผํ๋? ์๋๋ฉด request ๋ entity์ ๋ถ๋ฆฐ๊ฐ์ ๋ฃ..
Spring Event ์ฌ์ฉํ๋ ์ด์ ์ ์ฅ์ ๊ฐ์ฅ ์ฃผ๋ ์ด์ ๋ ์๋น์ค ๊ฐ์ ๊ฐํ ์์กด์ฑ์ ์ค์ด๊ธฐ ์ํจ ์๋ฅผ ๋ค์ด, ์ด๋ค ์ํ์ ์ฃผ๋ฌธํ๋ ํ๋ก์ธ์ค๊ฐ ์๊ณ , ํด๋น ํ๋ก์ธ์ค๋ ๋ด๋ถ์ ์ผ๋ก ์ฃผ๋ฌธ์ ์ฒ๋ฆฌํ ๋ค ํธ์ฌ ๋ฉ์์ง๋ฅผ ๋ฐ์กํ๊ณ , ๋ฉ์ผ์ ์ ์กํ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค๊ณ ๊ฐ์ ์ฃผ๋ฌธ ์ฒ๋ฆฌ์, ํธ์ฌ ๋ฉ์ธ์ง ๋ฐ์ก, ๋ฉ์ผ ์ ์ก ๊ธฐ๋ฅ์ด ๊ฐ๊ฐ์ ์๋น์ค(OrderService, PushService, MailService)์ ๊ตฌํ๋์ด ์์ ๊ฒฝ์ฐ, ์๋ ์ฝ๋์ ๊ฐ์ด ์ฃผ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํ๋ OrderService์์ ํธ์ฌ ๋ฉ์์ง๋ฅผ ๋ฐ์ํ๋ PushService์ ๋ฉ์ผ ์ ์ก์ ํ๋ MailService์ ๋ํ ์์กด์ฑ์ ์ฃผ์
๋ฐ์ ์ฌ์ฉํ๊ฒ ๋๋ค. @Service public class OrderService { private final PushS..
์ฑ๋ฆฐ์ง๋ฐ ๊ฐ์๋ฅผ ๋ค์ ๋ค์ผ๋ฉด์ ๊ณต๋ถ !!๐โ๏ธ!! ์ค๋์ S3์ EDA ์ด๋์ ๋~? AWS S3(Simple Storage Service)? ํ์ผ ์๋ฒ์ ์ญํ ์ ํ๋ ์๋น์ค ์ผ๋ฐ์ ์ธ ํ์ผ ์๋ฒ๋ ํธ๋ํฝ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ์ ์ฅ๋น๋ฅผ ์ฆ์คํ๋ ์์
์ด ํ์ํ๋ฐ, S3๋ ์ด์ ๊ฐ์ ๊ฒ์ ๋์ ํด์ค๋ค. ํธ๋ํฝ์ ๋ฐ๋ฅธ ์์คํ
์ ์ธ ๋ฌธใด์ ๋ฅผ ๊ฑฑ์ ํ ํ์๊ฐ ์์ด์ง๋ค. ๋, ํ์ผ์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ง์ ํ ์ ์์ด์ ์๋น์ค๋ฅผ ํธ์คํ
์ฉ๋๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์๋ค. ํน์ง ๋ง์ ์ฌ์ฉ์๊ฐ ์ ์ํด๋ ์ด๋ฅผ ๊ฐ๋นํ๊ธฐ ์ํ ์์คํ
์ ์ธ ์์
์ ํ์ง ์์๋ ๋๋ค. ์ ์ฅํ ์ ์๋ ํ์ผ ์์ ์ ํ์ด ์๋ค. ์ต์ 1๋ฐ์ดํธ์์ ์ต๋ 5TB์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๋น์คํ ์ ์๋ค. ํ์ผ์ ์ธ์ฆ์ ๋ถ์ฌ์ ๋ฌด๋จ์ผ๋ก ์์ธ์คํ์ง ๋ชปํ๋๋ก ํ ์ ์๋ค..
EDA(Event Driven Architecture)? ๋ถ์ฐ๋ ์์คํ
์์ ์ด๋ฒคํธ๋ฅผ ์์ฑ(๋ฐํ)ํ๊ณ , ๋ฐํ๋ ์ด๋ฒคํธ๋ฅผ ์ ์กํ๋ ๊ตฌ์กฐ๋ก ์์ ์๋ ๊ทธ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์ํคํ
์ฒ ๋ถ์ฐ ์ํคํ
์ฒ ํ๊ฒฝ์์ ์ํธ ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ธฐ ์ํด ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ํจํด์ผ๋ก ์ฃผ๋ก Message Broker(Kafka, RabbitMQ)์ ๊ฒฐํฉํ์ฌ ๊ตฌ์ฑ๋๋ค. ๊ตฌ์ฑ ์์ Event Generator(Publisher, Producer, Creater) ํ์คํ๋ ํ์์ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๋ค. ์์ฑ๋ ์ด๋ฒคํธ๋ Event Channel๋ก ์ ์ก๋๋ค. Event Channel(Bus) Event Generator์์ Event Processing Engine์ผ๋ก ์์ง๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ ๋งค์ปค๋์ฆ ์ฆ, ์ด๋ฒคํธ๋ฅผ ํ์๋ก ..