Dowon Lee
@kenneth
Students
30,181
Reviews
1,672
Course Rating
4.8
Posts
Q&A
git ์ ๊ฐ์๋ด์ฉ์ ํ์ํ ํ์ผ๋ค ์กด์ฌํ์ง ์์
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค.๋ง์ํ์ Pipeline ๊ด๋ จ ์คํฌ๋ฆฝํธ๋ ๋ค๋ฅธ Repo์ ์์ต๋๋ค .https://github.com/joneconsulting/jenkins_pipeline_script์ URL์์ ํ์ธํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 36
Q&A
์ ํจ์ค์ ๋ฑ๋ก๋..
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๋ต๋ณ์ด ๋ฆ์ด ์ฃ์กํฉ๋๋ค. ์๋ AI ๋ต๋ณ์ฒ๋ผ, Jenkins์์ ์ ๊ณต๋๋ API(https://www.jenkins.io/doc/book/using/remote-access-api/)๋ฅผ ์ฌ์ฉํ์ค ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ํ๋ก์ ํธ(์ก)์ ๋ชฉ๋ก์ ๊ฒฝ์ฐ, https://[Jenkins_์ฃผ์]/api/json?tree=jobs[name,url,color] ๋ผ๊ณ ์น ๋ธ๋ผ์ฐ์ ์์ ํธ์ถํด ๋ณด์๋ฉด, ์๋์ ๊ฐ์ ๋ชฉ๋ก์ ํ์ธํด ๋ณด์ค ์ ์์ต๋๋ค. (์ฌ์ง) ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 63
Q&A
ํ์ํ ํ์ผ๋ง ๊ฐ์ง๊ณ ๋ฐฐํฌํ ์ ์๋์?
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. AI ๋ต๋ณ์ด ๋ฌ๋ ค์์ด, ๋ฏธํ์ธ์ผ๋ก ๋ณด์ด์ง ์์์ต๋๋ค. ๋ต๋ณ์ด ๋ฆ์ด ์ฃ์กํฉ๋๋ค. ๋ง์ฝ, ๋ง์ํ์ ๋๋ก ์ผ๋ถ์ ์ฝ๋๋ง ์ ๋ณ์ ์ผ๋ก ์ทจํฉํ์ฌ ๋ฐฐํฌํ๋ ค๋ฉด, Shell Script๋ Jenkinsfile์ ํตํด ๊ฐ๋จํ ํํฐ๋ง์ผ๋ก ์์ ํด ๋ณผ ์๋ ์์ต๋๋ค. ๊ฐ์์์๋ Jenkinsfile์ ์ง์ ํ๋ก๊ทธ๋๋ฐ ํด์ ์ฒ๋ฆฌํ๋ ์์ ์ ๋ง์ด ๋ฃ์ง๋ ๋ชปํ๋๋ฐ, ์๋์ ๊ฐ์ด ์ ํํด์ ํด ๋ณผ ์ ์์ต๋๋ค. (์๋ AI ๋ต๋ณ์ฒ๋ผ ํ์ํ ํ์ผ์ ๋ณ๋์ ํด๋์ ์ ์ฅํ ๋ค์์ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค)์๋ ์์์์ ์ฌ์ฉํ rsync (remote sync)๋ช ๋ น์ด๋ ํน์ ํจํด์ ํ์ผ๋ง ํฌํจํ๊ฑฐ๋ ์ ์ธํ๋ ๊ธฐ๋ฅ์ด ์ฌ์ฉ๋ ์ ์๋ ๋ช ๋ น์ด๋ก์จ, Linux ์์คํ ์์ ํ์ผ์ ํจ์จ์ ์ผ๋ก ์ ์กํ๊ณ ๋๊ธฐํํ๊ธฐ ์ํ ์ ํธ๋ฆฌํฐ ์ ๋๋ค. pipeline { agent any stages { script { // 1. JSP ํ์ผ๋ง ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ echo "Deploying only JSP files..." sh """ rsync -avzR --include='*.jsp' --include='*/' --exclude='*' \ ./ ${REMOTE_USER}@${REMOTE_HOST}:${TARGET_DIR} """ // 2. 'admin-'์ผ๋ก ์์ํ๋ ํ์ผ๋ง ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ echo "Deploying files starting with 'admin-'..." sh """ rsync -avzR --include='admin-*' --include='*/' --exclude='*' \ ./ ${REMOTE_USER}@${REMOTE_HOST}:${TARGET_DIR} """ } } }๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 53
Q&A
์ฝ๊ธฐ ๋ชจ๋ธ์ ์กฐํ ์ต์ ํํ์ฌ ์ฑ๋ฅ ํฅ์ ํ๋ ๋ฐฉ๋ฒ
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๋ต๋ณ์ด ๋ฆ์ด ์ฃ์กํฉ๋๋ค. ๋จผ์ , ์ง๋ฌธ1์, ์๋ AI ๋ต๋ณ์์๋ ์ธ๊ธ ๋ ๊ฒ์ฒ๋ผ, ๋ช ๋ น๊ณผ ์กฐํ๊ฐ ์์ฌ ์๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์ ์ด ๋ ๋ณต์กํด ์ง ์ ์์ต๋๋ค. ํ๋์ ์คํ ๋ฆฌ์ง์์ 2๊ฐ์ง ๋ถ๋ฆฌ๋ ์์ ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์, ํ์ฅ์ฑ์๋ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. ์กฐํ๋ ํธ๋ํฝ์ด ๋ง์๋ฐ, ์ ๋ฐ์ดํธ๋ ๊ทธ๋ ์ง ์๋ค๊ณ ํ ๋, ์กฐํ๋ง์ ์ํด ํ์ฅํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์๊ธธ ์ ์์ต๋๋ค. ๊ฐ๋จํ๊ฒ๋ ์ด๋ฌํ ๋ถ๋ถ๋ง ๊ณ ๋ คํด ๋ณด๋๋ผ๋ ์ต์ ํ์ ๋ฌธ์ ๊ฐ ์์ ์ ์์ต๋๋ค. ์ง๋ฌธ2๋, AI ๋ต๋ณ์ ์๋ 2๊ฐ์ง ์ ๋๋ฅผ ๋ ์ถ๊ฐํด ๋ณผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋น๋๊ธฐ ์ด๋ฒคํธ ์คํธ๋ฆฌ๋ฐ์ ํตํ "์ฐ๊ธฐ-์กฐํ" ๊ฐ๊ทน ์ต์ ํ์ ๋ฌธ ๊ฒ์ ์์ง(Full-text Search) ๋ฐ ๋ค์ค ํฌ์(Multiple Projections): ์๋ฅผ ๋ค์ด, ์๋ฅผ ๋ค์ด, ์ํ ์ ๋ณด๊ฐ ๋ณ๊ฒฝ๋์์ ๋ ์ด๋ฅผ ์ผ๋ฐ RDB ๊ธฐ๋ฐ ์กฐํ ๋ชจ๋ธ๋ฟ๋ง ์๋๋ผ Elasticsearch์ ๊ฐ์ ๊ฒ์ ์์ง์๋ ๋์์ ๋ฐ์(Projection)ํฉ๋๋ค. ์ด๋ ๊ฒ์ ์ ์ฐ์ฑ์ด๋ ๋ง์ถคํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์์ต๋๋ค. ์ถ๊ฐ ๋ฌธ์ ์ฌํญ ์์ผ์๋ฉด ๊ธ๋จ๊ฒจ ์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 47
Q&A
Orders์ ํ ์ด๋ธ์ ์ฉ๋
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. CQRS์ Event Sourcing์ ํจ๊ป ์ฌ์ฉํ ๋, RDS์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฝ์ด์ค๋ ๋ฐฉ์์ Command ์์ญ๊ณผ Query ์์ญ์ ์ญํ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ผ๋ฐ์ ์ธ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDS) ํ ์ด๋ธ์ ์ฌ์ ํ ์ฌ์ฉ๋์ง๋ง, ๊ทธ ์ญํ ๊ณผ ๊ตฌ์กฐ๊ฐ ์ด๋ฒคํธ ์์ฑ ๋ชจ๋ธ์ ๋ง๊ฒ ๋ณํ๋ฉ๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก, ๋ฐ์ดํฐ๋ ๋ง์ํ์ ORDER_EVENT ์ ๊ฐ์ ์ด๋ฒคํธ ํ ์ด๋ธ์ด ๋งก๊ฒ ๋ฉ๋๋ค. Command ์ด๋ฒคํธ์ ๋ชจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ๋ง์ํ์ ๊ฒ์ฒ๋ผ ์ด๋ฒคํธ ํํ๋ก ์ ์ฅ๋ฉ๋๋ค. ์ฐ๊ธฐ ์์ญ์ ์๋ก์ด ์ด๋ฒคํธ๊ฐ ์ ์ฅ๋๋ฉด, ์ด ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ ํ๋ ํ๋ก์ ์ (Projection) ๋๋ ๋ฆฌ์ค๋๊ฐ ๋์ํ์ฌ Query ์์ญ์์๋ ์ฌ์ฉ ๋ฉ๋๋ค. CQRS+Event Sourcing ๊ธฐ๋ฐ์์๋ ๋ฐ์ดํฐ์ ์ต์ข ์ํ(Current State)๋ฅผ ์ ์ฅํ๋ ๊ธฐ์กด ๋ฐฉ์์ ์ ๊ทํ๋ RDS ํ ์ด๋ธ์ Command ์์ญ์์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.์ถ๊ฐ ๋ฌธ์์ฌํญ ์์ผ์๋ฉด ๋ค์ ๊ธ ๋จ๊ฒจ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 45
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
- 65
Q&A
ํน์ pk ์ธ ๋ณ๋์ id ๋ฅผ ๋ถ์ฌํ ์ด์ ๊ฐ ์์๊น์ ??
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๋ ์์ฑ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ ์ผ์ฑ(Uniqueness)์ ๋ณด์ฅํ๋ ์ญํ ์ ํ์ง๋ง, ๋ชฉ์ ๊ณผ ์ ์ฉ๋๋ ๋ ์ด์ด๊ฐ ์์ ํ ๋ค๋ฆ ๋๋ค. @Id๋ ์ํฐํฐ(๊ฐ์ฒด) ์๋ณ์ ์ํ JPA/๊ฐ์ฒด ์งํฅ ๋ ๋ฒจ์ ์ค์ ์ธ ๋ฐ๋ฉด, unique = true๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค(ํ ์ด๋ธ) ์ ์ฝ ์กฐ๊ฑด์ ์ํ ์ค์ ์ ๋๋ค. @Id๋ ํด๋น ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ์์์ฑ ์ปจํ ์คํธ(Persistence Context) ๋ด์์ ๊ณ ์ ํ๊ฒ ๊ตฌ๋ณํ๋ ์ ์ผํ ๊ธฐ์ค์ ๋๋ค. JPA์ ๋ชจ๋ ๊ธฐ๋ฅ(์ ์ฅ, ์กฐํ, ์์ , ์ญ์ )์ ์ด ๊ธฐ๋ณธ ํค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํ๋ฉ๋๋ค. ๋ฐ๋ฉด, Unique ์์ฑ์ ํด๋น ์ปฌ๋ผ์ ๊ฐ์ด ํ ์ด๋ธ ๋ด์์ ์ค๋ณต๋๋ ๊ฒ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ฐฉ์งํ์ฌ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค๋ง, ์ํฐํฐ์ ์๋ณ์๊ฐ ์๋๋ฉฐ, ํ์์ ๋ฐ๋ผ ์ฌ๋ฌ ์ปฌ๋ผ์ ์ ์ฉํ ์ ์์ต๋๋ค. (์: ์ฌ์ฉ์ ID, ์ด๋ฉ์ผ, ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ๋ฑ)๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 73
Q&A
๋ง์ดํฌ๋ก์๋น์ค์ ๋ชจ๋๋ฌ ์ํคํ ์ฒ ์ ํ ์ง๋ฌธ
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ๊ณผ ์ฉ๋๊ฐ MSA ๊ตฌ์กฐ๋ฅผ ์ ํํ๊ฑฐ๋ ๋จ์๋ฅผ ๋๋๋ ์ค์ํ ์์์์๋ ๋ถ๋ช ํฉ๋๋ค. ์ค์ ๋ก ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก Monolithic -> Microservice ์ ํ์์ ์ ๊ณ ๋ คํ๊ธฐ๋ ํ๊ณ , ๋๋์๊ฐ์ ๋ฐ์ดํฐ์ ์ฌ์ฉ๋๊ณผ ํ๋ก์ธ์ค์ ๋ฐ๋ผ ์๋น์ค๋ฅผ ๋ถ๋ฆฌํ๋ ์์ ์ ๊ณ ๋ คํ๊ธฐ๋ ํฉ๋๋ค. ๊ฐ์์์๋ ์ค๊ฐ์ค๊ฐ ๋ง์๋๋ฆฌ๊ธฐ๋ ํ๋๋ฐ, ๋ฌด์กฐ๊ฑด์ด๋ผ๋ ๊ฒ์๋ค๊ณ ์๊ฐ๋ฉ๋๋ค. ๋ค๋ง, DB๊ฐ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์ด๋ค ์ด์ ์ ์์ด ํ๋ก์ ํธ์ ๋ชจ๋ ๋์ ๋์ด์ผ ํ ๊ฒฝ์ฐ๋ผ๋ฉด, ๊ทธ ์ฉ๋์ ๋ง์ถฐ ์๋น์ค๊ฐ ๋ถํ ๋์ด์ผ ํ ๊ฒ์ด๊ณ , ๊ทธ๋ ๋ค๋ฉด, MSA ๊ตฌ์กฐ๋ก ๊ฐ ์ ์๋ ์ถฉ๋ถํ ์ด์ ๊ฐ ๋๋ค๊ณ ์๊ฐ๋ฉ๋๋ค. ๋ฌผ๋ก ํ๋์ ํ๋ก์ ํธ์์๋ ๋ค์์ DB๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ๊ตฌ์ฑํ ์๋ ์๊ธฐ ๋๋ฌธ์, ๋ง์๋๋ ธ๋๊ฒ์ฒ๋ผ ์ ๋์ ์ธ ๊ธฐ์ค์ผ๋ก ๊ฒฐ์ ํ๊ธฐ๋ ์กฐ๊ธ ์ด๋ ต์ง ์๋ ์ถ์ต๋๋ค. ์ถฉ๋ถํ ๋ต๋ณ์ด ๋์ง ๋ชปํ๋ค๋ฉด, ๋ค์ ๊ธ ๋จ๊ฒจ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค .
- 0
- 2
- 49
Q&A
MSA ์ํคํ ์ณ ํ๋ก์ ํธ ๊ตฌ์ฑ ๋ฐฉ์
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๋ง์ํ์ ๋ด์ฉ์ฒ๋ผ ๊ฐ์์์๋ ์ ์ฒด ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ROOT Project ๋ฐ์ผ๋ก ์ฌ๋ฌ ์๋น์ค๋ค (user, product, order ๋ฑ)์ SUB Project ๊ฐ๋ ์ผ๋ก ๋ฑ๋กํ์ฌ ๊ด๋ฆฌํ๋๋ก ํ์ต๋๋ค. ์ค์ ๋ก Maven์ด๋ Gradle๋ก ์๋ฐ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ ๋๋, ๋ค์์ ํ๋ก์ ํธ๋ผ ํ๋๋ผ๋ ํ๋์ Category๋ Group์ผ๋ก ๋ฌถ์ด ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ๊ฐ ํธํ ์ ์์ต๋๋ค. ๋ค๋ง, ๊ฐ์์์ ๋ง์๋๋ฆฐ ๋ด์ฉ์ฒ๋ผ ๋ฐฐํฌ ๋จ์, ๊ทธ๋ฆฌ๊ณ ์ค์ ๊ฐ๋ฐํ๋ ๋จ์๊น์ง ๊ณ ๋ คํ์ ๋ค๋ฉด, ์ด ๋ถ๋ถ์ ํ์ ๊ท๋ชจ๋ ๊ฐ๋ฐ์, ์ญํ ๋ฑ์ ๋ฐ๋ผ ๋๋์ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ํ๋์ ์กฐ์ง, ํ, ๊ฐ๋ฐ์๊ฐ ์ ์ฒด๋ฅผ ํ๋ก์ ํธ๋ฅผ ๊ณต์ ํ๊ณ , ์ด๊ณผ์ ์์ ์ธ๋ถ์ ์ธ ๋ชจ๋์ด๋ ์ฝ๋๋ฅผ ๋ ๋ถ๋ฆฌํด์ ๊ฐ๋ฐํ ์๋ ์๊ณ , ๊ฐ๊ฐ 1๊ฐ์ฉ ํ๋ก์ ํธ๋ฅผ ์ ๋ดํด์ ๊ฐ๋ฐํ ์๋ ์๊ณ , ๋ฐฐํฌ๋ฅผ ๋ด๋นํ ์๋ ์์ต๋๋ค. ์ด๋๊น์ง๋ ์กฐ์ง์ ๊ท๋ชจ์ ํ์ ์ญํ , ๊ฐ๋ฐ์ ๋จ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ณ , ๊ฑฐ๊ธฐ์ ๋ง์ถฐ ํ๋น๋ฉ๊ณผ R&R์ ๊ฒฐ์ ํ๋ ์์ ์ด ํ๋ก์ ํธ ์ด๊ธฐ ์์ ์ ์ด๋ค์ง๊ฒ ๋ ๊ฒ๋๋ค. ์ถ๊ฐ ๋ฌธ์์ฌํญ ์์ผ์๋ฉด ์ธ์ ๋ ์ง ๊ธ ๋จ๊ฒจ ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 64
Q&A
์น์ 2 - 12๊ฐ ๊ฐ์ ์ ๋ชฉ ๊ด๋ จ ์ง๋ฌธ์์ต๋๋ค.
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค. ๋ง์ํ์ จ๋ ๋ถ๋ถ์ ๋ํด์ ์ ํํ ์์น๋ฅผ ์ฐพ์ง ๋ชปํด, ์ฐ์ ์ ๊ฐ์ ์๋๋ก ๋ง์๋๋ฆฝ๋๋ค. -.-;Modular Monolithic Architecture์ Layered Architecture ๋ชจ๋ Monolithic ๊ตฌ์กฐ์ ๋๋ค. ์ ํต์ ์ธ ์ค๊ณ ๋ฐฉ์์ผ๋ก ๊ธฐ์ ์ ๋ ์ด์ด ์ค์ฌ์ ๋ฐฉ์(Layered Architecture)๊ณผ ๋๋ฉ์ธ ์ค์ฌ์ผ๋ก ๋ด๋ถ๋ฅผ ์๋น์ค ๋จ์๋ก ๋๋ ํ๋์ ์ธ Monolithic ๋ฐฉ์์ ์ฐจ์ด๋ผ๊ณ ์๊ฐ๋ฉ๋๋ค. ๊ธฐ์ ๋จ์(Controller, Service, Repository ๋ฑ)๋ก ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๋ Layered ๋ฐฉ์๊ณผ ๋น๊ตํด์, ๊ธฐ๋ฅ๋ณ๋ก ๋ชจ๋ํํ์ฌ ๊ฐ์ ๋ ๋ฆฝ๋ Layer๋ก ์ฝ๋๋ฅผ ๋ถ๋ฆฌํด์ ์ฌ์ฉํ๋ ๋ฐฉ์์ Modular ๋ฐฉ์์ด ๋ง์๋๋ฆฌ๊ณ ์ ํ๋ ๋ด์ฉ์ด์์ต๋๋ค. ๊ฐ์ํ๋ ๋ด์ฉ ์ค ์ด๋ ๋ถ๋ถ์ด์๋์ง ์กฐ๊ธ ๋ ๋ง์ํด ์ฃผ์ค ์ ์์๊น์? ํด๋น ๋ถ๋ถ์ ํ์ธํ๊ณ ์์ ํด์ผ ํ ๋ถ๋ถ์์ผ๋ฉด ์์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 49




