파란하늘의 지식창고
Lua data를 json으로 변환하기
Study/JavaScript 2023. 9. 27. 02:23

lua로 만들어진 데이터를 익숙한 json 데이터로 변환해서 사용해보고 싶었다. 그러려다 보니 lua data를 가져와 json으로 변환하는 과정을 lua 스크립트로 작성해야 했다. 그 내용을 기록해 본다. lua 소개 https://www.lua.org/ lua는 가벼운 명령형/절차적 언어로 확장 언어로 쓰일 수 있는 스크립팅 언어를 주목적으로 설계되었다. 포르투칼어로 "달"을 의미하는 단어라고 한다. C/C++과 같이 쓰기 좋아서 앵그리버드, 월드 오브 워크래프트, 로블록스, 네버윈터 나이츠, 문명 V 등등 다양한 게임에서 UI나 config 설정을 관리하는 용도로 많이 쓰인다고 한다. lua 설치하기 https://www.lua.org/download.html window에서 사용하려고 하였는데 다..

[JavaScript][tip] protypejs 와 jQuery의 확장
Study/JavaScript 2009. 9. 8. 22:31

두 라이브러리는 객체에 대한 확장을 지원한다. a라는 이름의 객체가 있다고 하면 (new를 사용하건 JSON이건간에) 다음과 같이 a객체를 확장한다. prototypejs의 경우 prototype이란 이름에 걸맞게 Object에 extend를 구현하여 apply 함수를 통해 확장을 지원한다. Object.extend(a, 확장객체); jQuery의 경우 $ 셀렉터에 선언된 extend 함수를 통해 확장을 지원한다. $.extend(a, 확장객체); 확장 객체는 원하는 대로 사용하면 된다. //일반 객체의 경우 function B() { this.bValue = "값"; this.bMethod = function() { return "메소드결과"; }; } //위 생성자 함수에 대한 생성객체인 new B(..

[JavaScript][basic] constructor 속성
Study/JavaScript 2009. 5. 6. 06:05

constructor는 객체를 만드는 기능함수를 반환하거나 설정을 하는 메소드이다. 아래와 같이 어떤 함수에 대해 function A() { document.writeln("a함수"); } document.writeln(A.constructor); 호출한 결과는 아래와 같다. function Function() { [native code] } constructor는 객체를 만드는 기능 함수를 반환하므로 object로 된 JavaScript의 모든 요소들이 다 가지고 있다. 예를 들어 아래와 같이 Object를 생성하게 되면 var a = new Object(); document.writeln(a.constructor); 호출한 결과는 아래와 같다. function Object() { [native cod..

[JavaScript][source analysis] 클래스 상속
Study/JavaScript 2009. 4. 25. 18:07

자바스크립트에 메소드 오버로딩이 없는 것과 마찬가지로 클래스 상속 또한 없다. 하지만 구현은 가능하다. JSON의 창시자로, JavaScript The Good parts의 저자로 유명한 Douglas Crockford가 구현한 소스이다. 원글 : http://javascript.crockford.com/inheritance.html 이 소스의 분석을 시작하기 전에 먼저 말해야 할 것이 있다. 이 코드를 제안한 Crockford 마저 버린 소스라는 것이다. -ㅅ-;;; 프로토타입적이고 함수적인 JavaScript의 소스에서 클래스 상속을 구현하긴 했지만 실제로 자신조차 사용하질 않는다고 말미에 달아놓은 소스이다. 하지만 JavaScript를 공부하기엔 좋은 예제이다. 이 소스를 이해하게 되면 protot..

[JavaScript][basic] null & undefined
Study/JavaScript 2009. 4. 17. 03:03

기본 데이터 형식 JavaScript에는 데이터 형식으로 아래의 형식이 있다. 기본 형식 String Number Boolean 합성(참고) 형식 Object Array 특정 형식 null undefined이중 null과 undefined라는 특정 형식이 늘 사람을 혼란스럽게 만든다. null null은 보통 객체 타입의 특수한 값, 즉 어떠한 객체도 나타내지 않는 값으로 취급된다. null은 다른 모든 값들과 구분되는 고유한 값이다. 어떤 변수가 null값을 가지면 그 변수는 기본 형식(String, Number, Boolean)이나 합성 형식(Object, Array)의 값을 담고 있지 않다는 것을 의미한다. 따라서 어떤 변수의 값을 초기화 하고 싶을 경우엔 null을 사용한다. var a = "문자..

[JavaScript][source analysis] 메소드 오버로딩
Study/JavaScript 2009. 4. 16. 02:36

JavaScript는 메소드 오버로딩이 없다. 매개변수의 갯수나, 속성, 리턴값의 일치여부를 체크하지 않는다. 함수를 선언하고 해당 함수가 호출되기 전 동일 네임의 함수가 다시 선언되는 경우 그대로 덮어쓴다. 하지만 메소드 오버로딩의 구현은 가능하다. 이를 구현한 소스가 있다. 자바스크립트의 전도사로, jQuery의 개발자로 유명한 John Resig의 소스이다. 원글 : http://ejohn.org/blog/javascript-method-overloading 아래와 같다. // addMethod - By John Resig (MIT Licensed) function addMethod(object, name, fn){ var old = object[name]; object[name] = functio..

[JavaScript][recommend] fisheye menu
Study/JavaScript 2009. 4. 15. 02:16

JavaScript로 구현한 소스 중 눈에 띄는 소스를 소개합니다. jQuery를 이용한 fisheye menu : http://www.ndesign-studio.com/blog/design/css-dock-menu/ JavaScript만을 이용한 fisheye menu : http://eudock.jules.it/index-eudock2.0.php 정말 멋진 JavaScript 소스 중 하나. 현재 이 블로그의 아래에 달린 RSS 구독 아이콘에 적용된 것이 바로 fisheye menu 입니다. 아이콘의 출처 : http://krang.tistory.com/378

[JavaScript][advanced] prototype property
Study/JavaScript 2009. 4. 14. 03:49

prototype 속성은 객체에 새로운 속성이나 메소드를 추가할 때 사용한다. 그냥 추가하면 되는데 왜 prototype이란 개념이 있을까? '함수의 호출 - 3. 생성자 호출 패턴'에서 사용한 호출 구문을 보자. var A = function(string) { this.aValue = string; this.getValue = function() { return this.aValue; } } var a = new A("a의 값"); document.write(a.getValue()); 예제1. 생성자 A는 aValue라는 속성과, getValue라는 메소드를 가지고 있다. 위에서 선언한 A 생성자를 prototype을 이용하면 다음과 같다. var A = function(string) { this.aV..