• Home
  • About
    • on Weekend photo

      on Weekend

      ๐™Ž๐™ฉ๐™ช๐™™๐™ฎ๐™ž๐™ฃ๐™œ

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • ํ•„์‚ฌ
  • Projects

About Me With CMD

16 Jan 2021

๐—”๐—ฏ๐—ผ๐˜‚๐˜ ๐— ๐—ฒ ๐—ช๐—ถ๐˜๐—ต ๐—–๐—บ๐—ฑ

์œ„์˜ cmd ํ™”๋ฉด์„ ํด๋ฆญํ•˜์—ฌ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋งค๋‰ด์–ผ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ

ํ•™๋ถ€ ์‹œ์ ˆ System Programming์„ ๋ฐฐ์šฐ๋ฉฐ unix style ์ปค๋„์„ ๊ตฌํ˜„ํ•œ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ์—๋Š” ๋ช…๋ น์–ด๋ฅผ parsingํ•˜๋Š” ๋ฐ์— ์‹œ๊ฐ„์„ ๋งŽ์ด ์Ÿ์•˜๋‹ค๋ฉด, ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„  ํŽ˜์ด์ง€๋ฅผ ์ง์ ‘ ๊ทธ๋ฆฌ๊ณ , ๋ผ์ธ ์‹œ์ž‘์  ์ขŒํ‘œ๊ฐ’๋“ค์„ ์ฐ์–ด๋ณด๋ฉฐ ์ปค๋„ ๊ทธ ์ด์ „ ๋‹จ๊ณ„๋ฅผ ์ง์ ‘ ๊ตฌ์ถ•ํ•ด๋ณด๋Š” ๋А๋‚Œ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ˆœ ์ž‘์—…์‹œ๊ฐ„์€ 14์‹œ๊ฐ„ ์ •๋„๋กœ ์ถ”์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์˜ ์ž๊ธฐ์†Œ๊ฐœ๋„ ์ปค๋„์„ ๋„์›Œ ๋ณด์—ฌ์ฃผ๋ฉด ์žฌ๋ฏธ์žˆ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์— ๋‹น์ผ ์ €๋… ๋ฐ”๋กœ ์ž‘์—…์— ์ฐฉ์ˆ˜ํ–ˆ๊ณ , ์ƒˆ๋ฒฝ 6์‹œ๊นŒ์ง€ 12์‹œ๊ฐ„ ์ด์ƒ ์ž‘์—…ํ•˜์—ฌ ์™„์„ฑํ•œ ํ›„ ๋‹ค์Œ๋‚  3์‹œ๊ฐ„ ์ •๋„๋ฅผ ๋“ค์—ฌ ๊ตฌ์ž…ํ•ด๋‘” ์›น์„œ๋ฒ„์™€ ๊นƒํŽ˜์ด์ง€์— ๋ฐฐํฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์—” ํ”Œ๋ž˜์‹œ๊ฒŒ์ž„์ฒ˜๋Ÿผ About Me ํŽ˜์ด์ง€์— ๋ฐ”๋กœ ๋„์šฐ๊ณ ์ž HTML5 ๊ฒŒ์ž„ ์—”์ง„์„ ์ฐพ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ฐพ์•„๋ณด๋‹ˆ ๋งŽ์€ ์›น๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๋“ค์ด ์‚ฌ์šฉํ•˜๊ณ , ๊ฐ€๋ฒผ์šด ๊ฒŒ์ž„์—”์ง„์ธ Phaser๋ฅผ ์„ ํƒํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œ๋ฐ›๊ณ , 4์‹œ๊ฐ„ ์ •๋„๋Š” ์ž‘์—…์˜ ์ง„์ „ ์—†์ด Phaser๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ์— ์‹œ๊ฐ„์„ ์Ÿ์•˜๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊นƒํŽ˜์ด์ง€์— ํ™•์‹คํžˆ ๋„์šธ ์ˆ˜ ์žˆ์„์ง€, ๋‚˜์•„๊ฐ€ ๊นƒ๋ธ”๋กœ๊ทธ์— iframe ํƒœ๊ทธ๋กœ ํŽ˜์ด์ง€๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์„์ง€์— ๋Œ€ํ•œ ์กฐ์‚ฌ ์—ญ์‹œ ๋ณ‘ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๊ณผ์ •์—์„  javascript์— ๋Œ€ํ•œ ๊นŠ์€ ์ดํ•ด๊ฐ€ ์—†๋˜ ์ €๋กœ์„œ๋Š” javascript ์‹ฌ์ธต์ ์ธ ์ž‘๋™ ์—ญ์‹œ ์ดํ•ดํ•˜๋Š” ๋ฐ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐ์šด๊ฒŒ ๋„ˆ๋ฌด ๋งŽ์•„ ์–ด๋””์„œ๋ถ€ํ„ฐ ์ •๋ฆฌํ•ด์•ผ ํ• ์ง€ ๊ฐ€๋Š ์กฐ์ฐจ ์•ˆ๋˜๋„ค์š”. ํ•˜๋‚˜ํ•˜๋‚˜ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๐–๐ก๐š๐ญ ๐ˆ ๐‹๐ž๐š๐ง๐ซ๐ง

(1) ์‚ฌ์šฉํ•ด๋ณธ ์  ์—†๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

  • ์ž‘์—…์— ๋“ค์–ด๊ฐ€๋ฉฐ Phaser์˜ ์กด์žฌ๋ฅผ ์ฒ˜์Œ ์•Œ์•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์จ๋ณด์ง€ ์•Š์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•œ๊ตญ์–ด๋กœ ๋œ ๋งค๋‰ด์–ผ์ด ๋งŽ์ง€ ์•Š์€ ์ƒํ™ฉ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ตฌ๊ธ€๋ง ํ•˜๋Š” ๋ฒ•์„ ๊ต‰์žฅํžˆ ๋งŽ์ด ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์žฅ ๋„์›€์„ ๋งŽ์ด ๋ฐ›์€ ๊ฒƒ์€ ์—ญ์‹œ ๊ณต์‹ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. Phaser 3์˜ ์˜ˆ์ œ ์ฝ”๋“œ์—์„œ ์›ํ•˜๋Š” ํŒŒํŠธ๋ฅผ ์ฐพ์•„ ์ฝ”๋“œ๋ฅผ ๋œฏ์–ด๋ณด๊ณ , ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊ฟ”๋ณด๋ฉฐ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์ž‘๋™์„ ์–ด๋ฆผ์ง์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ˆ ์‹ฌํ™”์˜ ์‹ฌํ™”์— ๋Œ€ํ•œ ์ดํ•ด๋Š” ์ ‘์–ด๋‘๊ณ , ์‚ฌ์šฉ๋ฒ•์„ ์ค‘์ ์ ์œผ๋กœ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์Œฉ์ดˆ๊ธ‰์ž์˜€์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์˜์™ธ๋กœ ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์˜ ๋„์›€๋„ ๋งŽ์ด ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
    • ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋จผ์ € ์‚ดํŽด๋ณธ ํ›„, ์‚ฌ์šฉํ•˜๊ธธ ์›ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์—”์ง„ ์ด๋ฆ„์ธ Phaser์™€ ํ•จ๊ป˜ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋‹ค์–‘ํ•œ ์งˆ๋ฌธ๋“ค์ด ์Ÿ์•„์ ธ ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์ฝ์œผ๋ฉฐ ํ˜„์žฌ ์ฒ˜ํ•ด์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ๋‚ด๊ฐ€ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ธ๊ฑด์ง€, ๊ทธ ์™ธ์˜ ๋ฌธ์ œ์ธ์ง€ ์ •๋„๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ๋ชจ๋ฅด๋Š”์ง€ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ ๋‚จ๋“ค์ด ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„๋“ค์„ ์•Œ๊ฒŒ๋œ๋‹ค๋Š” ์ ์ด ์˜คํžˆ๋ ค ๋ฌด์—‡์„ ๋ชจ๋ฅด๋Š” ์ง€๋ฅผ ์•Œ๊ฒŒ ํ•ด์ฃผ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

(2) ๋ฌธ์ œ ํ•ด๊ฒฐ๋ ฅ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.

  • Phaser 3์—์„œ ์œ ์ € ์ž…๋ ฅ์— ๋”ฐ๋ผ ๋ผ์ธ์ด ์œ„๋กœ ๋ฐ€๋ ค๋‚˜๋Š” ๊ทธ๋ž˜ํ”ฝ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ, ์ฒ˜์Œ์—๋Š” javascript์— Queue๋ฅผ ์ ์šฉํ•˜์—ฌ ํŠน์ • ๋ผ์ธ ์ด์ƒ์ด ๋˜๋ฉด dequeue๋˜๊ณ , ์ƒˆ๋กœ์šด ๋ผ์ธ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€์œผ๋‚˜ Phaser์˜ ํŠน์„ฑ์ƒ ์ขŒํ‘ฏ๊ฐ’์„ ๋งค๋ฒˆ ์ƒˆ๋กญ๊ฒŒ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๊ธฐ์—” ๋น„ํšจ์œจ์ ์ด์–ด์„œ ํ•ด๋‹น ๋ฐฉ๋ฒ•์„ ํ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ดํ›„ ์บ”๋ฒ„์Šค์— ๋ผ์ธ์˜ ์ขŒํ‘ฏ๊ฐ’์„ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด๋‘๊ณ , line์„ ํ•ด๋‹น ์ขŒํ‘ฏ๊ฐ’์— ์ฐ์–ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. moveUpEntries() ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ํ•œ ๋ผ์ธ์˜ ๋†’์ด(line_h)๋งŒํผ ๋ชจ๋“  line์˜ height๋ฅผ ์˜ฌ๋ ค์ฃผ์–ด์„œ ๋ผ์ธ์˜ ์ด๋™์„ ํ‘œํ˜„ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    function moveUpEntries() {
    	for (var i = 0; i < (entryArray.mark).length; i++) {
    		(entryArray.mark[i]).y -= line_h;
    		(entryArray.content[i]).y -= line_h;
    	}
    }
    
    

์œ„์˜ ์ฝ”๋“œ๋Š” ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. Phaser์˜ textEntry์˜ text, width, hieght ๋“ฑ์˜ ์†์„ฑ๊ฐ’์„ ๋ฐ”๊พธ๋ฉด ์ƒˆ๋กญ๊ฒŒ ์ด๋ฏธ์ง€๋ฅผ ๋„์šฐ์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ์ ์—์„œ ์ฐฉ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋ผ์ธ์˜ textEntry๋“ค์„ ๋ชจ๋“  entryArray ๋งŒ๋“ค์–ด y๊ฐ’์„ ๋ฏธ๋ฆฌ ์ง€์ •ํ•ด๋‘” ํ•œ ๋ผ์ธ์˜ ๋†’์ด(line_h)์”ฉ ์œ„๋กœ ๋Œ๋ ค์ฃผ๋Š” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

(3) javascript์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋†’์•„์กŒ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, javascript์—์„œ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์ตํ˜”์Šต๋‹ˆ๋‹ค.

  • ์ฒ˜์Œ์—” javascript์—๋Š” ๊ตฌ์กฐ์ฒด๊ฐ€ ๋”ฐ๋กœ ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ธ€์„ ์ ‘ํ•˜๊ณ  ๊ต‰์žฅํžˆ ๋‹นํ™ฉํ•˜์˜€์œผ๋‚˜, ๋” ํšจ์œจ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ ๊ธฐ์ˆ ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ์— ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. javascript ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋‹จ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
var entryArray = {
	mark : [],
	content : []
};
...
var markEntry = game.add.text(10, line_h*line, input_line, textStyle_line_mark);
var userInputEntry = game.add.text(30, line_h*line, recentInput, textStyle_input);
(entryArray.mark).push(markEntry);
(entryArray.content).push(userInputEntry);
...
var markEntry = game.add.text(10, line_h*line, input_line, textStyle_line_mark);
var userInputEntry = game.add.text(30, line_h*line, recentInput, textStyle_input);

(entryArray.mark).push(markEntry);
(entryArray.content).push(userInputEntry);
  • ์œ„์ฒ˜๋Ÿผ etnryArray๋ผ๋Š” ์ด๋ฆ„์˜, ๋‚ด๋ถ€์— mark๋ผ๋Š” key์™€ empty Array๋ฅผ value๋กœ ๊ฐ–๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ๊ฐ๊ฐ์˜ entry๋ฅผ ๋ฐ›๊ณ , entryArray.mark์— pushํ•ด์ฃผ๊ฑฐ๋‚˜ entryArray.content์— pushํ•ด์ฃผ๋Š” ๋ฐฉ์‹์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.
function clear() {
	for (var i = 0; i < (entryArray.mark).length; i++) {
		(entryArray.mark[i]).text = '';
		(entryArray.content[i]).text = '';
	}
	line = -2;
}
  • ์‚ฌ์šฉ์€ entryArray ๋‚ด๋ถ€์˜ mark ํ˜น์€ content์˜ array length๋งŒํผ ์ˆœํšŒํ•˜๋ฉฐ, entryArray์˜ mark๋ฐฐ์—ด์— ์ ‘๊ทผํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋‚˜์•„๊ฐ€, ํฌ๋กฌ ๊ฐœ๋ฐœ์ž๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์— ์•ฝ๊ฐ„ ์ต์ˆ™ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๋””๋ฒ„๊น…์„ ํ•˜๋Š” ๋ฐ์—๋Š” ๋ฒ„๋ฒ…๊ฑฐ๋ฆฌ์ง€๋งŒ, ์ ์–ด๋„ ์ค‘๋‹จ์ ์„ ์„ค์ •ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฒ•, ํŒŒ์ผ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๋Š” ๋ฒ•์„ ํ•™์Šตํ–ˆ๋‹ค๋Š” ๋ฐ์— ํฐ ์˜์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

(4) ํ˜‘์—…๊ณผ ์œ ์‚ฌํ•œ ๋ฆฌํŒฉํ† ๋ง ๋ฐฉ์‹์„ ์‹œ๋„ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํด๋ฆฐ์ฝ”๋“œ ์„œ์ ์„ ์ฝ์€ ํ›„ ๋จธ๋ฆฟ ์†์— ๋‹ด์•„๋‘๊ณ  ์‹ค์ œ ์ ์šฉ์€ ๋ฏธ๋ฃจ๋˜ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐฉ์‹๋“ค์„ ์‚ฌ์šฉํ•ด๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉ์ž๊ฐ€ ๊นƒ๋ธ”๋กœ๊ทธ์— ์‚ฝ์ž…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ์‹ค์ œ ์ฝ”๋“œ ๋‚ด๋ถ€์—์„œ์˜ ๋ณ€์ˆ˜๊ฐ’์„ ์กฐ์ •ํ•˜๋Š” ๊ณผ์ •์ด ์š”๊ตฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ์‚ฌ์šฉ์ž๊ฐ€ ๋‚˜์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ์ฝ๋Š”๋‹ค๋Š” ์ƒ๊ฐ์œผ๋กœ ๋งˆ์ง€๋ง‰์— ๋ฆฌํŒฉํ† ๋ง์„ ์‹ค์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์ตœ๋Œ€ํ•œ ๊ฐ€๋…์„ฑ ์ข‹์€ ๋ณ€์ˆ˜๋ช…์„ ์ •ํ•˜๊ณ , ์ „์—ญ๋ณ€์ˆ˜๋Š” ํ•œ ๊ณณ์œผ๋กœ ์˜ฎ๊ฒผ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์กฐ์ • ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜๋“ค์„ ๋”ฐ๋กœ ๋ชจ์•„ ์ •๋ฆฌํ•ด๋‘์—ˆ์œผ๋ฉฐ, ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํƒ€์ธ์ด ๋‚ด ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ๋ณธ๋‹ค๋Š” ์ƒ๊ฐ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ณผ์ •์—์„œ ์ฝ”๋“œ๋Š” ํ•˜๋‚˜์˜ ์ค„๊ธ€์ด๋‚˜ ๋‹ค๋ฆ„์—†๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฃผ๋ณ€์ธ๋“ค์ด ๋Œ€๋‹ค์ˆ˜ ๋น„๊ฐœ๋ฐœ์ง๊ตฐ์— ์ข…์‚ฌํ•˜๋Š” ๊นŒ๋‹ญ์—, ํ•ด๋‹น ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด๋Ÿฌ ์˜ค๊ณ , ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ๊ฐ€๋…์„ฑ ์ข‹๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋ณ€์ˆ˜๋ช…๊ณผ ํ•จ์ˆ˜๋ช…์˜ ์ค‘์š”์„ฑ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

(5) ๊นƒํ—ˆ๋ธŒ๋ฅผ ์•„๋ฆ„๋‹ต๊ฒŒ ์œ ์ง€ํ•˜๋ ค๋Š” ๋…ธ๋ ฅ

  • ํŠน์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋“ฑ ํ•œ ๋ฒˆ์˜ ๊ฐœ๋ฐœ ๊ณผ์ •์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค ๋ฐ”๋กœ๋ฐ”๋กœ ์ปค๋ฐ‹์„ ํ•ด์ฃผ๊ณ ์ž ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ช‡๋ช‡ ํ”„๋กœ์ ํŠธ์—์„œ ์–ธ์ œ๋“  ๋‚ด ์›๋ณธ ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ ์‹ค์ˆ˜๋กœ ๋งํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์™„๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค ๋ฐ”๋กœ๋ฐ”๋กœ ์ปค๋ฐ‹์„ ํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ๋‚˜๋‹ค๋ฅผ๊นŒ, ์›น์„œ๋ฒ„์— ๋ฐฐํฌ๊ฐ€ ์•ˆ๋˜์–ด ํด๋” ๊ตฌ์กฐ๋ฅผ ์ž„์˜๋กœ ๋ฐ”๊พธ์—ˆ์„ ๋•Œ ์ƒ๊ธด ์—๋Ÿฌ๋ฅผ ๊ณ ์น˜๊ณ ์ž ๊นƒํ—ˆ๋ธŒ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ์—์„œ ๋งŽ์ด ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

(6) ๋ฒ„์ „์˜ ์ค‘์š”์„ฑ

  • Phaser 2.x(phaser.min.js)๋ฅผ ์‚ฌ์šฉํ•˜๋˜ ๋„์ค‘, Phaser 3.x(phaser.js)๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ณผ์ •์—์„œ ๋ถ„๋ช…ํžˆ ์ธ์‹๋˜๋˜ ํ•จ์ˆ˜๋“ค์ด ์ธ์‹์ด ๋˜์ง€ ์•Š์•„ keyboard input ํŒŒํŠธ์˜ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—…์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ณผ์ •์—์„œ ๋จธ๋ฆฌ๋กœ๋งŒ ์ดํ•ดํ•˜๋ฉด ๋ฒ„์ „์˜ ์ค‘์š”์„ฑ์„ ๋А๋‚„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์œ„์˜ ์ž‘์—…์—์„  game.input.keyboard.onCallBack(...) ํ•จ์ˆ˜๊ฐ€ game.input.keyboard.on(...)์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ณผ์ •์—์„œ ํ•œ ๊ธ€์ž์”ฉ character๋ฅผ ๋ฐ›์•„์˜ค๋˜ get_keys() ์ฝ”๋“œ๊ฐ€ ํ‚ค ์ฝ”๋“œ(event.keyCode)๋ฅผ ๋ฐ›์•„์˜ค๋Š” ์ฝ”๋“œ๋กœ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ get_keys() ํ•จ์ˆ˜๋กœ ๋นผ๋‘์—ˆ๊ธฐ์— ํƒˆ๋ถ€์ฐฉ์ด ์–ด๋ ต์ง€ ์•Š์•˜๊ณ , ์ด์— ๋”ฐ๋ผ ํ•œ ํ•จ์ˆ˜๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ์„ ํ•ด์•ผํ•œ๋‹ค๋Š” ํด๋ฆฐ ์ฝ”๋“œ์˜ ์›์น™ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‹ค๊ฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

(7) ์›น์„œ๋ฒ„ ๋ฐฐํฌ, ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ๊ณผ์ •

  • gitpage์—์„œ ์—…๋กœ๋“œํ•˜๊ธฐ ์ด์ „ ๊ฐœ์ธ ์›น์„œ๋ฒ„์— ์˜ฌ๋ฆฌ๋Š” ๊ณผ์ •์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ค์ด๋ฒ„ํด๋ผ์šฐ๋“œํ”Œ๋žซํผ์—์„œ ๋ฐ›์€ 1๋…„ ์งœ๋ฆฌ ๋ฌด๋ฃŒ CentosOS ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ํ˜„์žฌ ์ œ ์›น์„œ๋ฒ„์—์„œ๋„ ๋ฐฐํฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋งํฌ๋Š” ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐฐํฌ๋ฅผ ์ฒดํ—˜ํ•ด๋ณด๋ฉฐ, jdk ๋ฒ„์ „์„ ์ƒˆ๋กœ ๊น”๊ณ , tomcat 8.5๋ฒ„์ „ ์„œ๋ฒ„๋ฅผ ํ…… ๋นˆ ์›น์„œ๋ฒ„์— ๊น”์•˜์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ tomcat์˜ root์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋†’์•„์กŒ๊ณ , webapp์œผ๋กœ ์ ‘๊ทผํ•˜์—ฌ ํŒŒ์ผ์„ ์ฝ๋Š” ๋™์ž‘๋ฐฉ์‹์„ ์–ด๋ ดํ’‹ํ•˜๊ฒŒ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.
  • tomcat์„ ๋กœ์ปฌ ์„œ๋ฒ„๋กœ ๋Œ๋ฆฌ๋ฉฐ ์ž‘์„ฑํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๊ณผ index.html์„ ์–ด๋–ป๊ฒŒ ์›น ์„œ๋ฒ„์— ์˜ฌ๋ฆฌ๋Š”์ง€๋ฅผ ํŒŒ์•…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ต‰์žฅํ•œ ๊ณผ์ •์ด ์žˆ๋Š” ์ค„ ์•Œ์•˜๋Š”๋ฐ, ํ•™๋ถ€์ƒ ๋•Œ Visual Studio์—์„œ ์ฝ˜์†” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Releaseํ•˜๋“ฏ์ด IDE์—์„œ Export๋ฅผ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ง์ ‘ ๊ฐ„๋‹จํ•œ ๋ฐฐํฌ๊นŒ์ง€ ๋๋งˆ์ณ๋ณด๋ฉฐ ์›น์„œ๋ฒ„์˜ ๋™์ž‘์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

(8) ์ž‘์—… ์‹œ๊ฐ„์— ๋Œ€ํ•œ ์ดํ•ด

  • ๋Š˜ ๊ทธ๋ž˜์„  ์•ˆ๋œ๋‹ค๋Š” ๊ฑธ ์•Œ๊ณ ๋Š” ์žˆ์—ˆ์ง€๋งŒ ์ž‘์—… ์‹œ๊ฐ„์„ ์ธก์ •ํ•  ๋•Œ๋งˆ๋‹ค ๋Š˜ ์ž‘์—… ์‹œ๊ฐ„์„ ์ ๊ฒŒ ์ƒ๊ฐํ•ด์™”์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ชจ๋“  ๊ฑธ ๊ณ ๋ คํ•ด์„œ ์žก๋Š” ์ž‘์—…์‹œ๊ฐ„๋ณด๋‹ค ๋Œ€๋žต 2๋ฐฐ ์ •๋„๋Š” ์‹œ๊ฐ„์ด ๋” ๋“œ๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.
  • ํŠนํžˆ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋”๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ ์ž‘์—…์„ ๊ตฌ์ƒํ•˜๊ณ  ์‹คํ–‰ํ•  ๋•Œ์—๋Š” cmd์ฐฝ์„ ์ง์ ‘ ๊ทธ๋ฆฌ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, ๋ญ”๊ฐ€ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋ฆฌ๋ผ ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ์š”. ๋ง‰์ƒ Phaser ๊ฒŒ์ž„ ์—”์ง„์„ ๋œฏ์–ด๋ณด๋‹ˆ ๋‹น์—ฐํ•œ ๊ฑฐ์ง€๋งŒ text ๊นŒ์ง€๋„ ํ•˜๋‚˜ํ•˜๋‚˜ ์บ”๋ฒ„์Šค์— ์ฐ์–ด์ฃผ๋Š” ๊ฒƒ์ด์—ˆ์”๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ํ…์ŠคํŠธ๊ฐ„์˜ ๊ฐ„๊ฒฉ์„ ์กฐ์ •ํ•˜๋Š” ์ผ, ํŠนํžˆ ๋ผ์ธ ์ˆ˜๊ฐ€ ๋งŽ์•„์งˆ ๊ฒฝ์šฐ ๋ผ์ธ๋“ค์ด ๋ฐ€๋ฆฌ๋Š” ์ ๊ณผ /CLEAR ํ•จ์ˆ˜ ์ดํ›„์˜ ๊ฐ„๊ฒฉ ์กฐ์ • ๋“ฑ์—์„œ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ ์ƒ๊ฐํ•œ ์ž‘์—…์‹œ๊ฐ„์€, ์‹ค์ œ๋กœ๋Š” ์ตœ์†Œ ๊ทธ ๋‘๋ฐฐ๋Š” ๋“ ๋‹ค๋Š” ์ ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

(9) ๋‚˜์˜ ๊ฐœ๋ฐœ ์ง‘์ค‘๋ ฅ์— ๋Œ€ํ•œ ์ดํ•ด

  • ์žฌ๋ฏธ์žˆ๋Š” ์ผ์ด ์žˆ์œผ๋ฉด ์‰ฌ์ง€ ์•Š๊ณ  ๊ทธ ์ผ๋งŒ ํ•˜๋Š” ์ €์˜ ํŠน์„ฑ์€ ์•Œ๊ณ  ์žˆ์—ˆ์ง€๋งŒ, ์ •์‹ ๊ณผ ์ฒด๋ ฅ์— ์•ฝ๊ฐ„ ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์ด ๊ฐˆ ๋งŒํผ ๋ชฐ์ž…ํ•˜๋Š” ์Šต๊ด€์ด ์žˆ๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ์ €๋… ์‹œ๊ฐ„์— ์‹œ์ž‘ํ•ด์„œ ์ž‘์—…์„ ๋๋‚ด๊ณ  ์•„์นจ์— ์ž๋Š” ๊ฒƒ๋ณด๋‹จ, ๊ตฌ์ƒ์„ ๋๋‚ธ ํ›„ ๋‹ค์Œ ๋‚  ์•„์นจ๋ถ€ํ„ฐ ์ž‘์—…์„ ์‹œ์ž‘ํ•ด ํ‰์†Œ์˜ ์ทจ์นจ ์‹œ๊ฐ„์—๋Š” ์ž ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์„ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐฉ ๋ถˆ์„ ๋ˆ ์ƒํƒœ๋กœ ์ฃผ๋ณ€ ์กฐ๋ช…์œผ๋กœ ์ฃผํ™ฉ๋“ฑ ์Šคํƒ ๋“œ๋ฅผ ์ผœ๊ณ , ์ฑ…์ƒ ๋์˜ ํฐ์ƒ‰ ์ž‘์—…๋“ฑ ์Šคํƒ ๋“œ๋ฅผ ์ผฐ์„ ๋•Œ์— ํŽธ์•ˆํ•  ์ •๋„๋กœ ์ฃผ๋ณ€ ์กฐ๋„๊ฐ€ ๋‚ฎ์€ ๊ฒƒ์„ ์„ ํ˜ธํ•˜๋Š” ํŽธ์ž…๋‹ˆ๋‹ค. ์ง‘์ค‘๋ ฅ์ด ๋†’์€ ํ™˜๊ฒฝ์ธ ๋งŒํผ, ์•Œ๋žŒ์ด ์˜ค๊ฑฐ๋‚˜ ์ปดํ“จํ„ฐ ์ƒ‰์ƒ์ด ๋ฐ”๋€Œ๋Š” ๊ฒƒ(๊ฐ‘์ž๊ธฐ ์•ผ๊ฐ„๋ชจ๋“œ๊ฐ€ ์ผœ์ ธ์„œ..)์— ๋ฏผ๊ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์—…๋ฌด ํ™˜๊ฒฝ์„ ์ฐพ์•˜์œผ๋‹ˆ, ์ด์ œ ์–ด๋””์„œ๋“  ์ด๋ ‡๊ฒŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ์„ ์กฐ์ ˆํ•˜๊ฑฐ๋‚˜ ์กฐ๋„๋ฅผ ๋งž์ถ”๋Š” ๋ฒ•์„ ์ตํžˆ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ๋ช…๊นŠ๊ฒŒ ๋ณธ ๊ฐœ๋ฐœ์ž ๋ธŒ์ด๋กœ๊ทธ์—์„œ โ€œ์‹œ๊ฐ„์˜ ๋ฆฌ๋“ฌโ€์ด๋ผ๋Š” ๋ง์„ ํ•˜์…จ์—ˆ๋Š”๋ฐ, ๊ทธ๊ฑธ ๋‹จ์ ์œผ๋กœ ์ฒดํ—˜ํ•œ ๋А๋‚Œ์ž…๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ๋ฆฌ๋“ฌ์„ ํƒ€๋ฉด ์ญ‰ ์ง€์†๋˜๊ณ , ๋ฆฌ๋“ฌ์ด ํํŠธ๋Ÿฌ์ง€๋ฉด ๋‹ค์‹œ ์›๋ž˜์˜ ์ง‘์ค‘๋ ฅ์„ ์ฐพ๋Š” ๋ฐ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋”๋ผ๊ตฌ์š”. ์ƒํ™œํŒจํ„ด ์—ญ์‹œ ๋ฆฌ๋“ฌ๊ฐ์žˆ๊ฒŒ ๋งž์ถฐ๋‚˜๊ฐ€์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ป ๊ฐœ๋ฐœ : Joomal
โ–ถ๏ธ ๊ฐœ๋ฐœํ™˜๊ฒฝ : javascript, phaser 3.5.x , apache tomcat 8.5.x
โ–ถ๏ธ IDE : Eclipse, Bracket
โ–ถ๏ธ ์ˆœ์ž‘์—…์‹œ๊ฐ„ : 14์‹œ๊ฐ„



projectjavascriptphaserserver Share Tweet +1