프로그래밍 290

[정리] 모던 웹을 위한 Node.js 프로그래밍 3/4장

Node.js 스터디3장 Node.js의 전역 객체웹브라우저의 최상위 객체는 window객체이지만, node에는 window 객체가 존재 하지 않고, 전역 변수와 전역 함수를 갖는다.단, global 객체가 존재하지만, __filename , __dirname 과 전역함수 require() 함수는 global 객체에 포함되지 않으므로 최상위 객체는 없다고 가정한다.문자열 자료형의 전역 변수console.log('filename', __filename); console.log('dirname', __dirname);전역 객체객체 이름설명console콘솔 화면과 관련된 기능을 담당하는 객체exports모듈과 관련된 기능을 다루는 객체process프로그램과 관련된 기능을 다루는 객체Console 객체log()..

Currying에 대해 알아보자.

자바스크립트 디자인 패턴 책의 내용을 정리한 내용입니다.curring을 알기 전에 부분 적용이라는 개념을 먼저 알고 있어야 합니다. 사실, 많은 싸이트나 위키에서 curring을 잘못 받아들여 소개하기도 합니다. 일단은 제대로 이해하기 위해서 부분 적용이 뭔지 알아봅시다.함수 적용순수 함수형 프로그래밍에서는 함수를 호출하거나, 부른다고 하지 않고, 적용 된다고 표현합니다.고로, apply로 이해하시는 것이 맞습니다.자바스크립트에서도 Function.prototype.apply()를 사용하면 함수를 적용 할 수 있습니다. var sayHi = function(who) { return 'Hello' + (who ? ', ' + who : '') + '!'; } sayHi(); sayHi('world'); s..

UI Test Tool - Selenium IDE 대체

Selenium IDE 대용체 소개셀레니움은 보통 UI 테스트 툴로 많이 사용 되어 왔습니다. 그런데, IDE라고 하는 툴이 존재하는데요. 이 툴이 생각보다 업데이트가 안된 탓인지...아주 오래된 버전의 firefox만 지원을 해줍니다. 그래서 새로 찾은 것은 katalon studio인데요. 파이어폭스의 플러그인 형태로도 존재합니다. katalon studio의 데스크톱 어플리케이션도 존재합니다. 우선, 기본적인 Selenium IDE와 기능적으로는 유사합니다. 하지만, 크롬 확장 플러그인으로도 존재한다는 점이 기존과는 다르며, 최신 브라우저에서도 동작한다는 점이 다르죠. 요즘은 PhantomJS, Headless-Chrome등으로 대체 되긴 했지만, 실제로 UI 테스팅을 빠르고 쉽게 할 수 있는 방법..

[develop] 개발 환경 구축하기 - pyenv, virtualenv, autoenv

python 개발 환경을 셋팅 해보자!Mac 기준으로 작성하였습니다. ^^pyenv 설치하기brew update ​ brew install pyenv ​ echo 'eval "$(pyenv init -)"' >> ~/.zshrc #bash shell을 쓰신다면, 아래 처럼 하시면 됩니다. echo 'eval "$(pyenv init -)" >> ~/.bash_profile' ​ # installed python version pyenv version # show python version of available install pyenv install -list pyenv install 3.5.3 python -version # check version pyenv global 3.5.3 #set globa..

Merge Two git repositories

Merge Two Repositories github를 하다보니 쓸데 없이 저장소를 나누어 놓고 쓰고 있더라.. 그러다보니 이게 여기다 올려야 하는지 아닌지도 모르겠고… 일명 대환장파티 레포지토리라고 해야 할까.. 그래서 시도를 해보았다. (스프링 공부나 할 것이지) 저장소 병합 (서브 트리 이용) — 별로다.. 요우님 블로그 (cherry-pick 이용) —이게 맞는건가 싶었다. 스택오버플로우 형님들 (걍 머지 때려라) 처음에는 그냥 머지를 해보았다. 참고 : merging two git repositories 실패했다. $ g merge practice_js/master fatal: refusing to merge unrelated histories 다른 히스토리를 가졌으니 안된다고 한다. 그 다음으..

Class JavaLaunchHelper is implemented in both Error on Mac OS

Mac에서 Java run 안 될 때! Class JavaLaunchHelper is implemented in both ~ 라는 에러를 발견 한다면, 운이 나쁜 겁니다….ㅠㅠ 😭😭😭 이럴때는 어떻게 해야하는지 알려 드리겠습니다. 스택 오버 플로우를 찾아 보니 아래와 같습니다. 이 문제에 대해서 java9 or java8.152 업데이트에서 fixed 될 예정이라네요. You can find all the details here: IDEA-170117 “objc: Class JavaLaunchHelper is implemented in both …” warning in Run consoles It’s the old bug in Java on Mac that got triggered by the Java ..

Try-with-resources를 사용하자!!

Try-with-resources 사용하기 JDK7에서 생겨난 자원 자동 종료?라고 생각하면 된다. 물론, 다되는 것은 아니고 Autocleable을 구현한 클래스만 사용가능하다. String readDataFromFile(String filePath) { BufferedReader br = null; String data = ""; try { br = new BufferedReader(new FileReader(filePath)); data = br.readLine(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { br.close(..

JavaScript Deferred 객체 Promise 패턴

JavaScript Deferred 객체와 promise 요즘 업무를 하다보니 느낀 사실인데, 비동기 처리나, 동기처리에 관한 이슈가 늘 나를 덮치곤 했다. 그런 이유로 JavaScript를 좀 더 잘하고 싶은 마음에 찾아본 자료를 정리해보았다. Deferred Object jQuery에서는 promise를 사용할 수 있도록 Deferred 객체를 제공합니다. 물론, jQuery.Promise()를 지원한다. 3.0부터 아마 제대로 지원한다고 생각하면 될 것 같습니다. 그러나, 사용하는 jQuery 버전이 3.0 이하인 경우에는 jQuery.Promise()를 사용할 수는 없습니다. jQuery.Deferred()가 존재하므로 이를 이용하여 promise를 사용할 수 있어 Callback Hell에서 벗..

jQuery의 data() 메소드의 캐싱이야기

jQuery의 data() 메소드 사용 삽질기 jQuery에서 흔히 사용하는 것 중에 data()메소드입니다. 웹 개발을 하다보면, 특정 값을 서버에서 프론트로 내려 주어야 하거나, 하나의 뷰에 값만 바꾸어 동작하는 뷰 작업을 해야 하면 사용하게 되는 것이 data() 메소드입니다. 물론, 자바스크립트에서도 사용 할 수 있으나, 크로스 브라우징을 위해 jQuery를 사용하면 간편하게 크로스 브라우징 이슈를 해결 할 수 있습니다. 사실, 그래서 사용하는 거죠. Selector만 사용하기 위함이 아니라는 사실!! jQuery는 JavaScript Library인데, 착각하는 것이 편한 셀렉터 지정으로 많이 사용하시는 줄 아시지만. jQuery는 간편하게 JavaScript를 사용하게 만들되, 여러 브라우저에..

반응형