1. ๋ฐฐ๊ฒฝ๊ณผ ์๊ฐ
1.1. ๋ฐฐ๊ฒฝ
jHipster๋ Java ๊ฐ๋ฐ์ ํ๋์ ์ด๊ณ ์์ฐ์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐ๋์์ต๋๋ค. Spring Boot์ Angular/React/Vue.js ๋ฑ์ ๊ธฐ์ ์คํ์ ํจ๊ณผ์ ์ผ๋ก ๊ฒฐํฉํ์ฌ ๊ฐ๋ฐ์๋ค์ด ๋น ๋ฅด๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
1.2. ์๊ฐ
- ๊ธฐ์ ์คํ ์ตํฉ: Spring Boot๋ฅผ ๋ฐฑ์๋๋ก ์ฌ์ฉํ๋ฉด์ Angular/React/Vue.js ๋ฑ์ ํ๋ก ํธ์๋ ๊ธฐ์ ๊ณผ์ ํตํฉ์ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
- ์ฝ๋ ์์ฑ๊ณผ ํ ํ๋ฆฟ: CRUD ์์ ๋ฐ ๋ณด์ ์ค์ ๋ฑ์ ์๋์ผ๋ก ์์ฑํ๋ ์ฝ๋ ์์ฑ๊ณผ ๋ค์ํ ํ ํ๋ฆฟ์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ ์์ฐ์ฑ์ ํฅ์์ํต๋๋ค.
- ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ ์ง์: jHipster๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ์ง์ํ์ฌ ์๋ก ๋ค๋ฅธ ๋ ๋ฆฝ๋ ์๋น์ค ๊ฐ์๋ ํต์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
2. ๊ธฐ๋ฅ ๋ฐ ์ง์
2.1. ๊ฐ๋ ฅํ๊ฒ ์ง์ํ๋ ๊ธฐ๋ฅ
- ๋ค์ํ ํ ํ๋ฆฟ: CRUD, ๋ณด์, ๊ถํ ๊ด๋ฆฌ ๋ฑ์ ํ ํ๋ฆฟ์ ์ ๊ณตํ์ฌ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค.
- ์ค์ ๊ฐ๋ฅํ ์ฝ๋ ์์ฑ: ๊ฐ๋ฐ์๋ ์ฝ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ํ๋ก์ ํธ์ ๋ง๊ฒ ์ปค์คํฐ๋ง์ด์งํ ์ ์์ต๋๋ค.
- ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ: ๋ ๋ฆฝ์ ์ธ ์๋น์ค๋ฅผ ์ฝ๊ฒ ๊ฐ๋ฐํ๊ณ ์ฐ๊ฒฐํ ์ ์๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ์ง์ํฉ๋๋ค.
2.2. ์ฅ/๋จ์
2.2.1. ์ฅ์
- ๋น ๋ฅธ ๊ฐ๋ฐ: ํ๋ถํ ํ ํ๋ฆฟ๊ณผ ์ฝ๋ ์์ฑ์ผ๋ก ๋น ๋ฅธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๋ค์ํ ๊ธฐ์ ์คํ ์ง์: Spring Boot์ ๋ค์ํ ํ๋ก ํธ์๋ ๊ธฐ์ ์ ์ตํฉํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ: ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ์ฝ๊ฒ ์ ์ฉํ ์ ์์ต๋๋ค.
2.2.2. ๋จ์
- ๋ฌ๋ ์ปค๋ธ: ๋ค์ํ ๊ธฐ๋ฅ๊ณผ ์ค์ ์ผ๋ก ์ธํด ์ด๊ธฐ ํ์ต์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค.
- ๊ณ ์ ๋ ๊ตฌ์กฐ: ํ๋ก์ ํธ ๊ตฌ์กฐ๊ฐ ๊ณ ์ ๋์ด ํน์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ฅธ ์ปค์คํฐ๋ง์ด์ง์ด ์ ํ๋ ์ ์์ต๋๋ค.
3. ๋ชจ๋ ๊ฐ ๋คํธ์ํฌ ํต์
3.1. ์ง์ํ๋ ๋ฐฉ์
- HTTP ํต์ : RESTful API๋ฅผ ํ์ฉํ์ฌ ๋ชจ๋ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ต๋๋ค.
- ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ํต์ : ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ์ HTTP RESTful API๋ฅผ ํตํด ํต์ ์ด ์ด๋ฃจ์ด์ง๋๋ค.
- ๋ฉ์์ง ์์คํ : Apache Kafka ๋ฑ์ ๋ฉ์์ง ์์คํ ์ ํ์ฉํ์ฌ ๋น๋๊ธฐ์ ์ธ ํต์ ์ ๊ตฌํํ ์ ์์ต๋๋ค.
- ์น์์ผ (WebSocket): Spring WebSocket ๋ฑ์ ์ฌ์ฉํ์ฌ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ์ ์ง์ํฉ๋๋ค.
- RSocket: Reactive Streams๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋คํธ์ํฌ ํ๋กํ ์ฝ์ ํ์ฉํ์ฌ ํจ์จ์ ์ธ ํต์ ์ ์ง์ํฉ๋๋ค.
4. DB ์ง์
4.1. ์ง์ํ๋ DB
- RDBMS: MySQL, PostgreSQL, Oracle, MSSQL ๋ฑ์ ์ง์ํฉ๋๋ค.
- NoSQL: MongoDB ๋ฑ์ ์ง์ํ์ฌ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ์ด ๊ฐ๋ฅํฉ๋๋ค.
4.2. ๊ฐ๋ ฅํ DB ์ง์ ๊ธฐ๋ฅ
4.2.1. JPA (Java Persistence API)
- ์ค๋ช : jHipster์์๋ JPA๋ฅผ ํตํด ๊ฐ์ฒด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ๋งคํ์ ๊ฐ๋จํ๊ฒ ํ ์ ์์ต๋๋ค. Entity ํด๋์ค๋ฅผ ์ ์ํ๊ณ , JPA๊ฐ ์ ๊ณตํ๋ ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ๊ณผ ๋งคํํฉ๋๋ค.
- ์ฅ์ :
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ๋งคํ์ด ์ฉ์ดํ๋ฏ๋ก ๊ฐ๋ฐ์๋ค์ด ํธ๋ฆฌํ๊ฒ ์์ ํ ์ ์์ต๋๋ค.
- ๋ณต์กํ SQL ์ฟผ๋ฆฌ ์์ฑ ์์ด ์๋์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋์ด ๊ฐ๋ฅํฉ๋๋ค.
4.2.2. Spring Data JPA
- ์ค๋ช : Spring Data JPA๋ JPA๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. jHipster์์๋ Spring Data JPA๋ฅผ ํ์ฉํ์ฌ ๊ฐ๋จํ ์ฟผ๋ฆฌ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐ์์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ฅ์ :
- ๋ฐ๋ณต์ ์ด๊ณ ์ง๋ฃจํ CRUD ์์ ์ ๊ฐํธํ๊ฒ ์ํํ ์ ์์ต๋๋ค.
- ์ปค์คํ ์ฟผ๋ฆฌ ๋ฉ์๋๋ฅผ ํตํด ๋ณต์กํ ์กฐํ๋ ๊ฐํธํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
4.2.3. Liquibase
- ์ค๋ช : jHipster์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๊ด๋ฆฌ๋ฅผ ์ํด Liquibase๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ณ๊ฒฝ๋ ์ํฐํฐ๋ ํ ์ด๋ธ์ ๋ํ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ฅ์ :
- ๋ณ๊ฒฝ๋ ์คํค๋ง๋ฅผ ๋ฒ์ ๊ด๋ฆฌํ์ฌ ๊ด๋ฆฌํ๊ธฐ ์ฉ์ดํฉ๋๋ค.
- ๋ง์ด๊ทธ๋ ์ด์ ํ์ผ์ ์์ฑํ๊ณ ์คํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
4.2.4. ์บ์ฑ ์ง์
- ์ค๋ช : jHipster์์๋ Ehcache ๋ฑ์ ์บ์ฑ ํ๋ ์์ํฌ๋ฅผ ํตํด ์บ์ฑ์ ์ง์ํฉ๋๋ค. ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ์ฌ ๋น ๋ฅธ ์๋ต ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฅ์ :
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฝ์ด์ค๋ ๋น์ฉ์ ์ ๊ฐํ๊ณ ์๋ต ์๋๋ฅผ ํฅ์์ํต๋๋ค.
- ์บ์ ์ ๋ต์ ํตํด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ์ ์งํ๋ฉด์ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค.
5. ๊ฒฐ๋ก
jHipster๋ ํ๋์ ์ธ ๊ฐ๋ฐ์ ์งํฅํ๋ ๊ฐ๋ฐ์๋ค์๊ฒ ๋ง์ ํธ์์ ์์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ๋ค์ํ ๊ธฐ๋ฅ๊ณผ ์ง์๋๋ ๊ธฐ์ ์คํ, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ ฅํ DB ์ง์์ผ๋ก ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ธฐ ํ์ต์ด ํ์ํ๋ฉฐ ํ๋ก์ ํธ ๊ตฌ์กฐ์ ์ ํ์ด ์กด์ฌํ ์ ์์ต๋๋ค. ์ ์ฌ์ ์์ jHipster๋ฅผ ์ ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๊ฐ๋ฐํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
'IT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Hadoop Ecosystem: ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํต์ฌ (0) | 2024.02.13 |
---|---|
Open API: ์๊ฐ, ์ฅ/๋จ์ , ํ์ฉ๋ ์๋น์ค๋ค (0) | 2024.02.10 |
SSL, HTTP, HTTPS: ์น ๋ณด์์ ํ์ ํ๋กํ ์ฝ (0) | 2024.02.08 |
IPv4 vs. IPv6: ๋คํธ์ํฌ ์ฃผ์ ์ฒด๊ณ์ ์งํ (0) | 2024.02.07 |
ํ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ์ฃผ๋ชฉ๋ฐ๋ ํ๋ ์์ํฌ ๋น๊ต (0) | 2024.02.07 |
๋๊ธ