Notice
Recent Posts
Link
Today
Total
10-06 02:35
๊ด€๋ฆฌ ๋ฉ”๋‰ด

dingdong coding

PROGRAMMING ๋ณธ๋ฌธ

๐ŸŽˆ์ทจ์ค€

PROGRAMMING

๐Ÿถ ๊ฐœ๋ฐœ๊ฐœ๋ฐœ ๐Ÿพ 2022. 7. 3. 15:06

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
Comments