PSS Widget 

- pssplugin.php (기본) 한개로 구성됨 (글 작성중 현재상태 12/08/10)

왼쪽의 설정부분

function pss_settings_link($links) {
	$links[] = ''.__('설정').'';
	return $links;
}
add_filter('plugin_action_links_'.plugin_basename(__FILE__), 'pss_settings_link', 10, 1);
오른쪽 부분
function pss_setting_link($links, $file) {
	if ($file == plugin_basename(__FILE__)) {
		$links[] = ''.__('설정', 'pss').'';
		$links[] = ''.__('기타', 'sfc').'';
	}
	return $links;
}
add_filter('plugin_row_meta', 'pss_setting_link', 10, 2);


기본 파일 위치 /wordpress/wp-content/plugins/만드려는위젯_이름.php

코드 상단에 아래코드 삽입



기본구조는

class 이름 extends WP_Widget

 function 이름 ( ) {

$widget_options = array ( 'classname' => '이름' , 'description' => '설명' ) ;         $this -> WP_Widget ( '이름' , '위젯이름' , $widget_options ) ; 

 } 

 function widget ( $args , $instance ) {

//실제로 보여지는 부분

}

add_action ( 'widgets_init' , create_function ( '' , 'return register_widget("이름");' ) ) ; ?>





워드프레스 루프문 기본

 

'루프전용' 함수들

현재 포스트의 제목

각 포스트의 고유주소 URL을 표시

각 포스트의 ID

각 포스트의 작성자 이름을 표시

각 포스트가 속해있는 카테고리 표시



워드프레스 한글언어팩에 기본 테마는 이미 곰님의 수정으로 사용하는데 무리가 없지만, 해외에서 제작된 250여개가 넘는 워드프레스 테마를 만끽하기 위해선 테마 파일의 수정이 반드시 필요하다. 코덱스에 워드프레스의 테마를 구성하는 파일들을 간단하게 설명하고 있지만, 내 나름대로, 테터툴의 스킨과 비교하여 조금은 구체적으로 파헤처 볼 생각이다.

기본적으로 워드프레스에서 반드시 필요한 파일은 기본 템플릿 파일인 index.php 이다. 테터툴과 마찬가지로 index.php 파일 하나만으로도 블로그를 구성할 수는 있다. 테마 만드는 사람 마음일 것이다. 다만, 답글까지 한꺼번에 보여준다면, 아니 보여주지 않고 숨겨놓더라도 파일을 읽는데 소요되는 시간은 상당할 것이다. 즉, 파일의 크기나 트래픽량의 증가는 감수할 수 있다면, index.php 파일 하나만으로도 상관없다.

이런 이유에서 워드프레스에서 또 하나의 중요한 파일이 single.php 이다. 파일명처럼 글 하나를 볼때 사용되는 파일이다. single.php 와 함께 다니는 파일은 comment.php 이다. 답글(꼬릿말)이나 트랙백, 핑백의 내용을 보여주며 답글을 작성할 수 있도록 하는 파일이다. 트랙백 주소도 이곳에 표현된다.

Style.css 는 구조화된 워드프레스 테마 템플릿의 시각적인 부분을 담당한다.이미지, 배경색/이미지/아이콘, 폰트 크기/색, 박스 크기/색 등 눈으로 볼 수 있는 대부분을 정의하는 파일이다. 이는 인라인 스타일을 사용하는 대부분의 테터툴 스킨과 다른점이다.Style.css를 수정하기 위해서는 Topstyle pro 3과 같은 프로그램을 이용하는 것이 편리할 것이다.

여기까지만 보면, 테터툴의 index.php 파일을 워드프레스에서는 index.php + single.php + comment.php + style.css 파일로 쪼개 논 것 같다. 맞다. 파일의 효율성을 위해서 독립시킨 것이다. 여기에 다양한 레이아웃을 보여줄 수 있도록 category.php achive.php

예전에 한번 비교해보니 워드프레스 기본테마의 필수 파일 3가지(style.css 제외)를 합친 것이 테터툴 기본스킨의 index.php 파일보다 크기가 훨씬 작았던 것으로 기억난다. 이는 table 레이아웃과 div + CSS 레이아웃의 차이점이랄 수 있다.

아래는 일반적으로 워드프레스의 테마에 포함된 파일 구조이다.

  • inde.php : 기본 템플릿 파일 (대부분 아래의 파일로 분리됨)
    • header.php : 상단에 항상 표현되는 파일
    • footer.php : 하단 항상 표현되는 파일
  • style.css : 기본 스타일 파일 (경우에 따라 아래 파일들로 분리됨)
    • layout.css : 레이아웃을 구성하는 파일
    • default.css : 기본적인 클랙스나 아이디를 구성하는 파일
    • print.css : 블로그 내용을 프린트할 때 사용되는 파일
  • single.php : 글 하나만 볼 때 사용되는 파일
    • comment.php : 답글을 쓸때 사용되는 파일
    • comment-popup.php : 팝업창으로 답글을 쓸때 사용되는 파일
  • sidebar.php : 사이드바(메뉴)를 구성하는 파일
    • sidebar-left.php : 3단 구조에서 왼쪽 사이드바를 구성하는 파일
    • sidebar-right.php : 3단 구조에서 오른쪽 사이드바를 구성하는 파일
  • search.php : 검색결과를 보여주는 파일
  • archive.php : 글 묶음을 볼 때 사용되는 파일
    • category.php : 글의 분류에 따라 글을 볼때 사용
    • date.php : 년, 월, 일별로 글을 볼 때 사용
  • page.php : 블로그 글과 다른 정적인 형식인 페이지를 볼때 사용
    • archives.php : 기본적인 페이지 템플릿
    • author.php : 블로그 주인을 소개할 때 사용하는 페이지 템플릿
    • contact.php : 이메일을 발송할 관련 페이지의 템플릿
    • link.php : 링크 관련 페이지의 템플릿
  • 404.php : 블로그에 없는 파일을 찾을 때 보여주는 파일

'공부 > Wordpress' 카테고리의 다른 글

제작한 플러그인에 설정메뉴 넣기  (0) 2012.08.10
위젯 만들기  (0) 2012.08.10
루프문설명  (0) 2012.08.08
관리자모드에 Custom 플러그인 메뉴 추가하기  (0) 2012.08.06
워드프레스 page에 template  (0) 2012.08.03


워드프레스는 설치형 블로그툴로 요즘에는 블로그를 운영하는 목적뿐만 아니라


회사 홈페이지나 광고 사이트등 많은 사이트들의 CMS(콘텐츠 관리 시스템)로 쓰이고 있습니다.


워드 프레스는 뛰어난 확장성을 갖고 있기 때문에 플러그인이나, 테마등을 개발하여 적용하기 좋습니다.


따라서 많은 수의 테마와 플러그인이 개발되어 공개되고 있으며 좋은 품질의 테마같은 경우에는


유료로 돈을 주고 살 수 있는 경우도 있습니다.


이렇게 다양하게 확장할 수 있는 워드프레스 기능을 활용하여 admin 메뉴에 내 메뉴를 삽입하겠습니다



워드프레스에 관리자 기능이 있습니다. 여기에 워드프레스 관리를 위한 다양한 메뉴가 있습니다.


이 관리자 메뉴에 우리만의 관리자 메뉴를 추가하고 싶을 경우 어떻게 해야 할까요?


우선 플러그인 파일을 워드프레스 설치 디렉토리의 wp-content 디렉토리안으 plugins 폴더에 추가하셔야 합니다.


플러그인이 간단한 단일 php파일이라면 wp-content plugins 폴더에 바로 추가해도 좋지만 여러개의 파일이라면


디렉토리를 만들어서 추가하는 것이 좋습니다. wp-content\plugins에 wdm 이라는 디렉토리를 만들겠습니다.


그리고 wdm 디렉토리 밑에 plugin.php 라는 파일을 만들고 다음 내용을 넣습니다.

(파일 이름은 상관 없습니다.)

<-- 표준 플러그인 형식 -->


<?php
/*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A "Slug" license name e.g. GPL2
*/
?>



<?php

/*

Plugin Name: 플러그인 이름

Plugin URI: 주소

Description: 플러그인 설명

Version: 0.1

Author: 제작자

Author URI: 주소

License: public domain

*/


function screen1() {

include('screen1.php');

}


function screen2() {

include('screen2.php');

}


function wdm_menu() {

// http://codex.wordpress.org/Function_Reference/add_menu_page

add_menu_page('추가메뉴', '추가메뉴', 10, 'menu1', 'screen1', '');


// http://codex.wordpress.org/Function_Reference/add_submenu_page

add_submenu_page('menu1', '서브메뉴', '서브메뉴', 10, 'menu2', 'screen2');

}


// http://codex.wordpress.org/Function_Reference/add_action

// admin_menu를 hook

add_action('admin_menu', 'wdm_menu');

?>




위처럼 작성하면 가장 위의 주석 부분을 워드프레스가 파싱하여 플러그인 목록에 보여줍니다.


plugins에서 plugin이 잘 추가됐는지 확인합니다.


그리고 우리가 추가한 plugin을 사용해야 하므로 active 합니다.


그러면 관리자 메뉴 중 가장 아래에 추가메뉴와 서브메뉴가 추가된 것을 확인할 수 있습니다.


코드를 설명하면 다음과 같습니다. 우선 가장 아래줄의 코드 의미를 봅시다.


add_action('admin_menu', 'wdm_menu'); 



이 코드는 admin_menu 즉 어드민 메뉴가 표현될 때 사용할 hook으로 wdm_menu라는 function을


사용하겠다는 의미입니다. 그러면 wdm_menu를 봅시다.


function wdm_menu() {

// http://codex.wordpress.org/Function_Reference/add_menu_page

add_menu_page('추가메뉴', '추가메뉴', 10, 'menu1', 'screen1', '');


// http://codex.wordpress.org/Function_Reference/add_submenu_page

add_submenu_page('menu1', '서브메뉴', '서브메뉴', 10, 'menu2', 'screen2');

}


add_menu_page를 통해 메뉴를 추가하고

add_submenu_page를 통해 서브메뉴를 추가합니다.


즉 add_action을 통해 admin_menu가 표현될때 wdm_menu라는 function을 사용하여


메뉴를 추가합니다.


메뉴 추가 함수의 자세한 사용법은 해당 함수 호출의 주석 부분의 url을 참고하세요.


또한 add_menu_page와 add_submenu_page를 통해 만든 메뉴를 클릭했을때


호출할 function으로 "screen1"과, "screen2"를 지정합니다. 


이렇게 하면 해당 메뉴를 클릭했을때 각각 screen1()과 screen2() 가 호출됩니다.


각 function을 봅시다.


function screen1() {

include('screen1.php');

}


function screen2() {

include('screen2.php');

}


추가메뉴를 클릭하면 screen1.php 를 포함하여 보여주고


서브메뉴를 클릭하면 screen2.php 를 포함하여 보여줍니다.


각 파일은 아직 올리지 않아서 에러가 나겠지만 필요한 기능을 php 파일에 구현하여 


같은 디렉토리에 올리면 admin의 메뉴에서 구현한 화면을 볼 수 있습니다.



'공부 > Wordpress' 카테고리의 다른 글

제작한 플러그인에 설정메뉴 넣기  (0) 2012.08.10
위젯 만들기  (0) 2012.08.10
루프문설명  (0) 2012.08.08
워드프레스 템플릿 기본구조 ㅡ  (0) 2012.08.06
워드프레스 page에 template  (0) 2012.08.03

[윈도우] Git 사용하기 Develop Tip

바로 이전 블로그에서 git 의 기본 맛보기를 해 보았습니다.
그것은 우분투에서 명령으로 사용해본 git 였다면 이번에는 동일한 것을
윈도우에서 진행해 보겠습니다.

우선 윈도우용 git 프로그램인 msysgit 에서 가장 최신(상단)의 exe를 설치합니다.

그 다음의 설치는 두세 가지 정도만 제외하고 모두 디폴트로 설치했습니다.

설치 안내 창에서 "Next"

라이센스에서 다음,

여기도 디폴드로 하고 다음,

여기도 디폴트로 놓고 다음,

그룹도 디폴트로 놓고 다음,

명령창에서도 git 명령을 사용하기 위하여 세번째 항목을 선택하고, 다음,

자체 OpenSSH 보다는 Putty 를 사용하고 있으므로 두번째를 선택하고, 다음

일단은 윈도우와 리눅스 개발이 분리가 되므로 세번째 항목을 선택하고, 다음

자~ 설치가 끝났습니다.
환경 설정은 알아서 넣어주었기 때문에 명령창을 띄웁니다.

제일 먼저 환경 설정을 위하여 git config --globla 명령을 주었는데 위와 같이 오류 발생했습니다.
(지난번 2월달에 받은 버전에서도 오류가 났었는데요, 뭐... 다음과 같이 하여 해결합니다)

자신의 사용자 디렉터리에 있는 .gitconfig 파일을 우선 삭제하고 나서,
글로벌 설정을 넣으니 이상없이 들어가네요.

일단, W:\VS2010 폴더의 내용을 git 에 넣기위하여 작업을 진행하기전,
해당 폴더 안에서 .gitignore 파일의 내용을 다음과 같이 넣어 줍니다.

*.o
*.obj
*.lo
*.la
*.al
.libs
*.so
*.so.[0-9]*
*.a
*.pyc
*.pyo
*.rej
*~
#*#
.#*
.*
.DS_Store
Debug
Release
*.old
*.bak

위와 같이 넣어 주었습니다.


다음으로 글로벌 ignore 에 위의 파일을 지정해 줍니다.

W:\> git config --global core.excludesfile w:\.gitignore


git init
git add .
git commit -m "init"

를 해 줍니다.

w:\> 에 가서 vs2010 대신 저장소 파일만 가진 vs2010.git 를 다음과 같은 명령어로 만듦니다.

git clone --bare vs2010 vs2010.git

Putty를 이용하여 접속을 하므로, 위와 같이 원격 접속되는 프로파일 (위의 그림에서는 git) 을 만들어 잘 SSH 접속이 되는지 확인합니다.
(가능하면 ssh-keygen 혹은 puttygen 등을 이용한 id_rsa.pub 키를 상대편의 .ssh/authorized_keys 에 넣어주어 암호 없이 접속 하도록 해 줍니다)

이제 기존의 소스는 rename 시킵니다. (나중에 같은 것을 보고 삭제할 것입니다)

W:> ren vs2010 vs2010.old

putty 의 scp인 pscp 명령으로 위와 같이 원격 서버에 디렉터리 통째로 복사해 넣었습니다.

이제 원격 서버에 있던 것을 위와 같이 ssh URL로 cloning 시켜줍니다.
(기존에 있었던 vs2010은 old로 rename 시키거나 삭제 후 해 주시기 바랍니다)

여러 Visual Studio 2010 프로젝트를 빌드한 후, git status 를 확인하였습니다.

git commit -m 'first commit'
을 하고 난 후, 
git push
명령을 주었더니 위와 같이 Git 2.x 버전에서는 

git config --global push.default upstream
을 하라고 하는군요.

git push
명령으로 원격 서버에 로컬 저장소에 commit 한 것을 보내고,

git pull
명령으로 원격 서버에 다른 사용자가 push 시킨 결과를 로컬로 가져옵니다.

이상으로 윈도우에서 Git 를 살펴보았습니다.

Visual Studio용 Extension이 있으나 이상하게 명령행이 더 쉽네요.
(탐색기에 tightly-coupled 되어 있습니다)

어떤 분께는 도움이 되셨기를 바랍니다 ^^




 


How To Create A Custom Page Template In WordPress

by  · 156 COMMENTS

This is a follow-on from my article called: How To Make WordPress Look Like a Website, where we walked through changing which page shows up as the home page for your WordPress website. The idea was to make it look more like a web site rather than a blog.

We changed the front page, but were left with the Page title and Sidebar still. So what if we want to completely customize our home page?

WordPress Page Templates are the answer

WordPress provides a clever way to do this called Custom Page Templates. To create a WordPress Page Template, you’ll need to use your text editor. Go to the directory on your server where you installed WordPress, and then navigate to the directory of your theme. Usually that looks something like this: “/wp-content/themes/default” where “default” is your theme name.

That’s where you will create your custom page template file. Create a file called “cover_page.php” and add the following code to it:

<?php
/*
Template Name: Cover Page
*/
?>

<?php get_header(); ?>
Here's my cover page!
<?php get_footer(); ?>
 

The Template Name: Cover Page tells WordPress that this will be a custom page template, where Cover Page is the name that will show up in the drop down selector when you create your page.

The other lines in this file simply include the header and footer of your blog. You can add any HTML that you want to display on your page in the middle.

That’s it – now you have a custom page template!

Creating a Page Based on Your Custom Page Template

Now all you need to do is create a new Page in WordPress:

Add Page in WordPress Screenshot

and assign your new custom page template to it:
Assign page template in WordPress
Now you will have a completely blank home page, with only the header and footer for your site. You can add ANY code you want to this page and customize it until your heart is content.

One caveat though – you’ll find that any content you put into the “page” you created in the WordPress editor will not show up here. Since you are overriding the page with a custom page template, you’ll need to add your content to the cover_page.php file that you created in order for it to show up.

Once you have the page looking the way you want it, go into Settings -> Reading in your WordPress Admin panel and set the “Front page displays” settings to look like this:

Selecting a static home page in the WordPress Reading Settings

Now your custom page will be the first thing visitors see when they come to your website!

Here’s a video walkthrough: Creating WordPress Page Templates.

Update: watch this video to see how to create a custom page template that is editable from the visual WordPress editor!

See my WordPress Powered Websites series for more WordPress articles, tips and tricks for small business websites.


'공부 > Wordpress' 카테고리의 다른 글

제작한 플러그인에 설정메뉴 넣기  (0) 2012.08.10
위젯 만들기  (0) 2012.08.10
루프문설명  (0) 2012.08.08
워드프레스 템플릿 기본구조 ㅡ  (0) 2012.08.06
관리자모드에 Custom 플러그인 메뉴 추가하기  (0) 2012.08.06


이클립스에서 파일을 작성하게 되면 기본적으로 MS949로 인코딩하게 되어있다.

하지만 나중을 위해서라면 인코딩을 UTF-8로 설정하고 작업하는 편이 좋다.

설정 방법 
Window -> Preferences -> General -> Workspace



위 그림과 같이 Text file encoding 부분을 UTF-8로 바꾸면 된다.



<head>

 이부분에 아래 코드를 추가한다.

</head>


<meta http-equiv="Content-Type" content="text/html" charset="utf-8">


그 후 저장시 utf-8로 저장하기


'공부 > Php' 카테고리의 다른 글

php 파일 include  (0) 2013.01.11
php 파일업로드 크기 제한 설정 php.ini (nginx)  (0) 2013.01.05
for,while문. 문자열자르기, list와 배열  (0) 2012.08.02
php 문법 시간  (0) 2012.07.31
리눅스 아파치 한글깨질때  (0) 2012.07.27

다들 아시다시피 GET과 POST는 HTTP프로토콜을 이용해서 서버에 무언가를 전달할 때 사용하는 방식입니다. 웹개발자라면 당연히 알고 있어야 하는 사항이고 이걸 모르면 웹개발자체를 할 수가 없습니다. 상당히 기초적인 부분이긴 한데 잘 모르시는 분들도 있고 해서 미루고 미루던 포스팅을 이제야 합니다. ㅎㅎ GET과 POST 얘기를 하니까 예전 생각이 납니다. 예전이라고 해봤자 불과 2년밖에 되지 않았군요. 졸업을 앞두고 어떤 회사에 면접을 봤었는데 거기 이사님이 저에게 GET과 POST의 차이점이 뭐냐고 물었었는데 전 그땐 그게 무슨말인지도 몰랐죠. 떨어진 이유가 아마 그거이지 싶네요.. ㅎㅎㅎ(지금 생각하면 창피하군요)



어쨌든 처음 웹개발을 하게 되면 한번쯤은 생각하게 되는 문제 입니다. GET과 POST는 머가 다를까.... 하는.... 저도 처음엔 이게 상당히 궁금했습니다. 흔히 얘기하는 GET과 POST의 차이는 다음과 같습니다.(배울때 당시 이해하던 수준정도로만 적습니다.)

  • GET은 주소줄에 값이 ?뒤에 쌍으로 이어붙고 POST는 숨겨져서(body안에) 보내진다.
  • GET은 URL에 이어붙기 때문에 길이제한이 있어서 많은양의 데이터는 보내기 어렵고 POST는 많은 양의 보내기에도 적합하다.(역시 용량제한은 있지만)
  • 즉 http://url/bbslist.html?id=5&pagenum=2 같이 하는 것이 GET방식이고 form을 이용해서 submit을 하는 형태가 POST입니다.
처음 배울때 배운건 이정도뿐이었던 것 같습니다. 위 내용은 맞는말이긴 하지만 이로썬 해결안되는 문제가 있습니다. 그건 언제 GET을 쓰고 언제 POST를 써야 하는가에 대한 문제였습니다. 이건 신입일때 꽤 오랫동안 생각하고 있었던 문제이기도 하는데 딱히 가르쳐 주는 곳은 없었습니다. 지금와서 보면 책에 이에 대해 나와있는 책들이 상당히 많이 있습니다만 웹표준에서도 그러하듯이 현업의 개발에서는 "원래의 목적에 맞게 기술을 사용하고 있는가?"에 대해서는 크게 관심이 없고 "어떤 기술이든 기능을 구현할 수 있는가?"에만 관심을 가지는 것이 전반적으로 깔려있기 때문에 이런 부분에 대해서 관심을 가지는 개발자는 빈도수로 봤을때 그리 많지 않은 듯 합니다. 어쨌든 쉽게 말하면 클라이언트에서 서버로 데이터를 전송하려면 GET 아니면 POST밖에 없습니다.(사실 HTTP에는 PUT, DELETE등등 몇가지 더 있지만 그건 이글의 범주에서 벗어나서 언급하지 않습니다. 사실은 잘 몰라서 ㅡ..ㅡ HTTP 1.1 스펙  참조)

id를 넘겨서 게시판의 리스트를 가져온다고 하면 당연히 GET을 쓸 것이고 글을 작성한다고 하면 POST를 작성하는 것이 일반적입니다. 전달해야 될 양이 많을 경우에는 고민없이 POST를 쓰게 되지만 양이 많지 않은 경우에는 GET도 되고 POST도 되기 때문에 고민이 시작됩니다. GET을 써야하나 POST를 써야하나. GET을 쓰면 URL이 깔끔해 지는 효과도 있기 때문에 작은 양을 여러개 전달해야 할 경우에는 POST를 써야하는가 하는 고민을 하게됩니다.(상당히 명백한 차이인듯 하면서 실제로 개발하다보면 고민하게 되는 경우가 좀 있더군요. 저만 그런지 모르겠지만...)


Image by dbking  via Flickr 

여기서 위의 언급한 차이점 외에 GET과 POST의 중요한 개념이 있습니다.

GET은 가져오는 것이고 POST는 수행하는 것입니다


이 개념만 잘 생각하고 있으면 상황에 따라서 어느정도 선택을 할 수 있습니다.(물론 그래도 좀 고민되는 예외상황들은 있게 마련이죠.) 좀 자세히 설명하면
 
GET은 Select적인 성향을 가지고 있습니다. GET은 서버에서 어떤 데이터를 가져와서 보여준다거나 하는 용도이지 서버의 값이나 상태등을 바꾸지 않습니다. 게시판의 리스트라던지 글보기 기능 같은 것이 이에 해당하죠.(방문자의 로그를 남긴다거나 글읽은 횟수를 올려준다거나 하는건 예외입니다.) 반면에 POST는 서버의 값이나 상태를 바꾸기 위해서 사용합니다. 글쓰기를 하면 글의 내용이 디비에 저장이 되고 수정을 하면 디비값이 수정이 되죠. 이럴 경우에 POST를 사용합니다. 



이 얘기를 하면 어느곳에서곤 반드시 예시로 나오는 것이 Google의 Accelerator 사건입니다.(대표적으로 예를 들게 이거밖에 없나봅니다. 항상 거론되는걸 보면...) Accelerator라는 것은 그이름대로 웹서핑의 속도를 향상시킬 목적으로 구글이 발표한 것이었습니다. 어떤 웹사이트에 갔을때 페이지에 있는 URL등을 Accelerator가 미리 모두 클릭해봐서 사용자가 해당 URL로 이동하기 전에 이미지등의 미리 받아놓을 수 있는 것들을 받아놓는 역할을 해서 웹서핑의 체감속도를 높여주는 것이 목적이었습니다. 캐시때문에 한번 방문한 사이트는 더 빨리 뜨는 것을 이용한 것이죠.

구글러들은 위에서 언급한 GET과 POST의 개념을 확실히 이해하고 이를 당연하다고 생각하는 사람들이었을 테니 이것이 문제가 될꺼라고는 전혀 생각지 못한듯 합니다. 하지만 현실은 그렇지 않죠. 실제 많은 개발자들은 GET과 POST를 용도구분없이 혼용해서 사용했고 Delete같은 곳에도 GET방식을 편의대로 이용한 것입니다. Accelerator는 이것을 구분하지 못하니 URL만 보였다 싶으면 냅다 클릭을 해댄 것이고 사용자가 클립한 것이 아닌 Bot이 직접 URL로 접근해버리자 해당 데이터들은 Delete를 수행해버려서 메일이나 게시글이 마구 지워지는 사태가 발생하였습니다. 좋은 의도였는데 상당히 안좋은 결과가 되었죠. 우리가 모두 이걸 지켰다면 훨씬 좋은 웹 환경이 됐을 텐데요.



그리고 가져오는 곳에 GET을 사용해야 하는 이유가 하나 더 있습니다. 얼마전에도 관련해서 포스팅한 적이 있지만 웹의 핵심이라고 할 수 있는 Link문제입니다. 기본적으로 웹에서 모든 리소스는 Link할 수 있는 URL을 가지고 있어야 합니다.(퍼머링크(permalink)1퍼머링크라면 더 좋겠지만 꼭 퍼머링크가 아니라고 하더라도) 그래야 Link를 할 수 있으니까요. 쉽게 말하면 어떤 페이지를 보고 있을때 다른 사람한테 그 주소를 주기 위해서 주소창의 URL을 복사해서 줄 수 있어야 한다는 것입니다. POST를 할 결우에는 값이 내부적으로 전달되기 때문에 URL만 전달할 수 없죠. 글을 저장하는 경우에는 URL을 제공할 필요가 없기 때문에 POST를 해도 상관이 없는 것이고요.

다른 것들에서도 그렇듯이 GET과 POST도 그냥 만들어진 것이 아니기 때문에 스펙에 정의된 용도대로 사용한다면 위에 언급한대로 부가적으로 얻을 수 있는 이익이 많이 있고 전체 웹을 생각해도 올바르다고 생각합니다.
Footnote.
  1. 는 인터넷에서 특정 페이지의 고유한 URL 주소를 뜻한다. 이 주소는 어떤 상황에도 관계없이 항상 동일한 내용을 가지는 페이지로 링크된다는 의미에서, 고유(permanant)한 주소라는 뜻의 permanant link를 줄여 만든 말이다. 한국어로 고유링크, 고유주소 등으로 부르기도 한다. - Wikipedia 발췌 - [Back]


+ Recent posts