반응형
오늘 ubuntu 11.10 으로 업그레이드 했습니다.
저처럼 새로운 데스크탑 보다는 이전 버전의 classic desktop 을 원하시는 분들을 위한 글입니다.
우분투 11.04 버전에서는 지원하던 classic desktop 보기가 11.10 버전에서는 지원하지 않습니다.
그래서 터미널에서 명령어를 쳐서 이전 버전의 gnome-pannel 을 설치 해 줘야 합니다.

sudo apt-get install gnome-panel





이후 로그인 시 옆에 세팅 아이콘을 눌러 classic 으로 바꿔 로그인 하시면 됩니다.
출처(http://tombuntu.com/index.php/2011/09/11/install-the-classic-desktop-in-ubuntu-11-10/)

 
반응형
반응형


구글 크롬 확장 프로그램 만드는 방법이 궁금해서..
인터넷을 찾아보니.. 

출처: http://code.google.com/chrome/extensions/getstarted.html

에서 친절하게 사용방법이 나와있네요 ㅎㅎ.. Step 들을 따라 해보니 바로 하나가 만들어지네요 :)


간단한 설명 함꼐 올려드립니다.

1. 폴더를 하나 만든 뒤 폴더 안에 manifest.json 이란 파일을 만든 뒤 아래의 코드를 넣어 줍니다.

{
  "name": "My First Extension",
  "version": "1.0",
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "permissions": [
    "http://api.flickr.com/"
  ]
}


2. 아이콘을 다운 받아 같은 폴더 안에 넣어 줍니다.
 (http://code.google.com/chrome/extensions/examples/tutorials/getstarted/icon.png)

3. 크롬의 확장프로그램 메뉴로 들어갑니다. (chrome://extensions/#)

4. 개발자 모드 옆의 아이콘이 + 로 되어 있다면 클릭하여 - 로 만든 뒤, 압축 해제된 확장 프로그램 로드 를 눌러 파일 다이얼로그를 엽니다. 다이얼로그에서 위에 만든 파일들이 들어가 있는 폴더를 클릭 후 선택을 눌러줍니다. 
(정상적으로 작동한다면, 아이콘이 확장 프로그램 옆에 생성이 되고 아래와 같이 확장 프로그램이 등록됩니다.)

 
5. 이 시점에서는 아이콘을 눌러도 아무런 작동을 안합니다.

6. manifest.json 파일을 열어 아래 라인을 추가해 줍니다.

  ...
  "browser_action": {
    "default_icon": "icon.png",
    "popup": "popup.html"
  },
  ...

 
7. 이제 자바 스크립트와 css 가 포함된 popup.html 파일을 폴더 내에 만들어줍니다. 
    여기에 있는 내용을 그대로 html 파일에 넣어줍니다. 

8. 이제 확장 프로그램 관리 페이지에서 새로고침을 눌러준 뒤 아이콘을 눌러보세요.. :) 아래의 그림과 같이 확장 프로그램이 flickr 에서 그램들을 불러 옵니다. :)


:) 모두 성공적 완료!!! 

구글에서 크롬 관련 확장 프로그램에 대한 튜토리얼이 아주 자세하게 잘 나와 있습니다.
여기 -> Overview 페이지에서 시작하여 멋진 확장 프로그램을 하나 만들어 봐야 겠네요 ㅎㅎ




 
반응형
반응형
http://www.lastcamping.com built with cakePHP 1.3, mySQL

지난 마지막 프로젝트에서 cakePHP 1.3 으로 만든 싸이트 입니다.

디자인이나 기획은 라스트 캠핑 커뮤니케이션에서 해주셨고, 그걸 토대로 싸이트 전체를 cakePHP 1.3  으로 올려봤습니다.


cakePHP 를 사용하면서 참 편하다 라는 느낌도 받았지만, 동시에

예전 ruby on rails 와 비교해 보면서 아직 갈길이 먼 프레임워크 구나 라는 느낌도 받았습니다. 

하지만 곧 2.0 출시를 앞둔 cakePHP.. 많은 기능들과 좀더 개발자 편의를 많이 보안하여 올라올 예정이라고 하는데요..

기회가 되면 또 cakePHP 를 이용한 프로젝트를 한번 해 보고 싶네요 :) 

(update) 2011-11-30

베타에서 정식 오픈을 했네요. 축하드립니다. :)

너무나 이쁘게 디자인도 바http://www.lastcamping.com뀌어져 올라왔습니다.

역시 베타 오픈 하며 여러가지 테스트를 통해 새로 올라온 디자인 넘 이쁜거 같습니다.


 
반응형
반응형
Facebook (페이스북)
http://www.facebook.com/sharer.php?u=
http://yobine.tistory.com&t=Yobine+티스토리입니다
로그인 후 링크 및 링크의 제목과 함꼐 공유하는 글은 따로 남깁니다.

 



트위터 Twitter

http://twitter.com/share?text=Yobine 티스토리 입니다.&url=http://yobine.tistory.com
로그인 후 트윗 내용에 글이 들어가며 url 은 자동으로 미니url 로 바뀝니다.

미투데이
http://me2day.net/posts/new?new_post[body]=Yobine 티스토리입니다.http://yobine.tistory.com&new_post[tags]=yobine yobine블로그 티스토리블로그


Google+ +1
구글+ 의 +1 버튼은 아래의 싸이트에서 만들 수 있습니다.
http://www.google.com/intl/ko/webmasters/+1/button/index.html


싸이공감

http://csp.cyworld.com/bi/bi_recommend_pop.php?url=http://yobine.tistory.com&title_nobase64=Yobine+티스토리입니다.

반응형
반응형

저장을 하거나, 어떠한 action 이 후에 페이지 redirect 를 하는 경우가 대부분입니다. 
cakePHP 에서 redirect 는 다음과 같이 사용이 됩니다.

redirect(mixed $url, integer $status, boolean $exit);

참조( http://book.cakephp.org/view/982/redirect)
 




사용자가 성공적으로 주문이 완료가 되었을 경우엔 "감사" 하다는 action 으로 redirect 를 하게 되며, 실패가 났을 경우에 "확인" 이라는 action 으로 redirect 되는 예 입니다.
 
  1. function placeOrder() {
  2. //Logic for finalizing order goes here
  3. if($success) {
  4. $this->redirect(array('controller' => 'orders', 'action' => 'thanks'));
  5. } else {
  6. $this->redirect(array('controller' => 'orders', 'action' => 'confirm'));
  7. }
  8. }

URL 을 지정 할 수도 있으며, 

Copy to Clipboard
  1. $this->redirect('/orders/thanks');
  2. $this->redirect('http://www.example.com');

action 에서 데이터도 보낼 수 있습니다.

Copy to Clipboard
  1. $this->redirect(array('action' => 'edit', $id));


다음 예제는 요청 보낸 페이지의 URL 로 되 돌려 보내는 예 입니다.

Copy to Clipboard
  1. $this->redirect($this->referer());
반응형
반응형

기본적으로 cakephp 는 웹싸이트의 root 에 대해서는 PagesController 를 사용합니다. 그리고 home 이라는 이름으로 view 가 렌더링 되지요. 하지만 라우팅을 바꿔 보도록 하겠습니다.









/app/config/route.php 를 열어보면 아래와 같은 코드가 보입니다. 

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home')); 



root 에 연결이 되었을 때 pages 컨트롤러로 가서 뷰 렌더링 하는 부분인데요, 이 라인을 다음과 같이 바꿔줍니다.

Router::connect('/', array('controller' => 'posts', 'action' => 'index'));



그렇게 되면 root (http://www.싸이트주소) 에 연결이 되면 
PostsController 에 index() 액션에서 지정한 view 를 렌더링 됩니다.

출처 : (
http://book.cakephp.org/compare/1541/Routes/cakephp/cakephp1x)
반응형
반응형
간단한 예제 입니다.
웹에서 검색하여 짜집기 한 소스입니다.


<?php

$xml_data= @file_get_contents("http://www.google.com/ig/api?hl=ko&weather=seoul"); 
$xml_data = iconv("EUC-KR","UTF-8", $xml_data); 
$xml = simplexml_load_string($xml_data); 
$information = $xml->xpath("/xml_api_reply/weather/forecast_information");
$current = $xml->xpath("/xml_api_reply/weather/current_conditions");
$forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions");
?>

<head>
    <title>Google Weather API</title>
</head>
<html> 
<body>
    <h1><?php echo $information[0]->city['data']; ?></h1>
    <h2>Today's weather</h2>
    <div class="weather">
        <img src="<?php echo 'http://www.google.com' . $current[0]->icon['data']?>" alt="weather"?>
        <span class="condition">
        <?php echo $current[0]->temp_f['data'] ?>&deg; F,
        <?php echo $current[0]->condition['data'] ?>
        </span>
    </div>
    <h2>Forecast</h2>
    <?php foreach ($forecast_list as $forecast) : ?>
    <div class="weather">
        <img src="<?php echo 'http://www.google.com' . $forecast->icon['data']?>" alt="weather"?>
        <div><?php echo $forecast->day_of_week['data']; ?></div>
        <span class="condition">
            <?php echo $forecast->low['data'] ?>&deg; F - <?php echo $forecast->high['data'] ?>&deg; F,
            <?php echo $forecast->condition['data'] ?>
        </span>
    </div>
    <?php endforeach ?>
</body>
</html> 

반응형
반응형



MS SQL 쿼리 전체 테이블 이름 가져오기

간혹, DB 내 전체 테이블 이름만 가지고 오고 싶을때가 있습니다.

SQL 쿼리 한줄로 해결됩니다.

select *  from information_schema.TABLE_CONSTRAINTS


간혹 전체 테이블과, 각 테이블 별 컬럼명들까지 그리고 그외 상세 내역을 보고싶다면..

select *  from information_schema.Columns


db 내 PK 등만의 정보를 보고 싶다면..

select * from information_schema.KEY_COLUMN_USAGE


반응형
반응형

Transaction Scope 클래스

네임스페이스 : Systems.Transactions
어셈블리 : System.Transactions (in System.Transactions.dll)
프레임웍 : 2.0 부터


정확한 사용에 대한 설명은 MSDN 에 있습니다.
 (http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx)

사용의 예 (VS 2008)
System.Transaction.dll 을 참조 시켜 준 뒤 네임스페이스를 사용합니다.
using System.Transactions;


삭제 쿼리를 받아 InsertStorageDataSet 메소드에 보내어 쿼리를 실행 시킵니다. InsertStorageDataSet 메소드에는 트랜젝션이 걸려 있지 않으며, Scope 내부에서 원하는 작업 메소드를 모두 실행 시킨 뒤 마지막에 scope.Complete() 를 해주면 트랜젝션이 끝이 납니다.

간단한 사용의 예이기 때문에 별다른 설명 첨부 하지 않습니다.


반응형

'초짜 IT보이 서바이벌 스토리 > ASP.Net' 카테고리의 다른 글

.NET Core 3.0 Portability Analyzer  (0) 2019.04.02
#ASP.NET 의 #LifeCyle  (0) 2018.08.16
ASP.NET MVC 패턴 소개 (C#)  (0) 2009.11.05
ASP.NET MVC 1.0  (0) 2009.04.20
ViewState 와 Session 의 장단점  (0) 2008.08.25
반응형

아래 내용은 asp.net 의 MVC Tutorial 란에 있는 ASP.NET MVC OverView 를 정리한 내용입니다.

ASP.NET MVC 개요

ASP.NET MVC 프레임웍은 어플리케이션을 크게 모델(Model)-뷰(View)-컨트롤러(Contorller) 로 나누어 준다. 이 프레임웍은 ASP.NET 웹폼도 지원하며 이를 사용한 MVC 디자인 모델 기반의 웹 어플리케이션을 쉽고 빠르게 개발 할 수 있다.

ASP.NET MVC 프레임웍은
1. 가볍고
2. 마스터 페이지나 멤버쉽 기반의 인증 기능 등 기존의 ASP.NET 의 기능들이 통합되어 사용이 가능하다.
3. System.Web.Mvc 네임스페이스에 정의 되어 있으며
4. 기본적으로 System.Web 네임스페이스의 일부분으로 지원되고 있다.

MVC 는 많은 개발자들에게 친근한 표준 디자인 패턴이다. (난 MVC 디자인 패턴에 대해 듣기는 많이 들었지만 직접적인 경험이 없어 궁금할 뿐이다. .. 친근해야 하나? ㅡ,.ㅡ)
특정 유형의 웹 어플리케이션은 MVC 프레임웍을 사용함으로 큰 이익 창출은 물론,
전통적인 웹폼과 포스트백  기반의 ASP.NET 어플리케이션 패턴도 지속적으로 사용할 수도 있다. 
하지만 두가지 패턴을 섞어 사용 할 수는 없다.

The MVC 프레임웍의 컴포넌트를 살펴보자:
 

Models. 모델 객체는 전체 어플리케이션 중 데이터 도메인에 비지니스 로직을 실행하는 부분으로 데이터베이스와 자주 소통 하여 조회 및 저장을 실행한다. 예를 들어 Product 객체는 데이터베이스에서 정보를 조회해 오기도 하고 업데이트 된 정보를 SQL 서버의 Product 테이블에 저장하기도 한다. dataset 을 읽어 뷰로 보내기만 하는 작은 어플리케이션에서는 모델을 물리적이라기 보다는 개념적으로 많이 본다. 왜냐하면 이런 어플리케이션에서는 물리적인 모델 레이어와 관련 클래스들이 존재하지 않기 때문이다. 이런 케이스에서는 Data set 이 모델 객체 역할을 한다고 보면 된다.

Views. 뷰 는 어플리케이션의 사용자 인터페이스(UI) 를 보여주는 컴포넌트 이다. 일반적으로 UI는 모델 데이터로 부터 만들어진다.

Controllers. 컨트롤러 컴포넌트는 사용자와 소통하여 모델과 함께 움직이며 뷰를 렌더링하여 UI 를 화면에 표시한다. MVC 어플리케이션에서는 뷰는 정보를 보여주고, 컨트롤러는 사용자의 입력값 혹은 요청에 응답 한다. 예를 들어, 컨트롤러는 쿼리 스트링 값들을 모델에 넘겨 주어 데이터베이스에 그 값들을 사용하여 쿼리의 결과값을 받아온다.

MVC 디자인 패턴은 어플리케이션을, 입력 로직, 비지니스 로직 그리고 UI 로직 등으로 나누어 서로 결속력이 느슨하게 만들어 준다.  UI 로직은 뷰에, 입력 로직은 컨트롤러에 그리고 비지니스 로직은 모델에 속한다.
이렇게 나누게 되면 개발 시 하나에 집중 할 수 있도록 하여 개발의 복잡도와 작업의 의존도를 떨어뜨리는 효과를 가져온다.
예로 디자이너는 비지니스 로직에 의존하지 않고 뷰에만 집중할 수 있다.

추가적으로 MVC 패턴에서는 ASP.NET 웹 어플리케이션 기반에서 보다 훨씬 수월하게 테스트를 할 수 있다.
예를 들면 웹폼 기반의 ASP.NET 웹 어플리케이션은 하나의 클래스에서 사용자의 입력값을 받아 처리하고, 결과값을 보여준다. 자동으로 짜여지는 웹폼기반 ASP.NET 어플리케이션을 테스트 하기 위해선 테스트 하는 각각의 페이지들의 클래스 및 모든 자식 컨트롤들과 추가적으로 의존된 클래스틀 까지 모두 작동 시켜야 한다. 
이러한 웹폼 기반의 ASP.NET 어플리케이션에서는 하나의 페이지에서 많은 클래스들이 함께 움직여 동작하기 때문에 하나의 기능에 집중된 테스트 (유닛테스트: Unit Test) 를 하기란 참 어렵다. 또한 웹서버도 필요로 한다. 

MVC 어플리케이션에서의 테스트는 MVC 프레임웍이 하나의 유닛을 테스트 할 수 있도록 나머지 프레임웍에서 인터페이스 사용함에 있어 무겁게 하는 컴포넌트들을 분리시켜 준다. 이로써 보다 가볍게 부분적인 테스트(유닛테스트)를 가능하게 해준다.

모델 뷰 컨트롤러 컴포넌트들끼리의 느슨한 결속력은  한명의 개발자는 뷰의 작업을 하고, 또 다른 개발자는 컨트롤러 로직을 짜며 나머지 한명을 모델에서 비지니스 로직에만 개발 할 수 있게 하여 서로 의존적이지 않은 개발 즉 Parallel(수평) 개발을 가능케 한다.

(개인적인 생각: 음.. 선배들에게 듣기론 수평적인 개발 보다는 수직적인 개발이 더 개발에 수월하다고 하던뎀, 뭐가 좋은지는 난 잘 모르겠다. 개인적으로는 수직적인 개발이 조금 더 익숙하다고 할까? ㅡ,.ㅡa)

그럼 언제 MVC 디자인 패턴을 사용해야 하는가?


웹어플리케이션을 개발 할 때 ASP.NET MVC 프레임웍을 사용해야 하는지, 혹은 ASP.NET 웹폼 모델을 사용해야 하는지에 대한 고민을 하게 될 것이다.
MVC 프레임웍이 기존의 웹폼 모델을 대체 할 수는 없다. 즉 MVC 프레임웍만을 사용하려면 MVC 프레임웍을 사용하는 웹어플리케이션을 새로 개발하든지, 아니면 웹폼 기반의 어플리케이션이 있는데 추가적인 작업을 해야 한다면 웹폼 기반 디자인을 지속적으로 사용해야 할 것이다.
그렇기 때문에 MVC 프레임웍이 사용되어야 할지 혹은 웹폼 모델이 사용되어야 할지는 서로의 장단점을 잘 따져 결정해야 할 것이다.

MVC의 장점

1) 모델 뷰 컨트롤러로 어플리케이션을 나누기 쉽다.
2) MVC 프레임웍은 View State 이나 서버 기반의 폼을 사용하지 않아 개발자로 하여금 어플리케이션 이 행하는 모든 기능적 3) 프로세스에 대한 전체적인 제어권을 가질 수 있게 한다.
4) 웹어플리케이션의 요청을 하나의 컨트롤러를 통하여 처리하는 프론트 컨트롤러 패턴(Front Controller Pattern)을 사용하여 리치 라우팅 인프라스트럭처(Rich Routing Infrastructure) 를 지원하는 어플리케이션 디자인을 가능케 한다.
5) 더 나은 test-driven development (TDD) 을 제공한다.
6) 많은 개발자들과 웹 디자이너들이 구성된 팀이 지원하는 웹 어플리케이션에 적합하다.

웹폼 기반의 장점


1) HTTP 을 사용하여 상태 보전을 하는 이벤트 모델을 지원한다.  웹폼 기반 어플리케이션은 수백개의 서버 컨트롤에서 지원하는 많은 이벤트들을 제공한다.
2) Page Controller 패턴을 사용하여 각각의 페이지에 기능을 탑재시킨다.
3) 상태정보 관리가 쉬운 View State 나 서버 기반 폼들을 사용한다.
4) 작은 규모의 개발팀에서 많은 종류의 컴포넌트들을 가지고 빠른 속도로 어플리케이션을 개발할 때 적합니다.
5) 대체적으로 어플리케이션 개발의 복잡도가 낮다. 컴포넌트들(페이지 클래스, 컨트롤 등)이 강한 결속력으로 통합되어 있고, MVC 모델 보다 코드 줄 수가 적은 편이다.

알고 있는 내용이 아니라, 읽고 이해한 내용을 옮기다 보니 어색한 부분들도 있고, 미흡한 점들도 많네요.
오역이나 잘못된 부분이 있으면 지적 부탁드립니다.

반응형

'초짜 IT보이 서바이벌 스토리 > ASP.Net' 카테고리의 다른 글

#ASP.NET 의 #LifeCyle  (0) 2018.08.16
c#.Net Transaction Scope 사용하기  (0) 2010.04.27
ASP.NET MVC 1.0  (0) 2009.04.20
ViewState 와 Session 의 장단점  (0) 2008.08.25
ASP.NET 공부시작~  (1) 2008.07.14

+ Recent posts