note
[Deep Dive] 10-11์ฅ
10์ฅ ๊ฐ์ฒด ๋ฆฌํฐ๋ด ๊ฐ์ฒด๋? ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ฉฐ, ์์ ๊ฐ์ ์ ์ธํ ๋๋จธ์ง ๊ฐ(ํจ์, ๋ฐฐ์ด, ์ ๊ท ํํ์ ๋ฑ)์ ๋ชจ๋ ๊ฐ์ฒด๋ค. ์ฆ ๊ฐ์ฒด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ด๋ค. ๊ฐ์ฒด๋ ํ๋กํผํฐ์ ์งํฉ์ด๋ฉฐ, ํ๋กํผํฐ๋ ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ค. ํ๋กํผํฐ ๊ฐ์ด ํจ์์ผ ๊ฒฝ์ฐ, ์ผ๋ฐ ํจ์์ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ฉ์๋๋ผ ๋ถ๋ฅธ๋ค. ํ๋กํผํฐ : ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ํ๋ด๋ ๊ฐ(data) ๋ฉ์๋ : ํ๋กํผํฐ(์ํ ๋ฐ์ดํฐ)๋ฅผ ์ฐธ๊ณ ํ๊ณ ์กฐ์ํ ์ ์๋ ๋์(behavior) var counter = { // ํ๋กํผํฐ num: 0, // ํ๋กํผํฐ ํค์ ํ๋กํผํฐ ๊ฐ // ๋ฉ์๋ increase: function() { this.num++; } }; ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ํ ๊ฐ์ฒด ์์ฑ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ์ธ์ด๋ก์ ํด๋..
[Deep Dive] 07-09์ฅ
07์ฅ ์ฐ์ฐ์ ์ฐ์ฐ์๋ ํ๋ ์ด์์ ํํ์์ ๋์์ผ๋ก ์ฐ์ฐ์ ์ํํด ํ๋์ ๊ฐ์ ๋ง๋ ๋ค. ์ด๋ ์ฐ์ฐ์ ๋์์ ํผ์ฐ์ฐ์๋ผ ํ๋ค. ํผ์ฐ์ฐ์๊ฐ "๊ฐ"์ด๋ผ๋ ๋ช ์ฌ์ ์ญํ ์ ํ๋ค๋ฉด ์ฐ์ฐ์๋ "ํผ์ฐ์ฐ์๋ฅผ ์ฐ์ฐํ์ฌ ์๋ก์ด ๊ฐ์ ๋ง๋ ๋ค"๋ผ๋ ๋์ฌ์ ์ญํ ์ ํ๋ค๊ณ ๋ณผ ์ ์๋ค. ์ฐ์ ์ฐ์ฐ์ ์ดํญ ์ฐ์ ์ฐ์ฐ์ : 2๊ฐ์ ํผ์ฐ์ฐ์๋ฅผ ์ฐ์ ์ฐ์ฐํ์ฌ ์ซ์ ๊ฐ์ ๋ง๋ ๋ค. ์ดํญ ์ฐ์ ์ฐ์ฐ์ ์๋ฏธ ๋ถ์ ํจ๊ณผ + ๋ง์ X (ํผ์ฐ์ฐ์์ ์ด๋ ํ ํจ๊ณผ๋ ์์) - ๋บ์ X * ๊ณฑ์ X / ๋๋์ X % ๋๋จธ์ง X ๋จํญ ์ฐ์ ์ฐ์ฐ์ : 1๊ฐ์ ํผ์ฐ์ฐ์๋ฅผ ์ฐ์ ์ฐ์ฐํ์ฌ ์ซ์ ๊ฐ์ ๋ง๋ ๋ค ๋จํญ ์ฐ์ ์ฐ์ฐ์ ์๋ฏธ ๋ถ์ ํจ๊ณผ ++ ์ฆ๊ฐ ํผ์ฐ์ฐ์์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ์๋ฌต์ ํ ๋น์ด ์ด๋ฃจ์ด์ง -- ๊ฐ์ ํผ์ฐ์ฐ์์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ์๋ฌต์ ํ ๋น์ด ์ด๋ฃจ์ด์ง + ์ด..
[Deep Dive] 04-06์ฅ
04์ฅ ๋ณ์ ๋ณ์๋ ๋ฌด์์ธ๊ฐ? ์ ํ์ํ๊ฐ? ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๊ธฐ์ตํ๊ณ ์ถ์ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ , ์ ์ฅ๋ ๊ฐ์ ์ฝ์ด ๋ค์ฌ ์ฌ ์ฌ์ฉํ๊ธฐ ์ํด ๋ณ์๋ผ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ค. ๋ณ์๋ ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋ณดํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์์ฒด ๋๋ ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ๋ถ์ธ ์ด๋ฆ์ ๋งํ๋ค. ๊ฐ๋จํ ๋งํ์๋ฉด ๋ณ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๊ฐ์ ์ ์ฅํ๊ณ ์ฐธ์กฐํ๋ ๋ฉ์ปค๋์ฆ์ผ๋ก, ๊ฐ์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ง์ ์ธ ์ด๋ฆ์ด๋ค. ๋ณ์์ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ ํ ๋น(๋์ , ์ ์ฅ)์ด๋ผ ํ๊ณ , ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ์ฝ์ด ๋ค์ด๋ ๊ฒ์ ์ฐธ์กฐ๋ผ ํ๋ค. ์๋ณ์ ์๋ณ์๋ ์ด๋ค ๊ฐ์ ๊ตฌ๋ณํด์ ์๋ณํ ์ ์๋ ๊ณ ์ ํ ์ด๋ฆ์ ๋งํ๋ค. ๋ณ์, ํจ์, ํด๋์ค ๋ฑ์ ์ด๋ฆ์ ๋ชจ๋ ์๋ณ์๋ค. ์ ์ธ์ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์๋ณ์์ ์กด์ฌ๋ฅผ ์๋ฆฐ๋ค. ์๋ณ์๋ก..
[Deep Dive] 01-03์ฅ
01์ฅ ํ๋ก๊ทธ๋๋ฐ ํ๋ก๊ทธ๋๋ฐ์ด๋? ์ปดํจํฐ์๊ฒ ์คํ์ ์๊ตฌํ๋ ์ผ์ข ์ ์ปค๋ฎค๋์ผ์ด์ ์ด๋ค. ์ด ๋ ์๊ตฌ๋๋ ๊ฒ์ด ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ด๋ค. ํ๋ก๊ทธ๋๋ฐ์ด๋ 0๊ณผ 1๋ฐ์ ์์ง ๋ชปํ๋ ๊ธฐ๊ณ๊ฐ ์คํํ ์ ์์ ์ ๋๋ก ์ ํํ๊ณ ์์ธํ๊ฒ ์๊ตฌ์ฌํญ์ ์ค๋ช ํ๋ ์์ ์ด๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฐ๋ก ์ฝ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ฌ๋์ด ์ดํดํ ์ ์๋ ์ฝ์๋ ๊ตฌ๋ฌธ์ผ๋ก ๊ตฌ์ฑ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํด ํ๋ก๊ทธ๋จ์ ์์ฑํ ํ, ๊ทธ๊ฒ์ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ๋ณ์ญ๊ธฐ์ธ ์ปดํ์ผ๋ฌ ํน์ ์ธํ๋ฆฌํฐ๋ฅผ ์ด์ฉํด ์ปดํจํฐ์ ๋ช ๋ น์ ์ ๋ฌํ๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๊ตฌ๋ฌธ๊ณผ ์๋ฏธ์ ์กฐํฉ์ผ๋ก ํํ๋๋ค. ๊ตฌ๋ฌธ๊ณผ ์๋ฏธ ํ๋ก๊ทธ๋๋ฐ์ ๋ชฉ์ ์ ๋ฌธ์ ํด๊ฒฐ์ด๊ณ ์์ฑ๋ ์ฝ๋๋ ํด๊ฒฐ ๋ฐฉ์์ ๊ตฌ์ฒด์ ๊ตฌํ๋ฌผ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ์ ๋ถํฉํ๋ ๊ฒ์ ๋ฌผ๋ก ์ด๊ณ ์..
[์ ์ฃผ์ฝ๋ฉ๋ฒ ์ด์ค์บ ํ] JavaScript 2๋ถ
์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ ์กฐ๊ฑด๋ฌธ if else if else switch ์ผํญ์ฐ์ฐ์ let result = true ? 1 : 100; ๋ฐ๋ณต๋ฌธ for for in for of while do while forEach break : ํด๋น ์กฐ๊ฑด์ด ๋ง์กฑ๋์์๋ ๋ฐ๋ณต๋ฌธ์ ํ์ถ continue : ํด๋น ์กฐ๊ฑด์ด ๋ง์กฑ๋์์๋ ๋ค์ ๋ฃจํ๋ก ๋์ด๊ฐ // for๋ฌธ ๋ฌดํ ๋ฐ๋ณต for (;;) { } // for in ๋ฌธ ๋ฌดํ ๋ฐ๋ณต let a = '19821'; for (let i of a) { s += parseInt(i); } let b = {'one':1, 'two':2}; for (let j in b) { console.log(j); } // while๋ฌธ ๋ฌดํ ๋ฐ๋ณต while (true) { } ํจ์์ ํด๋์ค ํจ์ ํจ์๋ฅผ ์ฌ์ฉ..
[์ ์ฃผ์ฝ๋ฉ๋ฒ ์ด์ค์บ ํ] JavaScript 1๋ถ
์๋ฐ์คํฌ๋ฆฝํธ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฒ์ ์ ์ด ๋์ด๋ ์ด์ ์ ์์๋ ๊ธฐ๋ฅ์ ์ญ์ ํ๊ฑฐ๋ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝ ํ์ง ์๋๋ค. ES5 ๋ถํฐ ์๊ฒฉ๋ชจ๋, ๋ฐฐ์ด๋ฉ์๋๊ฐ ์ถ๊ฐ ES6 ๋ถํฐ const, let, Promise, Arrow function, class ๋ฑ์ ๋ฌธ๋ฒ๋ค์ด ๋๊ฑฐ ์ถ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฝ์ ์์น๋ ๋ณดํต body ํ๊ทธ์ ๋งจ ๋์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ตฌ์กฐ ๋ฌธ(statement)์ ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๊ตฌ๋ถํ๋ค. ๋ฌธ์ ๊ฐ, ์ฐ์ฐ์, ํค์๋, ๋ช ๋ น์ด, ํํ์ ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋๋ค. ๊ณต๋ฐฑ์ ๋ณํฉํ๋ค. ์ฃผ์ // ํ ์ค ์ฃผ์ /* ์ฌ๋ฌ์ค ์ฃผ์ */ ์๊ฒฉ ๋ชจ๋ "use strict"; use stirict ๋ผ๋ ์ง์์๋ฅผ ํตํด ์๊ฒฉ๋ชจ๋๋ฅผ ํ์ฑํ ํ์๋๋ง ์ต์ ๋ฌธ๋ฒ์ด ๋ฐ์๋๋ค. ๋ณดํต ์ฝ๋์ ์ต์๋จ์ ์ถ๊ฐํ๋ค. class ๋ฌธ๋ฒ์ ๊ฒฝ์ฐ ์๊ฒฉ ๋ชจ๋๊ฐ ๊ธฐ๋ณธ..
[Three.js] GIS Developer ๋์ Three.js ๊ฐ์ข - 5
GIS Developer ๋์ Three.js ๊ฐ์ข : https://www.youtube.com/watch?v=Oe4n0vyrSiU ์นด๋ฉ๋ผ (Camera) Camera๋ฅผ ์์๋ฐ๋ ํด๋์ค (Camera๋ object 3D๋ฅผ ์์๋ฐ๋๋ค - PerspectiveCamera : ๊ฐ๊น์ด ์๋ ๋ฌผ์ฒด๊ฐ ๋ฉ๋ฆฌ ์๋ ๋ฌผ์ฒด๋ณด๋ค ์๋์ ์ผ๋ก ํฌ๊ฒ ๋ณด์ด๋๋ก ์๊ทผ๊ฐ์ ํํํด์ ๋ ๋๋งํ๋ค. fovy, aspect, zNear, zFar๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค. ์ด ์ธ์๋ค์ ํตํด ์ ๋์ฒด๊ฐ ๊ตฌ์ฑ๋๋ค. (์ ๋์ฒด ์์ ์กด์ฌํ๋ ๋ฌผ์ฒด๊ฐ ์นด๋ฉ๋ผ๋ฅผ ํตํด ๋ณด์ฌ์ง๊ฒ ๋๋ค) zNear์ zFar ๊ฑฐ๋ฆฌ ์ฌ์ด๋ฅผ ๋ฒ์ด๋๋ฉด ๋ ๋๋ง๋์ง ์๋๋ค. - OrthographicCamera : ๋ฌผ์ฒด๊ฐ์ ์๊ทผ๊ฐ์์ด ๋ฌผ์ฒด์ ํฌ๊ธฐ ํฌ๊ธฐ๋๋ก ๋ ๋๋งํ๋ค. zLeft, xRight..
[Three.js] GIS Developer ๋์ Three.js ๊ฐ์ข - 4
GIS Developer ๋์ Three.js ๊ฐ์ข : https://www.youtube.com/watch?v=L_70k2sAuds ์ฌ์ฉ์ ์ ์ ์ง์ค๋ฉํธ๋ฆฌ(Custom Geometry) : ๋ณต์กํ ํ์์ ๋ง๋ค ์ ์๋ค. BufferGeometry ์ ๋ํด ์ ์ํ ์ ์๋ ์์ฑ - position : geometry๋ฅผ ๊ตฌ์ฑํ๋ 3์ฐจ์ ์ขํ์ ๋ํ ์ ์ (Vertex) - normal : ๊ฐ ์ ์ ์ ๋ํ ์์ง ๋ฒกํฐ - color : ๊ฐ ์ ์ ์ ๋ํ ์์๊ฐ - uv : ๊ฐ ์ ์ ์ ๋ํ ํ ์ค์ณ ๋งคํ ์ขํ - Vertex Index๋ setIndex ๋ฉ์๋๋ก ์ง์ : position ์์ฑ์ผ๋ก ์ง์ ๋ ์ ์ ์ ๋ํ ์ธ๋ฑ์ค ๋ฐฐ์ด๋ก ์ง์ . ex) mesh๋ฅผ ๊ตฌ์ฑํ๋ ๋ฉด์ ์ต์ ๋จ์๋ ์ผ๊ฐํ์ด๊ณ ์ด ์ผ๊ฐํ์ 3๊ฐ์ ์ ์ ์ผ..
[Three.js] GIS Developer ๋์ Three.js ๊ฐ์ข - 3
GIS Developer ๋์ Three.js ๊ฐ์ข : https://www.youtube.com/watch?v=RxIwudO-YqY ์ฌ์ง(Material) Objct3D ์ Line์ ์์๋ฐ์ ํด๋์ค - LineSegments - LineLoop ์ฌ์ง(Material) ํด๋์ค - PointsMaterial : Points ํ์ ์ Object3D ๊ฐ์ฒด๋ฅผ ์ํ ์ฌ์ง, ์ขํ๋ฅผ ์ ์ผ๋ก ๋ ๋๋ง - LineBasicMaterial : Line ํ์ ์ Object3D ๊ฐ์ฒด๋ฅผ ์ํ ์ฌ์ง. ์ขํ๋ฅผ ์์๋๋ก ์ฐ๊ฒฐํด์ ๋ผ์ธ์ผ๋ก ๋ ๋๋ง - LineDashedMaterial : LineBasicMaterial ๋ฅผ ์์๋ฐ๋ ์์ ํด๋์ค - MeshBasicMaterial : Mesh ํ์ ์ Object3D ๊ฐ์ฒด๋ฅผ ์ํ ์ฌ์ง. ..
[Three.js] GIS Developer ๋์ Three.js ๊ฐ์ข - 2
GIS Developer ๋์ Three.js ๊ฐ์ข : https://www.youtube.com/watch?v=ITA9no8Bsio ์ง์ค๋ฉํธ๋ฆฌ (Geometry) : 3์ฐจ์ ์ค๋ธ์ ํธ์ ํ์์ ์ ์ Three.js ์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ์ง์ค๋ฉํธ๋ฆฌ : ์ง์ค๋ฉํธ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก BufferGeometry ๋ฅผ ์์๋ฐ๊ณ ์๋ค. * BufferGeometry - BoxGeometry : ๊ฐ๋ก, ์ธ๋ก, ๊น์ด์ ๋ํ ํฌ๊ธฐ์ ๊ฐ๋ก, ์ธ๋ก, ๊น์ด ๊ฐ๊ฐ์ ๋ํ ๋ถํ (Segments) ์๋ก ์ ์๋๋ค. (๋ถํ ์ LineBasicMaterial์ ํตํด ์๊ฐ์ ์ผ๋ก ํ์ธ ๊ฐ๋ฅ) - CircleGeometry : ์ํ์ ํฌ๊ธฐ์ธ ๋ฐ์ง๋ฆ, ์ํ์ ๊ตฌ์ฑํ๋ ๋ถํ ๊ฐ์, ์์ ๊ฐ๋, ์ฐ์ฅ ๊ฐ๋๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค. - ConeGeometry : ..