๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

    TS๋กœ ์ฝœ๋ฐฑ ํ•จ์ˆ˜, ์ค‘์ฒฉ ํ•จ์ˆ˜, ๊ณ ์ฐจ ํ•จ์ˆ˜ ๊ตฌํ˜„

    darren, dev blog :: TS๋กœ ์ฝœ๋ฐฑ ํ•จ์ˆ˜, ์ค‘์ฒฉ ํ•จ์ˆ˜, ๊ณ ์ฐจ ํ•จ์ˆ˜ ๊ตฌํ˜„ (tistory.com)

    [์šฉ์–ด] ์„ ์–ธ๊ณผ ์ •์˜์˜ ์ฐจ์ด

    [java] Java์—์„œ ์„ ์–ธ๊ณผ ์ •์˜์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? - ๋ฆฌ๋ทฐ๋‚˜๋ผ (daplus.net) [java] Java์—์„œ ์„ ์–ธ๊ณผ ์ •์˜์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? - ๋ฆฌ๋ทฐ๋‚˜๋ผ ๋‘ ์šฉ์–ด๊ฐ€ ๋งค์šฐ ํ˜ผ๋ž€ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. stackoverflow๋ฅผ ํ™•์ธํ•œ ๊ฒฐ๊ณผ C ++์—๋Š” ๋น„์Šทํ•œ ์งˆ๋ฌธ์ด ์žˆ์ง€๋งŒ Java์—๋Š” ํ•ด๋‹น๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ž๋ฐ”์— ๋Œ€ํ•œ ๋‘ ์šฉ์–ด์˜ ์ฐจ์ด์ ์„ ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ต๋ณ€ ๊ฐœ๋… daplus.net ์•ผ๋“œ๋ฒ„์ฆˆ์˜ ๊ฐœ๋ฐœ ๋กœ๊ทธ :: C++ ์—์„œ ์ •์˜์™€ ์„ ์–ธ์˜ ์ฐจ์ด์  (tistory.com) C++ ์—์„œ ์ •์˜์™€ ์„ ์–ธ์˜ ์ฐจ์ด์  ์„ ์–ธ(Declaration) ๊ณผ ์ •์˜(Definition) ์„ ์–ธ์€ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ๋‹จ์ง€ ์ด๋ฆ„์„ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด๊ณ , ์ •์˜๋Š” ํƒ€์ž…, ์ธ์Šคํ„ด์Šค, ํ•จ์ˆ˜ ๊ฐ™์€ ์š”์†Œ๋ฅผ ์œ ์ผํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€..

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ์ถ”์ƒํ™”๋ฅผ ์ด์šฉํ•ด์„œ ํด๋ž˜์Šค ๊ฐœ์„ ํ•˜๊ธฐ

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ์ถ”์ƒํ™”๋ฅผ ์ด์šฉํ•ด์„œ ํด๋ž˜์Šค ๊ฐœ์„ ํ•˜๊ธฐ

    - ์™ธ๋ถ€์—์„œ ํด๋ž˜์Šค๋ฅผ ๋ฐ”๋ผ ๋ดค์„ ๋•Œ, ์‚ฌ์šฉํ•ด์•ผ ํ•  ํ•จ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ๋œจ๋ฉด ์‚ฌ์šฉ์ž๋Š” ๋ฌด์—‡์„ ์‚ฌ์šฉํ•ด์•ผ ํ• ์ง€ ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋„์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋…์ด ๋ฐ”๋กœ '์ถ”์ƒํ™”'์ด๋‹ค. ์ •๋ง ํ•„์š”ํ•œ api๋“ค๋งŒ ๋…ธ์ถœํ•จ์œผ๋กœ์จ ํด๋ž˜์Šค๋ฅผ ๋ณด๋‹ค ์‚ฌ์šฉํ•˜๊ฒŒ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด ์ค„ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ปคํ”ผ๋จธ์‹  ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. // //์ปคํ”ผ๋จธ์‹  ๋งŒ๋“ค๊ธฐ type CoffeeCup = { orderShot: number; }; class coffeeMachine { private static ONE_SHOT_CAPSULE: number = 3; private static ONE_CUP_WATER: number = 10; static makeMachine(beans: number, water: number):..

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ์บก์Šํ™”, ์ถ”์ƒํ™” ์ฐจ์ด ๋ช…ํ™•ํ•˜๊ธฐ ์žก๊ธฐ

    OOP ์ž์ฒด๊ฐ€ ์„ธ์ƒ์— ์žˆ๋Š” ๊ฒƒ์„ ๋ณธ๋”ฐ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ๊ฒƒ๋“ค๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ฒ ๋‹ค๋Š” ๊ฐœ๋…์ด๊ณ  ์บก์Šํ™”์™€ ์ถ”์ƒํ™”๋Š” ์•„์ด๋””์–ด ์ž์ฒด๋Š” ๊ณต์œ ํ•˜์ง€๋งŒ ์‚ฌ๋ญ‡ ๊ฐˆ๋ž˜๊ฐ€ ๋‹ค๋ฅธ ๋Š๋‚Œ์ด๋‹ค. ์บก์Šํ™”๋Š” ์„ธ์ƒ์— ์žˆ๋Š” ๊ฒƒ์„ ๋ณธ๋”ฐ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ํ•˜๋‚˜์˜ ๊ฐ์ฒด์— ๋Œ€ํ•ด ๊ทธ ๊ฐ์ฒด๊ฐ€ ํŠน์ •ํ•œ ๋ชฉ์ ์„ ์œ„ํ•œ ํ•„์š”ํ•œ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. [๋”ฐ๋ผ๋‚˜์˜ค๋Š” ๊ฐœ๋… : ์ •๋ณด์€๋‹‰, private/public/protected, getter/setter] ์ถ”์ƒํ™”๋Š” ์„ธ์ƒ์— ์žˆ๋Š” ๊ฒƒ์„ ๋ณธ๋”ฐ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ์ถ”์ƒ์ ์œผ๋กœ ์ƒ๊ฐํ•ด ํด๋ž˜์Šค ์•ˆ์— ์ตœ์†Œ ๋“ค์–ด๊ฐ€์•ผ๊ฒ ๋‹ค ์‹ถ์€ ๊ณตํ†ต์ ์ธ ์š”์†Œ๋‚˜ ํ•„์ˆ˜์ ์ธ ์š”์†Œ๋“ค์„ ๋„ฃ์–ด์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. [๋”ฐ๋ผ ๋‚˜์˜ค๋Š” ๊ฐœ๋… : ์ถ”์ƒํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค] ์บก์Šํ™”๋ž€, ํ•˜๋‚˜์˜ ๊ฐ์ฒด์— ํ•„์š”ํ•œ ๋ฉ”์†Œ๋“œ์™€ ๋ณ€์ˆ˜๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๊ฒƒ์ด๊ณ , ์ •๋ณด ์€..

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ํ˜ธ์ถœ ์‹œ๊ทธ๋‹ˆ์ฒ˜

    ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ํ•จ์ˆ˜์˜ ์ „์ฒด ํƒ€์ž…์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. object๋กœ ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ function์€ ๋ชจ๋“  ํ•จ์ˆ˜์˜ ํƒ€์ž…์„ ๋œปํ•  ๋ฟ์ด๋ฉฐ, ๊ทธ๊ฒƒ์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ํŠน์ • ํ•จ์ˆ˜์™€ ํƒ€์ž…๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๋Š” ์•„๋ฌด ๊ฒƒ๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š๋Š”๋‹ค. function sum(a: number, b: number): number { return a + b; } ๊ทธ๋ ‡๋‹ค๋ฉด ์œ„ sum์˜ ํƒ€์ž…์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•ด๋ณด์ž. sum์€ ๋‘ ๊ฐœ์˜ number์„ ์ธ์ˆ˜๋กœ ๋ฐ›์•„ ํ•œ ๊ฐœ์˜ number๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋Š” ํ•จ์ˆ˜๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ด๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. (a:number, b:number)=> number ์œ„ ์ฝ”๋“œ๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ํ•จ์ˆ˜ ํƒ€์ž… ๋ฌธ๋ฒ•์œผ๋กœ, ํ˜ธ์ถœ ์‹œ๊ทธ๋‹ˆ์ฒ˜(call signature) ๋˜๋Š” ํƒ€์ž…..

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ์ œ๋„ˆ๋ ˆ์ดํ„ฐ, ๋ฐ˜๋ณต์ž(iterator) ์ถ”๋ก ๊ณผ ๋ช…์‹œ

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ์ œ๋„ˆ๋ ˆ์ดํ„ฐ, ๋ฐ˜๋ณต์ž(iterator) ์ถ”๋ก ๊ณผ ๋ช…์‹œ

    Generator ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” Generator๊ฐ€ yield๋ฅผ ํ†ตํ•ด ๋ฐฉ์ถœํ•œ ๊ฐ’์„ ํ† ๋Œ€๋กœ ๋ฐ˜๋ณต์ž์˜ ํƒ€์ž…์„ ์ถ”๋ก ํ•œ๋‹ค. ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜ ๋ฐ˜๋ณต์ž(iterator)์™€ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ๋Š” ์ƒ์ƒ๊ด€๊ณ„๋‹ค. ์ œ๋„ˆ๋ ˆ์ดํ„ฐ๋กœ ๊ฐ’์˜ ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฐ˜๋ณต์ž๋กœ ์ƒ์„ฑ๋œ ๊ฐ’์„ ์†Œ๋น„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ดํ„ฐ๋Ÿฌ๋ธ”(iterable;๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ๋Š”)Symbol.iterator ๋ผ๋Š” ํ”„๋กœํผํ‹ฐ(๋ฐ˜๋ณต์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜)๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“  ๊ฐ์ฒด ๋ฐ˜๋ณต์ž(iterator)next๋ผ๋Š” ๋ฉ”์„œ๋“œ(value, done ๋‘ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜)๋ฅผ ์ •์˜ํ•œ ๊ฐ์ฒด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ดํ„ฐ๋Ÿฌ๋ธ” ๋ฐ˜๋ณต์ž(IterableIterator)๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ๋„ ์ง€์›ํ•œ๋‹ค. //๋‹ค์Œ ํ”ผ๋ณด๋‚˜์น˜ ์ˆซ์ž๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด a์— b๋ฅผ, b์— a+b๋ฅผ..

    [AWS EC2] ์ธ์Šคํ„ด์Šค์—์„œ ํ†ฐ์บฃ์ด ์ž˜ ์„ค์น˜๋˜์ง€ ์•Š๋Š” ๊ฑด

    [JSP]์œˆ๋„์šฐ์—์„œ ํ†ฐ์บฃ ์„ค์น˜์™€ ํ†ฐ์บฃ ์„œ๋ฒ„ ๊ตฌ๋™ :: Kamang's IT Blog (tistory.com) [JSP]์œˆ๋„์šฐ์—์„œ ํ†ฐ์บฃ ์„ค์น˜์™€ ํ†ฐ์บฃ ์„œ๋ฒ„ ๊ตฌ๋™ ์œˆ๋„์šฐ์—์„œ ํ†ฐ์บฃ ์„ค์น˜์™€ ๊ตฌ๋™ํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. ์‚ฌ์‹ค ๋ฆฌ๋ˆ…์Šค๋‚˜ ๋งฅ์€ ์œˆ๋„์šฐ์— ๋น„ํ•˜๋ฉด ํ›จ์”ฌ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ํฌ์ŠคํŒ…ํ•  ํ•„์š”๋Š” ์—†์„๊ฒƒ ๊ฐ™๋‹ค. ๋จผ์ € ํ†ฐ์บฃ ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ„๋‹ค. ๊ทธ ๋‹ค์Œ ์˜† kamang-it.tistory.com

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ์ปคํ”ผ๋จธ์‹  ํด๋ž˜์Šค๋งŒ๋“ค๊ธฐ ์‹ค์Šต

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ์ปคํ”ผ๋จธ์‹  ํด๋ž˜์Šค๋งŒ๋“ค๊ธฐ ์‹ค์Šต

    //์ปคํ”ผ๋จธ์‹  ๋งŒ๋“ค๊ธฐ type CoffeeCup = { orderShot: number; }; class coffeeMachine { private static ONE_SHOT_CAPSULE: number = 3; private static ONE_CUP_WATER: number = 10; static makeMachine(beans: number, water: number): coffeeMachine { return new coffeeMachine(beans, water); } constructor(private capsule: number = 3, private water: number = 10) {} makeCoffee(orderShot: number): CoffeeCup { if (this.caps..

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ์ง€์›, ๋ช…์‹œ

    ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ฐ’์„ ์ƒ์‚ฐํ•˜๋Š” ์†๋„๋„ ์ •๊ตํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. //๋‹ค์Œ ํ”ผ๋ณด๋‚˜์น˜ ์ˆซ์ž๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด a์— b๋ฅผ, b์— a+b๋ฅผ ํ•œ๋ฒˆ์— ๋‹ค์‹œ ํ• ๋‹นํ•œ๋‹ค. function* createFibonacciGenerator() { let a = 0; let b = 1; while (true) { yield a; [a, b] = [b, a + b]; } } let fiboancciGenerator = createFibonacciGenerator(); //IterableIterator console.log(fiboancciGenerator.next()); //{ value: 0, done: false } console.l..