본문 바로가기

Coding

코드 비교문은 이해할수 있게 두번째 if 문 두번째 if 문을 보면, 사실 코드를 간단히 작성할수 있다. 하지만, 저걸 왜하는지 이해할수 있게 코드를 작성하기위해 is_pos 함수를 만들었다. 즉, 이것이 xxx 상태인가 라는 함수이름을 만들어 로직을 작성하면 코드를 이해하기 쉽다. 로직이 복잡해져도 주석을 다는것보다 깔끔하고 가독성있다. 더보기
DB에는 유효한 값을 넣어야한다 특수문자를 포함한 객체 데이터를 디비에 넣을 일이 있었다. (이메일 등..) 근데 POST로 프론트에서 넣을려하니깐, 특수문자가 %3A%2F%2F 이런식으로 인코딩 됐다. 그래서 다시 get할때 decode() 함수를 적용했는데 이런식으로 디비에 넣으면 안된다는 조언을 들었다. 이유는 DBA나 백엔드 개발자가 알아볼수가 없기때문이다. 그래서 디비에는 유효한 값을 넣어야한다고 한다. 그래서 그냥 백엔드 개발자가 내가 인코딩해서 보낸걸, 디코딩해서 디비 저장했다. 끝. 더보기
Object.create() 란 ES5 ES5 문법이다 ES6 에서는 new 가 있으니.. The Object.create() method creates a new object, using an existing object as the prototype of the newly created object. 새로 생성될 객체의 프로토타입 객체를 넣어주면, 새로운 객체가 생성됨 const person = { isHuman: false, printIntroduction: function () { console.log(`My name is ${this.name}. Am I human? ${this.isHuman}`); } }; const me = Object.create(person); me.name = "Matthew"; // "name" i.. 더보기
JavaScript assign 문법 a = { a: '1', b: '2', c: '3' } // {a: "1", b: "2", c: "3"} Object.assign(a, function () { return { d: '4' }; }()); // {a: "1", b: "2", c: "3", d: "4"} Object.assign(a, {e: '5'}); // {a: "1", b: "2", c: "3", d: "4", e: "5"} Object.assign(a, {f: function() { return 'hello'}}); /* a: "1" b: "2" c: "3" d: "4" e: "5" f: ƒ () */ Object.assign(a, {g: function() { return 'hello'}()}); /* a: "1" b: "2" c.. 더보기
gitignore 문법 디렉토리 예외처리 temp/velbi/test.jpg 이럴때 velbi 디렉토리를 예외처리하고 싶으면 temp/velbi/ 가아닌 그냥 velbi/ 라고 적으면 무시된다. 더보기
오픈소스 첫 PR 후기 '오픈소스' 이제는 누구나 알고있는 단어다. 하지만 친구들끼리 PR하는 것이 아닌, 유명 리포지터리에 PR한다는 것은 뭔가 어렵게 느껴졌다. 최근 WebGL 엔진에 관심에 생겼고, 그 중 스냅챗에서 인수한 PlayCanvas 라는 WebGL 엔진을 사용하고 있었다. 사용하다 이상하다 싶은 것들은 이슈에 등록했고, 이슈에 등록하니 신기하게 반응이 바로바로 왔다. 그러던중 path 관련 함수를 사용하기위해 문서를 확인하니 관련 API 문서가 없었다. 소스를 확인하니 JSDoc 주석으로 문서를 생성을 하는데, 최근 만들어진 함수는 아직 주석이 안달려있었다. 그래서 주석을 달아 첫 PR을 했다. https://github.com/playcanvas/engine/pull/1809 [DOCS] Add documen.. 더보기
Arrow function과 lexical binding function을 콜백으로 쓸때 스코프가 달라져서 this를 다른데 옮기거나, bind 함수를 사용했었다. const that = this; app.assets.loadFromUrl('path/file', 'material', function (err, asset) { that.shadow.model.material = asset.resource; }); 이런식이나 app.assets.loadFromUrl('path/file', 'material', function (err, asset) { this.shadow.model.material = asset.resource; }.bind(this)); 이렇게 사용했는데 그냥 Arrow function 쓰면 렉시컬 스코프(선언되는 위치가 중요)로 바인딩되서 위.. 더보기
function 선언 방식별 차이점(함수 선언식, 표현식) 오늘 회사에서 코딩하고 있는데, 누가 두개의 차이점을 물어봤다. 함수 선언식 function sayHello() { console.log('Hello'); } 함수 표현식 var sayHello = function() { console.log('Hello'); } 함수 표현식은 호이스팅에 영향을 받지않는다. 그래서 클로져나 콜백으로 자주 사용된다. joshua1988.github.io/web-development/javascript/function-expressions-vs-declarations/ 함수 표현식 vs 함수 선언식 (기본) 자바스크립트 함수 표현식과 함수 선언식에는 어떠한 차이점이 있는지 알아봅니다. joshua1988.github.io 더보기