나만그런건가.
절차지향 php에 너무익숙해져서, 그런건지도몰라도 개인적으로 콜백의 장점을 모르것다.
php에선
function get_info(val){
...
return 정보[type:array];
}
$user_info=get_info(1);
캬, 진짜 깔끔하게 코딩했는데 말이지..
노드js 는 진심
function get_info(val){
...
var result;
conn.query("쿼리문",function(err,rows){
...
conn.query("쿼리문2,function(err,rows_2){
result=row_2;
});
});
return result;
}
var info=get_info(1);
이랬는데 info가 계속 undefined뜨는겨;;
그래서 왜그런지 계속고민해니 그냥 get_info 함수호출하면 conn.query보다 return result를 먼저 실행해서 그런거였다는걸 깨달음..
콜백을써봐도 소스만 더복잡해질것같아서 머리아픔.
그뭐냐 트랜잭션같은 것을 써봐야하나..
node.js는 기본적으로 병렬 프로그래밍을 깔고 간다.
동기/비동기 방식이 있는데, 동기 방식은 너무 비효율적이라 node.js는 비동기 방식을 사용한다.
병렬프로그래밍.. 아오
node.js에 왠 병렬프로그래밍?
콜백헬;;
//kukyak 애초에 node.js는 멀티 스레드 프로그래밍을 위해 만든거야
암튼, 비동기 프로그래밍을 위해서는 비동기 이벤트를 생성한 후
그 이벤트를 받는 콜백함수를 사용해야 한다.
그르게 socket.io 이런거 돌리기는 진짜 편한데. 데이터베이스 부분이 조금 막히네
내가 단순히 정보를 select 하는게 아니라 함수단위 코딩을하거든,
그냥 조금 소스를 풀어야하나..
비동기 프로그래밍에 대한 자세한 내용은 구글에 WSAAsyncSelect, WSAEventSelect, Overlapped IO 검색
그냥 콜백 쓰면되는거아니야?
그리고 추가적으로 IOCP에 관한 내용도 알아두면 좋음.
//긍정 그 콜백이 어떤식으로 사용되는지에 대한 예제가 위에 쓴 3가지.
동기 방식을 사용했다면 로직이 간단하겠지만, 비동기는 고려할게 많아서 로직이 복잡해
그러니까 동작원리 같은것도 공부해주는게 좋아
//그래 고마워, 우선소스가 조금난잡해져도 풀어서 써봐야겠다;;
혼자서 하면 좀 힘들테니까 시중에 널린 책을 참고하는게 좋을거야
책은샀는데, nodejs 기초관련된거라서
공부는했는데 비동기코딩노하우이런건 잘안나와있는것같더라구
아확실히 비동기방식이 한작업이 끝나면 콜백을실행하는거라 시간면에서도 효율적이겠구나
아하 이래서 비동기방식을 선호하는거군!
node.js 특징이 단일 스레드인데 멀티쓰레드를 위해 만들어졌다니 무슨소리요
//kukyak.. 찾아보니 싱글스레드였네.. 그래서 성능이 좋았구나..
근데 멀티코어 지원하게 만들 수 있는걸로 안다..
안그럼 게임서버로 안쓰겠지
async라는 모듈 한 번 알아봐라.
이건 걍 자바스크립트를 모르는 사람이 휘갈긴 코드네요. 자바스크립트부터 공부해라
쁘잉쁘잉// 개소리하네 난독증이냐