<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>기억하고 싶은 것들</title>
		<link>http://blog.sangpire.pe.kr/</link>
		<description>My Code of The Week</description>
		<language>ko</language>
		<pubDate>Thu, 03 May 2012 12:52:25 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<managingEditor>sangpire</managingEditor>
		<item>
			<title>java, 변수 초기화 영역(= Initialization Block)</title>
			<link>http://blog.sangpire.pe.kr/126</link>
			<description>&lt;div&gt;
	&lt;h3&gt;초기화 코드를 넣는 Initialization Blocks&lt;/h3&gt;
	&lt;div&gt;
		&lt;h4&gt;Static Initialization Block&lt;/h4&gt;
		&lt;p&gt;자바 코드들을 읽다 보면 다음과 같은 코드가 쉽게 눈에 띈다&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
class Whatever {
	public static final int myInt; 
	static { 
		myInt = 4444;
	}
}
&lt;/pre&gt;
		&lt;p&gt;바로 static 초기화 블럭이다&lt;/p&gt;
		&lt;p&gt;클래스가 생성되는 시점에 초기화 되는 코드&lt;/p&gt;
		&lt;p&gt;그런데, 오늘 신기한 녀석을 &lt;a href=&quot;http://stackoverflow.com/questions/3798083/is-there-a-best-practice-for-writing-maps-literal-style-in-java&quot;&gt;StaticOverflow - Is there a best practice for writing maps literal style in Java?&lt;/a&gt;에서 발견했다.&lt;/p&gt;
	&lt;/div&gt;
	&lt;div&gt;
		&lt;h4&gt;Instance Initialization Block&lt;/h4&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Map map = new HashMap() {
	{
		put(&quot;foo&quot;, &quot;bar&quot;);
		put(123, 456);
	}
};
&lt;/pre&gt;
	&lt;p&gt;객체 초기화 블럭, 이런 녀석도 있었다.&lt;/p&gt;
	&lt;p&gt;정말 동작하는지 공식 문서를 찾아보니 &lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html&quot;&gt;The Java Tutorials - Initializing Fields&lt;/a&gt;에 떡하니 쓰여있는 내용&lt;/p&gt;
	&lt;blockquote&gt;
		Normally, you would put code to initialize an instance variable in a constructor. There are two alternatives to using a constructor to initialize instance variables: &lt;em&gt;initializer blocks&lt;/em&gt; and &lt;em&gt;final methods.&lt;/em&gt;
		&lt;small&gt;The Java Tutorials&lt;/small&gt;
	&lt;/blockquote&gt;
	&lt;p&gt;즉, 생성자에서 변수를 초기화 하는 방법을 대신해서 객체의 변수 값을 초기화 하는 방법은 &lt;em&gt;초기화 블럭&lt;/em&gt; 과 &lt;em&gt;파이널 메소드&lt;/em&gt; 이다. 라고...&lt;/p&gt;
	&lt;p&gt;파이널 메소드 방법은 공식 문서 참조.&lt;/p&gt;
	&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-126-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-126-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=blog.sangpire.pe.kr/126&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>Computer</category>
			<category>initialization block</category>
			<category>Java</category>
			<category>초기화</category>
			<author>sangpire</author>
			<guid>http://blog.sangpire.pe.kr/126</guid>
			<comments>http://blog.sangpire.pe.kr/126#entry126comment</comments>
			<pubDate>Mon, 30 Apr 2012 19:34:25 +0900</pubDate>
		</item>
		<item>
			<title>스프링 프레임워크 웹 컨트롤러 테스트 코드 작성하기.</title>
			<link>http://blog.sangpire.pe.kr/125</link>
			<description>&lt;div&gt;
	&lt;h3&gt;스프링 프레임웍 에서 웹 컨트롤러 테스트하기.&lt;/h3&gt;
	&lt;p&gt;참고로 난 JUnit, Springframework 에 대한 이해가 매우 낮음.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
import static org.springframework.test.web.ModelAndViewAssert.*;
import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.servlet.HandlerAdapter;
import org.springframework.web.servlet.ModelAndView;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { &quot;classpath:spring/mvc-test.xml&quot;})
public class IndexControllerTest {

	@Autowired
	private XxxController controller;

	@Autowired
	private ApplicationContext applicationContext;
	private HandlerAdapter handlerAdapter;
	private MockHttpServletRequest request;
	private MockHttpServletResponse response;

	@Before
	public void setUp() {
		request = new MockHttpServletRequest();
		response = new MockHttpServletResponse();
		handlerAdapter = applicationContext.getBean(HandlerAdapter.class);
	}

	@Test
	public void testIndexController() throws Exception {
		request.setRequestURI(&quot;/index.daum&quot;);
		final ModelAndView mav = handlerAdapter.handle(request, response, controller);
		assertViewName(mav, &quot;/main/index&quot;);
	}
}
&lt;/pre&gt;
	&lt;p&gt;위에 코드에는 모르는 내용이 수두룩 하지만 당장 &lt;code&gt;testIndexController()&lt;/code&gt; 코드만 살펴보기로 함.&lt;/p&gt;
	&lt;p&gt;&lt;code&gt;MockHttpServletRequest&lt;/code&gt; 객체에 테스트 하고 싶은 URI 를 설정함&lt;p&gt;
	&lt;p&gt;&lt;code&gt;HandlerAdapter&lt;/code&gt;에 해당 &lt;code&gt;request&lt;/code&gt; 를 넣어 &lt;code&gt;ModelAndView&lt;/code&gt;객체를 구해 옮.&lt;/p&gt;
	&lt;p&gt;그리고 구해 놓은 &lt;code&gt;ModelAndView&lt;/code&gt; 의 객체 내용을 하나하나 확인.&lt;/p&gt;
	&lt;div&gt;
		&lt;h4&gt;가볍게 살펴보는 모르는 것들.&lt;/h4&gt;
		&lt;dl&gt;
			&lt;dt&gt;ApplicationContext&lt;/dt&gt;
			&lt;dd&gt;
				&lt;blockquote&gt;
					org.springframework.context.ApplicationContext 인터페이스는 BeanFactory인터페이스를 상속받은 하위 인터페이스로서 BeanFactory가 제공하는 빈 관리 기능 이외에 파일과 같은 자원 처리 추상화, 메시지 지원 및 국제화 지원, 이벤트 지원 등 추가 적인 기능을 제공하고 있다.
					&lt;small&gt;웹 개발자를 위한 스프링 2.5 프로그래밍 중.&lt;/small&gt;
				&lt;/blockquote&gt;
				&lt;p&gt;무슨 소리인지 잘 모르겠음. 아마 스프링 실행 문맥 이 아닐까 생각됨, 거기서 BeanFactory의 getBean() 메서드를 이용하여 HandlerAdapter 객체를 가져오는 목적으로 사용된 듯.&lt;/p&gt;
			&lt;/dd&gt;
			&lt;dt&gt;HandlerAdapter&lt;/dt&gt;
			&lt;dd&gt;
				&lt;blockquote&gt;
					Helps the DispatcherServlet to invoke a handler mapped to a request regardless of the handler is actually invoked. For example, invoking an annotated controller requires resolving various annotations. Thus the main purpose of a HandlerAdapter is to shield the DispatcherServlet from such details.
					&lt;small&gt;&lt;a href=&quot;http://static.springsource.org/spring/docs/current/spring-framework-reference/htmlsingle/spring-framework-reference.html#mvc-servlet-special-bean-types&quot;&gt;Spring Framework Reference Documentation&lt;/a&gt;&lt;/small&gt;
				&lt;/blockquote&gt;
				&lt;p&gt;DispatcherServlet 이 request 에 맞는 handler 를 호출하는 것을 돕는 녀석이란 뜻인가?&lt;/p&gt;
			&lt;/dd&gt;
		&lt;/dl&gt;
	&lt;/div&gt;
	&lt;p&gt;뭔가 아직 모르는게 너무 많음을 확인한 포스팅, 이 낙서의 요점은, 위 코드 이다! 웹 컨트롤러 테스트 코드 작성할 때 빈번하게 쓰일 것 같은 내용이라 이곳에 정리.&lt;/p&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-125-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-125-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=blog.sangpire.pe.kr/125&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>Computer</category>
			<category>JUnit</category>
			<category>springframework</category>
			<category>Web Controller Testing</category>
			<category>스프링 프레임워크</category>
			<category>테스팅</category>
			<author>sangpire</author>
			<guid>http://blog.sangpire.pe.kr/125</guid>
			<comments>http://blog.sangpire.pe.kr/125#entry125comment</comments>
			<pubDate>Mon, 30 Apr 2012 12:40:01 +0900</pubDate>
		</item>
		<item>
			<title>java, import static</title>
			<link>http://blog.sangpire.pe.kr/124</link>
			<description>&lt;div&gt;
&lt;h3&gt;누구냐 넌 &lt;em&gt;import static&lt;/em&gt;!?&lt;/h3&gt;
&lt;p&gt;매번 Static 메서드의 클래스를 입력하지 않아도 되는 방법!, 아래 &lt;code&gt;ModelAndViewAssert.assertViewName(...)&lt;/code&gt; 처럼. &lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
...
import static org.springframework.test.web.ModelAndViewAssert.*;
...

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { &quot;classpath:spring/test.xml&quot; })
public class ControllerTest {

	@Autowired
	private Controller controller;

	@Test
	public void viewNameTest() {
		ModelAndView mav = controller.index();
		assertViewName(mav, &quot;/main/index&quot;);
	}
}
&lt;/pre&gt;
&lt;blockquote&gt;
static 메소드나 static 변수를 접근하기 위해 해당 클래스의 이름과 함께 써 주어야 한다. 하지만 유틸리티성 메소드나 상수의 경우 일일이 클래스 이름을 써주기 귀찮은 경우가 있는데 이 경우 static import를 사용하면 클래스 이름 없이 static 메소드나 static 변수 이름만으로 사용할 수 있다.
&lt;small&gt;&lt;a href=&quot;http://entireboy.egloos.com/3954885&quot;&gt;Sigel's house made of ice 。。。블로그 본문&lt;/a&gt;&lt;/small&gt;
&lt;/blockquote&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-124-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-124-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=blog.sangpire.pe.kr/124&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>Computer</category>
			<category>Import</category>
			<category>Java</category>
			<category>static</category>
			<category>임폴트</category>
			<category>자바</category>
			<author>sangpire</author>
			<guid>http://blog.sangpire.pe.kr/124</guid>
			<comments>http://blog.sangpire.pe.kr/124#entry124comment</comments>
			<pubDate>Fri, 27 Apr 2012 19:22:27 +0900</pubDate>
		</item>
		<item>
			<title>vim, 자주 까먹는 명령어 J - Join lines</title>
			<link>http://blog.sangpire.pe.kr/123</link>
			<description>&lt;div id=&quot;&quot;&gt;
	&lt;h3&gt;vim 명령어 'J'&lt;/h3&gt;
	&lt;p&gt;필요할 때마다 생각나지 않는 vim 명령어. 대문자 J&lt;/p&gt;
	&lt;p&gt;아래 줄을 가져와 공백을 제거하고, 뒤에 붙히는 명령어&lt;/p&gt;
	&lt;blockquote&gt;
		Join [count] lines, with a minimum of two lines. Remove the indent and insert up to two spaces (see below).
		&lt;small&gt;VIM - main help file&lt;/small&gt;
	&lt;/blockquote&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-123-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-123-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=blog.sangpire.pe.kr/123&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>Computer</category>
			<category>j</category>
			<category>Join line</category>
			<category>VIM</category>
			<author>sangpire</author>
			<guid>http://blog.sangpire.pe.kr/123</guid>
			<comments>http://blog.sangpire.pe.kr/123#entry123comment</comments>
			<pubDate>Fri, 27 Apr 2012 12:02:48 +0900</pubDate>
		</item>
		<item>
			<title>Javascript, 정규표현식 관련 메서드 정리.</title>
			<link>http://blog.sangpire.pe.kr/122</link>
			<description>&lt;div&gt;
	&lt;h3&gt;String 객체&lt;/h3&gt;
	&lt;div&gt;
		&lt;h4&gt;.search(정규표현식 | 문자열)&lt;/h4&gt;
		&lt;p&gt;정규표현식을 전달인자, 가장처음 매칭되는 위치를 반환, 매칭이 없다면 -1을 반환&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
&quot;JavaScript&quot;.search(/script/i);
&lt;/pre&gt;
	&lt;/div&gt;
	&lt;div&gt;
		&lt;h4&gt;.replace(정규표현식 | 문자열, 교체할 문자열 | 함수)&lt;/h4&gt;
	&lt;p&gt;'g'가 있음 모든 매칭 문자열 교체,&lt;/p&lt;p&gt;
&lt;p&lt;p&gt;만약 교체할 문자열에 $숫자 가 나오면, 숫자 번째 매칭된 부분 문자열로 치환됨.&lt;/p&gt;
&lt;p&lt;p&gt;두번째 인자로 교체될 문자열을 동적으로 계산하는 함수 가능 &lt;/p&gt;
	&lt;/div&gt;
	&lt;div&gt;
		&lt;h4&gt;.match(정규표현식)&lt;/h4&gt;
		&lt;p&gt;매치된 결과를 배열로 반환. g의 유무에 따라 아래와 같은 결과&lt;/p&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
&quot;1=a plus 2=bb equals 3=c&quot;.match(/(\d+)=(\w)/); // =&amp;gt; [&quot;1=a&quot;, &quot;1&quot;, &quot;a&quot;]
&quot;1=a plus 2=bb equals 3=c&quot;.match(/(\d+)=(\w)/g); // =&amp;gt; [&quot;1=a&quot;, &quot;2=b&quot;, &quot;3=c&quot;]
&lt;/pre&gt;

		&lt;p&gt;g 가 없음,리턴값에 index 프로퍼티가 존재하게 되며, 이는 매칭이 시작된 위치.&lt;/p&gt;
		&lt;p&gt;input 프로퍼티가 존재, 이는 검색 대상 문자열의 사본.&lt;/p&gt;
		&lt;p&gt;s.match(r) 은 r.exec(s)와 같은 값을 반환.&lt;/p&gt;
	&lt;/div&gt;
	&lt;div&gt;
		&lt;h4&gt;.split(문자 | 정규표현식)&lt;/h4&gt;
		&lt;p&lt;p&gt;전달인자를 분리 기준으로 문자열을 쪼개 배열을 리턴.&lt;/p&gt;
	&lt;/div&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h3&gt;RegExp 객체&lt;/h3&gt;
	&lt;p&gt;문자열 리터럴과 정규표현식은 둘다 '\'를 이스케이프 시퀀스로 사용하기 때문에 RegExp 생성자의문자열 리터럴로 전달할 때는 '\'를 '\\'로 바꿔야 한다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
new RegExp(&quot;\\d{}5&quot;, &quot;g&quot;)
&lt;/pre&gt;
	&lt;div&gt;
	&lt;h4&gt;.exec(문자열)&lt;/h4&gt;
	&lt;p&gt;매치된 부분이 없다면 null 리턴, 매치된 부분이 있다면 배열 리턴, [매치된 문자열, 괄호1, ...]&lt;/p&gt;
	&lt;p&gt;index 프로퍼티에  매치가 일어난 idx 저장.&lt;/p&gt;
	&lt;p&gt;input 프로퍼티에 검색 대상 문자열. 참조?&lt;/p&gt;
	&lt;p&gt;g 플래그 무시&lt;/p&gt;
	&lt;p&gt;* 정규표현식 lastIndex 속성에 다음 매치를 시작할 idx값 저장.&lt;/p&gt;
	&lt;p&gt;처음부터 다시 검색하려면 반듯시 0으로 초기화 해야 함.&lt;/p&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;
while((result = pattern.exec(text)) != null) {
  ... 반복 처리..
}
&lt;/pre&gt;
	&lt;/div&gt;
	&lt;div&gt;
		&lt;h4&gt;.test(문자열)&lt;/h4&gt;
		&lt;p&gt;매치되는 부분이 있음 true 아님 false를 리턴.&lt;/p&gt;
		&lt;p&gt;.lastIndex가 가르키는 위치에서 검색을 시작.&lt;/p&gt;
	&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;well&quot;&gt;
  &lt;h3&gt;예제코드&lt;/h3&gt;
&lt;iframe style=&quot;width: 100%; height: 500px&quot; src=&quot;http://jsfiddle.net/sangpire/kPyAz/embedded/&quot; allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-122-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-122-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=blog.sangpire.pe.kr/122&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>Computer</category>
			<category>JavaScript</category>
			<category>regExp</category>
			<category>자바스크립트</category>
			<category>정규표현식</category>
			<author>sangpire</author>
			<guid>http://blog.sangpire.pe.kr/122</guid>
			<comments>http://blog.sangpire.pe.kr/122#entry122comment</comments>
			<pubDate>Fri, 27 Apr 2012 02:07:41 +0900</pubDate>
		</item>
		<item>
			<title>HTML, A태그에 자바스크립트 함수 연결하기.</title>
			<link>http://blog.sangpire.pe.kr/121</link>
			<description>&lt;div&gt;
	&lt;h4&gt;a태그의 href속성에 자바스크립트 함수 연결하기&lt;/h4&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;a href=&quot;javascript:theFunc();&quot; &amp;gt;펑션&amp;lt;/a&amp;gt;
&lt;/pre&gt;
	&lt;p&gt;예전에 어디에선가 링크로 연결해야 하면, a 태그를 쓰고, 자바스크립트 함수를 연결해야 하면, button 태그를 쓰란 말을 들은 적이 있습니다.&lt;/p&gt;
	&lt;p&gt;하지만 기존에 a 태그로 되어 있고, 이를 자바스크립트 이벤트 핸들러에 연결해야 하는 경우라면, 더욱이 button 으로 고치면 디자인이 깨지는 경우라면, 그냥 아래와 같이 쓰기로 마음 먹었습니다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;a href=&quot;javascript:;&quot; onclick=&quot;theFunc();&quot; &amp;gt;펑션&amp;lt;/a&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-121-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-121-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=blog.sangpire.pe.kr/121&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>Computer</category>
			<category>a tag</category>
			<category>Anchor</category>
			<category>href</category>
			<category>JavaScript</category>
			<category>onclick</category>
			<author>sangpire</author>
			<guid>http://blog.sangpire.pe.kr/121</guid>
			<comments>http://blog.sangpire.pe.kr/121#entry121comment</comments>
			<pubDate>Fri, 09 Mar 2012 00:30:02 +0900</pubDate>
		</item>
		<item>
			<title>CoffeeScript, prototype의 단축 표현 '::'</title>
			<link>http://blog.sangpire.pe.kr/120</link>
			<description>&lt;h3&gt;CoffeeScipt 에서 prototype 사용법&lt;/h3&gt;

&lt;div&gt;
	&lt;h4&gt;JavaScript Prototype&lt;/h4&gt;
	&lt;p&gt;JavaScript에서 prototype은 해당 클래스의 모든 인스턴스가 공유하는 메소드입니다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
String.prototype.bark = function() {
	return &quot;멍멍!!&quot;;
};
String(&quot;강아지&quot;).bark(); // 멍멍!!
&quot;Dog&quot;.bark();		// 멍멍!!
&quot;고양이&quot;.bark();		// 멍멍!!
&lt;/pre&gt;
	&lt;p&gt;그런데 &lt;code&gt;.prototype.&lt;/code&gt; 이거 입력이 은근 귀찮습니다.&lt;/p&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;CoffeeScript Prototype&lt;/h4&gt;
	&lt;p&gt;커피스크립트에서는 &lt;code&gt;::&lt;/code&gt; 연산자로 &lt;code&gt;.prototype.&lt;/code&gt;을 대신합니다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
String::bark = -&gt; &quot;멍멍!!&quot;
String(&quot;강아지&quot;).bark()		## 멍멍!!
&quot;Dog&quot;.bark()			## 멍멍!!
&quot;고양이&quot;.bark()			## 멍멍!!
&lt;/pre&gt;
	&lt;p&gt;가끔 prototype의 메소드를 static 메소드인양 쓰고 싶다면 그냥 쓰면 됩니다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
String::bark() ##&quot;멍멍!!&quot;
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;보다 완벽한 내용은 CoffeeScript 홈페이지에서...&lt;/h4&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;http://coffeescript.org/#classes&quot;&gt;Class에 관한 내용&lt;/a&gt; 바로 다음에 나오네요.&lt;/li&gt;
	&lt;/ul&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-120-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-120-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=blog.sangpire.pe.kr/120&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>Computer</category>
			<category>::</category>
			<category>Coffeescript</category>
			<category>Prototype</category>
			<author>sangpire</author>
			<guid>http://blog.sangpire.pe.kr/120</guid>
			<comments>http://blog.sangpire.pe.kr/120#entry120comment</comments>
			<pubDate>Mon, 30 Jan 2012 22:29:19 +0900</pubDate>
		</item>
		<item>
			<title>vim,  오늘 .vimrc 에 추가된 설정 정보.</title>
			<link>http://blog.sangpire.pe.kr/119</link>
			<description>&lt;h3&gt;vim, 탭이나 개행문자를 보고싶어요.&lt;/h3&gt;

&lt;div&gt;
	&lt;h4&gt;list mode&lt;/h4&gt;
	&lt;blockquote&gt;List mode: Show tabs as CTRL-I is displayed, display $ after end of line.&lt;/blockquote&gt;
	&lt;p&gt;즉, list mode로 들어가면, 탭문자와 줄바꿈 문자가 화면에 표시되게 됩니다. 그리고 list mode는 다음 명령으로 들어갈 수 있습니다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;:set list
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;'listchars'&lt;/h4&gt;
	&lt;p&gt;list 모드에서, 탭 문자나, 개행문자를 '→'  '↵' 와 같은 문자로... 나타나게 할 수 있습니다.(인코딩이 UTF-8인 경우, UTF-8 문자도 사용 가능.)&lt;/p&gt;
	&lt;p&gt;그리고 탭문자나 개행문자 이외에도 다음과 같은 문자들을 지원합니다.&lt;/p&gt;
	&lt;table class=&quot;zebra-striped&quot;&gt;
		&lt;tbody&gt;&lt;tr&gt;
			&lt;td&gt;eol:c&lt;/td&gt;
			&lt;td&gt;개행문자 'c'로 표시&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tab:xy&lt;/td&gt;
			&lt;td&gt;탭문자 첫 글자는 'x'로 이후는 탭 너비에 따라 하나 이상의 'y'를 표시&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;trail:c&lt;/td&gt;
			&lt;td&gt;구문이 끝난뒤 들어간 불필요한 공백문자를 'c'로 표시&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;extends:c&lt;/td&gt;
			&lt;td&gt;vim이 'nowrap' 상태에서 화면을 뚫고 넘어간 문장이 있는 라인 오른쪽에 'c'표시&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;precedes:c&lt;/td&gt;
			&lt;td&gt;마찬가지로 'nowrap' 상태에서 오른쪽으로 길게 편잡중일때 화면에 가려진 왼쪽 영역에 'c'를 표시&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;conceal:c&lt;/td&gt;
			&lt;td&gt;'conceallevel'이 1인경우, 숨김문자(?, Concealed Text)영역에 'c' 표시.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;nbsp:c&lt;/td&gt;
			&lt;td&gt;&lt;a href=&quot;http://ko.wikipedia.org/wiki/%EC%A4%84_%EB%B0%94%EA%BF%88_%EC%97%86%EB%8A%94_%EA%B3%B5%EB%B0%B1&quot;&gt;줄 바꿈 없는 공백(Non-Breakable Space)&lt;/a&gt;를 'c'로 표시&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;&lt;/table&gt;
	&lt;p&gt;위 설정들 중 몇몇을 복합적으로 설정하려면 다음과 같은 방법으로 설정합니다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;:set lcs=tab:&amp;gt;-,trail:-
:set lcs=tab:&amp;gt;-,eol:&amp;lt;,nbsp:%
:set lcs=extends:&amp;gt;,precedes:&amp;lt;
&lt;/pre&gt;
	&lt;p&gt;기존의 lcs 속성에 새로운 속성을 추가하려면 다음과 같이 입력하면 됩니다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;:set lcs+=nbsp:_
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;색을 다르게..&lt;/h4&gt;
	&lt;p&gt;탭이나 줄바꿈 기호가 들어간 뒤로 코드가 더 지저분해진 경우 다음의 명령으로, 해당 기호의 색을 배경색과 비슷하게 수정할 수 있습니다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;hi NonText ctermfg=7 guifg=gray
hi SpecialKey ctermfg=7 guifg=gray
&lt;/pre&gt;
	&lt;p&gt;&quot;eol&quot;, &quot;extends&quot; 그리고 &quot;precedes&quot;는 &lt;strong&gt;NonText&lt;/strong&gt;으로 &quot;nbsp&quot;, &quot;tab&quot; 그리고 &quot;trail&quot;은 &lt;strong&gt;SpecialKey&lt;/strong&gt;로 화면 표시 전/배경 색을 수정해 주면 됩니다.&lt;/p&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;최종 모습&lt;/h4&gt;
&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://cfile30.uf.tistory.com/original/1757D53C4F114102049564&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile30.uf.tistory.com/image/1757D53C4F114102049564&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;스크린샷 2012-01-14 오후 5.46.11.png&quot; height=&quot;284&quot; width=&quot;461&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-119-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-119-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=blog.sangpire.pe.kr/119&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>Computer</category>
			<category>conceal</category>
			<category>LCS</category>
			<category>list</category>
			<category>listchars</category>
			<category>nbsp</category>
			<category>Trail</category>
			<category>VI</category>
			<category>VIM</category>
			<category>vimrc</category>
			<author>sangpire</author>
			<guid>http://blog.sangpire.pe.kr/119</guid>
			<comments>http://blog.sangpire.pe.kr/119#entry119comment</comments>
			<pubDate>Fri, 13 Jan 2012 00:55:57 +0900</pubDate>
		</item>
		<item>
			<title>CoffeeScript, CoffeeScript 가 바로 생각나지 않는 JavaScript 코드들.</title>
			<link>http://blog.sangpire.pe.kr/118</link>
			<description>&lt;div&gt;
	&lt;h4&gt;&quot;setTimeout&quot; on JavaScript.&lt;/h4&gt;
	&lt;p&gt;&lt;code&gt;setTimeout&lt;/code&gt; 은 자바스크립트에서 자주 쓰이는 평범한 함수의 형태입니다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
setTimeout(function(){
	eat('food');
}, 6000);
&lt;/pre&gt;
	&lt;p&gt;CoffeeScript 코드로 바꾸려면 어떻게 해야 할까요?&lt;/p&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;&quot;setTimeout&quot; on CoffeeScript.&lt;/h4&gt;
	&lt;p&gt;저는 이렇게 작성했습니다. 바로 생각이 나지 않더군요.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
setTimeout ()-&gt;
    eat 'food'
  , 6000
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;&quot;assert.response&quot; on JavaScript&lt;/h4&gt;
	&lt;p&gt;JavaScript TDD 프레임웍인 &lt;a href=&quot;http://visionmedia.github.com/expresso/&quot;&gt;expresso&lt;/a&gt;에서 &lt;code&gt;assert.response&lt;/code&gt; 는 이렇게 생겼습니다.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
assert.response(server, {
		url: '/foo',
		method: 'POST',
		data: 'bar baz'
	}, {
		body: '/foo bar baz',
		status: 200
	}, function(res){
	// All done, do some more tests if needed
	});
&lt;/pre&gt;
	&lt;p&gt;커피 스크립트로, 어떻게 작성해야 할까요?&lt;/p&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;&quot;assert.response&quot; on CoffeeScript&lt;/h4&gt;
	&lt;p&gt;많은 변종을 거쳐서 다음과 같은 코드가 작성되었습니다. &lt;a href=&quot;http://jashkenas.github.com/coffee-script/#try:assert.response%20server%0A%20%20%2C%20%0A%20%20%20%20url%3A%20'%2Ffoo'%0A%20%20%20%20method%3A%20'POST'%0A%20%20%20%20data%3A%20'bar%20baz'%0A%20%20%2C%0A%20%20%20%20body%3A%20'%2Ffoo%20bar%20baz'%0A%20%20%20%20status%3A%20200%0A%20%20%2C%0A%20%20%20%20(res)%20-%3E%0A%20%20%20%20%20%20%23%20All%20done%2C%20do%20some%20more%20tests%20if%20needed&quot;&gt;테스트 링크&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
assert.response server
  , 
    url: '/foo'
    method: 'POST'
    data: 'bar baz'
  ,
    body: '/foo bar baz'
    status: 200
  ,
    (res) -&gt;
      # All done, do some more tests if needed
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;뭘 기억하고 싶은 거냐면...&lt;/h4&gt;
	&lt;p&gt;CoffeeScript 코드를 작성하다 자주 오류가 나는 부분을 정리해 놓은 것입니다.&lt;/p&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-118-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-118-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=blog.sangpire.pe.kr/118&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>Computer</category>
			<category>Coffeescript</category>
			<category>JavaScript</category>
			<category>자바스크립트</category>
			<category>커피스크립트</category>
			<author>sangpire</author>
			<guid>http://blog.sangpire.pe.kr/118</guid>
			<comments>http://blog.sangpire.pe.kr/118#entry118comment</comments>
			<pubDate>Sat, 10 Dec 2011 10:00:58 +0900</pubDate>
		</item>
		<item>
			<title>Ruby, accessors 란?</title>
			<link>http://blog.sangpire.pe.kr/117</link>
			<description>&lt;h3&gt;Ruby, accessors&lt;small&gt;The Day of Code&lt;/small&gt;&lt;/h3&gt;

&lt;div&gt;
	&lt;h4&gt;attr_reader, attr_accessor 는 뭘까요?&lt;/h4&gt;
	&lt;p&gt;흥미만 잔뜩 있던, Ruby에 대해서 알고 싶기도 하고, 리팩터링 책도 읽지 못해본 상태라, 두마리 토끼를 잡아보려, &lt;a href=&quot;http://book.daum.net/detail/book.do?bookid=BOK0001498474211&quot;&gt;&quot;리팩토링:루비 에디션&quot;&lt;/a&gt; 을 읽고 있습니다.&lt;/p&gt;
	&lt;p&gt;그런데 첫 코드에서 막혀 버렸습니다.&lt;/p&gt;
	&lt;p&gt;나머지는 대충 알겠는데, &lt;code&gt;attr_reader&lt;/code&gt;, &lt;code&gt;attr_accessor&lt;/code&gt; 요녀석들은 뭘까요?&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
class Movie
  REGULAR = 0
  NEW_RELEASE =1
  CHILDRENS =2
  
  attr_reader :title
  attr_accessor :price_code
  
  def initialize(title, price_code)
    @title, @price_code = title, price_code
  end
end
&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;Accessors&lt;/h4&gt;
	&lt;p&gt;Yukihiro Matsumoto 님의 &lt;a href=&quot;http://www.rubyist.net/~slagell/ruby/&quot;&gt;Ruby User’s Guide&lt;/a&gt;에 쉽게 설명이 있네요.&lt;/p&gt;
	&lt;table class=&quot;zebra-striped&quot;&gt;
		&lt;thead&gt;
			&lt;tr&gt;&lt;th&gt;Shortcut&lt;/th&gt;&lt;th&gt;Effect&lt;/th&gt;&lt;/tr&gt;
		&lt;/thead&gt;
		&lt;tbody&gt;
			&lt;tr&gt;&lt;td&gt; attr_reader :v  &lt;/td&gt;&lt;td&gt;  def v; @v; end &lt;/td&gt;&lt;/tr&gt;
			&lt;tr&gt;&lt;td&gt; attr_writer :v  &lt;/td&gt;&lt;td&gt;  def v=(value); @v=value; end  &lt;/td&gt;&lt;/tr&gt;
			&lt;tr&gt;&lt;td&gt; attr_accessor :v  &lt;/td&gt;&lt;td&gt;  attr_reader :v; attr_writer :v  &lt;/td&gt;&lt;/tr&gt;
			&lt;tr&gt;&lt;td&gt; attr_accessor :v, :w  &lt;/td&gt;&lt;td&gt;  attr_accessor :v; attr_accessor :w &lt;/td&gt;&lt;/tr&gt;
		&lt;/tbody&gt;
	&lt;/table&gt;
&lt;/div&gt;

&lt;div&gt;
	&lt;h4&gt;Links&lt;/h4&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.rubyist.net/~slagell/ruby/accessors.html&quot;&gt;Ruby User's Guide :: Accessors&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-117-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-117-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=blog.sangpire.pe.kr/117&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>Computer</category>
			<category>accessors</category>
			<category>RUBY</category>
			<category>루비</category>
			<author>sangpire</author>
			<guid>http://blog.sangpire.pe.kr/117</guid>
			<comments>http://blog.sangpire.pe.kr/117#entry117comment</comments>
			<pubDate>Thu, 01 Dec 2011 07:51:44 +0900</pubDate>
		</item>
	</channel>
</rss>
