728x90 ๋ฐ์ํ Javascript11 [TS] ํ์ ์คํฌ๋ฆฝํธ(TypeScript)๋? (feat. ์จ์ผํ๋ ์ด์ ) ํ์ ์คํฌ๋ฆฝํธ(TypeScript)๋? ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ํผ์ ์ธ ์คํ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค. ๋ง์ดํฌ๋ก์ํํธ์์ ๊ฐ๋ฐ, ์ ์งํ๊ณ ์์ผ๋ฉฐ ์๊ฒฉํ ๋ฌธ๋ฒ์ ์ง์ํ๋ค. C#์ ๋ฆฌ๋ ์ํคํ ํธ์ด์ ๋ธํ์ด, ํฐ๋ณด ํ์ค์นผ์ ์ฐฝ์์์ธ Anders Hejlsberg๊ฐ ๊ฐ๋ฐ์ ์ฐธ์ฌํ๋ค. ํด๋ผ์ด์ธํธ ์ฌ์ด๋์ ์๋ฒ ์ฌ์ด๋๋ฅผ ์ํ ๊ฐ๋ฐ์ ์ฌ์ฉํ ์ ์๋ค. ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ฌ์ฉํ๋ฉด์ ์ปค๋ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๊ฒ ์ค๊ณ๋ ์ธ์ด์ด๋ค.์๋ฐ์คํฌ๋ฆฝํธ์ ์ํผ์ ์ด๊ธฐ ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ์ด ํ์ ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ผ๋ก๋ ๋์ํ๋ค. ํ์ ์คํฌ๋ฆฝํธ์์ ์์ ์ด ์ํ๋ ํ์ ์ ์ ์ํ๊ณ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ปดํ์ผ๋์ด ์คํํ ์ ์๋ค. ํ์ ์คํฌ๋ฆฝํธ๋ ๋ชจ๋ ์ด์ ์ฒด์ , ๋ชจ๋ ๋ธ๋ผ์ฐ์ , ๋ชจ๋ ํธ์คํธ์.. 2022. 3. 8. [JS] ๋น๋๊ธฐ ์ฒ๋ฆฌํ๋ ๋ฒ ์์๋ณด๊ธฐ(Callback,Promise,Async & Await) ์๋ ํ์ธ์ Foma๐ป ์ ๋๋ค. ์ค๋๋ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ๋ฐฐ์ด Callback ํจ์์ Promise์ ๋ํด์ ์ ๊ฐ ์ดํดํ ๋ฐฉ์๋๋ก ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Callback Callback ํจ์๋ ์คํํ๋ ์ฆ์ ์๋ฃ๋๋ ๊ฒ์ด ์๋๋ผ ํน์ ์์ ์ ์คํํ๊ณ ๋ง์น ๋ค์ ์๋ฃ๋๋ค. ์ฆ, ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋ง์ฝ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋๋ ์์ ์ด ์๋ค๋ฉด ์์ ์ด ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๋๊ฑฐ๋ ์ค๊ฐ์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ์์ ์ด ์๋ฃ๋๋ค. ์ฝ๋ฐฑ ํจ์๊ฐ ์๋ฃ๋๋ ๊ฒฝ์ฐ๋ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๋์๊ฑฐ๋, ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ฟ์ด๋ค. ์ฝ๋ฐฑ ํจ์๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ ์ํ๋ ํ๋ผ๋ฏธํฐ ๊ฐ๊ณผ ํจ๊ป ์์ ์ ์คํํ ํจ์๋ฅผ ๋ฐ๋์ ๊ฐ์ด ๋ฃ์ด์ค๋ค. function loadScript(src,callback) { let s.. 2022. 2. 15. [JS] Static,Protected,Private์ ๋ํด ์์๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ป ์ ๋๋ค! ์ค๋๋ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐฐ์ด Static,Protected,Private ์ ๋ํด ์ ๊ฐ ์ดํดํ ๊ฒ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ Static Static์ ์ ์ ์ด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ด, ๋ณํ์ง ์๋๋ค๋ ๋ป์ด๋ค. ์ด๊ฒ์ ์ด์ฉํ์ฌ ์ ์ ๋ฉ์๋, ํ๋กํผํฐ๋ฅผ ๋ง๋ค ์ ์๋ค. ์ฝ๊ฒ ๋งํ๋ฉด ํด๋์ค์์ ๊ณตํต์ ์ผ๋ก ๊ฐ์ง๊ณ ์๋ ๋ถ๋ถ์ด๋ ๊ธฐ๋ฅ์ ๋ฏธ๋ฆฌ ์ ์ํด ๋๋ ๊ฒ์ด๋ค. Static Property class Person { //๋ชจ๋ ์ฌ๋์ด ๋์ผํ๊ฒ ๊ฐ์ง๊ณ ์๊ณ ๋ณํ์ง ์๋ ๊ฐ static planet = "์ง๊ตฌ" } //ํด๋์ค ์์ฒด์์ ๋ฐ๋ก ์ฝ๊ธฐ ๊ฐ๋ฅ console.log(Person.planet) //์ง๊ตฌ Static Method class User { co.. 2022. 2. 15. [JS] ํ๋ก๊ทธ๋๋จธ์ค 124 ๋๋ผ์ ์ซ์ Problem ์ฝ๋ฉํ ์คํธ ์ฐ์ต - 124 ๋๋ผ์ ์ซ์ programmers.co.kr Solution 1. 3์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ answer๋ฐฐ์ด์ ๋ฃ๋๋ค. 3์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ answer ๋ฐฐ์ด์ ๋ฃ๋, ๋๋จธ์ง๊ฐ 0์ด๋ผ๋ฉด 3๋ฒ์งธ ๊ฐ์ด๋ฏ๋ก 4๋ก ๋์ฒดํด์ ๋ฃ์ด์ค๋ค. 2. ์ซ์๊ฐ 0์ด ๋ ๋๊น์ง 3์ผ๋ก ๋๋๋ค. 3์ผ๋ก ๋๋ ๊ฐ๋ฉด์ ํ์ฌ ์ซ์๋ฅผ ๋ณ๊ฒฝํ๋๋ฐ, ์ซ์๊ฐ 1,2,4 ์ด๋ ๊ฒ 3๊ฐ๊น์ง ํ์ฉ๋๊ธฐ ๋๋ฌธ์ 0์ผ๋ก ๋๋ ์ง ๊ฒ์ 3๋ฒ์งธ๋ผ๋ ์๋ฏธ์ฌ์ ๋ค์ ์ซ์๋ก ๋์ด๊ฐ๋ฉด ์๋๋ฏ๋ก ๋ชซ์ -1์ ํด์ค๋ค. ๊ทธ๊ฒ ์๋๋ผ๋ฉด 3์ผ๋ก ๋๋ ์ค ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ค. 3. ๋ฐฐ์ด์ ์๋ ์ซ์๋ฅผ ๋ค์ง๊ณ ๋ฌธ์์ด๋ก ๋ณ๊ฒฝํด ๋ฐํํ๋ค. ๋ฐฐ์ด์ ์์ธ ์ซ์๋ ๊ฑฐ๊พธ๋ก ์ ์ฅ๋์ด ์๋ ๊ฒ์ด๋ฏ๋ก revese() ๋ฉ์๋๋ฅผ ์ด์ฉํด ๋ค์ง์ด ์ฃผ๊ณ , ์ ๋ต์ ๋ฌธ์์ด๋ก ๋ฐ.. 2022. 2. 14. [JS] ํด๋์ค(Class) ๊ธฐ๋ณธ ๋ฌธ๋ฒ๊ณผ ์์ ์๋ ํ์ธ์ Foma๐ป ์ ๋๋ค! ์ด๋ฒ ๊ธ๋ ์ญ์ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐฐ์ด 'ํด๋์ค'๋ฅผ ์ ๊ฐ ์ดํดํ ๋ฐฉ์์ผ๋ก ๋ณต์ตํ๋ ์ฐจ์์์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ ํด๋์ค๋? ํด๋์ค๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ํน์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ๋ณ์์ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ์ผ์ข ์ ํ๋ก, ๊ฐ์ฒด๋ฅผ ์ ์ํ๊ธฐ ์ํ ์ํ(๋ฉค๋ฒ ๋ณ์)์ ๋ฉ์๋(ํจ์)๋ก ๊ตฌ์ฑ๋๋ค. - ์ํค ๋ฐฑ๊ณผ - ์ฆ, ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ฝ๊ฒ ๋ฏธ๋ฆฌ ํ์ ๋ง๋ค์ด ๋๋ ๊ฒ์ ๋๋ค. ํด๋์ค ์์ฑํ๊ธฐ ์์ ํด๋์ค๋ฅผ ๋ถ์ฌ์ค ๋ค constructor(์์ฑ์)๋ฅผ ์ด์ฉํด์ ์ด๊ธฐํ ํด์ค๋ค. ๋ฉ์๋๋ ํ๋กํผํฐ๋ฅผ ์์ฑํ๊ฑฐ๋ ์ถ๊ฐํ๋ ๋ฒ์ ์ผ๋ฐ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋์ ๋์ผํ๋ค. class Player { constructor(name) { this.height = 180 this.n.. 2022. 2. 12. [JS] ํ๋กํ ํ์ (Prototype) ๋ค๋ค๋ณด๊ธฐ ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค. ์ค๋๋ ์ญ์ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ๋ฐฐ์ด ํ๋กํ ํ์ ์ ๋ณต์ตํ๋ ์ฐจ์์์ ๋ค์ ํ๋ฒ ์ ๋ฆฌํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Prototype์ด๋? ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ฒด๋ ์จ๊น ํ๋กํผํฐ๋ก Prototype์ ๊ฐ์ง๊ณ ์๋ค. ์ด๊ฒ์ null์ด๊ฑฐ๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ์ ์๋๋ฐ ์ด๊ฒ์ ํตํด์ ํด๋น ๊ฐ์ฒด์ ๊ธฐ๋ฅ(๋ฉ์๋)์ ๋ณต์ฌํ๊ฑฐ๋ ์ถ๊ฐํ ์ ์๋ค. ์ด๋ ๊ฒ ์ฐธ์กฐํ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ํ์ฌ ๊ฐ์ฒด์ 'ํ๋กํ ํ์ '์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. Prototype ์ค์ ํ๊ธฐ 1. __proto__ ์ด๋์ ์๋ฅผ ์ง์นญํ๋ 'player'๋ผ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ let player = { firstName:"Young", lastName:"An", get fullName() { return this.firstName .. 2022. 2. 12. [JS] ํ๋กํผํฐ ์ต์ (ํ๋๊ทธ) ๋ค๋ฃจ๊ธฐ(Property Flag) ์๋ ํ์ธ์ Foma๐ป ์ ๋๋ค. ์ค๋์ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ๋กํผํฐ ํ๋๊ทธ์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฌ์ดํธ์์ ๊ณต๋ถํ๋ ๊ฒ์ ๋ณต์ตํ๋ ์ฐจ์์์ ์ ๊ฐ ์ดํดํ ๋ฐฉ์์ผ๋ก ์ ์ด๋ณด๊ฒ ์ต๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ Property Flag๋? ํ๋กํผํฐ๋ ๊ฐ ๋ฟ๋ง ์๋๋ผ ํ๋๊ทธ๋ผ ๋ถ๋ฆฌ๋ ํน๋ณํ ์์ฑ 3๊ฐ์ง๋ฅผ ๊ฐ์ง๋ค. 1. writable ํด๋น ํ๋กํผํฐ๋ฅผ ์์ ํ ์ ์๊ฒ ์ค์ ํ๋ ํ๋๊ทธ 2. enumrable ํด๋น ํ๋กํผํฐ๋ฅผ ๋์ดํ ์ ์๊ฒ ์ค์ ํ๋ ํ๋๊ทธ 3. configurable ํด๋น ํ๋กํผํฐ๋ฅผ ์ญ์ , ํ๋๊ทธ ์์ ์ด ๊ฐ๋ฅํ๊ฒ ์ค์ ํ๋ ํ๋๊ทธ Property Flag ํ์ธํ๋ ๋ฐฉ๋ฒ Object.getOwnPropertyDescriptor(๊ฐ์ฒด,ํ๋กํผํฐ๋ช )์ผ๋ก ํ์ธํ๊ณ , ์ด๊ธฐ์ ๋ชจ๋ true๋ก ์ค์ ๋์ด ์.. 2022. 2. 12. [JS] ํ๋ก๊ทธ๋๋จธ์ค ํฐ์ผ๋ชฌ Problem ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํฐ์ผ๋ชฌ ๋น์ ์ ํฐ์ผ๋ชฌ์ ์ก๊ธฐ ์ํ ์ค๋ ์ฌํ ๋์, ํ ๋ฐ์ฌ๋์ ์ฐ๊ตฌ์ค์ ๋์ฐฉํ์ต๋๋ค. ํ ๋ฐ์ฌ๋์ ๋น์ ์๊ฒ ์์ ์ ์ฐ๊ตฌ์ค์ ์๋ ์ด N ๋ง๋ฆฌ์ ํฐ์ผ๋ชฌ ์ค์์ N/2๋ง๋ฆฌ๋ฅผ ๊ฐ์ ธ๊ฐ๋ ์ข๋ค๊ณ ํ์ต๋๋ค. programmers.co.kr Solution 1. nums์ ๊ธธ์ด์ ๋ฐ์ ๊ตฌํ๋ค. let half = nums.length/2 2. Set์ nums์ ์๋ ๋ฒํธ๋ฅผ ๋ฃ๋๋ค. let set = new Set() for (let i = 0; i < nums.length; i++) { set.add(nums[i]) } 3. Set์ ์ฌ์ด์ฆ์ nums์ ๊ธธ์ด์ ๋ฐ๊ณผ ๋น๊ตํด ๋ ์์ ๊ฒ์ ๋ฐํํ๋ค. return Math.min(set.size,half) Source Code fun.. 2022. 2. 6. [JS] JSON๊ณผ ๊ฐ์ฒด ๋ค๋ฃจ๊ธฐ ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ์ค๋์ JavaScript๋ก JSON๊ณผ ๊ฐ์ฒด๋ฅผ ๋ค๋ฃจ๋ ๋ฒ์ ๋ํด์ ์ ๋ฆฌํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ๋ฐ๊พธ๊ธฐ JSON.stringify(๊ฐ์ฒด) ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. let user = { name:"foma", age:27, color:"Black", [Symbol("id")]:123 } let json = JSON.stringify(user) console.log(json) //{"name":"foma","age":27,"color":"Black"} ๋ง์ฝ ๋ฉ์๋๋ undefined๊ฐ์ ๊ฐ์ง ํ๋กํผํฐ๊ฐ ์๋ค๋ฉด ์๋์ผ๋ก ๋ฌด์ํฉ๋๋ค. user.sayHi = function() { print("sayHi") } user.somthing = un.. 2022. 2. 5. [JS] ๊ตฌ์กฐ๋ถํด(Destructuring) (feat. ์ฝ๊ฒ ๋ณ์ ๋ง๋ค๊ธฐ) ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ์ค๋์ JavaScript์์ ์์ฃผ ์ ์ฉํ๊ฒ ๋ณ์๋ฅผ ๋ง๋ค ์ ์๋ ๊ตฌ์กฐ๋ถํด์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ ๋ฐฐ์ด ๋ถํดํด์ ๋ณ์ ๋ง๋ค๊ธฐ ๋๊ดํธ๋ฅผ ์ด์ฉํด์ ๋ณ์์ ๊ฐ์ ํ ๋นํ ์ ์์ต๋๋ค. let arr = ["foma","gran"] let [foma,gran] = arr console.log(foma) //"foma" console.log(gran) //"gran" ๋ฌธ์์ด ๋ถํดํด์ ๋ณ์ ๋ง๋ค๊ธฐ ๋ฌธ์์ด์ ์ํ๋ ๋จ์๋ก ๋ถํดํ์ฌ ๋ณ์๋ก ๋ง๋ค ์ ์์ต๋๋ค. let fomagran = "foma,gran" let [foma,gran] = fomagran.split(',') console.log(foma) //"foma" console.log(gran) //"gra.. 2022. 2. 5. [JS] iOS ๊ฐ๋ฐ์๊ฐ ์ดํดํ๋ JavaScript ๊ธฐ์ด๋ฌธ๋ฒ (feat. Swift) ์๋ ํ์ธ์ Foma ๐ป ์ ๋๋ค! ์ผ๋ง ์ ์ ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ๋ก ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ๋งก๊ฒ ๋์์ต๋๋ค. JavaScript๋ฅผ ๊ณต๋ถํ๋ค๋ณด๋ Swift๋ ๋น์ทํ ๊ฒ๋ ์๊ณ ์๋ ๋ถ๋ถ๋ ๋ง๋๋ผ๊ตฌ์. ๊ทธ๋์ ์๋ ์ต์ํ๋ Swift๋ฅผ ๊ธฐ์ค์ผ๋ก JavaScript์ ๋ค๋ฅธ ์ ์ ๋ํด์๋ง ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ ๋ณ์์ ์์ Swift์์ ์์๋ฅผ let,๋ณ์๋ฅผ var๋ก ์ด๋ค. let name = "Fomagran" //์์ var name = "Fomagran" //๋ณ์ JavaScript๋ ์์๋ฅผ const,๋ณ์๋ฅผ let์ด๋ผ๊ณ ์ด๋ค. ์ด๋ฏธ ์์ let์ ์ต์ํด ์๋ ์ํ๋ผ์.. ์ค์๋ฅผ ๋ง์ด ํ ๊ฒ ๊ฐ๋ค. const name = "Fomagran" //์์ let name = "Fomagran" //๋ณ์ ์ถ.. 2022. 2. 5. ์ด์ 1 ๋ค์ 728x90 ๋ฐ์ํ