์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- menutab
- Dialog
- OOP
- ์ฑ์ฉํ์ ํ
- http method
- URN
- fontstyle
- 2024-08-21
- AndroidStudio
- tcp
- swagger
- OpenAPI
- ํ๋ IT&E
- IOC
- reflection
- url
- uri
- 2024-08-20
- Kotlin
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
- Python
- di
- ์ด๋ ธํ ์ด์
- Android Studio
- datepicker
- Factory Method Pattern
- FACTORY
- udp
- ์ฝ๋์
- ๊ธฐ์ด100์
dingdong coding
PROGRAMMING ๋ณธ๋ฌธ
1. ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํ๊ณ , ๋ณธ์ธ์ด ์ฌ์ฉํด ๋ณธ ๊ฒ๋ค์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด๋ ์ ์ด ํ๋ฆ์ ๋ํ ์ฃผ๋์ฑ์ด ๋๊ตฌ์๊ฒ/์ด๋์ ์๋๊ฐ ์ ๋๋ค. ์ฆ, ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋ฆ์ ๋๊ฐ ์ฅ๊ณ ์๋๋์ ๋ฐ๋ผ ๋ฌ๋ ค ์์ต๋๋ค. ํ๋ ์์ํฌ๋ ์ ์ฒด์ ์ธ ํ๋ฆ์ ์ค์ค๋ก๊ฐ ์ฅ๊ณ ์์ผ๋ฉฐ ์ฌ์ฉ์๋ ๊ทธ ์์์ ํ์ํ ์ฝ๋๋ฅผ ๊ฐ๋ฐํฉ๋๋ค. ๋ฐ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ ์ ์ฒด์ ์ธ ํ๋ฆ์ ๋ง๋ค์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ๋ค ์ฐ๋ ๊ฒ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
์ฆ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉํ๊ณ ํธ์ถํ๋ ์ธก์ ์ ์ ์ผ๋ก ์ฃผ๋์ฑ์ด ์์ผ๋ฉฐ ํ๋ ์์ํฌ๋ ๊ทธ ํ ์์ ์ด๋ฏธ ์ ์ด ํ๋ฆ์ ๋ํ ์ฃผ๋์ฑ์ด ๋ด์ฌ๋์ด ์์ต๋๋ค. ํ๋ ์์ํฌ๋ ๊ฐ์ ธ๋ค ์ฌ์ฉํ๋ค๊ธฐ ๋ณด๋ค๋ ๊ฑฐ๊ธฐ์ ๋ค์ด๊ฐ์ ์ฌ์ฉํ๋ค๋ ๊ด์ ์ผ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
ํ๋ ์ ์ํฌ๋ Vue.js, Django, Spring์ ์ฌ์ฉํด๋ดค์ผ๋ฉฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํด๋น ํ๋ ์ ์ํฌ์ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ฉฐ ํ์ํ ๊ฒ๋ค์ ์ฌ์ฉํด๋ณด์์ต๋๋ค. ์๋ฅผ ๋ค์ด Vue์ฌ์ฉ ์์๋ Vuetify, Vuex, Vue axios .. ๋ฑ, Spring ์ฌ์ฉ ์์๋ starter-tomcat, junit, assertj, lombok .. ๋ฑ, Django ์ฌ์ฉ์์๋ ๊ด๋ จ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด aws์ ํ ์ requirements.txt ์์ ์๊ตฌ์ฌํญ ํ์ผ ํจํค์ง(๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํจํค์ง์ ์งํฉ)๋ฅผ ์ ์ํด๋ณด์์ต์ต๋๋ค.
2. ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ๋ํด ์ค๋ช ํ๊ณ ์ธ์ ์ฌ์ฉํ ์ ์๋์ง ์๋ฅผ ๋ค์ด์ฃผ์ธ์
ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ๊ฐ์ฒด ์์ฑ ์ฒ๋ฆฌ๋ฅผ ์๋ธ ํด๋์ค๋ก ๋ถ๋ฆฌํด ์ฒ๋ฆฌํ๋๋ก ํ๋ ํจํด์ ๋๋ค. ์ฆ, ๊ฐ์ฒด์ ์์ฑ์ฝ๋๋ฅผ ๋ณ๋์ ํด๋์ค/๋ฉ์๋๋ก ๋ถ๋ฆฌํจ์ผ๋ก์จ ๊ฐ์ฒด ์์ฑ์ ๋ณํ์ ๋๋นํ๋๋ฐ ์ ์ฉํฉ๋๋ค.
ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์ฌ์ฉํ๋ ์ด์ ๋ ํด๋์ค์ ์์ฑ๊ณผ ์ฌ์ฉ์ ์ฒ๋ฆฌ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
๊ฒฐํฉ๋๋ ๊ฐ๋จํ ๋งํด์ ํด๋์ค์ ์ฒ๋ฆฌ๋ก์ง์ ๋ํ ๋ณ๊ฒฝ์ ์ด ์๊ฒผ์ ๋ ์ผ๋ง๋ ์ฌ์ด๋ ์ดํํธ( '์๋ํ์ง ์์ ๊ฒฐ๊ณผ' )๋ฅผ ์ฃผ๋๊ฐ ์ธ๋ฐ, ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ง์ ๊ฐ์ฒด๋ฅผ ์์ฑํด ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์๋ธ ํด๋์ค์ ์์ฑ ๋ก์ง์ ์์ํจ์ผ๋ก์จ ๋ณด๋ค ํจ์จ์ ์ธ ์ฝ๋์ ์ด๋ฅผ ํ ์ ์๊ณ ์์กด์ฑ์ ์ ๊ฑฐํฉ๋๋ค.
3. ๋๊ธฐ ๋ฐฉ์๊ณผ ๋น๋๊ธฐ ๋ฐฉ์์ ์ฐจ์ด์ ๋ํด ์๋ฅผ ๋ค์ด ์ค๋ช ํด์ฃผ์ธ์
๋๊ธฐ(synchronous)๋ ๋ง๊ทธ๋๋ก ๋์์ ์ผ์ด๋๋ค๋ ๋ป์ ๋๋ค. ์ฆ, ์์ฒญ๊ณผ ๊ทธ ๊ฒฐ๊ณผ๊ณผ ๋์์ ์ผ์ด๋๋ค๋ ์ฝ์์ผ๋ก ๋ฐ๋ก ์์ฒญ์ ํ๋ฉด ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์ง ์์ฒญํ ์๋ฆฌ์์ ๊ฒฐ๊ณผ๊ฐ ์ฃผ์ด์ ธ์ผ ํฉ๋๋ค.
์์ฒญ์ ๋ณด๋ด๊ณ ์คํ์ด ๋๋๋ฉด ๋ค์ ๋์์ ์ฒ๋ฆฌํ๊ณ ์์์ ๋ง์ถ์ด ์งํ๋๊ธฐ ๋๋ฌธ์ ์ ์ด๊ฐ ์ด๋ ต์ต๋๋ค. ๋ํ ์ฌ๋ฌ๊ฐ์ง ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํ ์ ์์ด ํจ์จ์ด ๋จ์ด์ง๋๋ค.
๋น๋๊ธฐ(Asynchronous)๋ ๋ง๊ทธ๋๋ก ๋์์ ์ผ์ด๋์ง ์๋๋ค๋ ์๋ฏธ์ ๋๋ค. ์์ฒญ๋ ๊ทธ ์๋ฆฌ์์ ๊ฒฐ๊ณผ๊ฐ ์ฃผ์ด์ง์ง ์์ผ๋ฉฐ ๋ ธ๋ ์ฌ์ด์ ์์ ์ฒ๋ฆฌ ๋จ์๋ฅผ ๋์์ ๋ง์ถ์ง ์์๋ ๋ฉ๋๋ค.
์์ฒญ์ ๋ณด๋ด๊ณ ๋์์ ์ฒ๋ฆฌ ์ฌ๋ถ์ ์๊ด์์ด ๋ค์ ์์ฒญ์ด ๋์ํ๋ ๋ฐฉ์์ผ๋ก ์์ ์ด ์๋ฃ๋๋ ์๊ฐ์ ๊ธฐ๋ค๋ฆด ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ง๋ง ์์ ์ด ์๋ฃ๋ ๊ฒฐ๊ณผ๋ ์ ์ดํ๊ธฐ ์ด๋ ต์ต๋๋ค.
์๋ฅผ๋ค๋ฉด ๋๊ธฐ์ ์ฃผ๋ฌธ์ธ ๊ฒฝ์ฐ ๊ทธ ์๋ฆฌ์์ ์ปคํผ๋ฅผ ๋ฐ์์ผ๋ง ๋ค์์์ ์ ์ฒ๋ฆฌํ ์ ์๊ณ ๋น๋๊ธฐ์ ์ฃผ๋ฌธ์ธ ๊ฒฝ์ฐ์๋ ์ง๋๋ฒจ์ ๋ฐ๋ ๋ฐฉ์์ด๋ผ๋ฉด ํ ๋ฒ์ ์ฌ๋ฌ ์ฃผ๋ฌธ์ ์ฒ๋ฆฌํ ์ ์์ด ์๋๊ฐ ๋นจ๋ผ์ง๊ฒ ๋ฉ๋๋ค.
4. DDD(Domain-Driven-Design)์์ Domain์ด๋ ๋ฌด์์ธ๊ฐ์?
์ฌ์ ์ ์๋ฏธ๋ '์์ญ', '์งํฉ'์ผ๋ก DDD์์ ๋งํ๋ ๋๋ฉ์ธ์ ๋น์ฆ๋์ค ๋๋ฉ์ธ์ ๋๋ค. ๋น์ฆ๋์ฆ ๋๋ฉ์ธ์ ์ ์ฌํ ์ ๋ฌด์ ์งํฉ(๋ง์ผํ , ๊ตฌ๋งค, ์ฐ๊ตฌ, ์์ ๋ฑ)์ผ๋ก ์ดํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค Domain๋ณ๋ก ๋๋์ด ์ค๊ณ, ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
5. OOP์ 5๊ฐ์ง ์ค๊ณ ์์น๋ค์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์
[ Object-Oriented Programming ] ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
** ๊ณ์ ์ถ๊ฐ **
'๐์ทจ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SERVER_NETWORK (0) | 2022.07.03 |
---|---|
JAVA_Spring (0) | 2022.07.03 |