์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- webpack
- json
- https://m.blog.naver.com/tt2t2am1118/221010125300
- await
- promise
- execCommand
- Porject
- object
- ๋น๋๊ธฐ
- ์ฐธ๊ณ ๋ธ๋ก๊ทธ
- ๋๊ธฐ
- callback
- prj
- ajax
- database
- ํผํ
- eport
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- ๊ฒ์
- async
- Project
- js
- setTimeout()
- Import
- db
- addEventListener
- JS #ํ๋ก์ ํธ
- sql
- mysql
- slow and steady
- Today
- Total
C-log
OT - 1week ๋ณธ๋ฌธ
์ด ํฌ์คํ ์ ํ๊ต ์์ ์ ๋ด์ฉ์ ํ ๋๋ก ํฌ์คํ ์ ์์ฑํ ๊ฒ์ ๋๋ค.
์ด ์์ ์ spring๊ณผ spring boot ๊ทธ๋ฆฌ๊ณ jpa๋ฅผ ๋ฐฐ์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก java๋ฅผ ์์์ผํ๋ฉฐ ์ค๋ฌด์ ํ์ํ ๋ด์ฉ์ ๋ด๊ณ ์๋ค. mysql๋ ๋ค๋ฃฐ ๊ฒ์ด๋ค. mysql์ ์ฌ์ฉํ ๋ mysql ํด์ ์ ์ฌ์ฉํด์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์ ์ํ๋ฉด ์ฉ์ดํ๋ค๊ณ ์๊ฐํ๋ค.
๋ฉ์์ง ์งํฅ์ (xml,json)
- ๋ฉ์์ง ์งํฅ์ (Message-Oriented)์ด๋ ์ํํธ์จ์ด ์์คํ ์ด๋ ์ปดํจํ ํ๊ฒฝ์์ ๋ฉ์์ง๋ฅผ ์ค์ฌ์ผ๋ก ๋์ํ๋ ์ํคํ ์ฒ ๋๋ ๋์์ธ ํจํด์ ์๋ฏธํ๋ค. ๋ฉ์์ง ์ค์ฌ์ผ๋ก ๋์ํ๋ค๋ ๊ฒ์ ์์คํ ์ ๊ตฌ์ฑ ์์ ๊ฐ์ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ํธ ์์ฉํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ๋ฐฉ์์ ๊ฐ์กฐํ๋ค. ๋ฉ์์ง ์งํฅ์ ์ธ ์์คํ ์์๋ ๊ฐ ๊ตฌ์ฑ ์์๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ฉฐ, ๋ฉ์์ง๋ฅผ ์ ์กํ๊ณ ์์ ํจ์ผ๋ก์จ ์ํธ ์์ฉํ๋ค. ์ด๋ ์์คํ ์ ๋ชจ๋ํ์ ์ ์ฐ์ฑ์ ๋์ด๋ฉฐ, ๋น๋๊ธฐ์ ์ผ๋ก ์์ ์ ์ฒ๋ฆฌํ๊ณ ๋ถ์ฐ ํ๊ฒฝ์์๋ ํจ์จ์ ์ผ๋ก ๋์ํ ์ ์๋๋ก ํ๋ค.
ํ๋ซํผ ์ค๋ฆฝ์ , ๋ ๋ฆฝ์ ??
- ํ๋ซํผ ์ค๋ฆฝ์ ์ด๋ ์ํํธ์จ์ด๋ ๊ธฐ์ ์ด ํน์ ํ ํ๋์จ์ด๋ ์ด์ ์ฒด์ ์ ์ข ์๋์ง ์๊ณ ์ฌ๋ฌ ํ๋ซํผ์์ ๋์ํ ์ ์๋ ์ฑ์ง์ ์๋ฏธํ๋ค. ์ด๋ ์ํํธ์จ์ด๊ฐ ํน์ ํ ํ๊ฒฝ์ ์ ํ๋์ง ์๊ณ ๋ค์ํ ํ๊ฒฝ์์ ์ฌ์ฉ๋ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
- ์๋ฅผ ๋ค์ด, Windows, macOS, Linux ์ด์ ์ฒด์ ๋ ๋ ๋ฆฝ์ ํ๋ซํผ์ด๋ค. ๋ฐ๋ฉด Google Gmail๊ณผ ๊ฐ์ ์น ๊ธฐ๋ฐ ์ด๋ฉ์ผ ์๋น์ค๋ ํ๋ซํผ ์ค๋ฆฝ์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ค.
ํด๋ผ์ฐ๋์ ์ญํ ์ ๋ฌด์์ธ๊ฐ
- ์์ ์ ๊ณต: ํด๋ผ์ฐ๋๋ ์ปดํจํ
๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ์ฌ ์๋น์ค๋ฅผ ์คํํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค. ์ด๋ ์๋ฒ, ์คํ ๋ฆฌ์ง, ๋คํธ์ํฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ ๋ค์ํ ์์์ ํฌํจํ๋ค.
* ์ปดํจํ ๋ฆฌ์์ค๋-
- ์ค์ ์ฒ๋ฆฌ ์ฅ์น(CPU): ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ณ์ฐ ๋ฅ๋ ฅ์ ์ ๊ณตํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ(RAM): ํ๋ก๊ทธ๋จ ๋ฐ ๋ฐ์ดํฐ์ ์ผ์์ ์ธ ์ ์ฅ์๋ก ์ฌ์ฉ๋๋ค. CPU๊ฐ ์์ ์ ์ฒ๋ฆฌํ๋ ๋์ RAM์ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ํ์ํ ๋ฐ์ดํฐ ๋ฐ ๋ช ๋ น์ ์ ์ฅํ๋ค.
- ์คํ ๋ฆฌ์ง: ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ณต๊ฐ์ด๋ค. ํ๋ ๋์คํฌ ๋๋ผ์ด๋ธ(HDD), ๊ณ ์ฒด ์ํ ๋๋ผ์ด๋ธ(SSD), ๋คํธ์ํฌ ์ ์ฅ์ ๋ฑ์ด ์ด์ ์ํ๋ค.
- ๋คํธ์ํฌ: ์ปดํจํฐ ๊ฐ ํต์ ๋ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ์ธํฐ๋ท ๋ฐ ๋ก์ปฌ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ ๊ณตํ๋ค.
- ๊ทธ๋ํฝ ์ฒ๋ฆฌ ์ฅ์น(GPU): ์ด๋ฏธ์ง ๋ฐ ๋น๋์ค ์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ๋ ํน์ํ ์ ํ์ ํ๋ก์ธ์๋ก, ์ฃผ๋ก ๊ทธ๋ํฝ ๋ฐ ๋น๋์ค ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋๋ค.
- ์ ์ถ๋ ฅ ์ฅ์น: ํค๋ณด๋, ๋ง์ฐ์ค, ๋ชจ๋ํฐ, ํ๋ฆฐํฐ ๋ฑ๊ณผ ๊ฐ์ ์ฅ์น๋ก, ์ฌ์ฉ์๊ฐ ์ปดํจํฐ์ ์ํธ์์ฉํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๊ณ ์ถ๋ ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
-
- ์ ์ํ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ: ํด๋ผ์ฐ๋๋ ๊ฐ๋ฐ์๋ค์๊ฒ ๊ฐ๋ฐ ๋ฐ ํ ์คํธ ํ๊ฒฝ์ ์ฆ์ ๊ตฌ์ถํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅธ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ฒ ์์ฅ์ ์ถ์ํ๊ณ ๋ ๋น ๋ฅธ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์๊ฒ ํ๋ค.
- ๋ณด์ ๋ฐ ๋ฐฑ์ : ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ ๋ฐ์ดํฐ ๋ณด์ ๋ฐ ๋ฐฑ์ ์๋น์ค๋ฅผ ์ ๊ณตํ์ฌ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋ณดํธํ๋ค. ๋ํ ๋ฐ์ดํฐ ์ผํฐ์ ๋ฌผ๋ฆฌ์ ๋ณด์์ ๊ฐํํ์ฌ ๋ ๋์ ์์ ์ฑ์ ์ ๊ณตํฉ๋๋ค.
swํ์ง
sw ํ์ง์ ๊ธฐ๋ฅ ํ์ง๊ณผ ๊ตฌ์กฐ ํ์ง๋ก ๋๋๋ค. ๊ธฐ๋ฅ ํ์ง์ ์๋น์๊ฐ ์ํ๋ ๊ธฐํ์๋ค์ด ๋ง์ด ๊ด์ฌ์ ๊ฐ์ง๋ค. ๊ตฌ์กฐ ํ์ง์ 5๊ฐ์ง๋ก ๋ถ๋ฅ๋๋๋ฐ welldesign, wellcoded, maintain, reuse, extend ์ด๋ ๊ฒ ๋๋๋ค. ํ๋ ์์ํฌ๋ ๊ฐ๋ฐ์๋ค ์์ฃผ ์ง์์ ์ธ ๊ด๋ฆฌ์ ์ง๊ฐ ๊ฐ๋ฅํ๋ฉฐ ํ์ฅ์ด ์ฉ์ดํด์ผํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ vs ํ๋ ์์ํฌ
#๋ผ์ด๋ธ๋ฌ๋ฆฌ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฃผ์ฒด์๊ฐ ๊ฐ๋ฐ์์ด๋ค. ๋ฐ๋ผ์ ๊ฐ๋ฐ์๊ฐ ์ํ ๋ ํธ์ถ ํ ์ ์๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ตฌ์ฑ์ ํด๋์ค์ ์งํฉ์ผ๋ก ์ด๋ฃจ์ด ์ ธ์์ผ๋ฉฐ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ์ง์ํ๋ค. ์ฆ, ์ ์ด์ ์ฃผ์ฒด๋ ๊ฐ๋ฐ์๊ฐ ๋๋ ๊ฒ์ด๋ค.
#ํ๋ ์์ํฌ
ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฐ๋๋ก ์ ์ด์ ์ญ์ ์ด ๋ฐ์ํ๋ค. ์ฆ, ์ ์ด์ ์ฃผ์ฒด๊ฐ ํ๋ ์์ํฌ๊ฐ ๋๋ ๊ฒ์ด๋ค. ์ ์ด์ ์ญ์ ์(IoC / inversion of control)์์ํํธ์จ์ด ๋์์ธ ํจํด ์ค ํ๋๋ก ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ์ํด ํ๋ ์์ํฌ๋ ์ปจํ ์ด๋์ ์ ์ด์ ํ๋ฆ์ ๋๊ธฐ๋ ๊ฐ๋ ์ด๋ค. ์ด๊ฒ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ์ด ํ๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ ์๋ฏธํ๋ฉฐ ์ฃผ๋ก ์์กด์ฑ ์ฃผ์ (Dependency Injection)์ ํตํด ์ด๋ฃจ์ด์ง๋ค. ์ ์ด์ ์ญ์ ์ ๋ํ์ ์ธ ํ๋ ์์ํฌ๊ฐ ๋ฐ๋ก ์คํ๋ง๊ณผ ์คํ๋ง ๋ถํธ๊ฐ ๋๊ฒ ๋ค. ๊ฐ๋จํ ๋งํ๋ฉด ํ๋ ์์ํฌ๋ ์ํ ๋ ํธ์ถ์ ํ ์๊ฐ ์๋ค. ํ๋ ์์ํฌ๋ผ๋ ๋์ฌ์ง ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ ์ด ํ๋ฆ์ ๋ง๊ฒ ์ฝ๋๋ฅผ ์์ฑํด์ผํ๋ ๊ฒ์ด๋ค.
ํ๋ ์์ํฌ๋ ๊ตฌ์กฐ ํ์ง์ ๋ณด์ฅ์ ๊ธฐ๋ฐํ๋ฉฐ ๋์์ธ ํจํด์ ๋ํ์ ์ผ๋ก mvp๋ชจ๋ธ(ํจํด)์ด ์๋ค. ์ธ์๋ mvc ๋ฑ์ด ์๋ค.
* ํ๋ ์์ํฌ๋ ๋ฐ์ ํ์ด๋ผ๋ ๊ฐ๋
์ผ๋ก ์ ๊ทผํด์ผํ๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์กฐ ๋ฐ ์ฝ๋์ ์๋น ๋ถ๋ถ์ ์ ๊ณต
- ํต์ฌ ๋ก์ง์ ์ง์คํ ์ ์๋ค.
- ๊ฐ๋ฐ์๊ฐ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ ๋, ๋ง์น ์์ฑ๋ ์ ํ์ ์กฐ๋ฆฝํ๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ๋ค๋ ์๋ฏธ์ด๋ค. ์ฆ, ํ๋ ์์ํฌ๋ ๊ฐ๋ฐ์์๊ฒ ํ์ํ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ์ด๋ฅผ ์กฐ๋ฆฝํ๊ณ ํ์ฅํ์ฌ ์ค์ ์ ํ์ ๋ง๋ค์ด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
* ํ๋ ์์ํฌ ์ฅ์
- ๋์ ์์ฐ์ฑ
- ์ฝ๋ ํ์ง ๋ณด์ฅ
- ์ฝ๋ ํ์ง ๋ณด์ฅ์ ๋ณด์ฅ์ ํ๋ ์์ํฌ์ ํน์ ๊ตฌ์กฐ๋ ๊ท์น์ด ์ ์ฉ๋์ด ์ผ๊ด๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ด์ ํต์ผ๋ ๊ตฌ์กฐ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ํ์ง์ด ๋ณด์ฅ๋๋ค๊ณ ํ๋ ๊ฒ์ด๋ค. ์ฆ, ์ฝ๋์ ํ์ง์ ๋ณด์ฅ์ผ๋ก ๋์ ์์ฐ์ฑ์ด ์ผ์ด๋๋ ๊ฒ์ด๋ค.
ref) ๋ฆฌ์กํธ ํ๋ ์์ํฌ๋?
๋ฆฌ์กํธ๋ UI๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก์ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ
์ฒ๋ฅผ ์ฌ์ฉํ๋ฉฐ, UI๋ฅผ ๋์ ์ผ๋ก ์
๋ฐ์ดํธํ๋ ๋ฐ ์ง์คํ๋ค.
๋ฆฌ์กํธ์์๋ ์ฃผ๋ก "๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ"์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ํ๋ฆ์ ์ ์ดํ๋ค. ์ด๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ , ์์ ์ปดํฌ๋ํธ๋ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ UI๋ฅผ ์
๋ฐ์ดํธํ๋ ๋ฐฉ์์ด๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ์์ ์ปดํฌ๋ํธ์ ๋์์ ์ ์ดํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฃผ์
ํ๋ ํํ์ด๋ฏ๋ก ์ผ์ข
์ "์ ์ด์ ์ญ์ "์ด๋ผ๊ณ ๋ณผ ์๋ ์๋ค.
ํ์ง๋ง ์๋ฐํ ๋งํด์ ๋ฆฌ์กํธ๋ "์ ์ด์ ์ญ์ " ๊ฐ๋
์ ๋ช
์์ ์ผ๋ก ๊ตฌํํ ๊ฒ์ ์๋๋ฉฐ, ์ด๋ ์ฃผ๋ก ์๋ฒ ์ฌ์ด๋ ๊ฐ๋ฐ ํ๋ ์์ํฌ ๋๋ ์์กด์ฑ ์ฃผ์
(Dependency Injection) ์ปจํ
์ด๋์์ ๋ณผ ์ ์๋ ํจํด์ด๋ค.
spring์ด๋?
#์คํ๋ง ์ฃผ์ ํน์ง
์คํผ๋ง์ ์์๊ฐ์ฒด(pojo)์ ํน์ง์ ์ง๋๊ณ ์๋ค. ์คํ๋ง์ ์์์ ์ฌ์ฉํ์ง ์๋๋ค. ๊ทธ๋์ new๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋์ Been์ด๋ผ๋ container๋ฅผ ์ฌ์ฉํ๋ค. ๊ทธ๋ ๋ค๋ฉด container๊ฐ ์์์ ๋์ ํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง์ธ๋ฐ ์คํ๋ง์ container๋ ๋ฌด์์ธ๊ฐ. container๋ ์์กด์ฑ ์ค์
(DI)์ ํ๋ค. ์์กด์ฑ ์ฃผ์
์ ์คํ๋ง์ ์ฃผ์ ํน์ง 3๊ฐ์ง ์ค ํ๋์ธ๋ฐ ์ด๋ ๋ฐ๋ก ๋ค์ ์ธ๊ธ์ ํ๊ฒ ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ์์์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ผ๊น? ์ด์ ๋ ์์์ ํ๊ฒ ๋๋ฉด ๋ถํ์ํ๊ฒ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฌด๊ฑฐ์์ง๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ js์์ classํ์์ด ์๋ ํจ์ํ์ผ๋ก ์ ์ํ๋ ๊ฒ ์๋๊ฐ ํ๋ค.
์คํ๋ง์๋ ์ฃผ์ํ ๋์์ธ ํจํด ํน์ง 3๊ฐ์ง๊ฐ ์๋ค. ์์กด ๊ด๊ณ ์ฃผ์
(DI / Dependency Injection), ๊ด์ ์ค์ฌ ํ๋ก๊ทธ๋๋ฐ(AOP / Aspect-Oriented Programming), ์ด์ ๊ฐ๋ฅํ ์๋น์ค ์ถ์ํ(PSA / Portable Service Abstraction) ์ด๋ ๊ฒ ์๋ค.
- ์์กด ๊ด๊ณ ์ฃผ์ (DI) : ์์กด ๊ด๊ณ ์ฃผ์ (DI)์ ๊ฐ์ฒด ๊ฐ์ ์์กด์ฑ์ ์ธ๋ถ์์ ์ฃผ์ ํ์ฌ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ ๋์์ธ ํจํด์ด๋ค. Java EE์์๋ DI๋ฅผ ํตํด ์๋ธ๋ฆฟ, EJB ๋ฑ์ ์ปดํฌ๋ํธ๋ค์ด ์๋ก ์์กดํ๋ ๊ฐ์ฒด๋ฅผ ์ธ๋ถ์์ ์ฃผ์ ๋ฐ์ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ฅผ ํตํด ์ฝ๋์ ์ ์ฐ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ , ํ ์คํธ ์ฉ์ด์ฑ์ ํฅ์์ํจ๋ค.
- ๊ด์ ์ค์ฌ ํ๋ก๊ทธ๋๋ฐ(AOP) : ๊ด์ ์ค์ฌ ํ๋ก๊ทธ๋๋ฐ(AOP)์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ฌ ๋ก์ง๊ณผ๋ ๋ณ๊ฐ๋ก ๊ณตํต ๊ด์ฌ์ฌ๋ฅผ ๋ชจ๋ํํ์ฌ ์ฝ๋ ์ค๋ณต์ ๋ฐฉ์งํ๊ณ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ๋ ๊ธฐ๋ฒ์ด๋ค. Java EE์์๋ AOP๋ฅผ ํตํด ํธ๋์ญ์ ๊ด๋ฆฌ, ๋ณด์, ๋ก๊น ๋ฑ๊ณผ ๊ฐ์ ๊ณตํต ๊ด์ฌ์ฌ๋ฅผ ๋ณ๋์ ๋ชจ๋๋ก ๋ถ๋ฆฌํ์ฌ ์ฌ์ฌ์ฉํ ์ ์๋ค.
- ์ด์ ๊ฐ๋ฅํ ์๋น์ค ์ถ์ํ(PSA) : ์ด์ ๊ฐ๋ฅํ ์๋น์ค ์ถ์ํ(PSA)๋ ๋ค์ํ ํ๊ฒฝ์์ ์๋น์ค๋ฅผ ์ถ์ํํ๊ณ ์ด์์ฑ์ ํ๋ณดํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค. Java EE์์๋ PSA๋ฅผ ํตํด ์๋ธ๋ฆฟ, JMS ๋ฑ์ ๋ค์ํ ์๋น์ค๋ฅผ ์ถ์ํํ์ฌ ์ ๊ณตํ๊ณ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์์ฑ์ ๋์ด๊ณ ๋ค์ํ ํ๊ฒฝ์์์ ๋ฐฐํฌ๋ฅผ ์ฉ์ดํ๊ฒ ํ๋ค.
#์คํ๋ง์ ํ๋ถ๊ตฌ์กฐ(java Enterprise Edition / java EE)
์คํ๋ง์ ์ํฐํ๋ผ์ด์ฆ(Enterprise / java EE) ์์คํ ์ ๊ฐ๋ฐํ๊ธฐ ๋งค์ฐ ์ฉ์ดํ๋ค. java ์ํฐํ๋ผ์ธ์ฆ๋ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ณ ๊ตฌ์ถํ๊ธฐ ์ํ java ํ๋ซํผ์ ํ ์ข ๋ฅ์ด๋ค. java Enterprise Edition(java EE)๋ ๊ธฐ์ ํ๊ฒฝ์์ ์์ ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ํ์ค ํ๋ซํผ์ ์ ๊ณตํ๋ค.
java EE์ ํน์ง
- ์น ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ: Java EE๋ ์๋ธ๋ฆฟ, JSP, JSF(JavaServer Faces) ๋ฑ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- ๋ถ์ฐ ์ปดํจํ : Java EE๋ EJB(Enterprise JavaBeans)์ RMI(Remote Method Invocation)๊ณผ ๊ฐ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ถ์ฐ๋ ํ๊ฒฝ์์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ง์ํ๋ค.
- ํธ๋์ญ์ ๊ด๋ฆฌ: Java EE๋ ํธ๋์ญ์ (์ชผ๊ฐค ์ ์๋ ์ ๋ฌด ์ฒ๋ฆฌ์ ์ต์ ๋จ์) ๊ด๋ฆฌ๋ฅผ ์ํ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๋ค๋ฅธ ๋ฆฌ์์ค์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
- ๋ณด์: Java EE๋ ์ธ์ฆ, ๊ถํ ๋ถ์ฌ, ๋ฐ์ดํฐ ๋ณด์ ๋ฐ ๋คํธ์ํฌ ๋ณด์๊ณผ ๊ฐ์ ๋ณด์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์์ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋๋ก ํฉ๋๋ค.
- ๋ฉ์์ง ๊ธฐ๋ฐ ํต์ : Java EE๋ JMS(Java Message Service)๋ฅผ ํตํด ๋ฉ์์ง ๊ธฐ๋ฐ ํต์ ์ ์ง์ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๋น๋๊ธฐ์ ์ผ๋ก ํต์ ํ ์ ์์ต๋๋ค.
#์คํ๋ง์ ํ๋ถ๊ตฌ์กฐ
์คํ๋ง์ ํ๋ถ๊ตฌ์กฐ์ ํฌ๊ด์ฑ์ผ๋ก ๊ฐ๋ฐ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ์ ์ง๋ณด์ํ๋ ๋ฐ ํ์ํ ๋ค์ํ ๊ธฐ๋ฅ์ ์คํ๋ง ํ๋ ์์ํฌ์์ ์ ๊ณต๋ฐ์ ์ ์๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ํจ์จ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ๋์ฑ ์์ ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ํํธ์จ์ด๋ฅผ ๋ง๋ค ์ ์๋ค. ์์ธํ ์ ๋ณด๋ ์๋ ๋๋ณด๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์
- ์น ๊ฐ๋ฐ : ์คํ๋ง ์น MVC๋ฅผ ๋น๋กฏํ ์น ๊ฐ๋ฐ์ ์ํ ๋ค์ํ ๋ชจ๋๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ก์ธ์ค : ์คํ๋ง JDBC, ์คํ๋ง ๋ฐ์ดํฐ ๋ฑ์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์ธ์ค๋ฅผ ์ง์ํฉ๋๋ค.
- ๋ณด์ : ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ํตํด ์ธ์ฆ๊ณผ ๊ถํ ๋ถ์ฌ๋ฅผ ํฌํจํ ๋ณด์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๋ฉ์์ง ๊ธฐ๋ฐ ํต์ : ์คํ๋ง AMQP, ์คํ๋ง JMS ๋ฑ์ ํตํด ๋ฉ์์ง ๊ธฐ๋ฐ ํต์ ์ ์ง์ํฉ๋๋ค.
- ๋ฐฐ์น ์ฒ๋ฆฌ : ์คํ๋ง ๋ฐฐ์น ํ๋ ์์ํฌ๋ฅผ ํตํด ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ฐฐ์น ์์ ์ ์ง์ํฉ๋๋ค.
- ํตํฉ : ์คํ๋ง ํตํฉ์ ํตํด ๋ค์ํ ์์คํ ๊ฐ์ ํตํฉ์ ์ง์ํฉ๋๋ค.
- ํ ์คํธ : ์คํ๋ง ํ ์คํธ ๋ชจ๋์ ํตํด ๋จ์ ํ ์คํธ๋ถํฐ ํตํฉ ํ ์คํธ๊น์ง ๋ค์ํ ํ ์คํธ๋ฅผ ์ง์ํฉ๋๋ค.
SW๋ฅผ ๊ฐ๋ฐํ๋ ์ค์ํ ์ ๋ต์ ํ๋๋
"ํญ์ ํ๋ ์์ํฌ ๊ธฐ๋ฐ์ผ๋ก ์ ๊ทผํ๋ผ”
- Rod Johnson
๋ณธ ์์ ์์๋ jsp์ mysql์ ํจ๊ป ์ฌ์ฉํ๋ค. ๋ณธ์ธ์ mysql์ xampp์ ํตํด์ ์คํํ๊ณ ์์ ์ ํ ๊ฒ์ด๋ค. ์์ ์์ mysql workbench๋ฅผ ์ฌ์ฉํ๋๋ฐ ์ด๋ฅผ xampp๊ณผ ํจ๊ป ์ฐ๋ํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์ด๋ ์๋ ๋งํฌ๋ฅผ ํตํด์ ์ฐธ๊ณ ํด๋ณด๋ฉด ์ข์ ๋ฏ ํ๋ค.
Using XAMPP and Mysql Workbench together
There are some related posts to this but I still can't figure this out. I have a working install of XAMPP(latest version) and MySQL Workbench 8.0.17 installed. I just want to be able to use Workbench
stackoverflow.com
๋ณธ ์์ ์์๋ vsc๊ฐ ์๋ intellij๋ฅผ ์ฌ์ฉํ๋ค. ๊ฐํน marven view๊ฐ ๋ณด์ด์ง ์์ ๋๋ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ์ข์ ๋ฏ ํ๋ค.
[IntelliJ] ์ธํ ๋ฆฌ์ ์ด ์์ Maven View๊ฐ ๋ณด์ด์ง ์์๋
Maven ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ์คํ์ํฌ๋ ค๊ณ ๋ณด๋๊น Maven View๊ฐ ๋ณด์ด์ง ์์๋ค. ํ๋ก์ ํธ๋ ๋ง๋ค ์ ์์๊บผ๋ผ๊ณ ์๊ฐํ๊ณ ํด๊ฒฐ ๋ฐฉ๋ฒ๋ง ์ ๊ฒ ๋ค. - ํ์ฌ ์ํฉ ( ์๋ ๊ทธ๋ฆผ ) < ํด๊ฒฐ ๋ฐฉ๋ฒ > - pom.xml ์์ ์ฐํด
roeldowney.tistory.com
intellij๋ฅผ ๋ค์ด ๋ฐ๊ณ ํ์ ๋ผ์ด์ผ์ค๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค
๐ฝ ์ธํ ๋ฆฌ์ ์ด ์ค์น + ๋ฌด๋ฃ ํ์ ๋ผ์ด์ผ์ค ๋ฑ๋ก
์ธํ ๋ฆฌ์ ์ด ์ค์นํ๊ธฐ ์ธํ ๋ฆฌ์ ์ด๋ JetBrains ํ์ฌ์์ ๊ฐ๋ฐํ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ(IDE) ์๋ํฐ ์ด๋ค. ๋ํ์ ์ธ ์๋ฐ(Java) ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ ์ค ํ๋์ธ ์ดํด๋ฆฝ์ค๋ณด๋ค ์ฌ๋ฌ ๋ฉด์์ ๋ฐ์ด๋๋ค๊ณ ํ๊ฐ๋๋ฉฐ, ํธ
inpa.tistory.com
HelloWorld ์์ฉ ์คํ