๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
TS๋ก ์ฝ๋ฐฑ ํจ์, ์ค์ฒฉ ํจ์, ๊ณ ์ฐจ ํจ์ ๊ตฌํ
darren, dev blog :: TS๋ก ์ฝ๋ฐฑ ํจ์, ์ค์ฒฉ ํจ์, ๊ณ ์ฐจ ํจ์ ๊ตฌํ (tistory.com)
[์ฉ์ด] ์ ์ธ๊ณผ ์ ์์ ์ฐจ์ด
[java] Java์์ ์ ์ธ๊ณผ ์ ์์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น? - ๋ฆฌ๋ทฐ๋๋ผ (daplus.net) [java] Java์์ ์ ์ธ๊ณผ ์ ์์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น? - ๋ฆฌ๋ทฐ๋๋ผ ๋ ์ฉ์ด๊ฐ ๋งค์ฐ ํผ๋ ์ค๋ฝ์ต๋๋ค. stackoverflow๋ฅผ ํ์ธํ ๊ฒฐ๊ณผ C ++์๋ ๋น์ทํ ์ง๋ฌธ์ด ์์ง๋ง Java์๋ ํด๋น๋์ง ์์ต๋๋ค. ๋๊ตฐ๊ฐ ์๋ฐ์ ๋ํ ๋ ์ฉ์ด์ ์ฐจ์ด์ ์ ์ค๋ช ํ ์ ์์ต๋๊น? ๋ต๋ณ ๊ฐ๋ daplus.net ์ผ๋๋ฒ์ฆ์ ๊ฐ๋ฐ ๋ก๊ทธ :: C++ ์์ ์ ์์ ์ ์ธ์ ์ฐจ์ด์ (tistory.com) C++ ์์ ์ ์์ ์ ์ธ์ ์ฐจ์ด์ ์ ์ธ(Declaration) ๊ณผ ์ ์(Definition) ์ ์ธ์ ํ๋ก๊ทธ๋จ์๊ฒ ๋จ์ง ์ด๋ฆ์ ์๋ ค์ฃผ๋ ๊ฒ์ด๊ณ , ์ ์๋ ํ์ , ์ธ์คํด์ค, ํจ์ ๊ฐ์ ์์๋ฅผ ์ ์ผํ๊ฒ ์ค๋ช ํ๋ ๊ฒ์ด๋ค. ์๋์ ๊ฐ์..
![[ํ์
์คํฌ๋ฆฝํธ] ์ถ์ํ๋ฅผ ์ด์ฉํด์ ํด๋์ค ๊ฐ์ ํ๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJ8TsO%2FbtrzUjymBM4%2FDPoMKekZ7yEdKcttnHI4I0%2Fimg.png)
[ํ์ ์คํฌ๋ฆฝํธ] ์ถ์ํ๋ฅผ ์ด์ฉํด์ ํด๋์ค ๊ฐ์ ํ๊ธฐ
- ์ธ๋ถ์์ ํด๋์ค๋ฅผ ๋ฐ๋ผ ๋ดค์ ๋, ์ฌ์ฉํด์ผ ํ ํจ์๊ฐ ๋๋ฌด ๋ง์ด ๋จ๋ฉด ์ฌ์ฉ์๋ ๋ฌด์์ ์ฌ์ฉํด์ผ ํ ์ง ํผ๋์ค๋ฌ์ธ ์ ์๋ค. ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํ ๋์ ํ ์ ์๋ ๊ฐ๋ ์ด ๋ฐ๋ก '์ถ์ํ'์ด๋ค. ์ ๋ง ํ์ํ 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) ์ถ๋ก ๊ณผ ๋ช
์](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDYcOs%2FbtrzVBrbDFg%2Fw9k1tIJiVCCoGoKUTXvcK0%2Fimg.png)
[ํ์ ์คํฌ๋ฆฝํธ] ์ ๋๋ ์ดํฐ, ๋ฐ๋ณต์(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
![[ํ์
์คํฌ๋ฆฝํธ] ์ปคํผ๋จธ์ ํด๋์ค๋ง๋ค๊ธฐ ์ค์ต](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0jrSr%2FbtrzSyuaksJ%2F2dazLGwACZ4bL19jXVLis1%2Fimg.png)
[ํ์ ์คํฌ๋ฆฝํธ] ์ปคํผ๋จธ์ ํด๋์ค๋ง๋ค๊ธฐ ์ค์ต
//์ปคํผ๋จธ์ ๋ง๋ค๊ธฐ 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..