728x90
애플이 얼마전 끝난 WWDC (World Wide Developer Conference) 에서 새로운 언어인 Swift 를 발표했습니다. Swift 는 기존의 Objective-C 와 마찬가지로 Apple Foundation Framework 에 기반하고 있는 언어입니다. Xcode 6 에서부터 지원이 되며 Objective-C 와 혼용하여 개발이 가능한 스크립트 스타일의 언어라고 보면 될 것 같습니다.

Swift 는 이제 막 발표된 언어이기 때문에 공부를 하기 위한 자료가 많지 않습니다. 이럴때는 공식 자료로 배포되고 있는 것을 찾아보는게 좋은데요, 역시 애플이 아이북스(iBooks)에 공식 튜토리얼을 올려두었습니다. 영문 버전으로만 배포되고 있어서 조금 아쉽지만 일단 가장 기본이 되는 레퍼런스로 쓰면 좋을 것 같습니다.


애플 스위프트(Swift) 공식 문서 다운로드 받기 [바로가기]


영어로 공부하는 것이 가장 좋습니다만 부담되시는 분들은 한글로 번역작업이 진행된 스위트프(Swift) 언어 개발문서 페이지를 참고하시면 좋을 것 같습니다. 아직 자세히 살펴보지는 못했으나 OSX Dev 의 멤버분들이 의기투합하여 공동 프로젝트로 진행한 번역 산출물로 퀄리티가 괜찮을 것 같습니다. 


스위트프 언어 개발문서 한글화 프로젝트 살펴보기 [바로가기]


이제 스위프트에 푹 빠져볼 시간입니다. 첫장을 펼치고 공부를 시작해 볼까요 -_-;; 

- NoPD -

 
728x90
728x90
rsync 를 이용하는 방법은 참 여러가지가 있습니다.
간단하게는 FTP 를 설치하지 않고 원격 서버에 파일을 업로드, 다운로드 하는 경우가 있겠는데요
나이가 들어서인지 자꾸 커맨드가 기억나지 않아 만들어 두고 Ctrl C, V 하고자 합니다
도움이 되실 분들이 있을 것 같아 블로그에 간단하게 남깁니다.

[ 파일 업로드 하기 ]

rsync -avz -e "ssh -i /Users/snoh/.ssh/do_rsa" result2.csv root@nopd-sg:web

 
설명) ssh 파라메터에 지정된 인증서를 이용하여 root 계정으로 nopd-sg 서버에 접근하여 현재 경로의 result2.csv 를 web 폴더에 복사한다

[ 파일 다운로드 하기 ]

rsync -avz -e "ssh -i /Users/snoh/.ssh/do_rsa" root@nopd-sg:web/server.js ~

 
설명) ssh 파라메터에 지정된 인증서를 이용하여 root 계정으로 nopd-sg 서버에 접근하여 /web/server.js 파일을 로컬 사용자 폴더(~)에 복사한다

 
728x90
728x90
node.js 의 다양한 라우팅 모듈들 중 가장 사랑받고 있는 모듈이 express 가 아닐까 싶습니다. 사용법이 간단하지만 상당히 훌륭한 기능을 제공하고 있기 때문에 애용하는 분들이 줄어들지 않는 것 같습니다. 새로 간단한 웹 페이지를 구성할 일이 생겨서 간만에 express 를 다시 만지다 보니 버전이 올라가면서 바뀐 부분도 있고 헷갈리는 부분도 있어서 기록삼아 남겨둡니다.

$ npm install express

 
express 를 이용하기 위해서는 우선 node.js 가 설치되어 있어야 하고 npm 을 통해서 express 를 설치해야 합니다. 레파지토리를 통해 express 의 설치가 완료되면 간단한 코드를 이용하여 정적인 메세지를 출력해 봄으로써 설치가 잘 되었는지, 기본적인 사용법이 어떻게 되는지 확인해 볼 수 있습니다

var express = require('express');
var server = express();

server.get('/', function(req, res, next) {

res.send('hello express');

}); 

server.listen(1234, function() {

console.log('Server running at http://127.0.0.1:1234/');

}); 

 
보통 express 를 쓰는 예제들을 보면 app 이라는 약어를 많이 씁니다만 결국 서버니까 습관적으로 server 라고 지정했습니다. server.get 메소드를 이용하여 루트 ('/') 접근에 대해 hello express 라는 응답을 리턴하는 코드입니다. server.get 대신 server.use 를 사용해도 결과는 동일합니다.

$ node test.js
Server running at http://127.0.0.1:1234/ 


node 를 이용하여 저장한 파일을 실행하고 브라우저로 localhsot:1234 를 접근하면 정상적으로 hello express 메세지가 노출됩니다.

 
728x90
728x90
자바스크립트는 참 편리한 스크립트 언어이지만 다른 한편으로는 이해하기 힘든 녀석이기도 합니다. 이유인 즉선 너무 유연하게 사용할 수 있다보니 가끔 일반적인 언어, 컴퓨터 상식으로는 "왜 이렇게 동작하지?" 하는 경우들이 있기 때문입니다. 가장 대표적인 것이 조건 비교문을 이용하여 변수나 객체를 비교할때 입니다. 잘 동작할 것으로 생각했던 구문들이 정상적인 동작을 하지 않거나 예상치 못한 반응을 한다면 혹시 아래 표에 나온 경우중 하나가 아닌지 잘 살펴봐야 합니다. 아래 표는 http://dorey.github.io/JavaScript-Equality-Table/ 에서 업어왔습니다

 
Boolean 값인 True 와 1은 같은 값일까요? 그리고 True 와 "1"은 같은 값일까요? 조금 더 나아가 True 와 [1] 을 비교하면 어떻게 될까요? 두개의 이퀄 연산자(==)를 사용하여 자바스크립트에서 값을 비교하는 경우 위의 표에서 초록색으로 표시된 것처럼 결과가 리턴된다고 합니다. "" 와 0 이 같다는 생각을 해보셨나요? 혹은 "" 와 [[]] 가 같은 값으로 식별된다는 상상을 누가 해봤을까요? 

때문에 자바스크립트에서는 각 객체와 객체를 비교했을 때 값을 정확하게 예측하기 힘들다면 이퀄 연산자를 두개 이어쓰는 대신 세개(===)를 쓰는 것이 좋습니다. 세개의 이퀄 연산자를 사용하는 경우 엄격한 규칙에 의거하여 값을 비교하게 되고 이로 인한 조건 비교문의 오동작을 효과적으로 막을 수 있습니다. 세개의 연산자에 대한 부정형은 !== 이니 참고하시면 될 것 같습니다


훨씬 상식(?)에 가까운 결과를 보실 수 있습니다. 같은 형태의 자료형들간에 비교를 했을때 정확한 값이 나오는 것을 볼 수 있습니다. 자바스크립트를 쓰면서 뭔가 이해할 수 없는 동작이 발생하고 있다면 표를 참고하시고 연산자를 바꿔보는 것을 검토해 보세요. 우리의 시간은 소중하니까요. :-)

 

728x90

+ Recent posts