MapleStory Finger Point

โ˜… 586

ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture) ๊ฐœ๋…

๋ชฉ์ฐจ    ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜ ๊ฐœ๋… ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture)= ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ ์•„ํ‚คํ…์ฒ˜(Ports and Adapters Architecture)= ์œก๊ฐํ˜• ์•„ํ‚คํ…์ณ  ๐Ÿ“Œ ๋น„์ง€๋‹ˆ์Šค ๋ชจ๋ธ(๋„๋ฉ”์ธ)์„ ์™ธ๋ถ€์™€ ๊ฒฉ๋ฆฌ์‹œ์ผœ ์œ ์—ฐ+ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‰ฌ์šด ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋น„์ง€๋‹ˆ์Šค ์ฝ”๋“œ๋ฅผ ๊ธฐ์ˆ  ์ฝ”๋“œ์™€ ๋ถ„๋ฆฌ์‹œํ‚จ๋‹ค. (๋˜ํ•œ ๊ธฐ์ˆ ์ฝ”๋“œ๋„ ์ด์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•จ) ๋น„์ง€๋‹ˆ์Šค ๋ชจ๋ธ์€ ์ค‘์•™์˜ ๋„๋ฉ”์ธ ์˜์—ญ, ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํฌํŠธ , ์–ด๋Œ‘ํ„ฐ๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์™€ ์†Œํ†ตํ•จ    ์ˆ˜์ง์  ๊ณ„์ธตํ™”์™€ ๊ธฐ๋Šฅ ๊ธฐํŒ ํŒจํ‚ค์ง€ ์•„ํ‚คํ…์ฒ˜์˜  ์žฅ์ ์„ ๋™์‹œ์— ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค !๊ณ„์ธต๊ธฐ๋ฐ˜ ํŒจํ‚ค์ง• (MVC ์•„ํ‚คํ…์ณ) + ๊ธฐ๋Šฅ๊ธฐ๋ฐ˜ ํŒจํ‚ค์ง•(๋„๋ฉ”์ธ, ์—ญํ• ๋ผ๋ฆฌ ํŒจํ‚ค์ง•)  = โญ ๊ตฌ์กฐ ,์šฉ์–ด ํด๋”๊ตฌ์กฐadapter, apllication ,dom..

TDD (Test-Driven Development) ๋ฐฉ๋ฒ•๋ก  ๊ฐœ๋…

๋ชฉ์ฐจ   TDD ๊ฐœ๋…Test-Driven Development (ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ) ์˜ ์•ฝ์ž๊ฐœ๋ฐœ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜์ž„  ๐Ÿ“Œ๊ธฐ์กด์˜ ๊ฐœ๋ฐœ :์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ -> ์„ค๊ณ„ -> ๊ฐœ๋ฐœ -> ํ…Œ์ŠคํŠธ -> ๋ฐฐํฌ(์žฌ์„ค๊ณ„๋กœ ์ธ ํ•œ  => ์œ ์ง€๋ณด์ˆ˜ ์–ด๋ ค์›€ ใ…œใ…œ) ๐Ÿ“Œ TDD :๋ชฉ์  ์ •์˜ -> (์ผ๋‹จ) ์‹คํŒจ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ -> ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ ์ž‘์„ฑ -> ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง (๋ฐ˜๋ณต)-> ๊ฐœ๋ฐœ ->  ๋ฐฐํฌ  TDD ํˆด JUnit : java ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ (์ด์™ธ์—๋„ xUnit ์ด๋ผ๊ณ  ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๋„ ์žˆ์Œ) Mockito : Mocking(๋ชจ์˜) ํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ     red-green-refactoring cycle   TDD ์žฅ๋‹จ์ ์žฅ์ - ๊ฐœ๋ฐœ์ƒ์‚ฐ์„ฑ, ๊ตฌํ˜„ ๋“ฑ๋“ฑ ํšจ์œจ์ ์ž„ ๋‹จ์ -..

Library | Framework | API ๊ฐœ๋…

๋ชฉ์ฐจ    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library) ์ฃผ๋„๊ถŒ์ด ๊ฐœ๋ฐœ์ž (ํ•„์š”ํ•  ๋•Œ ํ˜ธ์ถœ) ์ฝ”๋“œ ๋ชจ์Œ์ž„์ฝ”๋“œ, ๋ชจ๋“ˆ, ํŒจํ‚ค์ง€ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋จ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ ํ๋ฆ„ ์ œ์–ด ๊ฐ€๋Šฅ  ๐Ÿ“Œ JavaScript jQuery์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DOM ์กฐ์ž‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, Ajax ์š”์ฒญ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ ๊ฐœ์„ Lodash์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ  ๋ฐฐ์—ด, ๊ฐ์ฒด ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์ตœ์ ํ™”Moment.js / Day.js์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ ์งœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚ ์งœ ํฌ๋งท ๋ณ€ํ™˜Axios์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ HTTP ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌREST API ํ˜ธ์ถœ   ํ”„๋ ˆ์ž„์›Œํฌ(Framework) ์ฃผ๋„๊ถŒ์ด ํ”„๋ ˆ์ž„์›Œํฌ (๊ฐœ๋ฐœ์ž๊ฐ€ ์ข…์†๋จ, ๊ทœ์น™๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฆ„)  ๐Ÿ“Œ ๋ฐฑ์—”๋“œSpringJava๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ, ๊ฐ์ฒด ์ง€ํ–ฅ๊ธฐ์—… ์‹œ์Šคํ…œ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜DjangoPython๋น ๋ฅธ ๊ฐœ๋ฐœ, ๋ณด์•ˆ ๊ฐ•ํ•จ๋ฐ์ดํ„ฐ ๋ถ„์„, ์Šคํƒ€ํŠธ..

HTTP(Hypertext Transfer Protocol) ๋ฉ”์„œ๋“œ์™€ ์‘๋‹ต์ฝ”๋“œ

HTTP ์ƒํƒœ ์ฝ”๋“œ ์ •๋ฆฌ1xx (์ •๋ณด ์‘๋‹ต)100 Continue: ์š”์ฒญ์„ ๊ณ„์† ์ง„ํ–‰ํ•ด๋„ ๋จ.101 Switching Protocols: ํ”„๋กœํ† ์ฝœ ๋ณ€๊ฒฝ ์š”์ฒญ ์Šน์ธ.102 Processing: ์š”์ฒญ์ด ์ฒ˜๋ฆฌ ์ค‘ (WebDAV).103 Early Hints: ๋ณธ๋ฌธ ์ „์†ก ์ „์— ๋ฏธ๋ฆฌ ํ—ค๋” ์ œ๊ณต. 2xx (์„ฑ๊ณต ์‘๋‹ต)200 OK: ์ •์ƒ ์‘๋‹ต.201 Created: ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ ์™„๋ฃŒ.202 Accepted: ์š”์ฒญ์ด ์ ‘์ˆ˜๋˜์—ˆ์œผ๋‚˜ ์ฒ˜๋ฆฌ ๋ฏธ์™„๋ฃŒ or ์‹œ์ž‘๋˜์ง€ ์•Š์•˜์„ ์ˆ˜ ์žˆ์Œ203 Non-Authoritative Information: ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ถœ์ฒ˜์—์„œ ์ •๋ณด ์ œ๊ณต.204 No Content: ๋ณธ๋ฌธ ์—†์ด ์„ฑ๊ณต ์‘๋‹ต.205 Reset Content: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ทฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•จ.206 Partial Conte..

MSA(Microservices Architecture) ๊ฐœ๋…

๋ชฉ์ฐจ    ์ด๋ฒˆ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ MSA ๋ฐฉ์‹์„ ๋„์ž…ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ MSA ์— ๋Œ€ํ•œ ๊ณต๋ถ€๋„ ํ•˜๊ณ  ์–ด๋ ต๊ฒŒ ํ”„๋กœ์ ํŠธ ์„ธํŒ…๊นŒ์ง€ ํ–ˆ์ง€๋งŒ.. ์ง„ํ–‰ํ•˜๋ ค๋˜ ํ”„๋กœ์ ํŠธ๊ฐ€ MSA ๋ฅผ ์‚ฌ์šฉํ•  ๋งŒํ•œ ํ”„๋กœ์ ํŠธ๋„ ์•„๋‹ ๋ฟ๋”๋Ÿฌ, ๋น„ํšจ์œจ์ ์ธ ๋ถ€๋ถ„์ด ๋งŽ์•„์„œ (์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ผœ์•ผํ•จ) ๊ฒฐ๊ตญ MSA ๋ฐฉ์‹์€ ํฌ๊ธฐํ•˜๊ฒŒ๋˜์—ˆ๋‹ค. ใ…œใ…œ ๊ทธ๋ž˜์„œ ์ด๋ก ์ด๋ผ๋„ ๋„์ ๋„์  ํ•ด ๋ณผ ์˜ˆ์ •..  ๋Œ€ํ‘œ ๊ฐœ๋… API Gateway : Spring Cloud Gateway ์™€ Webflux ๋กœ ๊ตฌํ˜„Service Discovery : Netflix Eureka ์‚ฌ์šฉ์œผ๋กœ ๊ตฌํ˜„Config Server : Spring Cloud Config ์‚ฌ์šฉ์œผ๋กœ ๊ตฌํ˜„  MSA๋ž€?MSA(Microservices Architecture, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜)๋Š”์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ..

[Project] WebSocket ์›น ์†Œ์ผ“ ๊ตฌํ˜„ (์‹ค์‹œ๊ฐ„ ์œ„์น˜ ์ •๋ณด)

๋ชฉ์ฐจ   WebSocket ์„ ์จ๋ณด์ž ํ”„๋กœ์ ํŠธ์—์„œ ์‹ค์‹œ๊ฐ„ ์œ„์น˜์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. โœ… ์›น์†Œ์ผ“์— ์ ‘์†ํ•˜๋ฉด ์ ‘์†ํ•œ ์œ ์ € ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.โœ… ์‚ฌ์šฉ์ž ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋ ๋•Œ๋งˆ๋‹ค ์†Œ์ผ“์œผ๋กœ ์œ„์น˜์ •๋ณด๋ฅผ ๋ณด๋‚ด๋ฉด, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ์œ„์น˜์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.โœ… ์ด๋•Œ, ์†Œ์ผ“์œผ๋กœ userId ๋ฅผ ๋ณด๋‚ด๋ฉด ์ž๋™์œผ๋กœ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ๋ฐ›์•„์˜จ ์œ„์น˜(์œ„๋„,๊ฒฝ๋„)๋„ ํ•จ๊ป˜ ํฌํ•จํ•ด์„œ ๋‹ค๋ฅธ ์†Œ์ผ“ ์œ ์ €๋“ค์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.   ์‹ค์‹œ๊ฐ„ ์œ„์น˜์ •๋ณด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ณ„์†ํ•ด์„œ ์œ„์น˜๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•œ๋ฐ...์ด๊ฑธ HTTP ๋กœ ๊ตฌํ˜„ ํ•˜๊ธฐ์—๋Š” ๋งค์šฐ ํž˜๋“ค๋‹ค. HTTP ์˜ ํŠน์ง• ๋•Œ๋ฌธ์ธ๋ฐ, ๋‹จ๋ฐฉํ–ฅํ†ต์‹ ์ธ ์  (์š”์ฒญ์„ ํ•ด์•ผ๋งŒ ์‘๋‹ต์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ)์š”์ฒญ์„ ํ• ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กญ๊ฒŒ ์—ฐ๊ฒฐํ•ด์•ผํ•˜๋Š” ๋“ฑ ๋งŽ์€ ๋‹จ์ ์ด ์žˆ๋‹ค. ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ตฌํ˜„ํ•˜..

์›น ์†Œ์ผ“ (WebSocket) ๊ฐœ๋…

HTTPํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ(Request) → ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต(Response)์‘๋‹ต ํ›„ ์—ฐ๊ฒฐ์ด ๋‹ซํž˜ (Stateless)์ƒˆ๋กœ์šด ์š”์ฒญ๋งˆ๋‹ค ๋‹ค์‹œ ์—ฐ๊ฒฐ ํ•„์š”์ฃผ๋กœ ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹  (ํด๋ผ์ด์–ธํŠธ → ์„œ๋ฒ„)๋ฐ์ดํ„ฐ๋ฅผ ํ—ค๋”์— ํฌํ•จ์‹œ์ผœ์„œ ์ „๋‹ฌํ•จ ํด๋ง(Polling)ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ผ์ • ์ฃผ๊ธฐ๋กœ ์„œ๋ฒ„์— ์š”์ฒญํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ ์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹์žฅ์ : ๊ธฐ์กด HTTP ๋ฐฉ์‹์—์„œ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๊ฐ€๋Šฅ๋‹จ์ : ์‘๋‹ต์ด ์—†๋”๋ผ๋„ ๊ณ„์† ์š”์ฒญ์„ ๋ณด๋‚ด๋ฏ€๋กœ ๋„คํŠธ์›Œํฌ ๋‚ญ๋น„ ๋ฐœ์ƒ, ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„๊ฐ€ ๋งค์šฐ ์‹ฌํ•จ, ์‹ค์‹œ๊ฐ„์„ฑ์ด ๋‚ฎ๋‹ค.* ๋„คํŠธ์›Œํฌ ์˜ค๋ฒ„ํ—ค๋“œ : ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ด์™ธ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋“ค์˜ ๋ถˆํ•„์š”ํ•œ ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜ WebSocketํ•œ ๋ฒˆ ์—ฐ๊ฒฐํ•˜๋ฉด ์ข…๋ฃŒ ์ „๊นŒ์ง€ ์œ ์ง€ ( Persistent  Connection)์–‘๋ฐฉํ–ฅ ํ†ต์‹  ๊ฐ€๋Šฅ ํ”„๋กœํ† ์ฝœ (ํด๋ผ์ด์–ธํŠธ ↔ ์„œ๋ฒ„)์ง€์—ฐ ์‹œ๊ฐ„์ด ์งง์Œ (๋น ๋ฅธ ..

[Project] React Calendar ํ™œ์šฉํ•˜๊ธฐ (Date, Time, disabled)

๋ชฉ์ฐจ        ์œ„์™€ ๊ฐ™์ด ๋ฆฌ์•กํŠธ ์บ˜๋ฆฐ๋”๋ฅผ ์ด์šฉํ•ด์„œ ๋‚ ์งœ๋ฅผ ๋ฐ›์•„์˜ค๊ณ  ์‹œ๊ฐ„์„ ๋ฐ›์•„ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.ํŠน์ • ๋‚ ์งœ๋Š” ๋น„ํ™œ์„ฑํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ์žˆ๋‹ค.(์šฐ๋ฆฌ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์˜ˆ์•ฝ์ด ๊ฝ‰์ฐจ๊ฑฐ๋‚˜, ํœด๋ฌด์ผ์ด๊ฑฐ๋‚˜ , ์ง€๊ธˆ์œผ๋กœ๋ถ€ํ„ฐ 3๊ฐœ์›” ๋‚ด ์ด์™ธ์˜ ๊ฐ’์€ disabled ๋œ๋‹ค.)    1) ๋ฆฌ์•กํŠธ ์บ˜๋ฆฐ๋” ์„ค์น˜ (install) npm install react-calendar   2) ๋ฆฌ์•กํŠธ ์บ˜๋ฆฐ๋” ์‚ฌ์šฉ (import) import Calendar from 'react-calendar'; import "./Calendar.css";  `react-calendar` ์™€ `css` import ์‹œ์ผœ์ฃผ๊ธฐ     3) ๋‚ ์งœ ๊ฐ€์ ธ์˜ค๊ธฐ (Date seleted)  moment(date).format('D')} f..

[Project] ๋‚ ์งœ ๋ณ„ ์˜ˆ์•ฝ ๊ฑด์ˆ˜(Slot) ๊ด€๋ฆฌ (React Calendar)

๋ชฉ์ฐจ  1) ํŽ˜์ด์ง€ ๊ตฌ์ƒ  1. ์ƒํ’ˆ๋ณ„ ->  ๋‚ ์งœ๋ณ„ ->  ์‹œ๊ฐ„๋ณ„ ->  ์˜ˆ์•ฝ ๊ฑด์ˆ˜(Slot)๋ฅผ ์ œํ•œํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. (๋งˆ์น˜ ๋„ค์ด๋ฒ„ ์˜ˆ์•ฝ์ฒ˜๋Ÿผ!)(๋ณดํ†ต ์ฃผ๋ฌธ์ œ์ž‘ ์ผ€์ดํฌ, ๊ฝƒ์ง‘์€ ๋ฐฉ๋ฌธ ๋‚ ์งœ์™€ ์‹œ๊ฐ„๋„ ๋ฏธ๋ฆฌ ์ •ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ณ ์‹ถ์—ˆ๋‹ค.)๋‹ค๋ฅธ ์˜ˆ์•ฝ ํ”Œ๋žซํผ์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌ๋˜๋Š”์ง€ ์„ธ๋ถ€์ ์ธ ๋กœ์ง์€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ,์ด ๊ฒฝ์šฐ ๋‚ ์งœ, ์‹œ๊ฐ„ ์ „๋ถ€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋‚ ์งœ + ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ณ„ ์Šฌ๋กฏ๋“ค์„ ์ „๋ถ€ ๊ด€๋ฆฌํ•ด์•ผํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€๊ฒŒ ํœด๋ฌด์ผ์ด ๋ฐ”๋€Œ๋‹ค๋˜๊ฐ€ (์ง€์ •ํœด๋ฌด์™€ ๊ณ ์ •ํœด๋ฌด ๋‘๊ฐ€์ง€ ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ—€๋‹ค.)๋‹ค์–‘ํ•œ ์š”์†Œ๋“ค๋„ ์Šฌ๋กฏ์— ์˜ํ–ฅ์„ ์คฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์ˆ˜์ •์ด๋‚˜ ์ด๋ž˜์ €๋ž˜ ๋„ˆ๋ฌด ๊ทœ๋ชจ๊ฐ€ ์ปค์ ธ์„œ ๊ฒฐ๊ตญ ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค.2. (ํ™•์ •) ๋‚ ์งœ๋ณ„๋กœ ๋ฐ›์„ ์˜ˆ์•ฝ ๊ฑด์ˆ˜๋ฅผ ์ง€์ •ํ•˜์ž. โญ๋Œ€์‹  ์‹œ๊ฐ„๋Œ€๋Š” ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค.. →..

[Project] ์ฃผ๋ฌธ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ ๊ตฌํ˜„ [2] (์ฃผ๋ฌธ ๋“ฑ๋ก ๋ถ€๋ถ„)

๋ชฉ์ฐจ    ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋Š” ์ฃผ๋ฌธ์ œ์ž‘ ์†Œ์ƒ๊ณต์ธ๋“ค์„ ์œ„ํ•œ ์ฃผ๋ฌธ ํ”Œ๋žซํผ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” :)https://github.com/hyejux/Neez\ GitHub - hyejux/Neez: ์˜ˆ์•ฝ ์ด์   ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ, ๊ด€๋ฆฌ๋„ ์†์‰ฝ๊ฒŒ NEEZ ์—์„œ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”! ใ€Œ์ฃผ๋ฌธ ์ œ์ž‘ ์˜ˆ์˜ˆ์•ฝ ์ด์   ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ, ๊ด€๋ฆฌ๋„ ์†์‰ฝ๊ฒŒ NEEZ ์—์„œ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”! ใ€Œ์ฃผ๋ฌธ ์ œ์ž‘ ์˜ˆ์•ฝ ์„œ๋น„์Šค "NEEZ "ใ€ - hyejux/Neezgithub.com   [1ํƒ„]https://hyejux.tistory.com/828 [ํ”„๋กœ์ ํŠธ/Spring Boot/Reactjs] ์ฃผ๋ฌธ ์‹œ์Šคํ…œ ๊ตฌํ˜„ (์นดํ…Œ๊ณ ๋ฆฌ ๋ถ€๋ถ„)๋ชฉ์ฐจ     ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋Š” ์ฃผ๋ฌธ์ œ์ž‘ ์†Œ์ƒ๊ณต์ธ๋“ค์„ ์œ„ํ•œ ์ฃผ๋ฌธ ํ”Œ๋žซํผ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ..