블로그 이미지
Flying Mr.Cheon youGom

Recent Comment»

Recent Post»

Recent Trackback»

« 2025/5 »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

 

'Framework'에 해당되는 글 3

  1. 2013.08.27 [NodeJS] Express를 MVC로 활용
  2. 2012.02.12 다시 설정 하기. ( 설정했던 것 순서 )
  3. 2011.09.21 Bada App - FrameWork Concept
 

[NodeJS] Express를 MVC로 활용

서버/NodeJS | 2013. 8. 27. 15:06 | Posted by youGom



'제대로 배우는 NodeJS p170. ' 에 관한 내용이다.

처음에 MVC라고 해서 무슨 말인가 했다.

express말고 다른 MVC 모델 프레임웍을 소개하는건가 했다.

확장하기 편하도록 한 것으로 보인다.

이걸 MVC라 하기에는.. 좀 억지가 있어 보였다. '뭐..보는 사람마다 이해하는 사람마다 다르겠지만..'

내가 볼때에는 그냥 Visitor 패턴을 활용한 확장성을 높여준 코드로 보였다.

좀 더 풀어 쓰면,

Visitor 패턴을 활용한 CRUD 코드 작성하는 예제 코드라 생각하면 좋겠다. 

나는 CRUD는 IO접근을 위한 CRUD로 생각하고 있었지.. 이걸 따로 MVC로 CRUD를 구현했다는건지 어떤 의도였는지는 잘모르겠다. 뭐 여튼 결론적으로 하는 말은 같은것 같다. 편하게 코드짜게 해준다? ^^;


// CRUD 연결 메소드

exports.mapRoute = function ( app. prefix ) {

prefix = '/' + prefix;

var prefixObj = require( './controller/' + prefix );


// CRUD 연결 해주는 부분 : 색인 / 추가 / 조회 / 편집 / 업데이트 / 제거

app.get( prefix, prefixObj.index );

app.get( prefix + '/new', prefixObj.new );

app.get( prefix + '/:id', prefixObj.show);

app.post( prefix + '/create'. prefixObj.create)

app.get( prefix + '/:id/edit', prefixObj.edit);

app.put( prefix + '/:id', prefix.update);

app.del( prex + '/:id', prefixObj.destroy);

};


// 서버구동 부분에서 등록

...

app.get('/', route.index);

var prefixes = ['widgets'];

prefixes.forEach( function( prefix) { 

map.mapRoute( app, prefix );

});

....


// Widgets.js의 CRUD하는 실체 부분

exports.new = function( req, res ) { ... }

exports.create = function( req, res ) { ... }

exports.show = function( req, res ) { ... }

exports.destroy = function( req, res ) { ... }

exports.edit = function( req, res ) { ... }

exports.update = function( req, res ) { ... }


이렇게 하면~ 기본 단계 완성이 된다~

여기서 어떻게 확장이 되냐고?


위에 굵게 해둔 부분에서 추가 확장할 route를 만들면된다.

var prefixes = ['widgets', 'pictures', 'musics' ]; 

이렇게 한 후, pictures.js와 musics.js파일을 만들어서 똑같은 template으로 CRUD를 제공해 주면 됨! ㅋㅋ


요약 해서 말하면,

 Controller

 CRUD 연결 컨트롤러 생성 

 mapRoute();

 Model

 CRUD 실체 ( ex; Widgets ) 구현

 widgets.exports.CRUD();

 View

 App Route에 연결

 prefixes.forEach();



cURL로 테스트가 된다~ ㅋㅋ

curl --request GET http://ip:3000/widgets/new

curl --request POST http://ip:3000/widgets/create --data 'widgetname=name&widgetprice=1.0'

요러케~


난 갠적으로 다른 테스트툴을 쓰는데~ 간편하게 curl로 확인하는 것도 괜찮은 듯 하다~


MVC 흉내 내기 끝.



:

1. 롬 업그레이드
2. 롬 System 용량 재 설정 :  http://cafe.naver.com/ebook.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=139663& 
3. 루팅 Flash_read...
4. SD 카드 연결 ( SD 파티션 설정 및 필요파일 FAT32에 복사 )
5. Link2SD 설치
6. 깜박임 없앰 : /System/Framework/Framework.jar -> Framework.jar.old로 만들고, Framework.jar / odex 파일 복사해옴
7. 배터리 절약 : /System/App/ 폴더 안의 Phone.apk와 TelephonyProvider.apk 파일을 ...apk.old로 만들어 놓음 : 실행하지 않기 위함 ( 불필요한 배터리 사용 방지 )
8. 용량 확보 : gscript 설치 및 실행
9. 기본 리더 깜박임 방지 : reader css/style 설치 
9. 필요한 앱 설치
10. SD카드로 설치한 앱 보내기 ( 크레이트 링크 )

 
:

Bada App - FrameWork Concept

소프트웨어 공학/설계 | 2011. 9. 21. 13:20 | Posted by youGom

장점.
1. FrameWork의 일관성이 유지되어, 개발 시 상호간 인터페이스에 대해 오해의 소지가 사라진다.
 - 다른 모듈에 대해서 Request만 하면 된다. 다른 모듈에 대한 이해가 필요 없다.
2. Framework의 일관성에 대한 개념을 이해하면, 모든 Framework에 대해 이해가 가능해진다.
3. 최소한의 단위로 테스트가 가능하다. ( 모든 코드는 테스트 되어 진다. )
4. 검증팀에서 검증하기 전에, 버그에 대한 진단이 자동화 테스트에 의해 자동으로 감지 된다.
5. 컴파일 시간이 줄어든다. ( 기능 추가가 될수록 파일 추가 및 수정이 잦아지는데, h파일을 수정하더라도, 전체 컴파일을 하지 않는다. 즉, 코드 결합도가 굉장히 낮다. )

단점.
1. Framework에 맞추어 개발하기 위한 대한 기본 이해가 필요하다. ( 구현하기 위한 진입 장벽이 높으나, 타 모듈 개발자가 사용하기엔 편하다. )




현황.
아래 코드는 테스트완료된 코드이며, 실질적으로 사용가능하다.
이 Framework 코드는 Bada SDK 코드에 종속적이며, 다른 플랫폼에서는 사용이 불가하다.

[ 앱의 시작 ]
way 1. GetManager( _C( "ManageForms" ) )->Request( _C( "FormStartDevMode" );
way 2. GetFormMgr()->Request( _C( "FormStartDevMode" );

[ 데이터 요청 ]
way 1. GetManager( _C( "ManageDB" ) )->Request( _C( "CreateDB" ), 0, pCompleteListener );
way 2. GetDBMgr()->Request( _C( "CreateDB" ), 0, pCompleteListener );

[ 데이터 처리 ]
way 1.  GetManager( _C( "ManageFilter" ) )->Request( _C( "FilterMessage" ), FILTER_MESSAGE_NORLMAL, pCompleteListener );
way 2. GetFilterMgr()->Request( _C( "FilterMessage" ), FILTER_MESSAGE_NORLMAL, pCompleteListener );


'소프트웨어 공학 > 설계' 카테고리의 다른 글

[수강후기] CBD, Component Based SW Design  (0) 2012.09.02
[POSA1] Broker Architecture Pattern  (0) 2011.10.07
: