Monday, August 31, 2015

why my commit is not showing up on github

I registered in github and push my code to github but contribution show me that nothing is committed.

main reason is because of your email is not registered in git on local pc

I just follow this step.

Tuesday, August 25, 2015

Nodejs Mapper + transaction Opensource 진행과정2

지금까지 작업해온 부분이고



부족하지만 처음 opensource를 개발하고있으니 진행과정을 꾸준히 올려봐야겠다.

이전까지 진행사항중 할 수 없었던 것.

만약에 user 테이블에 Query를 날린후에 사용자 이름을 특정 테이블에 넣으려면
insert문이 추가되어야 하는데 특정 쿼리를 날린후에 실행되는 코드이기때문에 이경우 어떻게 해결할지 고민하다 callback으로 result값을 받게 만들었다 

예제 Query는 아래와 같다



router.get('/query/test4', function(req, res, next) {
    var tasks = taskM.makeTasks();
    var field = {
        'content': 'yaho'
    };

    tasks.push(taskM.getTask('test.insert_tb_board', field, function(result) {}));
    tasks.push(taskM.getTask('test.insert_tb_board_reply', field, function(result) {
        console.log('lastInsertId : ' + result.insertId);
        for (var i = 0; i < 4; i++) {
            //tasks.push(taskM.getTask('test.insert_tb_board', field));  // tasks의 마지막에 쿼리를 추가
            tasks.unshift(taskM.getTask('test.insert_tb_board', field)); // tasks의 처음에 쿼리를 추가
        }
    }));
    tasks.push(taskM.getTask('test.select_tb_board_reply', field, function(result) {}));

    executeManager.start(res, tasks, false);
});

test.insert_tb_board_reply 를 날린후에 그 결과를 받아서
아래 tasks.unshift 하면서 test.select_tb_board_reply 를 실행하기전 insert_tb_board query를 4번 더 실행하는 코드이다

만약에 test.insert_tb_board 가 실행된후 select_tb_board_reply 가 실행되고 그다음에 4번의 insert가 이루어지고 자 한다면 tasks.push를 호출하면 된다.

framework를 만든 목적이 최대한 코드는 심플하게하기 위해 만들었는데
조금더 두고봐야겠다..

그리고 에러가 났을때는 어떻게 할지 ... 조금더 고민해봐야겠다..

Nodejs Mapper + transaction 진행과정

nodejs에 있는 기본 모듈로 restful api 를 만들기에는 먼가가 밋밋하다

그래서 2015년 6월 23일정도에 mybatis같은 mapper를 만들자고 네이버의 한 카페 스터디 모임을 만들었다.
그리고 오늘 8월 25일..

어느정도 만들어졌다.
물론 테스트도 많이 해봐야하고
사용자들이 많이 사용할지는 두고 봐야하겠지만

여기까지 온것만으로도 나름 벅차오른다.

스터디 모집시 원문
스터디 목적 
1. git 사용방법 및 opensource 커밋터 되보기. (cvs, svn만 사용해보고 아직 git은 사용안해봤네요._)

2. 기본 mysql 모듈을 이용해서 transaction 도 되고 Mapper 도 되는 라이브러리 구현하기.
 - 개발자 관점에서 가장 쉽게 사용할 수 있도록 하는게 1차목표입니다.
 - transaction 원리 공부 - 이부분은 실제로 공부하면서 
 - connection pool  원리 공부 - 이부분은 직접 구현할 예정
 - nodejs mysql connection 기본 insert, delete, update, create 등 sample 구현 및 앞으로의 방향 BrainStorming
 - mybatis 를 모태로 Mapper 를 구현할 예정이긴 한데.. 의견을 나눠서 새로운 패턴을 만들어도 좋음
 - 자료구조로 최대한 효율적인 방법 직접 구현.

3. 검증 
  - pool 이 정상적으로 동작하는지,
  - 동시 접속일경우 지연현상은 어떻게 되는지 및 어떻게 해결하는지의 관점에서 검증 (apache ab or jmeter or 등등등으로..)
  - nodejs 로 db연동하는 개발자의 관점에서 얼마나 사용하기 쉬운지 검증.. (아무리 알고리즘이 잘짜여져있고 속도가 빠르고 좋아도 API 가 복잡하면 일단 사용하기 어렵고 사용하기 거부감을 느끼니..)

4. npm 등록 -> 아직 어떻게 하는지 모름..


지금까지 작업해온 부분이고
https://github.com/jjhangu/mysql-mapper

대략적인 부분은


이렇고.. 그리고 어느정도 잘 다듬고 수정해서
node npm 에도 등록할 수 있으면 해야겠다.



Sunday, August 23, 2015

nodejs time check util

easy way to check time from start to finish

console.time('1');
for(var i=0; i<5; i++){

}
console.timeEnd('1');

1: 0ms

Tuesday, August 18, 2015

개발 경력 5년차

내가 개발자로 들어선지 5년이 되는 해다.
사실 개발자로 들어서고 공부를 하던 안하던 시간은 흐른다고 생각한다.
공부를 한 5년개발자와 하지 않고 시간만 보낸 5년개발자는 약간은 다르지 않을까 생각한다.


처음에는 3-4개월 학원에서 java를 배웠는데 안드로이드 어플을 몇개 출시를 하고선 창업을 생각했었다.. 지금 생각하면 터무니도 없는 실력으로 배짱만 컸던것 같다.

그렇게 나는 회사에 입사를 하게되었고 1년만에 이직을 하려고 마음 먹었던대로 하지 않고 지금 5년동안 꾸준히 다니고 있다.
첫해에는 안드로이드를 개발했다. 안드로이드를 내가 하고자하는대로 UI를 적용할 수 있었고 생각보다 흥미를 느꼈던것 같다.. 그리고 갑자기 Server를 해야겠다는 팀장님의 말을 듣고 Server Side로 발을 담그게 되었는데 그때 발을 담근것이 지금까지 왔다고 볼수 있다.

코딩은 머리보다는 손으로 감각을 익혀야한다고 제일 처음에 배울때 배웠는데 틀린말은 아닌것 같다. 어느정도 익숙해져야지 코딩을 하는데 막힘없이 하는것 같으니깐..

하나를 꾸준히 해야하는데 꾸준히 못하는것 같다.. 개발자라서 그런지 해야하는것도 많고 그렇다. full stack이라는 말이 괜히 나오는게 아닌것 같다. 서버도 해야할줄 알고 구성, DB설계, client 까지 할 수 있는 사람을 full stack 개발자라고 하는데.. 나도 그런사람이 되기 위해서 어쩌면 노력하는지도 모른다.

메인 언어
Java

할수 있는 언어
javascript, c, python 음.. 별로 없네??

사용하고 설계해본 DB
oracle, mysql, mssql, cassandra, redis

사용할 수 있는 서버 컨테이너
tomcat, weblogic 조금

서버 환경
spring3, ibatis, hibernate, nodejs

javascript 라이브러리
angularjs, jquery, 음.....

또.. 또.. 
client 
Android
.....

조금 발을 담가본것
lucene.

최근 흥미로웠던거
projecteuler, topcoder, algorithm 이정도??

opensource부끄럽지만
이제 시작하는거 nodejs-transaction-queue  git허브에서 개발하고 있음..

앞으로 5년은 더 개발할텐데..
집중하고 싶은거

1. 수학
2. 알고리즘
3. 통계 + 하둡관련
4. opensource,
5. DB 설계?

복습도 하나의 공부이니깐..
내가 했던것들을 한번씩 복습을 하는 시간을 가져야겠다
앞으로의 블로그는 새로운것보다는 다시 정리하는 시간으로 가져야겠다

그리고 영어 공부도 다시 시작

힘내라~~~ to myself