โ Intro.
์ ๊ฐ ์ด๋ฆด ์ ๊ฐ์ฅ ๊ธฐ์ต์ ๋จ๋ ๊ฒ์์ ๊ณ ๋ฅด๋ผ๋ฉด ์ ๋ โ๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟคโ ์ ๊ณ ๋ฅผ ๊ฒ์ ๋๋ค.
์ผ๋ง๋ ์ด ๊ฒ์์ ์ ์ ์ด ์์๋ ํ๋ฉด, ์ด๋ฐ ์ผํ๋ ์์๋ต๋๋ค.
์ ๊ฐ ๋๋ฌด ์ด ๊ฒ์์ ๋น ์ ธ์ ๋ฐค์ ๊ฒ์์ ํ๋ค ๋ณด๋ ๊ฒ์ ์๊ฐ์ ์ ํด์ฃผ์
์ ๋ฐค์๋ ๋ชปํ๊ฒ ๋์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ ๋ ๋ถ๋ชจ๋ ๋ชฐ๋ โ๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟคโ์ ํ๋ ์ดํ๊ธฐ ์ํด ๋ถ๋ชจ๋๊ป์ ์ฃผ๋ฌด์๋ ์๊ฐ์ ์ด๋ถ๋ก ๋ชจ๋ํฐ๋ฅผ ๋ฎ๊ณ ๊ทธ ์ด๋ถ ์์์ ๋์ ๋ป๋ป ํ๋ฆฌ๋ฉฐ ๊ฒ์์ ํ์๋ต๋๋ค.
์ด๋ฐ ์ผํ๋ฅผ ๋ ์ฌ๋ฆฌ๋ ์์์ด ๋๋ค์ ๐
ํ๋ ์์ํฌ(Framework)์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Library)์ ๋ํด์ ํฌ์คํ ์ ํ๋๋ฐ ์ Intro์ โ๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟคโ ์ด์ผ๊ธฐ๋ฅผ ํ๋์ง ๊ถ๊ธํ์ ๋ถ๋ค์ด ๊ณ์ค ๊ฑฐ์์!!
์ฌ์ค โ๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟคโ ์ โํ๋ ์์ํฌ(Framework)์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Library)โ ๋ก ํ๋ ์ด ํ๋ ๊ฒ์์ด๋ผ๊ณ ๋งํด๋ ๋ฌด๋ฐฉํ๊ฑฐ๋ ์ !!
์ด์ , ๋ณธ๊ฒฉ์ ์ผ๋ก โ๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟคโ๊ณผ โํ๋ ์์ํฌ(Framework) ๊ทธ๋ฆฌ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Library)โ๊ฐ ์ด๋ค ๊ด๊ณ์ธ์ง ํ ๋ฒ ์์๋ด ์๋ค ๐
๐ก 1. ๋๋ง์ ๋์ด๋์ฐ์ ๋ง๋ค์ด๋ด ์๋ค!
์ฐ๋ฆฌ์ ๋ชฉํ๋ ๋ฉ์ง ํ
๋งํํฌ๋ฅผ ๋ง๋ค์ด์ ์ผ์ ๊ธฐ๊ฐ ์์ ์ ํด์ง ์์ต์ ๋ด๋ ๊ฒ์ด์์!!
๊ทธ๋ฌ๊ธฐ ์ํด์๋ ํ
๋งํํฌ์ ์ฌ๋ฏธ์๋ ๋ณผ๊ฑฐ๋ฆฌ, ๋จน๊ฑฐ๋ฆฌ ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ค์ํ ๐ขโ์ฌ๋ฏธ์๋ ๋์ด๊ธฐ๊ตฌโ๐ก ๊ฐ ์์ด์ผ๊ฒ ์ฃ ?!
๐ ๏ธ 2. ๋์ด๊ธฐ๊ตฌ๋ฅผ ๋ง๋๋ 2๊ฐ์ง ๋ฐฉ๋ฒ โ๏ธ
๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟค์์ โ๋์ด๊ธฐ๊ตฌ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์งโ๋ก ๋๋ฉ๋๋ค.
1๏ธโฃ ๋ด๊ฐ ์ง์ ์์ ๋ง๋ค๊ธฐ !
- ์ง์ ์์ ๋ง๋๋ ๊ฒ์ ๋ ์ผ ์กฐ๊ฐ์ ํ๋์ฉ ๋ถ์ฌ์ ๋กค๋ฌ์ฝ์คํฐ๋ฅผ ์ํ๋ ๋ชจ์์ผ๋ก ๋ง๋๋ ๊ฒ์ด์ฃ . ๐ข
2๏ธโฃ ์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ ๋์ด๊ธฐ๊ตฌ ์ค์นํ๊ธฐ !
- ์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ ๋์ด๊ธฐ๊ตฌ๋ ์ํ๋ ์์น์ ์ค์น๋ง ํ๋ฉด ๋ฉ๋๋ค. ๐ก
๐งฑ 2. ๋ผ์ด๋ธ๋ฌ๋ฆฌ == ๋ ์ผ ์กฐ๊ฐ.
<img src=โhttps://github.com/devKobe24/images2/blob/main/rc_tycoon_4.png?raw=trueโ whidth = 350, height = 350>
- ๋ค์ํ ๋ชจ์์ ๋ ์ผ ์กฐ๊ฐ์ ๋ด๊ฐ ์ง์ ์ ํํด์ ์กฐ๋ฆฝํด์.
- ์ฝ๋, ๋ฃจํ, ๊ฒฝ์ฌ, ์์น ๋ฑ ๋ด๊ฐ ์ฃผ๋ํด์ ์ฐ๊ฒฐํ์ฃ .
- ๋ด๊ฐ ์ค๊ณํ ๋๋ก, ๋ด๊ฐ ์๋ํ ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๐ ๏ธ ์ฆ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋!
๋ด๊ฐ ํ์ํ ๊ธฐ๋ฅ๋ง ๊ณจ๋ผ์ ์กฐ๋ฆฝํ๋ ๋๊ตฌ ๋ชจ์ ์ ๋๋ค :)
๐งโ๐ป ๊ฐ๋ฐ์ ๋น์ :
- Lombok, Jackson, Apache, Commons, Retrofit, QueryDSL ๋ฑ์ ๋ชจ๋ ๋ ์ผ ์กฐ๊ฐ ๊ฐ์ ์กด์ฌ !
- ๋ด๊ฐ ์ง์ ํธ์ถํ๊ณ ์ฌ์ฉํ ์ง ๊ฒฐ์ ํฉ๋๋ค.
๐๏ธ 3. ํ๋ ์์ํฌ == ๋์ด๊ธฐ๊ตฌ ์๋ ์ด์ ์์คํ .
<img src=โhttps://github.com/devKobe24/images2/blob/main/rc_tycoon_3.png?raw=trueโ whidth = 350, height = 350>
- ๋ด๊ฐ ๋์ด๊ธฐ๊ตฌ๋ฅผ ์ค์นํ๋ฉด
- ํ์น ๋๊ธฐ์ด ๋ง๋ค๊ธฐ โ ์
์ฅ โ ์ถ๋ฐ โ ์ดํ โ ํ์ฐจ
์ด ๋ชจ๋ ๊ณผ์ ์ ๊ฒ์์ด ์๋์ผ๋ก ์ ์ดํฉ๋๋ค.
- ํ์น ๋๊ธฐ์ด ๋ง๋ค๊ธฐ โ ์
์ฅ โ ์ถ๋ฐ โ ์ดํ โ ํ์ฐจ
๐งโ๐ป ๊ฐ๋ฐ์ ๋น์ :
- Spring, Django, Rails, Angular ๋ฑ์ ๋ฐ๋ก ์ด ์์คํ ๊ณผ ๊ฐ์์.
- ์ ์ฒด ํ๋ฆ์ ํ๋ ์์ํฌ๊ฐ ๊ฐ๊ณ ์๊ณ , ๋๋ ํ์ํ ๋ถํ๋ง ๋ฃ์ต๋๋ค.
๐ข ์ด๊ฒ์ด ๋ฐ๋ก ํ๋ก๊ทธ๋๋ฐ์์ ๋งํ๋
์ ์ด์ ์ญ์ (Inversion of Control) ์ ๋๋ค.
ํ๋ ์์ํฌ๊ฐ ๋์ ์ฝ๋๋ฅผ ํธ์ถํ๊ณ ์ ์ฒด ํ๋ฆ์ ํต์ ํด์!
โ๏ธ 4. ์ ๋ฉด ๋น๊ต: ํ๋ ์์ํฌ(Framework)
๋ผ์ด๋ธ๋ฌ๋ฆฌ(Library)
๋น๊ต ํญ๋ชฉ | ๐งฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(๋ ์ผ ์กฐ๊ฐ) | ๐๏ธ ํ๋ ์์ํฌ (๋์ด๊ธฐ๊ตฌ ์์คํ ) |
---|---|---|
์ฃผ๋๊ถ | ๊ฐ๋ฐ์ (๋ด๊ฐ ํธ์ถ) | ํ๋ ์์ํฌ (ํ๋ ์์ํฌ๊ฐ ๋ด ์ฝ๋๋ฅผ ํธ์ถ) |
์ ์ฐ์ฑ | ๋งค์ฐ ๋์ | ๋ฎ์ (ํ ์์์ ๋์) |
์ฌ์ฉ ๋ฐฉ์ | ํ์ํ ๊ฒ๋ง ๊ณจ๋ผ ์ฌ์ฉ | ํ์ ๋ฐ๋ฅด๊ณ ํ์ํ ๋ถ๋ถ๋ง ์ฑ์ |
์ง์ ๋์ด๋ | ๋ฎ์ (์ง๊ด์ ) | ์ค๊ฐ ์ด์ (๊ตฌ์กฐ ์ดํด ํ์) |
์์ | Lombok, Jackson, Retrofit | Spring, Django, Angular |
๐ 5. ๊ฒฐ๋ก : ๋น์ ์ ์ง๊ธ ์ด๋ค ๋์ด๊ณต์์ ์ง๊ณ ์๋์?
๐ข ์ง์ ๋ ์ผ์ ์กฐ๋ฆฝํ๋ ์์ ๋ก์ด ์ค๊ณ์?
โ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์ฌ์ ๊ฐ๋ฐ
๐ ์๋ ์ด์ ์์คํ
์ ํ์ฉํ๋ ์์คํ
์ค๊ณ์?
โ ํ๋ ์์ํฌ ๊ธฐ๋ฐ ๊ฐ๋ฐ
๐ ๋ถ๋ก: ํ์์ ํ๋ง๋.
โ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ด๊ฐ ๊บผ๋ด ์ฐ๋ ๋๊ตฌ๊ณ ,
ํ๋ ์์ํฌ๋ ๋๋ฅผ ๊ปด์์ ํฐ ๊ตฌ์กฐ๋ค.โ
๐ข ๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟค ๋๋ถ์ ๊ฐ๋
์ด ์ ๋ค์ด์๋์?
๊ทธ๋ฌ๋ค๋ฉด ๋๋ฌด ๊ธฐ๋ถ์ด ์ข์๊ฒ ๊ฐ์์ ๐
๊ทธ๋ ๋ค๋ฉด ์ค๋์ ์ฌ๊ธฐ๊น์ง !! ๋ค์์ ๋ ๋ง๋์ ์๋ ๐
๐ ์ด๋ฏธ์ง ์ถ์ฒ