์ ๋ IT ์์ง๋์ด์ ๋๋ค. ์ธ์ ๊ฐ ์ง์ ๋์ "ํ์ฌ์?", "๊ฐ๋ฐ์?", "๊ฐ์ฌ?" ์ด๋ค ๋จ์ด๋ฅผ ์ ํํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด ๋์๋ ๋๊ฐ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ, IT ์์ง๋์ด๋ผ๋ ํํ์ด ์ ๊ฐ ์ ์ด์ธ๋ฆฌ๋ ์ง์ ๋ช ์ด๋ผ๋ ์๊ฐ์ด ๋ค์ด ์ง๊ธ๊น์ง๋ ์ง์ ๋์๋ "IT ์์ง๋์ด"๋ผ๊ณ ์ ๊ณ ์์ต๋๋ค.
์ง์ ์ด๋ผ๋ ๊ฒ์ ์์ ์ ์ผ์ ๋ํ๋ด๋ ๊ฒ์ด๊ณ , ์ผ์ด๋ผ๋ ๊ฒ์ ์ฌ๋ฏธ์๊ณ , ๋์์ด ๋๋ ์ผ์ด๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋๊ตฌ๋ ๋ค ์ํ๋๋๋ก ์ผ์ ํ๋ฉฐ ์ด์๋ ์์ง๋ง, ์ ๋ ์ ๊ฐ ํ๋ ์๋ ์ด ์ผ์ ์ข์ํ๋ ์๊ณ , ์ํ๊ณ ์ถ์ดํ๋ ์ฌ๋์ ๋๋ค. ๊ฐ๋ฐ์๋ก์จ, ๊ฐ์ฌ๋ก์จ, ์ปจ์คํดํธ๋ก์จ์ ์ญํ ์ ํด ์ค๋ฉด์, ๋งค๋ฒ ์๋กญ๊ฒ ์ถ์๋๊ณ ๋ณํํ๋ IT ์ ๊ธฐ์ ์ ๋ฐ๋ผ๊ฐ๊ธฐ์ ๊ธ๊ธํ์ง๋ง, ๊ทธ๋๋, ๋จ๋ค๋ณด๋ค ์กฐ๊ธ์ด๋ผ๋ ๋จผ์ ์ ํ๊ณ , ์ ํํ๊ณ , ์ฌ์ฉํ๊ณ ์ถ์ ์ฌ๋ ์ค ํ๋ช ์ ๋๋ค.
์ต๊ทผ ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ ๋ถ์ผ๋ ์จ๋ผ์ธ ๊ต์ก ์ปจ์คํ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ด์ฌ์๋ ๊ธฐ์ ์ Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes ๋ฑ์ ๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ์ค์ ๋ก ๊ฐ์๋ ํ๊ณ ์๊ณ ์ ๋ฌด์ ์ ์ฉํด์ ์ฌ์ฉ๋ ํ๊ณ ์์ต๋๋ค. ํ์ง๋ง, ์๋ ๋ฐฉ๋ํ ์ฃผ์ ์ด๋ค ๋ณด๋, ์์ง๊น์ง๋ ๊ณ์ ๊ณต๋ถํ๊ณ ์์ต๋๋ค.
๋จธ๋ฆฌ์์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์ง์ ํ ์ง์์ด ์๋๋ผ๊ณ ํฉ๋๋ค. ์ ๋ ์ ๊ฐ ๊ฐ์ง ์ง์๊ณผ ๊ฒฝํ์ ๋ค์ํ ๋ฐฉ๋ฒ์ ํตํด ๊ณต์ ํ๋ ค ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ , ์๋ก์ด ๋ถ์ผ, ์๋ก์ด ๊ธฐ์ ์ ๊ณ์ ๋์ ํ๊ณ ์๋ IT ์์ง๋์ด๊ฐ ๋ ๊ฒ์ ๋๋ค.
็พ) ์์ ์ด์์ปดํผ๋ ๋ํ
็พ) ๋๊ตญ๋ํ๊ต ๊ตญ์ ์ ๋ณด๋ํ์ ์ ๋ณด๋ณดํธํ๊ณผ ๋์ฐ๊ต์
ๅ) JP Morgan Chase AMJ Tech consultant (์ผ๋ณธ)
ๅ) ์ผ์ฑ SDS CMS ์ฌ์ ๋ณธ๋ถ ์ฑ ์ ์์ง๋์ด
Courses
Reviews
- Microservice Application (MSA) Development with Spring Cloud
- [Revised Edition] Setting up IntelliJ IDEA for web application development
- Building a CI/CD Pipeline with Jenkins
- Microservice Application (MSA) Development with Spring Cloud
- Building a CI/CD Pipeline with Jenkins
Posts
Q&A
Orders์ ํ ์ด๋ธ์ ์ฉ๋
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. CQRS์ Event Sourcing์ ํจ๊ป ์ฌ์ฉํ ๋, RDS์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฝ์ด์ค๋ ๋ฐฉ์์ Command ์์ญ๊ณผ Query ์์ญ์ ์ญํ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ผ๋ฐ์ ์ธ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDS) ํ ์ด๋ธ์ ์ฌ์ ํ ์ฌ์ฉ๋์ง๋ง, ๊ทธ ์ญํ ๊ณผ ๊ตฌ์กฐ๊ฐ ์ด๋ฒคํธ ์์ฑ ๋ชจ๋ธ์ ๋ง๊ฒ ๋ณํ๋ฉ๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก, ๋ฐ์ดํฐ๋ ๋ง์ํ์ ORDER_EVENT ์ ๊ฐ์ ์ด๋ฒคํธ ํ ์ด๋ธ์ด ๋งก๊ฒ ๋ฉ๋๋ค. Command ์ด๋ฒคํธ์ ๋ชจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ๋ง์ํ์ ๊ฒ์ฒ๋ผ ์ด๋ฒคํธ ํํ๋ก ์ ์ฅ๋ฉ๋๋ค. ์ฐ๊ธฐ ์์ญ์ ์๋ก์ด ์ด๋ฒคํธ๊ฐ ์ ์ฅ๋๋ฉด, ์ด ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ ํ๋ ํ๋ก์ ์ (Projection) ๋๋ ๋ฆฌ์ค๋๊ฐ ๋์ํ์ฌ Query ์์ญ์์๋ ์ฌ์ฉ ๋ฉ๋๋ค. CQRS+Event Sourcing ๊ธฐ๋ฐ์์๋ ๋ฐ์ดํฐ์ ์ต์ข ์ํ(Current State)๋ฅผ ์ ์ฅํ๋ ๊ธฐ์กด ๋ฐฉ์์ ์ ๊ทํ๋ RDS ํ ์ด๋ธ์ Command ์์ญ์์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.์ถ๊ฐ ๋ฌธ์์ฌํญ ์์ผ์๋ฉด ๋ค์ ๊ธ ๋จ๊ฒจ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 24
Q&A
yml ํ์ผ db ์ ์์ ๋ณด ์์ ํ ๋ฐฐํฌ ์ ๋ฏธ๋ฐ์
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค.Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์ด Tomcat ์์์ war ํ์ผ๋ก ๋ฐฐํฌ๋๋ฉด, Tomcat์ ํด๋น war ํ์ผ์ ์์ถ์ ํ๊ณ ๋ด๋ถ์ Spring Application Context๋ฅผ ๋ก๋ํ์ฌ ์คํํฉ๋๋ค. Spring Boot๋ ๋ถํ ์ ์ต์ด ํ ๋ฒ๋ง application.yml ํ์ผ์ ์ฝ์ด ๋ชจ๋ Bean๊ณผ ํ๊ฒฝ ์ค์ (Environment)์ ์ด๊ธฐํํ๊ฒ ๋๋๋ฐ, Tomcat์ด war ํ์ผ์ ๋ค์ ๋ฎ์ด์ธ ๋์ ๊ฐ์ด, ๋จ์ํ ํ์ผ์ ๋ฎ์ด์ฐ๋ ๊ฒ๋ง์ผ๋ก๋ ์ด๋ฏธ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋์ด ์คํ ์ค์ธ ๊ธฐ์กด์ Spring Application Context๋ฅผ ์๋์ผ๋ก ์ข ๋ฃํ๊ณ ์ ์ปจํ ์คํธ๋ก ๊ต์ฒดํ์ง ์์ต๋๋ค. RDS ์ ์ ์ ๋ณด๋, ์๋ฒ ํฌํธ, JPA/Hibernate (์์์ฑ ๊ด๋ จ ํต์ฌ Bean ์ด๊ธฐํ ์ ๋ณด) ๋ฑ์ application.yml ํ์ผ์ ์์ ํด๋, ์ด๋ฏธ ๋ฉ๋ชจ๋ฆฌ์ ์๋ Bean์ ์ฌ๊ตฌ์ฑํด์ผ ํ๋ฏ๋ก Tomcat์ ์ฌ์์(๋๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ์ ์ฌ๋ก๋)์ด ํ์ํฉ๋๋ค. ์ด๋ ๊ฒ Tomcat์ ์ฌ์์์ ํ์ง ์๋๋ผ๋ ์ผ๋ถ ์ค์ ์ Spring Boot์ ํต์ฌ Bean ์ด๊ธฐํ์๋ ๊ด๊ณ์์ด, ํด๋น ์ ๋ณด๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ค์ ์ฝ๋๋ก ์ค๊ณ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Spring Actuator ๊ธฐ๋ฅ์ ํตํด ์ค์๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ก๊น ๋ ๋ฒจ(logging.level.*)์ด๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์ ๋ฑ์ ์ผ๋ถ ์ ๋ณด๋ ๊ฐ๋ฅํฉ๋๋ค. ๋ง์ํ์ ๊ฒ์ฒ๋ผ, ๋์ ์ผ๋ก ์ค์ ์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋,Tomcat Manager์์ Undeploy ํ์ Redeploy๋ฅผ ๋ค์ ํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค. Jenkins ์์ ์์๋ ๋จ์ํ๊ฒ ๊ต์ฒดํ๋ ์์ ์ธ์ ์ด์ ์ ๋ฑ๋ก ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์ ํ๊ณ ๋ค์ ์ฌ๋ก๋ํ๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.Tomcat์ conf/Catalina/localhost/[your_context_name].xml ํ์ผ์ด๋ META-INF/context.xml ํ์ผ์ ์์ฑ์ ์ถ๊ฐํ๋ฉด, Tomcat์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋์ค๋ ์ค์ ํ์ผ ๋ณ๊ฒฝ์ ๊ฐ์งํ๊ณ ์๋์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ๋ฅผ ์ฌ๋ก๋๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ํ ์คํธํด ๋ณด์๊ณ , ์ถ๊ฐ ๋ฌธ์์ฌํญ ์์ผ์๋ฉด ๋ค์ ๊ธ ๋จ๊ฒจ ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 40
Q&A
ํน์ pk ์ธ ๋ณ๋์ id ๋ฅผ ๋ถ์ฌํ ์ด์ ๊ฐ ์์๊น์ ??
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๋ ์์ฑ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ ์ผ์ฑ(Uniqueness)์ ๋ณด์ฅํ๋ ์ญํ ์ ํ์ง๋ง, ๋ชฉ์ ๊ณผ ์ ์ฉ๋๋ ๋ ์ด์ด๊ฐ ์์ ํ ๋ค๋ฆ ๋๋ค. @Id๋ ์ํฐํฐ(๊ฐ์ฒด) ์๋ณ์ ์ํ JPA/๊ฐ์ฒด ์งํฅ ๋ ๋ฒจ์ ์ค์ ์ธ ๋ฐ๋ฉด, unique = true๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค(ํ ์ด๋ธ) ์ ์ฝ ์กฐ๊ฑด์ ์ํ ์ค์ ์ ๋๋ค. @Id๋ ํด๋น ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ์์์ฑ ์ปจํ ์คํธ(Persistence Context) ๋ด์์ ๊ณ ์ ํ๊ฒ ๊ตฌ๋ณํ๋ ์ ์ผํ ๊ธฐ์ค์ ๋๋ค. JPA์ ๋ชจ๋ ๊ธฐ๋ฅ(์ ์ฅ, ์กฐํ, ์์ , ์ญ์ )์ ์ด ๊ธฐ๋ณธ ํค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํ๋ฉ๋๋ค. ๋ฐ๋ฉด, Unique ์์ฑ์ ํด๋น ์ปฌ๋ผ์ ๊ฐ์ด ํ ์ด๋ธ ๋ด์์ ์ค๋ณต๋๋ ๊ฒ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ฐฉ์งํ์ฌ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค๋ง, ์ํฐํฐ์ ์๋ณ์๊ฐ ์๋๋ฉฐ, ํ์์ ๋ฐ๋ผ ์ฌ๋ฌ ์ปฌ๋ผ์ ์ ์ฉํ ์ ์์ต๋๋ค. (์: ์ฌ์ฉ์ ID, ์ด๋ฉ์ผ, ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ๋ฑ)๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 43
Q&A
๋ง์ดํฌ๋ก์๋น์ค์ ๋ชจ๋๋ฌ ์ํคํ ์ฒ ์ ํ ์ง๋ฌธ
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ๊ณผ ์ฉ๋๊ฐ MSA ๊ตฌ์กฐ๋ฅผ ์ ํํ๊ฑฐ๋ ๋จ์๋ฅผ ๋๋๋ ์ค์ํ ์์์์๋ ๋ถ๋ช ํฉ๋๋ค. ์ค์ ๋ก ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก Monolithic -> Microservice ์ ํ์์ ์ ๊ณ ๋ คํ๊ธฐ๋ ํ๊ณ , ๋๋์๊ฐ์ ๋ฐ์ดํฐ์ ์ฌ์ฉ๋๊ณผ ํ๋ก์ธ์ค์ ๋ฐ๋ผ ์๋น์ค๋ฅผ ๋ถ๋ฆฌํ๋ ์์ ์ ๊ณ ๋ คํ๊ธฐ๋ ํฉ๋๋ค. ๊ฐ์์์๋ ์ค๊ฐ์ค๊ฐ ๋ง์๋๋ฆฌ๊ธฐ๋ ํ๋๋ฐ, ๋ฌด์กฐ๊ฑด์ด๋ผ๋ ๊ฒ์๋ค๊ณ ์๊ฐ๋ฉ๋๋ค. ๋ค๋ง, DB๊ฐ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์ด๋ค ์ด์ ์ ์์ด ํ๋ก์ ํธ์ ๋ชจ๋ ๋์ ๋์ด์ผ ํ ๊ฒฝ์ฐ๋ผ๋ฉด, ๊ทธ ์ฉ๋์ ๋ง์ถฐ ์๋น์ค๊ฐ ๋ถํ ๋์ด์ผ ํ ๊ฒ์ด๊ณ , ๊ทธ๋ ๋ค๋ฉด, MSA ๊ตฌ์กฐ๋ก ๊ฐ ์ ์๋ ์ถฉ๋ถํ ์ด์ ๊ฐ ๋๋ค๊ณ ์๊ฐ๋ฉ๋๋ค. ๋ฌผ๋ก ํ๋์ ํ๋ก์ ํธ์์๋ ๋ค์์ DB๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ๊ตฌ์ฑํ ์๋ ์๊ธฐ ๋๋ฌธ์, ๋ง์๋๋ ธ๋๊ฒ์ฒ๋ผ ์ ๋์ ์ธ ๊ธฐ์ค์ผ๋ก ๊ฒฐ์ ํ๊ธฐ๋ ์กฐ๊ธ ์ด๋ ต์ง ์๋ ์ถ์ต๋๋ค. ์ถฉ๋ถํ ๋ต๋ณ์ด ๋์ง ๋ชปํ๋ค๋ฉด, ๋ค์ ๊ธ ๋จ๊ฒจ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค .
- 0
- 2
- 33
Q&A
MSA ์ํคํ ์ณ ํ๋ก์ ํธ ๊ตฌ์ฑ ๋ฐฉ์
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๋ง์ํ์ ๋ด์ฉ์ฒ๋ผ ๊ฐ์์์๋ ์ ์ฒด ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ROOT Project ๋ฐ์ผ๋ก ์ฌ๋ฌ ์๋น์ค๋ค (user, product, order ๋ฑ)์ SUB Project ๊ฐ๋ ์ผ๋ก ๋ฑ๋กํ์ฌ ๊ด๋ฆฌํ๋๋ก ํ์ต๋๋ค. ์ค์ ๋ก Maven์ด๋ Gradle๋ก ์๋ฐ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ ๋๋, ๋ค์์ ํ๋ก์ ํธ๋ผ ํ๋๋ผ๋ ํ๋์ Category๋ Group์ผ๋ก ๋ฌถ์ด ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ๊ฐ ํธํ ์ ์์ต๋๋ค. ๋ค๋ง, ๊ฐ์์์ ๋ง์๋๋ฆฐ ๋ด์ฉ์ฒ๋ผ ๋ฐฐํฌ ๋จ์, ๊ทธ๋ฆฌ๊ณ ์ค์ ๊ฐ๋ฐํ๋ ๋จ์๊น์ง ๊ณ ๋ คํ์ ๋ค๋ฉด, ์ด ๋ถ๋ถ์ ํ์ ๊ท๋ชจ๋ ๊ฐ๋ฐ์, ์ญํ ๋ฑ์ ๋ฐ๋ผ ๋๋์ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ํ๋์ ์กฐ์ง, ํ, ๊ฐ๋ฐ์๊ฐ ์ ์ฒด๋ฅผ ํ๋ก์ ํธ๋ฅผ ๊ณต์ ํ๊ณ , ์ด๊ณผ์ ์์ ์ธ๋ถ์ ์ธ ๋ชจ๋์ด๋ ์ฝ๋๋ฅผ ๋ ๋ถ๋ฆฌํด์ ๊ฐ๋ฐํ ์๋ ์๊ณ , ๊ฐ๊ฐ 1๊ฐ์ฉ ํ๋ก์ ํธ๋ฅผ ์ ๋ดํด์ ๊ฐ๋ฐํ ์๋ ์๊ณ , ๋ฐฐํฌ๋ฅผ ๋ด๋นํ ์๋ ์์ต๋๋ค. ์ด๋๊น์ง๋ ์กฐ์ง์ ๊ท๋ชจ์ ํ์ ์ญํ , ๊ฐ๋ฐ์ ๋จ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ณ , ๊ฑฐ๊ธฐ์ ๋ง์ถฐ ํ๋น๋ฉ๊ณผ R&R์ ๊ฒฐ์ ํ๋ ์์ ์ด ํ๋ก์ ํธ ์ด๊ธฐ ์์ ์ ์ด๋ค์ง๊ฒ ๋ ๊ฒ๋๋ค. ์ถ๊ฐ ๋ฌธ์์ฌํญ ์์ผ์๋ฉด ์ธ์ ๋ ์ง ๊ธ ๋จ๊ฒจ ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 42
Q&A
์น์ 2 - 12๊ฐ ๊ฐ์ ์ ๋ชฉ ๊ด๋ จ ์ง๋ฌธ์์ต๋๋ค.
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๋ง์ํ์ จ๋ ๋ถ๋ถ์ ๋ํด์ ์ ํํ ์์น๋ฅผ ์ฐพ์ง ๋ชปํด, ์ฐ์ ์ ๊ฐ์ ์๋๋ก ๋ง์๋๋ฆฝ๋๋ค. -.-;Modular Monolithic Architecture์ Layered Architecture ๋ชจ๋ Monolithic ๊ตฌ์กฐ์ ๋๋ค. ์ ํต์ ์ธ ์ค๊ณ ๋ฐฉ์์ผ๋ก ๊ธฐ์ ์ ๋ ์ด์ด ์ค์ฌ์ ๋ฐฉ์(Layered Architecture)๊ณผ ๋๋ฉ์ธ ์ค์ฌ์ผ๋ก ๋ด๋ถ๋ฅผ ์๋น์ค ๋จ์๋ก ๋๋ ํ๋์ ์ธ Monolithic ๋ฐฉ์์ ์ฐจ์ด๋ผ๊ณ ์๊ฐ๋ฉ๋๋ค. ๊ธฐ์ ๋จ์(Controller, Service, Repository ๋ฑ)๋ก ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๋ Layered ๋ฐฉ์๊ณผ ๋น๊ตํด์, ๊ธฐ๋ฅ๋ณ๋ก ๋ชจ๋ํํ์ฌ ๊ฐ์ ๋ ๋ฆฝ๋ Layer๋ก ์ฝ๋๋ฅผ ๋ถ๋ฆฌํด์ ์ฌ์ฉํ๋ ๋ฐฉ์์ Modular ๋ฐฉ์์ด ๋ง์๋๋ฆฌ๊ณ ์ ํ๋ ๋ด์ฉ์ด์์ต๋๋ค. ๊ฐ์ํ๋ ๋ด์ฉ ์ค ์ด๋ ๋ถ๋ถ์ด์๋์ง ์กฐ๊ธ ๋ ๋ง์ํด ์ฃผ์ค ์ ์์๊น์? ํด๋น ๋ถ๋ถ์ ํ์ธํ๊ณ ์์ ํด์ผ ํ ๋ถ๋ถ์์ผ๋ฉด ์์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 34
Q&A
GlobalFilter, LoggingFilter๊ฐ ๋์ํ์ง ์์ต๋๋ค.
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ์ฌ๋ ค์ฃผ์ ์ฝ๋์ ์ผ๋ถ๋ถ (Default Filter ๋ถ๋ถ, Global Filter)์ ์ ๊ฐ ๊ฐ์ง๊ณ ์๋ apigateway-service ํ๋ก์ ํธ์ ์ฎ๊ฒจ์ ์์ ํ์ ๋, ์๋์ ๊ฐ์ด ์ ์์๋ ๋์์ต๋๋ค. application.yml ํ์ผ์ ๋ค๋ฅธ ๋ถ๋ถ, ์๋ฅผ ๋ค์ด, server-port, eureka, routes ๋ฑ์ ์ค์ ์ ์ ์์ ์ผ๋ก ์๋๋๋๋๋ ํํฐ ๋ถ๋ถ๋ง ์๋๋์ง ์๋๋ค๋ฉด, ์ฌ์ฉํ์ apigateway-service ํ๋ก์ ํธ์ spring boot + spring cloud์ ๋ฒ์ ์ ํ์ธํด ๋ณด์๊ณ , ์๋ฐ์ฝ๋๋ฅผ ์ด์ฉํ์ฌ ์์ฑ๋ ํํฐ ์ฝ๋๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ(AbstractGatewayFilterFactory ์์)๊ณผ application.yml์ ์ง์ ํํฐ๋ฅผ ์ ์ฉํ๋ ๋ถ๋ถ์ ๋ถ๋ฆฌํด์ ๋ฐ๋ก๋ฐ๋ก ํ์ธํด ๋ณด์๊ณ ๋ชจ๋ ํํฐ๊ฐ ์๋๋์ง ์๋ ๊ฒ์ธ์ง๋ ํ์ธํด ๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ์ง์์ ์ธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ค๋ฉด, ์๋ ์ด๋ฉ์ผ๋ก ์์ ํ์ apigateway-service ํ๋ก์ ํธ ์ฝ๋๋ฅผ ์์ถํ์ฌ ๋ณด๋ด์ฃผ์๋ฉด, ์ ์ชฝ์์๋ ํ์ธํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. edowon0623@gmail.com๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 53
Q&A
ํ์ต ๋ฐฉํฅ
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ์ฝ๋๋ฅผ ์ง์ ์์ฑํ๋ค๋ ์๋ฏธ๋ ํด๋น ์ฝ๋๋ฅผ ๋ง๋ค ๋๋, ์ค๋ฌด์์ ํ์ํ ๊ฐ๋ฐํ ํ๋ ๊ฒฝ์ฐ์, ์ด๋๊ฐ ์ฐธ๊ณ ํ ๋งํ ์ฝ๋๋ Reference๊ฐ ์์ด๋, ๊ทธ๊ฑธ ๊ทธ๋๋ก Copy & Paste ํ๋ค๊ธฐ ๋ณด๋ค๋ ์ง์ ์ฝ๋๋ฅผ ์์ฑํด ๋ณธ๋ค๋ ์๋ฏธ์ ๋๋ค. ๊ฐ์์์๋ ํ์คํ์ค ์ ๋ ฅํ๋ ์๊ฐ์ ๊ฐ์ง๋ฉด, ๋ฃ๋ ์๊ฐ์๋ถ๋ค์ ๋ฐ๋ผ, ์ง๋ฃฐ ํ ์๋ ์์ด์, ์ต๋ํ ์ฌ์ฉํ ์ ์๋ ์ฝ๋๋ ์ ๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์ด์ฉํ์ฌ ์คํํ์ต๋๋ค. MSA ๊ด๋ จ๋ ์์ ๋ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ์ต์์น ์์ผ์๋ค๋ฉด, Github์ ์๋ ์ฝ๋๋ฅผ ์ฐธ์กฐํด์ ์ง์ ์์ฑํด ๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ๊ณ , ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์ ์ญํ ์ ๋ํด์ ์ด๋์ ๋ ํ์ ๋์ จ๋ค๋ฉด, ์ฒ๋ฆฌ๋๋ ํ๋ก์ธ์ค์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ณ ์ดํดํ๋๋ฐ ์ง์คํ๊ธฐ ์ํด ์์ฑ ๋ ์ฝ๋๋ฅผ ์คํํด ๋ณด์๋ ์ชฝ๋ ๋์์ด ๋์ง ์์๊น ์ถ์ต๋๋ค. ์ถ๊ฐ ์ง๋ฌธ์ฌํญ ์์ผ์๋ฉด ๋ค์ ๊ธ ๋จ๊ฒจ ์ฃผ์ธ์.๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 48
Q&A
์นดํ์นด ์ปค๋ฅํฐ ์ฌ์ฉ ๋ชฉ์ ๋ฌธ์
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๊ฐ์์์ ์ธ๊ธํ ์นดํ์นด ์ปค๋ฅํธ๋ฅผ ์ฌ์ฉํ order-service์ DB์์ ์ฐ๊ฒฐ์ ์ฌ์ฉ๋์ ๋ง์ ์๋น์ค๋ค์ด ๋ถํ๊ฐ ๊ฑธ๋ฆด ์ ์๋ ์ํฉ์์ DB์์ ์ง์ ์ ์ธ ์ฐ๊ฒฐ ๋์ , Queue ๋ฐฉ์์ ์ด์ฉํด์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์ค๋ช ๋๋ ธ์ต๋๋ค. ๋ง์ํ์ ๋๋ก ์ฌ๋ฌ order-service๊ฐ ์ง์ ํ๋์ DB์ ์ฐ๊ฒฐ๋์ด ์์ ํ๋ค๋ฉด, ๋๊ธฐํ ๋ฌธ์ ๋ ํด๊ฒฐ๋ ์ ์์ ์ ์์ผ๋, order-service์์์ ๋ค๋ ์์ฒญ์ ์ํด DB์ ๋ณ๋ชฉ ํ์์ด ์๊ธฐ๊ฑฐ๋, DB๋ก๋ถํฐ์ ์ฒ๋ฆฌ ์๋ฃ ์ ๊น์ง order-service๊ฐ ๋๊ธฐํด์ผ ํ๋ ์๊ฐ์ ๊ฐ์ ธ์ผ ํ๋ ์ ์ MQ๋ฅผ ์ด์ฉํด์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ์ค๋ช ๋๋ ธ์ต๋๋ค. ์๋น์ค์ ์ฌ์ฉ๋, ๋คํธ์ํฌ์ ํธ๋ํฝ, ์ค์ผ์ผ๊ณผ์ ๋น์ฉ ๋ฑ์ ๊ณ ๋ คํด์ ์นดํ์นด์ ์นดํ์นด ์ปค๋ฅํธ ์ฌ์ฉ์ ๋์ ์ ๊ณ ๋ คํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 44
Q&A
Kafka Source Connect ๋ฒ์ ์๋ฌ
์๋ ํ์ธ์ ์ด๋์์ ๋๋ค. ์ต์ Kafka์์๋ Kraft ๋ชจ๋๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์คํ๋๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. ๋ง์ํ์ ์ค๋ฅ๋ Confluent 5.5.2 ๋ฒ์ ๋ง๊ณ , ๊ทธ ์ ๋ฒ์ ์ธ 6.1.0 ๋ฒ์ ์ผ๋ก ํ ์คํธํด ๋ณธ ๊ฒฐ๊ณผ Windows์์๋ ์ ์์ ์ผ๋ก ์๋๋จ์ ํ์ธํ์ต๋๋ค. ๋ค๋ง Confluent ์ต์ ๋ฒ์ ์ ์ํ๋ 8.x ๋ฒ์ ์ผ๋ก ํ ์คํธ ์ SLF4j ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํธํ์ฑ ๋ฌธ์ ๋ก ์ค๋ฅ๊ฐ ๋ฐ์๋์์ต๋๋ค. ์ฐ์ Confluent 6.1.0 ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝํ์๊ณ ์คํํด ๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 46






![Thumbnail image of the [Revised Edition] Setting up IntelliJ IDEA for web application development](https://cdn.inflearn.com/public/courses/331621/cover/3c440a92-fca5-4ce0-a950-d5865d534892/331621-eng.png?w=148)
