๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
[์๋ฐ][์คํ๋ง] ํฌํธ๋ฒํธ ๋ฐ๊พธ๊ธฐ
resources์ ํ์ผ application.yml ๋ง๋ค์ด์ฃผ๊ณ server: port: 1234 ์์ ๊ฐ์ด ๋ฐ๊พธ๊ณ ์ถ์ ํฌํธ๋ฒํธ๋ก ๋ฐ๊พธ๊ธฐ๋ง ํ๋ฉด ๋!
[์ํคํ ํ ] ๊ฐ์ฒด ์งํฅ ๋ถ์
์ด๋ค ํ๋ก๊ทธ๋จ์ด๋์ง ๊ณํ ๋จ๊ณ๋ ๋ฌด์ฒ ์ค์ํ๋ค. ๊ณํ ๋จ๊ณ์์ ํ๋ก๊ทธ๋๋จธ๋ค์ ํ๋ก๊ทธ๋จ์ ์๊ตฌ ์กฐ๊ฑด๊ณผ ์ด๋ค ์๋ฃ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ์ผ์ฌ ํ๋ค. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ฉ์ด๋ก๋ ๊ฐน์ฒด ์งํฅ ๋ถ์(objected-oriented-analysis)๋ผ๊ณ ํ๋ค. ์ด๋ค ํด๋์ค๊ฐ ์ฌ์ฉ๋ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋จ๊ณ๊ฐ ๋ฐ๋ก ์ด ๋จ๊ณ์ด๋ค. ๊ฐ์ฒด ์งํฅ ๋ถ์์ ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ก ๋๋์ด ์ง ์ ์๋ค. 1. ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋ ๊ฐ์ฒด์ ํด๋์ค๋ฅผ ์๋ณํ๋ค. 2. ๊ฐ ํด๋์ค์ ์์ฑ์ ์ ์ํ๋ค. 3. ๊ฐ ํด๋์ค์ ๋์์ ์ ์ํ๋ค. 4. ํด๋์ค ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ๋ค. ์ฒ์ธ๊ตญ ์ , ์ด์์ c++์ ์ฒ์์ด์ง!, p.201
[C++] ์ธ๋ผ์ธ ํจ์
์ธ๋ผ์ธ ํจ์ ํจ์ ํธ์ถ ์์๋ ์ฝ๊ฐ์ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ค. ์ฆ ํจ์ ํธ์ถ ์ ์ ๋ชจ๋ ๋ ์ง์คํฐ(CPU ์์ ์ ์ฅ ๊ณต๊ฐ)๊ฐ ์ ์ฅ๋์ด์ผ ํ๊ณ ์ธ์๋ค์ ๋ณต์ฌ๋์ด์ผ ํ๋ค. ํจ์ ํธ์ถ ํ์๋ ๋ ์ง์คํฐ๋ค์ด ๋ค์ ๋ณต๊ตฌ๋์ด์ผ ํ๋ค. ๋ง์ฝ ์์ฃผ ๊ฐ๋จํ ํจ์๋ผ๋ฉด ํจ์ ์์ ๋ฌธ์ฅ์ ์คํํ๋ ์๊ฐ๋ณด๋ค ํจ์ ํธ์ถ์ ์ค๋นํ๋ ์๊ฐ์ด ๋ ๊ฑธ๋ฆด ์ ์๋ค. ๋ฐ๋ผ์ ํฌ๊ธฐ๊ฐ ์์ ํจ์์ ๊ฒฝ์ฐ์๋ ์ฐจ๋ผ๋ฆฌ ํจ์ ํธ์ถ์ ํ์ง ์๊ณ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ์ ๋ฃ์ด์ฃผ๋ ํธ์ด ํจ์จ์ ์ผ ์ ์๋ค. c++์๋ ์ด๋ฐ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ์ inline์ด๋ผ๊ณ ํ๋ ํค์๋๊ฐ ์ค๋น๋์ด ์๋ค. ๋ง์ฝ ํจ์ ์ด๋ฆ ์์ inline์ด ๋ถ์ผ๋ฉด ์ปดํ์ผ๋ฌ๋ ํจ์ ๋ฅด ์์ฑํ์ง ์๊ณ ํจ์์ ์ฝ๋๋ฅผ ํธ์ถํ ๊ณณ์ ์ง์ ์ง์ด๋ฃ๋๋ค. ์ด๋ฌํ ํจ์๋ฅผ ์ธ๋ผ์ธ ํจ์(inline function)๋ผ๊ณ ํ๋ค..
[JAVA][Python][์๊ณ ๋ฆฌ์ฆ] ๋ณํฉ ์๊ณ ๋ฆฌ์ฆ ; ๋จธ์ง
Java // 2๊ฐ์ ์ ์ ๋ฐฐ์ด ํฉ์น๊ธฐ : 2๊ฐ์ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์๋ค // ๋ณํฉ ์๊ณ ๋ฆฌ์ฆ : ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์๋ ์ ์ ๋ฐฐ์ด์ ํ๋๋ก ๋ณํฉ import java.util.Arrays; public class App { public static void main(String[] args) throws Exception { //[1] Input int[] first = {1,3,5}; int[] second = {2,4,6}; int M = first.length; int N = second.length; // M : N ๊ดํ int[] merge = new int[N+M]; int i = 0; int j=0; int k = 0; //i,j,k ๊ดํ //[2] Process : Merge..
[JAVA][์๊ณ ๋ฆฌ์ฆ] ์ด์ง๊ฒ์ ์๊ณ ๋ฆฌ์ฆ
JAVA public class App { public static void main(String[] args) throws Exception { //[1] Input int [] numbers = {1,2,3,4,5,6,7,8,9,10,11,12}; //์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋์๋ค๊ณ ๊ฐ์ int N = numbers.length; //์์ฌ์ฝ๋ int search = 7;//๊ฒ์ํ ๋ฐ์ดํฐ boolean flag = false; //์ฐพ์์ผ๋ฉด true int index = -1; //์ฐพ์ ์์น(์ธ๋ฑ์ค) //[2] Process : ์ด์ง ๊ฒ์ (Binary Search) int min = 0; int max = N - 1; while (min search) { max = mid - 1; } } //[3] Output ..
[PIXI] ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ์ฌ texture -> sprite -> canvas์ add ํ๋ ๊ณผ์
์ด๋ฏธ์ง ๋ก๋ ์ด๋ฏธ์ง๋ก ์์ ํ๊ธฐ ์ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ์น ์๋ฒ์์ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ๋ก ์ด๋ฏธ์ง ํ์ผ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ PIXI.Texture.from()์ํด ๋น ๋ฅธ ๋ฐ๋ชจ์ฉ์ผ๋ก ์๋ํ๋ ๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง ํ๋ก๋์ ์์๋ Loader ํด๋์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ก๋๋ ์์๋ฅผ ์ฌ์ฉํ์ฌ ๋ํํ๊ณ ๊ด๋ฆฌํ์ฌ ๋ธ๋ผ์ฐ์ ์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋๋ก ์ง์ํ ๋ค์ ์๋ฃ๋๋ฉด ์๋ ค์ค๋๋ค. ์ด ํ๋ก์ธ์ค๋ ๋น๋๊ธฐ์ ์ ๋๋ค . ๋ก๋๋ฅผ ์์ฒญํ ๋ค์ ์๊ฐ์ด ์ง๋๋ฉด ๋ก๋๊ฐ ์๋ฃ๋์์์ ์๋ฆฌ๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํฉ๋๋ค. BaseTextures๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํฉ๋๋ค ๋ก๋๊ฐ ์์ ์ ์๋ฃํ๋ฉด ๋ก๋๋ ์์์ ํ์ํ ํฝ์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฌด์ธ๊ฐ๋ฅผ ๋ ๋๋งํ๋ ๋ฐ ์ฌ์ฉํ๋ ค๋ฉด PixiJS๊ฐ ์์ ์ด๋ฏธ์ง ํ์ผ์ ๊ฐ์ ธ์ GPU์ ์ ๋ก๋ํด์ผ ํฉ๋๋ค. ์ด..
[PIXI] ticker ์ฌ์ฉ๋ฐฉ๋ฒ
์ ์ฒด ์ฝ๋ const Application = PIXI.Application; const app = new Application({ width: window.innerWidth, height: window.innerHeight, transparent: false, antialias: true, backgroundColor: 0xAAAAAA }); app.renderer.backgroundColor = 0x23395D; app.renderer.view.style.position = 'absolute'; document.body.appendChild(app.view); const graphics = PIXI.Graphics; app.ticker.add(delta => loop(delta)); function..
[PIXI] PIXI.Text์ PIXI.TextStyle ์ฌ์ฉ ๋ฐฉ๋ฒ
๊ธฐ๋ณธ ์ฝ๋ const Application = PIXI.Application; const app = new Application({ width: window.innerWidth, height: window.innerHeight, transparent: false, antialias: true, backgroundColor: 0xAAAAAA }); //๋ฐฐ๊ฒฝ์ ๋ณ๊ฒฝ app.renderer.backgroundColor = 0x23395D; //์์ฑ์๊ฐ ์๋๋๋ผ๋ ์ด์ ๊ฐ์ด ํฌ๊ธฐ ์กฐ์ ๊ฐ๋ฅ app.renderer.view.style.position = 'absolute'; document.body.appendChild(app.view); const style = new PIXI.TextStyle({ fontFa..
[PIXI] Graphic ํด๋์ค ํ์ฉํ์ฌ ๋ํ๊ทธ๋ฆฌ๊ธฐ
app.renderer vs app.view app.renderer๋ ๋ด๋ถ ๋งค์ปค๋์ฆ์ด๋ผ๋ฉด,(์บ๋ฒ์ค ์์ ์กฐ์ ) app.view๋ ์ด๋ฏธ ๋ง๋ค์ด์ง ์บ๋ฒ์ค ์์ฒด //๋ฐฐ๊ฒฝ์ ๋ณ๊ฒฝ app.renderer.backgroundColor = 0x23395D; //css app.renderer.view.style.position = 'absolute'; Graphic ํด๋์ค - ์ฌ๊ฐํ app.stage๋ ํฌํ ์ต์์ ๋ ์ด์ด๋ฅผ ์๋ก ๊ณ์ ์์๊ฐ๋ ๋๋์ ์๊ฐํ๋ฉด ์ฝ๋ค. const graphics = PIXI.Graphics; const rect = new graphics(); rect.beginFill(0x00ff00) .drawRect(40, 40, 200, 250)//x์ขํ y์ขํ ๋๋น ๋์ด .endFill() app...
[React] fontawesome ๋ฆฌ์กํธ๋ก ๊ฐ์ ธ์ค๊ธฐ
https://fontawesome.com/v5/docs/web/use-with/react React The internet's icon library + toolkit. Used by millions of designers, devs, & content creators. Open-source. Always free. Always awesome. fontawesome.com ์ ์ธ์ค์ ์ผ๋ฌด์ง๊ฒ ๋ค์ด๋ฐ์ ์ค๋ค. npm i --save @fortawesome/fontawesome-svg-core npm install --save @fortawesome/free-solid-svg-icons npm install --save @fortawesome/react-fontawesome import React from..