태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'RoR'에 해당되는 글 6건

  1. 2007.08.17 Ruby on Rails - Controller의 단위 (5)
  2. 2007.07.02 실명인증 (5)
  3. 2007.04.18 Ruby On Rails - Scaffold의 함정 (2)
  4. 2007.04.07 책 제본했다! 아자~ (4)
  5. 2007.04.01 지름: AgileWebDevelopmentWithRails, PDF Ver
  6. 2007.03.30 Ruby on Rails 공부(?)중

Ruby on Rails - Controller의 단위

Tech 2007.08.17 02:45
연관된 이전 글

이전에 모델(테이블?)에 대한 CRUD인터페이스를 기반으로 하는 Model-Wrapper스러운 컨트롤러에 대해 이건 아니야! 라면서 툴툴거린 적이 있다. 컨트롤러는 어떤 단위로 만들어져야 하는가. user라는 모델과 user 라는 컨트롤러가 있어서 가입/로그인/정보수정/개인화페이지 등 user 모델이 주가 되는 페이지는 모두 user 컨트롤러에 붙는 것인가? 왠지 이건 아닌 것 같다... 컨트롤러는 서비스의 구조다.

만들려는 웹 서비스의 사이트맵을 한번 그려보자. 트리 구조로 그리면서 가능한한 모든 페이지를 다 포함시키자. 웹 페이지가 될 녀석들은 가능한 한 Leaf node로 내린다. 그려놓고 보면 흐름이 있거나, 밀접하게 연관되어 있는 페이지들을 묶어 서브 트리를 구성할 수 있다. 이 서브트리의 루트는 자기 아래쪽에 있는 있는 페이지들에 대해 일종의 초기화면 역할을 할 수 있는 녀석이니 적당한 녀석을 골라 올리거나 아니면 새로 만든다. 자, 이런 식으로 트리 구조가 다 그려졌으면 초기화면인 Root node와 액션과 1:1 로 연결될 Leaf node를 제외하고 나서 나머지 node를 가지고 컨트롤러를 찍자. 찍은 녀석이 웹 페이지를 가진다면 그것이 컨트롤러의 index가 되고, 웹 페이지를 가지지 않아도 Leaf가 아닌 이상 상관은 없다. 어느 정도 Depth에 있는 노드를 컨트롤러로 정할지는 만들 웹 서비스에 따라 그때그때 다를 수 있다. 나름대로 정한 규칙이 있다면,

컨트롤러는 다른 컨트롤러를 부모나 자식으로 가지지 않는다.
컨트롤러는 자신을 루트로 하는 서브트리의 노드들(만)을 액션으로 가진다.
컨트롤러와 Leaf node 사이에 있는 Node는 서브트리에 있는 액션들의 이름에 Prefix가 된다.

정도가 되겠다. 꽤 쓸만한 방법인듯 하다. 너무 직관에만 의존하면 위험하니 적절한 참고나 가이드라인 정도로 삼으면 괜찮을 듯 하다.

실례로 사용할 만한 그림을 그려놓고 싶지만, 너무 귀찮으므로 나중에 포스팅하고 링크로 연결시켜 놓겠다.

'Tech' 카테고리의 다른 글

sena, the most powerful machine in the universe!  (6) 2007.08.31
svn relocate/tunneling  (0) 2007.08.31
Ruby on Rails - Controller의 단위  (5) 2007.08.17
실명인증  (5) 2007.07.02
지름: Ferret short cuts (O'reilly), PDF  (0) 2007.06.08
Web - 데이터를 어디에 저장하지?  (2) 2007.05.02
Trackbacks 0 : Comments 5
  1. Favicon of http://www.iwonny.net 워니 2007.08.17 09:02 Modify/Delete Reply

    그림그림!!! ㅎㅎ
    좋은글 감사합니다~ 다음 포스팅 열심히 기다릴게요 ㅋㅋ

  2. 얼음공주 2007.08.21 15:17 Modify/Delete Reply

    블로그 구경잘 하였습니다. 블로그에 필요한 동영상, boom4u.net 도 구경 오세요~~

  3. Favicon of http://24337.ccgenevois.com/clfrance.php christian louboutin 2013.07.11 09:25 Modify/Delete Reply

    희미한 달빛이 샘물 위에 떠있으면,나는 너를 생각한다.

Write a comment


실명인증

Tech 2007.07.02 00:00

음... 어떻게 하는걸까 궁금했었는데, 의외로 쉽다.

1. 한국신용평가정보(혹은 비슷한 일을 해주는 다른 업체)와 계약을 한다
2. 뭔가와 아이디/비번을 받는다
3. 뭔가에는 ExecutableBinary가 있을텐데, 설명서를 보고 적당히 인자를 넣는다.
4. 리턴값 혹은 Stdout 으로 나오는 값을 보고 결과를 안다.
5. 4번을 Server-side code 에서 한다.

... 쉽다. 실제로 코드 만지는 짓은 30분정도면 된다. 물론, 어따가 껴 넣는냐에 따라 삽이 좀 달라지지만... 나는 OpenAPI같은 방식일거라고 생각했는데, 어째 약간 아쉬움도...

주의 - 한국신용평가정보는 확인했고, 다른 곳들도 마찬가지라고 생각된다. 이름을 한글로 주는데 utf-8 으로 넣으면 당연히 안된다. ... utf-8 따위 신경썼을리가 없... 그냥 euc-kr 로 하자. 나는 Ruby on rails에서 작업을 해서

require 'iconv'
converter = Iconv.new('euc-kr', 'utf-8')
name = converter original_name
...

정도로 처리했다. (Thx to only2sea) 여튼, 만들던 서비스에 실명인증 부분을 대강 때려넣었는데(다듬는건 다른사람 시켜야지 쿄쿄쿄) 꽤 신기하다. ... 히히~



P.S. 실명인증 한번 하는데 20원씩 떨어진다. 덜덜덜... -0-

'Tech' 카테고리의 다른 글

svn relocate/tunneling  (0) 2007.08.31
Ruby on Rails - Controller의 단위  (5) 2007.08.17
실명인증  (5) 2007.07.02
지름: Ferret short cuts (O'reilly), PDF  (0) 2007.06.08
Web - 데이터를 어디에 저장하지?  (2) 2007.05.02
Ruby On Rails - Scaffold의 함정  (2) 2007.04.18
Trackbacks 0 : Comments 5
  1. Favicon of http://etnalry.tistory.com etnalry 2007.07.02 16:05 신고 Modify/Delete Reply

    첫 한 줄에서 '밥 로스'가 느껴지는 이유는 뭘까..
    "참 쉽죠?" ㅋㅋ

  2. 이이이 2007.07.26 22:43 Modify/Delete Reply

    ㅋㅋㅋ

  3. Favicon of http://ad.coachfactoryoutletsv.com/ coach factory outlet 2013.04.01 22:03 Modify/Delete Reply

    아름다운 여자가 해바라기하는 걸 좋아해요

Write a comment


Ruby On Rails - Scaffold의 함정

Tech 2007.04.18 09:36

RoR을 공부하며 "얼라? 꽤 편하네?" 라고 생각하게 되는 scaffold. 사실 이게 독이다 ... 까진 아니어도 독이 될 수 있다. scaffold가 본연의 목적을 넘어가는 용도로 사용되기 시작할때 그 아픔이 시작된다.

Scaffold를 사용해보면 dynamic scaffold/static scaffold 모두 Model-Controller가 1:1 관계로 가기 좋다. 아니 1:1 관계다. 왜냐하면 scaffold는 특정 모델을 웹에서 접근 가능하게 하는 인터페이스이기 때문이다. 컨트롤러는 URL, 즉 페이지와 직접적으로 닿아있고 웹 페이지가 바로 모델의 인터페이스가 되는 구조인 scaffold에서는 이런 일대일 관계가 자연스럽다. 하지만 ? ... 만들려는 서비스가 조금 복잡해지기 시작하면 문제가 시작된다.

일반적인 웹 서비스의 경우, 모델이 웹을 통한 직접적인 인터페이스를 가지지 않는 것이 더 상식적이지 않은가? 관리자가 아니라면 말이다. 개발 단계에서야 모를까 하나의 페이지에 여러 모델에서 가져온 정보가 이곳저곳에 서로 다른 형태로 등장하게 되는데, 이렇게 되면 scaffold를 베이스로 만들어진 코드들은 뭔가 난감하게 된다. 꼭 scaffold가 아니라 모델-Wrapper 스타일의 컨트롤러의 경우. 레일즈가 유연하기 때문에 어느정도 규모가 될 때까지는 무리 없이 작업이 가능하고 잘못되어가고 있다는 점도 모를 수 있다는게 안습이라면 안습. Model-Controller의 일대일 대응관계는 튜토리얼 성격의 간단한 프로그램에서나 볼 수 있는(그게 아니라도 일반적인건 아닐는) 것이라는게 지금까지의 결론.

그렇다면 Model, View, Controller는 레일즈에서 어떤 역할을 해야 하는가? 사실 모든 코드를 Model, Controller, View 어느 한곳에만 때려넣어도 동작은 한다. 모든것을 View에 때려넣으면 PHP와 거의 같은(하지만 Embedded Ruby가 더 강력할것 같다) 동작을 하게 된다. 코드가 Controller, Model중 어느 한곳에만 모여도 웹 서비스를 구성하는 것은 가능하다. 요는 이 세가지에 어떻게 적절하게 서비스를 분산시킬 것인지, 이 세가지에 속하지 않는 것을 어떻게 따로 뺄 것인지를 정하는 것인데 지금까지 레일즈를 보며 세운 기준은 이렇다.

1. View는 가능한한 로직을 배제. Display를 위한 조각 템플릿과, 조각 템플릿이 모여 구성되는 레이아웃 정도. 단계별 구조화가 중요하다.
2. Model은 군더더기 없이 유지한다. OOP적인 시각에서 보면 Model은 넣을 수 있는 것은 다 넣고 뺄 수 있는 것은 다 빼두는 하나의 응집된 클래스로 유지해야 한다.
3. Controller는 URL과 View사이를 Model을 개입시켜 연결해 주는 역할을 한다. 즉 웹 페이지와 직접 살을 맞대는 일을 한다.
4. 복잡한 로직은 가능하면 Helper나 Library의 모듈로 뺀다.

...

튜토리얼은 그 플랫폼에서의 사고방식의 베이스를 구축하는데 중요한 역할을 한다. Scaffold는 Agile이라는 키워드에 맞는 쉽고 강력한 툴이다. 하지만 위험하다. 개발의 도구가 아니라 개발의 과정(주로 Static으로 뿌려놓고 고쳐나가는?)으로 사용한다면 나중에 자신을 옥죄게 될지도 모른다.



P.S. RoR은 유연한 프레임웍인것 같다. 사실 모델과 컨트롤러가 1:1 대응이 되어도 지저분하지 않게 다룰 수 있는 장치들이 있다. ... 위에도 밝혔듯이, 어떻게 해도 할 수 있다, 라는 데에서 왠지 Perl느낌이 든다.

'Tech' 카테고리의 다른 글

지름: Ferret short cuts (O'reilly), PDF  (0) 2007.06.08
Web - 데이터를 어디에 저장하지?  (2) 2007.05.02
Ruby On Rails - Scaffold의 함정  (2) 2007.04.18
Javascript - folding  (2) 2007.04.16
책 제본했다! 아자~  (4) 2007.04.07
지름: AgileWebDevelopmentWithRails, PDF Ver  (0) 2007.04.01
tags : MVC, Rails, RoR, Ruby, Scaffold, web
Trackbacks 0 : Comments 2
  1. Favicon of https://deisys.tistory.com 가난한 d-goon 2007.05.02 00:56 신고 Modify/Delete Reply

    공부를 더 하다보니, 왠지 CRUD기반의 컨트롤러 설계에 대한 생각이 바뀌어가고 있음. 다시 생각을 정리해서 포스팅할것 - ... 덜덜

  2. Favicon of http://15675aniefit.com/ralphlauren-it.php polo 2013.07.16 18:05 Modify/Delete Reply

    당신 매력있어, 자기가 얼마나 매력있는지 모르는게 당신매력이야

Write a comment


책 제본했다! 아자~

Tech 2007.04.07 14:02
역시 책은 손으로 넘겨가며, 낙서도 좀 하고 형광펜으로 줄도 긋고 가금 구겨서 코도 풀고 하는게 제맛이다. 아직은 아날로그적 감수성이 기분을 좌우하는 듯.

Agile Web Development With Rails 지름! 연결

PDF로 샀다가, 그냥 제본 고고해버렸다. ... 음, 그냥 책까지 사버리는게 더 나은 선택이었을지도 모르지만, 일단 배송 시간때문에 ... 여튼, 아래쪽에 Prepared exclusively for Kangsan Lee 하고 쓰인게 맘에 드는걸? 으흐흐흐~

지금까지 단편적인 부분이나마 RoR의 장점 몇가지를 보면,

1. DB Scheme 의 버전관리가 된다.
2. SQL Query 를 직접 작성할 필요가 없다.
3. 개발하면서 당장 필요없는 인터페이스는 Scaffold 로 대체할 수 있다.
4. MVC 모델이 기반이어서 View쪽에 대해서만 디자인 쪽과 이야기하면 된다. 즉 -> 디자인쪽과 협업이 쉽다.
5. Code - Test - Debug/Adapt 의 개발 사이클이 빠르게 돌아갈 수 있다.

빨리 스윽 다 읽어보고 심화시켜 장/단을 정리, 검증 및 사용 - 해 볼 필요가 있겠다.

'Tech' 카테고리의 다른 글

Ruby On Rails - Scaffold의 함정  (2) 2007.04.18
Javascript - folding  (2) 2007.04.16
책 제본했다! 아자~  (4) 2007.04.07
지름: AgileWebDevelopmentWithRails, PDF Ver  (0) 2007.04.01
Ruby on Rails 공부(?)중  (0) 2007.03.30
개발이란 것은,  (2) 2007.03.25
tags : Agile, Rails, RoR, Ruby, web, 제본
Trackbacks 0 : Comments 4
  1. Favicon of http://etnalry.tistory.com etnalry 2007.04.07 18:55 신고 Modify/Delete Reply

    맘에 드는 부분을 이미지로 올려주는 센스!!

  2. Favicon of http://deisys.net deisys 2007.04.08 10:47 Modify/Delete Reply

    etnalry // 으음... 그.. 그럴까? ㅋㅋㅋ

  3. Favicon of http://ez2web.com/blog/ 뉴크 2007.04.08 14:35 Modify/Delete Reply

    오호 애자일과 루비에 대한 책이라 무척 관심이 가는군요^^
    다만 꼬불 꼬불 언어에 대한 거부감이 문제 ㅋ ㅡ.ㅡ;

  4. Favicon of https://deisys.tistory.com 가난한 d-goon 2007.04.08 15:01 신고 Modify/Delete Reply

    뉴크 // 영어지만 꽤 쉽게 쓰여져서 술술 읽힙니다. 글 쉽게 잘 쓰는 사람인것 같아요.

Write a comment


지름: AgileWebDevelopmentWithRails, PDF Ver

Tech 2007.04.01 12:19
신용카드는 이런데 쓰기 위해 만든 것이다! 두둥~ 재밌는 것은 결제할때 비밀번호를 물어보지 않는다는거... -0- 그냥 이것저것 묻고 땡이다. 우린나라와는 좀 다른 인식인건가?

사용자 삽입 이미지


'Tech' 카테고리의 다른 글

Ruby On Rails - Scaffold의 함정  (2) 2007.04.18
Javascript - folding  (2) 2007.04.16
책 제본했다! 아자~  (4) 2007.04.07
지름: AgileWebDevelopmentWithRails, PDF Ver  (0) 2007.04.01
Ruby on Rails 공부(?)중  (0) 2007.03.30
개발이란 것은,  (2) 2007.03.25
tags : Agile, PDF, Rails, RoR, Ruby, web, 지름
Trackbacks 0 : Comments 0

Write a comment


Ruby on Rails 공부(?)중

Tech 2007.03.30 12:30
필요한 일이 있어서 RoR을 공부하는 중이다. 일단 루비는 좀 익혀 두었기 때문에, 언어의 Feature 보다는 Design/Architecture 쪽에 집중해서 보고 있다. 아직 갈 길이 멀지만 지금까지의 느낌은

1. 철저한 Data-driven 설계 (ORM + 웹 서비스-OOP 의 맵핑)
2. Model - View - Controller 패턴
3. Practical development

이정도의 화두가 녹아있는 것 같다.

문득 떠오르는 생각: 요즘 AJAX가 뜨고 있다지? 클라이언트쪽에 로직을 넣어 서버 부하를 줄일 수 있고, 보다 역동적인 UI 구성도 가능... RoR은 기본적으로 비지니스 로직은 서버사이드에 있는 것 같은데, AJAX와 붙으면 어떻게 될까? 몇몇 DHTML 스크립트 엔진들과는 잘 붙는다고 하던데, 상상이 잘 안되고 있음.

일단 책을 좀 보고, 삽질을 좀 해보고, 현업에 써본 다음( -_-; 무책임 ) 정리해볼 필요가 있겠다.


'Tech' 카테고리의 다른 글

Ruby On Rails - Scaffold의 함정  (2) 2007.04.18
Javascript - folding  (2) 2007.04.16
책 제본했다! 아자~  (4) 2007.04.07
지름: AgileWebDevelopmentWithRails, PDF Ver  (0) 2007.04.01
Ruby on Rails 공부(?)중  (0) 2007.03.30
개발이란 것은,  (2) 2007.03.25
tags : ajax, MVC, ORM, Rails, RoR, Ruby, web
Trackbacks 0 : Comments 0

Write a comment