<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>빛을 담고 세상 넓히기 &#187; API</title>
	<atom:link href="http://fantazic.com/archives/tag/api/feed" rel="self" type="application/rss+xml" />
	<link>http://fantazic.com</link>
	<description>마음의 빛으로 넓은 세상을 비추고 싶다. JAVA, 고양이, 사진들이 있는 곳.</description>
	<lastBuildDate>Fri, 20 Aug 2010 14:40:50 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>공용 라이브러리 만들기의 어려움</title>
		<link>http://fantazic.com/archives/23</link>
		<comments>http://fantazic.com/archives/23#comments</comments>
		<pubDate>Wed, 08 Feb 2006 02:49:23 +0000</pubDate>
		<dc:creator>따지크</dc:creator>
				<category><![CDATA[Software & Developer]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[라이브러리]]></category>

		<guid isPermaLink="false">http://fantazic.com/?p=23</guid>
		<description><![CDATA[
Tweet

프로그래밍을 한다는 것은 자기자신과 컴퓨터간의 대화인 경우가 많다. 프로그램 개발은 요구사항에 따라 컴퓨터가 바르게 동작하도록 언어의 규칙에 맞게 하나의 완성품을 만들어가는 과정이다.
그런데 이 과정에서 여러명의 개발자가 협업을 하게 되면 서로간의 코딩 규약을 지키고 일정을 맞추고 재사용성이 가능한 콤포넌트를 개발하는데 집중하게 된다.
더 나아가 팀내에서 공용으로 사용하게 되는 라이브러리를 개발하는 경우 신경 써야하는 것들이 늘어나고 다양한 언어와 [...]]]></description>
			<content:encoded><![CDATA[<div style="display:block;margin-left: 10px; margin-bottom: 10px;">
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://fantazic.com/archives/23" data-text="공용 라이브러리 만들기의 어려움" data-count="horizontal" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
</div>
<p>프로그래밍을 한다는 것은 자기자신과 컴퓨터간의 대화인 경우가 많다. 프로그램 개발은 요구사항에 따라 컴퓨터가 바르게 동작하도록 언어의 규칙에 맞게 하나의 완성품을 만들어가는 과정이다.</p>
<p>그런데 이 과정에서 여러명의 개발자가 협업을 하게 되면 서로간의 코딩 규약을 지키고 일정을 맞추고 재사용성이 가능한 콤포넌트를 개발하는데 집중하게 된다.</p>
<p>더 나아가 팀내에서 공용으로 사용하게 되는 라이브러리를 개발하는 경우 신경 써야하는 것들이 늘어나고 다양한 언어와 환경을 고려해야 하는 상황에 직면하게 된다.</p>
<p><strong>최근 Ajax 관련된 공용 라이브러리를 만들고 있는데 정말 머리에 쥐나는 작업이다.</strong> prototype.js 기반으로 클라이언트 예제 파일과 asp로 작성된 서버쪽 예제를 작성하고 있다. asp용 JSON 라이브러리가 없기 때문에 XML parser 를 추가하고, DOM 객체를 다루는 예제 코드를 작성 중이다.</p>
<p>그냥 개인적으로 또는 같은 프로젝트 내에서만 사용한다면 좀 더 마음 편하게 작업할 수 있을텐데, 개발그룹내에서 공통으로 사용할 코드를 만든다니 생각할 것이 많아진다. <strong>최근 읽은 &#8216;TDD 개발 방법론&#8217;이나 &#8216;실용주의 프로그래머&#8217;의 영향 때문일까?</strong> 중복을 배제하고 가독성이 좋으며 독립된 형태로 만들어야 한다는 강박관념과 열심히 만들었지만 왠지 완성도가 떨어져 보이는 불안감이 계속된다. 그리고 결국 자신의 코드에 자신이 책임져야 한다는 무거운 압박.</p>
<p>아마도 이런 어려움을 겪는건 아직 내 실력과 경험이 부족하기 때문이 아닐까 싶다. 하지만 이런 경험을 통해 아키텍쳐로 발전해 갈 수 있을거라 생각한다. 역시 스트레스는 사람을 피곤하게 하지만 도전하지 않으면 발전도 없다. 계속해서 고민하고 완성도를 높여갈 수 밖에.</p>
<blockquote><p>완성이라는 것은 더 이상 더할 것이 없을 때가 아니라, 더 이상 빼낼 것이 없을 때 얻게 되는 것이다.<br />
- 생텍쥐페리Antoine de St. Exupery, [바람과 모래와 별들Wind, Sand, and Stars] 1939</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://fantazic.com/archives/23/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
