์ „์ฒด ๊ธ€ 86

[์„œํ‰] Do it! ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ - C++ ํŽธ / ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ฒ˜์Œ ์ค€๋น„ํ•˜๋Š” ์ทจ์ค€์ƒ์˜ ํ•„๋…์„œ ํ›„๊ธฐ

๊ธฐ์ถœ ์œ ํ˜•๋ถ„์„๋ถ€ํ„ฐ ๋ฌธ์ œํ’€์ด ๋น„๋ฒ•๊นŒ์ง€ ๋‹จ์ˆœ์ฝ”๋”ฉ๋งŒ ํ•ด์™”๋˜ ๋‚ด๊ฐ€ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ด์ง ์ค€๋น„๋ฅผ ํ•˜๋ฉฐ, ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด ๊นŠ์ด ์žˆ๊ฒŒ ๊ณต๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋ฌด์ž‘์ • ๋ฐฑ์ค€์—์„œ ๋ฌธ์ œ๋„ ํ’€์–ด๋ณด๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค๋ฅผ ํ†ตํ•ด ์œ ํ˜•๋“ค๋„ ๊ตฌ๊ฒฝํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์™œ(WHY) ํ•„์š”ํ• ๊นŒ๋Š” ์ฐพ์ง€๋ชปํ–ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€๋Š” SI์„ฑ ๊ฐœ๋ฐœ์„ ํ•ด์˜ค๋ฉฐ ์ผ์ •์— ์ซ“๊ฒผ์ง€ ํ”„๋กœ๊ทธ๋žจ ์‹œ๊ฐ„๋ณต์žก๋„๋‚˜ ์„ฑ๋Šฅ์— ์ซ“๊ธฐ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์“ฐ๋Š” ์ด์œ ์™€ ํ•„์š”์„ฑ์„ ์–ด๋””์—์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์„ ๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค ๊ด€๋ จ๋œ ์„œ์ ์„ ์ฐพ๊ธฐ๋กœ ํ–ˆ๋‹ค.   ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์„œ์ ์„ ๊ตฌํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด Do it! ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์•Œ๊ณ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด ์‹œ๋ฆฌ์ฆˆ์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ๋งŽ์€ ๊ธฐ์ถœ๋ฌธ์ œ ์œ ํ˜•์ˆ˜๋ก๊ณผ ์‹ค์Šต ๊ทธ๋ฆฌ๊ณ  ์œ ํŠœ๋ธŒ์—์„œ ์ง๊ฐ• ๋™์˜์ƒ์ด ์ œ๊ณต๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ €์ž ์ง๊ฐ•์˜ ๊ฒฝ์šฐ ์ƒ๊ฐ๋ณด๋‹ค ..

REST API/RESTful API Design Guide/REST ๋””์ž์ธ ํŒจํ„ด/Http Methods ๋Š” ๋ฌด์—‡์ธ๊ฐ€ #2

REST์˜ ๊ฐœ๋…์„ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ์ด์   REST API์˜ ๋””์ž์ธ์„ ์‚ดํŽด๋ณด๊ณ ์ž ํ•œ๋‹ค. REST API Design Guide 1) URL์— Resource๋ฅผ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค. GET /members/1 Resource๋Š” ๋™์‚ฌ๋ณด๋‹ค๋Š” ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋Œ€๋ฌธ์ž๋ณด๋‹ค๋Š” ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•ด์•ผ ํ•˜๊ณ , document(๋„ํ๋จผํŠธ) ์ด๋ฆ„์œผ๋กœ๋Š” ๋‹จ์ˆ˜ ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. collection๊ณผ store์˜ ๋ช…์€ ๋ณต์ˆ˜ ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 2) Resource์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” Http Method (GET, POST, PUT, DELETE)๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์ด๋•Œ, URL์— Http Method๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ ๋œ๋‹ค. ๋˜ํ•œ URL ํ–‰์œ„์— ๋Œ€ํ•œ ๋™์‚ฌ ํ‘œํ˜„์ด ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ ๋œ๋‹ค. CRUD ๊ธฐ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์€ URL์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค..

REST API/RESTful API๋ž€/Representational State Transfet API/REST ๋””์ž์ธํŒจํ„ด ์“ฐ๋Š” ์ด์œ  #1

[๊ณต๊ณ ] Front-end ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ ์ €ํฌ ํšŒ์‚ฌ๋Š” HTTP, RESTful API ํด๋ผ์ด์–ธํŠธ๋ฅผ RESTful ํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•  ์ค„ ์•„๋Š” ์‚ฌ๋žŒ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œ 3๋ช… ์ด์ƒ์˜ ๊ฐœ๋ฐœํŒ€์ด ์žˆ๋Š” ํšŒ์‚ฌ๊ฐ€ ํ”„๋ŸฐํŠธ์—”๋“œ(Front-end) ๊ฐœ๋ฐœ์ž๋ฅผ ์ฑ„์šฉํ•  ๋•Œ ์กฐ๊ฑด ๋ฐ ์ž๊ฒฉ์š”๊ฑด์— ๋Œ€๋ถ€๋ถ„ ์ ํ˜€์žˆ๋Š” ๋ง์ด๋‹ค. ํ•™๋ถ€ ๋•Œ๋ถ€ํ„ฐ 'REST API๋กœ ์„œ๋น„์Šคํ•ด์•ผ ํ•œ๋‹ค.', '์ข‹์œผ๋‹ˆ๊นŒ ์จ์•ผ ํ•œ๋‹ค.'๋Š” ๋ง์„ ์ข…์ข… ๋“ฃ๊ณค ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€ ๋‚˜์—๊ฒŒ REST API๊ฐ€ ๋ญ”๋ฐ? ์™œ ์จ์•ผ ํ•˜๋Š”๋ฐ?๋ผ๊ณ  ๋ฌป๋Š”๋‹ค๋ฉด ๋Œ€๋‹ตํ•  ์ˆ˜ ์—†์„ ๊ฒƒ ๊ฐ™๋‹ค. ์•„๋งˆ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๋“ค ์ค‘์—์„œ๋„ REST API๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ์ƒ๋Œ€๋ฅผ ์ดํ•ด์‹œํ‚ฌ ์ •๋„์˜ ๊ฐœ๋…์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๊ฑฐ์˜ ์—†์„ ๊ฒƒ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๋ƒฅ "ํด๋ผ์ด์–ธํŠธ(Client)์™€ ์„œ๋ฒ„(Server) ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ..

๋นŒ๋“œ(Build)/Jankins ์  ํ‚จ์Šค/CI๋„๊ตฌ ์จ์•ผํ•˜๋Š” ์ด์œ 

์˜ค๋Š˜ ์ˆ˜์ •์‚ฌํ•ญ ์„œ๋ฒ„์— ๋ฐ˜์˜(Deploy)ํ•ด์•ผ๋˜๋‹ˆ๊นŒ ๋นŒ๋“œ(๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„๊ณผ์ •)๊นŒ์ง€ ์™„์„ฑ์‹œ์ผœ๋†”. ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ์ข…์ข… ์ด๋Ÿฐ ๋ง์„ ๋“ฃ๊ฒŒ๋ฉ๋‹ˆ๋‹ค. Jenkins ๊ฐ€ ๋ฌด์—‡์ธ์ง€๋„ ์ž˜ ๋ชจ๋ฅด๋Š”๋ฐ ๋ฌด์ž‘์ • ์‚ฌ์šฉ๋ฒ•๋งŒ ์ตํ˜€ ์ดํ•ดํ•ด์•ผํ–ˆ๋˜ ์‹œ๊ฐ„์„ ๋˜๋Œ๋ ค ๊ทธ ์˜๋ฏธ์™€ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. Build? ๋นŒ๋“œ๋ž€ Jenkins๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„  ๋นŒ๋“œ์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค. ๋นŒ๋“œ๋Š” ์„œ๋ฒ„์— ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ. ์˜ˆ๋ฅผ๋“ค์–ด SpringBoot ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Maven์ด๋‚˜ Gradle๋กœ ๋นŒ๋“œํ•˜์—ฌ .jar์ด๋‚˜ .war๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋นŒ๋“œ ํˆด์˜ ๊ฒฝ์šฐ Java๋Š” Maven๊ณผ Gradle์ด ์ž๋ฆฌ์žก๊ณ  ์žˆ์œผ๋ฉฐ ์ด ๋นŒ๋“œ ๊ด€๋ฆฌ ํˆด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋นŒ๋“œ ์ž๋™ํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ์ฆ‰, ์  ํ‚จ์Šค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋ผ๊ณ  ์ดํ•ดํ•ด๋„ ..

[SI Story] POC (Proof Of Concept) Project/POC PJT/๊ฐœ๋…์ฆ๋ช… ํ”„๋กœํ† ํƒ€์ž… ํ”„๋กœ์ ํŠธ

POC(Proof Of Concept) Project : ๊ธฐ์กด ์‹œ์žฅ์— ์—†์—ˆ๋˜ ์‹ ๊ธฐ์ˆ  ๋ฐ ๊ฐœ๋…์„ ๋„์ž…ํ•˜๊ธฐ ์ „์— ์ด๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ SI 3๋…„์ฐจ ์ฒ˜์Œ์œผ๋กœ POC๋ผ๋Š” ๋ง์„ ๋“ค์—ˆ๋‹ค. ๋งค๋ฒˆ ์ˆ˜์ฃผ๋œ ํ”„๋กœ์ ํŠธ ์œ„์ฃผ๋กœ๋งŒ ์ˆ˜ํ–‰์„ ํ•ด์™”๊ธฐ ๋•Œ๋ฌธ์— ๋“ค์–ด๋ณธ ์ ์ด ์—†์—ˆ๋‹ค. ์ƒˆํ•ด ์ฒซ ํ”„๋กœ์ ํŠธ๋กœ POC๋ฅผ ๋งก๊ฒŒ๋˜๋ฉฐ ์ด๋ฒˆ์—” POC๋ฅผ ํ™•์‹คํžˆ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. POC๋ž€ Proof of Concept ์˜ ์•ฝ์–ด๋กœ์„œ ์‰ฝ๊ฒŒ๋งํ•ด ์ด๋ฏธ ์‹œ์žฅ์— ๋‚˜์˜ค์ง€ ์•Š์€ ์ฐจ๊ธฐ ์ œํ’ˆ์˜ ์„ฑ๋Šฅ๊ณผ ๊ธฐ๋Šฅ์„ ๋ฏธ๋ฆฌ ์ œ์‹œํ•˜๋„๋ก ํ•œ๋’ค ํ”„๋กœ์ ํŠธ ์—ฌ๋ถ€ ํ˜น์€ ์ฐจ๊ธฐ ๊ธฐ์ˆ  ๋„์ž… ์‹œ ํ•„์š” ์žฅ๋น„๋ฅผ ์ •ํ•˜๋Š” ํ”„๋กœํ† ํƒ€์ž…(Sample) ๋Š๋‚Œ์˜ ๊ฐœ๋…์ฆ๋ช…์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ง๊ทธ๋Œ€๋กœ ๊ธฐ์ˆ ์˜ ์‹คํ˜„๊ฐ€๋Šฅ์„ฑ ์ฆ๋ช…ํ•˜๋Š” ๊ฒƒ. ์ฐจ๊ธฐ ํ”„๋กœ์„ธ์„œ ๋กœ๋“œ๋งต์„ ๊ตฌ๋งคํ•˜๊ธฐ๋กœ ํ•œ ๊ตญ๋‚ด ๋Œ€ํ˜• ๊ธˆ์œต๊ถŒ์˜ ๊ฒฝ์šฐ ๋ณธ ๊ณ„์•ฝ ์ „ ..

SI Story 2023.01.03

[Firebase] ๊ฐ€๊ณ ์‹ถ์€ ํšŒ์‚ฌ ๋ฌด์ž‘์ • ๋”ฐ๋ผํ•ด๋ณด๊ธฐ#2 - Firebase ์„ค์น˜/Node.js/Vscode/Backend Server๊ตฌ์ถ•

Firebase๋กœ ๋‹น๊ทผ๋งˆ์ผ“์„ ์–ด๋Š ์ •๋„ ๊ตฌํ˜„ํ•œ ์œ ํŠœ๋ธŒ ์ฑ„๋„(์ฝ”๋”ฉ์• ํ”Œ)์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค๐Ÿ˜Ž ๋•๋ถ„์— ์ดˆ๋ฐ˜์€ ํด๋ก ์ฝ”๋”ฉ์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉฐ, ํ‹€์„ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ž์„ธํ•œ ์ฝ”๋“œ๋Š” ํ•ด๋‹น ์ฑ„๋„์—์„œ ๋ชจ๋‘ ๊ฒŒ์‹œํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ํ•„์š”ํ•˜๋‹ค๋ฉด ์ฑ„๋„๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ํ™”๋ฉด ๊ตฌ์„ฑ์— ํ•„์š”ํ•œ node.js์™€ vscode ์—๋””ํ„ฐ๋Š” ๋ฏธ๋ฆฌ ์„ค์น˜๋˜์–ด์žˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ํฌ์ŠคํŒ…ํ•˜์˜€๋‹ค. 1) Firebase console ์ ‘์† Google์— firebase console ๊ฒ€์ƒ‰ํ•ด์„œ ๋“ค์–ด๊ฐ„ ๋’ค ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€ ํ•ด์ค€๋‹ค. Google ๊ณ„์ •์ด ์žˆ์–ด์•ผํ•˜๋‹ˆ ํ˜น์‹œ๋ผ๋„ ๊ฐ€์ž…ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์€ ๊ฐ€์ž…์„ ํ•ด์•ผ ํ•œ๋‹ค. 2) Firebase console์—์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ถ”๊ฐ€ ์ดํ›„ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ [์‹œ์ž‘ํ•˜๊ธฐ] ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ์ค€๋น„๊ฐ€ ๋์ด๋‹ค. ๐Ÿ”” Firest..

[Firebase] ๊ฐ€๊ณ ์‹ถ์€ ํšŒ์‚ฌ ๋ฌด์ž‘์ • ๋”ฐ๋ผํ•ด๋ณด๊ธฐ#1 - Used Transaction Service/๋‹น๊ทผ๋งˆ์ผ“ Carrot Market

์ฒ˜์Œ ๋‹น๊ทผ๋งˆ์ผ“ ์„œ๋น„์Šค๊ฐ€ ๋‚˜์™”์„ ๋•Œ, ๊ธฐ์กด์—๋Š” ์ด๋ฏธ ์œ ์‚ฌํ•œ ํ˜•ํƒœ์˜ Used Transaction Service๋Š” ์กด์žฌํ–ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋ฅผ ์ฒ˜์Œ ์•Œ๊ฒŒ๋œ ํ›„ ๋ˆˆ๊ธธ์„ ์‚ฌ๋กœ์žก์•˜๋˜ ๊ฑด ๊ท€์—ฌ์šด ์บ๋ฆญํ„ฐ์™€ ์„ผ์Šค์žˆ๋Š” UI/UX์˜€๊ณ , ์‹ค ์‚ฌ์šฉ ํ›„ ๋Š๋‚€ ์ ์€ '๊ธฐ์กด์— ์žˆ๋Š” ์„œ๋น„์Šค์™€ ๋น„์Šทํ•œ๋ฐ ์‚ฌ๋žŒ๋“ค์ด ๊ตณ์ด ์ด๊ฑธ ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ?' ์˜€๋‹ค. ๊ธฐ์กด ์„œ๋น„์Šค์™€ ์ฐจ๋ณ„์ ์ด๋ผ ํ•จ์€ ์ „๊ตญ๊ธฐ๋ฐ˜์ด ์•„๋‹Œ ๋™๋„ค๊ธฐ๋ฐ˜์œผ๋กœ ์ข์€ ๋ฒ”์œ„ ๊ฑฐ๋ž˜๋กœ ์ œํ•œํ•œ ์„œ๋น„์Šค ์ •๋„์˜€๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋งˆ์ €๋„ ๋‚˜์—๊ฒŒ ์™€๋‹ฟ์ง€ ์•Š์•˜๋˜ ์ด์œ ๋Š” ๋‹น์‹œ ๋‚˜๋Š” ์ค‘๊ณ ๊ฑฐ๋ž˜๋ฅผ ํ™œ๋ฐœํ•˜๊ฒŒ ํ•˜์ง€ ์•Š์•˜๋˜ ํ„ฐ๋ผ ์ฃผ ํƒ€์ผ“์ธต์ด ์•„๋‹ˆ์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€ํ•™์— ์ง„ํ•™ํ•˜๊ณ  ์ทจ์—…์„ ํ•˜๋ฉฐ ์ƒํ™œ์ด ๋ฐ”๋€Œ๋‹ˆ ์ค‘๊ณ ๊ฑฐ๋ž˜๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๋‹น๊ทผ๋งˆ์ผ“์˜ ์ฃผ ํƒ€์ผ“์ธต์ด ๋˜์—ˆ๋‹ค. ์ด ์„œ๋น„์Šค์˜ ์ง„๊ฐ€๋Š” ์ง€๊ธˆ๋ถ€ํ„ฐ ์‹œ์ž‘์ด์—ˆ๋‹ค. โœจ๋™๋„ค๊ธฐ๋ฐ˜ ์ค‘๊ณ ๊ฑฐ๋ž˜..

#2. ์ฒซ๋ฒˆ์งธ ์›€์ง์ž„/ํ˜„์‹ค์„ ๋งˆ์ฃผํ•˜๋Š” ํฌํŠธํด๋ฆฌ์˜ค ์ž‘์„ฑํ•˜๊ธฐ/๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ ์ž‘์„ฑํ•˜๋Š”๋ฒ•/์ด๋ ฅ์„œ์ž‘์„ฑ๋ฒ•

๋งˆ์Œ๋จน์œผ๋ฉด ์ ˆ๋ฐ˜์€ ์„ฑ๊ณต์ด๋ผ ํ–ˆ๋‹ค. ๋ฌด์—‡์ด๋“  ์ง€๊ธˆ ๋‹น์žฅ ์›€์ง์—ฌ๋ผ. ๋ง์„ค์ด๋Š” ์ˆœ๊ฐ„์€ ์„ฑ๊ณต์˜ 1%๋ฅผ ๋ถ€์กฑํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค. ๋Œ€ํ•™๊ต ์กธ์—… ํ›„ ํ”ํžˆ ๋งํ•˜๋Š” ์นผ์ทจ์—…์œผ๋กœ ์ทจ์—…์„ ํ•˜๋ฉฐ ๋นˆํ‹ˆ์—†์ด ์ผ์ƒ์„ ์ฑ„์›Œ๋‚˜๊ฐ”๋‹ค. ๊ทธ๋ž˜์„œ์ผ๊นŒ ๋ฒŒ์จ 3๋…„ ์ฐจ์ธ ์ง€๊ธˆ ๋งˆ์Œ๋งŒ ์•ž์„œ๊ณ  ์ž๊พธ๋งŒ ์กฐ๊ธ‰ํ•ด์ง„๋‹ค. ๊ทธ๋Ÿฐ ๋งˆ์Œ์ด ๋“ค ๋•Œ๋งˆ๋‹ค ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๊ณ  ์ผ์˜ ์ˆœ์„œ๋ฅผ ์„ธ๋ถ„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ธ”๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๊ณ  ์žˆ๋‹ค. ์ž…์‚ฌ ์ „ ๋‚˜๋Š” SI๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋Š” ํšŒ์‚ฌ์ธ์ง€ ๋ชฐ๋ž๋‹ค. ๊ทธ๋ƒฅ ๊ฐœ๋ฐœ์ž๋ผ๊ณ  ํ•˜๋ฉด ๋ชจ๋‘ ๊ฐ™์€ ์ผ์„ ํ•˜๊ณ  ๋น„์Šทํ•œ ์ปค๋ฆฌ์–ด๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์‹ฌ์ง€์–ด๋Š” 1๋…„์ฐจ๊นŒ์ง€๋„ ์–ด๋–ค ์ผ์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ์ง€ ๋ชปํ–ˆ๋‹ค. ํ˜น์‹œ๋ผ๋„ ์ด ๊ธ€์„ ๋ณด๊ณ  ์žˆ๋Š” ๋…์ž๊ฐ€ ๋‚˜์™€ ๋น„์Šทํ•œ ์ƒํ™ฉ์ด๋ผ๋ฉด ์ง€๊ธˆ์ด๋ผ๋„ ๋นจ๋ฆฌ ํ˜„์‹ค์„ ํŒŒ์•…ํ•˜๋ผ๊ณ  ๋งํ•ด์ฃผ๊ณ  ์‹ถ๋‹ค. ์—ฌ๋Š ์ง์žฅ์ธ๊ณผ ๊ฐ™์ด ํฌํŠธํด๋ฆฌ์˜ค๋Š” ์ž…์‚ฌ ์ดํ›„ ์—ด์–ด๋ณด์ง€ ์•Š์•˜๋‹ค. ์‚ฌ..

Life.log 2023.01.02

#1. 3๋…„์ฐจ SI๊ฐœ๋ฐœ์ž/์ฃผ๋‹ˆ์–ด์˜ ๋ฐฉํ™ฉ์˜ ์‹œ์ž‘ ๊ทธ๋ฆฌ๊ณ  ์ด์ง(switch jobs)

2๋…„ ๋™์•ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ์–ด๋–ค ๊ฒƒ์„ ๋ฐฐ์› ์Šต๋‹ˆ๊นŒ? 2023๋…„ ์ƒˆํ•ด๊ฐ€ ๋ฐ์•˜๋‹ค. ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๊ทธ๋ ‡๋“ฏ ์ƒˆํ•ด์—๋Š” ๋งŽ์€ ๋‹ค์ง์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ๋‚˜์˜ ์ƒˆํ•ด๋ชฉํ‘œ๋Š” "์ด์ง์„ ์œ„ํ•œ ํƒœ๋™๊ธฐ"๋ผ๋Š” ํ‚ค์›Œ๋“œ๋กœ์„œ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ฒ˜์Œ์—” ๋‚ด๊ฐ€ ๋‹ค๋‹ˆ๋Š” ํšŒ์‚ฌ๋งŒ ๊ทธ๋Ÿฐ ์ค„ ์•Œ์•˜๋‹ค. ์•„์ง ๋ชฐ๋ผ์„œ ๊ทธ๋ ‡๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์กด๋ฒ„๋Š” ์„ฑ๊ณตํ•œ๋‹ค๋Š” ๋ง์ฒ˜๋Ÿผ ๋ฒ„ํ‹ฐ๋ฉด ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ํ™•์‹ ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์ƒ๊ฐ์€ ์ผ๋ถ€๋Š” ๋งž๊ณ  ์ผ๋ถ€๋Š” ํ‹€๋ ธ๋˜ ๊ฒƒ์ด๋‹ค. ์–ด์ฉŒ๋ฉด ๋‚˜๋„ ํ˜„์‹ค๊ณผ ํƒ€ํ˜‘ํ•˜๋ฉฐ ์กฐ๊ธˆ์˜ ์—ฌ์œ ๋ฅผ ์ฆ๊ฒผ๋Š”์ง€๋„ ๋ชจ๋ฅธ๋‹ค. ์—ด์‹ฌํžˆ ์‚ด์•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋งˆ์Œ์ด ํ”๋“ค๋ฆฌ๋Š” ์ˆœ๊ฐ„ ๋ฐฉํ™ฉ์€ ์‹œ์ž‘๋˜์—ˆ๋‹ค. SI ํšŒ์‚ฌ์—์„œ 2๋…„ ๋™์•ˆ ์ผํ•˜๋ฉด์„œ ๊ฒฝ๋ ฅ์— ๋น„ํ•ด ๊ฝค ๋งŽ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ˆ˜ํ–‰ํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฌด์—‡์„ ๋ฐฐ์› ๋Š”์ง€ ์งˆ๋ฌธํ–ˆ์„ ๋•Œ, ๊ฐœ๋ฐœ์ž๋กœ์„œ๋„ ์Šค์Šค๋กœ๋„ ๋Œ€๋‹ตํ•  ์ˆ˜ ์—†์—ˆ๋‹ค..

Life.log 2023.01.02

[Firebase] VSCode(Visual Studio Code) Terminal ์„ค์ •๋ณ€๊ฒฝ PowerShell to cmd, npm ์‹คํ–‰์•ˆ๋จ

VSCode์—์„œ Node.js๋ฅผ ์„ค์น˜ ํ›„ ์•„๋ฌด๋Ÿฐ ์„ค์ • ๋ณ€๊ฒฝ ์—†์ด npm ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ–ˆ๋˜ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. firebase๋ฅผ ํ†ตํ•ด ์›น์„œ๋น„์Šค๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ํ™˜๊ฒฝ์„ ์„ธํŒ…ํ–ˆ๋‹ค. ์šฐ์„  VScode๋ฅผ ์ฒ˜์Œ ์„ค์น˜ํ•œ ์งํ›„ npm install -g firebase-tools@9.12.1 ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„ค์น˜๋ฅผ ์‹œ๋„ํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ.. ๋‚ด๊ฐ€ ๋งˆ์ฃผํ•˜๊ฒŒ ๋œ ๊ฒฐ๊ณผ๋Š” ERR! 404... ์ฒ˜์Œ IDE๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ํ–ˆ๋Š”๋ฐ ์™œ ์•ˆ ๋˜๋Š” ๊ฑด์ง€ ๋‹นํ™ฉ์Šค๋Ÿฌ์› ์ง€๋งŒ.. ์ฐจ๊ทผ์ฐจ๊ทผ ํ•˜๋‚˜์”ฉ ๋˜์งš์–ด๋ณด๊ธฐ๋กœ ํ•œ๋‹ค. ์šฐ์„ , explore์—์„œ ์•„๋ฌด ๊ฒฝ๋กœ์— ๋””๋ ‰ํ„ฐ๋ฆฌ ์„ค์ •์„ ํ•ด๋„ ๋œ๋‹ค ํ•ด์„œ D:๋“œ๋ผ์ด๋ธŒ์— ์„ค์ •ํ•˜์˜€๋˜ ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค. Node.js๋Š” D:๋“œ๋ผ์ด๋ธŒ์— ์„ค์น˜ํ•ด๋‘๊ณ , npm์œผ๋กœ๋Š” C:๋“œ๋ผ์ด๋ธŒ์—์„œ Node.js๋ฅผ ์ฐพ์œผ๋ผ๊ณ  ๋ช…..