월별 글 목록: 2014년 1월월

Extjs 시작

Extjs를 시작하기 위해서는 당연히 파일을 다운받아야 한다. Sencha (http://www.sencha.com)사이트의 여러 Product 중에서 Ext JS를 선택하면 Download와 Buy Now를 선택할 수 있게 되어 있다.
ExtJs는 Open Source로 제공되나 완전 free는 아니고 GPLv3 License 정책을 따르고 있다. GPLv3 License에 대해서는 사이트에서도 링크를 제공하고 있으며 구글을 통해 찾아봐도 된다.
GPLv3는 GNU의 General Public License v3로 이 라이센스로 공개된 소스를 이용하여새로운 S/W를 개발하거나 이용하기만 하여도 제3자에게 배포하거나 제공할 때 포함되어있는 GPLv3 라이센스 정책을 따라야 한다. 즉, Extjs로 개발된 S/W를 다른 사람 또는 회사에 제공하거나 판매할 때 그 소스까지 같이 GPLv3 라이센스로 제공해야 한다는 얘기다. 자신이 수정하거나 추가한 코드를 보호받으면서 판매할 목적이라면 상업용 라이센스를 구입해야 한다.
Extjs를 상업적인 사이트에서 사용할 목적으로 구입하면 추가적인 지원과 미공개 상업용 버전, patch 등을 제공받을 수 있으니 license 정책을 잘 읽어보고 자신이 필요한 버전을 선택하여 다운받아 웹서버에 설치한다.
설치는 그냥 다운로드 받은 파일의 압축을 웹서버상에 또는 개발환경에 풀어놓기만 하면 된다. 예를들면 웹서버 상에 임의의 디렉토리를 만들어 extjs 압축버전을 풀어놓고 link를 걸거나 직접 웹서버의 Document 디렉토리에 필요한 파일들만 선택하여 넣어둘 수 있다.
예) /usr/local/www 디렉토리가 Apache의 DocumentRoot 디렉토리인 경우
/usr/local/www/extjs 등과 같은 디렉토리에 압축파일을 넣고 압축을 푼다.

압축을 다 풀고 (별도의 설치 절차나 프로그램이 없으므로 압축 해제가 곧 설치임) examples 디렉토리 등을 테스트 해서 정상적으로 설치가 되었는지 확인해 본다.

예) 압축해제가 끝난 다음 웹브라우저에서 http://www.domain.co.kr/extjs/examples 처럼 주소를 입력해 본다.

Extjs Example화면

나의 홈페이지에 띄운 Extjs Example화면

설치가 다 되었으면 이제 Server쪽 페이지(주로 jsp, php, asp 등)를 만들 때 include시키고 사용할 일만 남았다.

<script type=”text/javascript” src=”/extjs/ext-all.js”></script>
<link href=”/extjs/resources/css/ext-all.css” rel=”stylesheet” media=”screen” type=”text/css” />

등과 같은 방법을 사용하면 된다.
자세한 방법은 examples 디렉토리에 있는 sample 파일을 하나 찬찬히 훑어보며 어떤 js script를 포함시킬지 어떤 css(styleshee) 파일을 포함할 것인지 직접 해 보면 된다.
extjs4버전에서 theme가 추가되었으므로 css 파일도 theme에 따라 다르게(dynamic하게) 포함시킬 수 있다. 이 부분도 역시 theme 예제에 잘 나와 있다.

코드를 하나씩 확인 해 보고 extjs의 구조를 잘 익히는 것이 중요하다.
그리고 설치한 extjs package내에 또는 Sencha 사이트에 extjs의 API가 상세하게 나와 있으므로 각 요소(Grid, Chart, Frame 등)들의 속성도 확인할 수 있다.

Extjs에 대하여

Extjs는 jquery, dhtml 등과 같이 Javascript를 이용한 Web Application을 개발할 수 있는 Framework을 위한 client side library이다. Client side library란 jsp, asp, php 등과 같이 Server side에서 컴파일되거나 해석되어서 실행되는 server side script language가 아니라 client side인 웹브라우저로 다운로드되어 실행되는 javascript로 된 library다.
Library란 단어를 사용하는 이유는 기본적으로 javascript는 고차원적인 프로그래밍을 위한 특징(예를 들면 메모리 할당과 해제와 같은 관리, 재귀함수와 같은 구조적 특징 등)을 가지지 않은 Script언어이다. 이러한 javascript만으로 화면에 윈도우 XP와 같은 바탕화면, 작업창, 탭, 그래프, 표 등을 표시하기 어려우므로 style sheet를 이용하여 화면상에 client 프로그램 작성을 위한 기본적인 템플릿을 함께 제공하여 개발자가 몇개의 템플릿 또는 함수, style sheet 등을 선택하여 마치 PC 프로그램 화면과 같이 동적으로 반응하는 프로그램을 쉽게 만들어 낼 수 있기 때문이다.
tmp_Screenshot_2014-01-20-22-35-20-867612482

사용자(개발자)는 extjs의 library를 활용하여 팝업창, 윈도우, tab, grid, chart등을 호출할 수 있으며 ajax를 통한 query실행, json등을 이용한 db조회와 grid, chart의 자동화를 이용할 수 있다. 사용하다보면 javascript가 이렇게 강력했던가 하는 감탄과 때로는 언어의 장벽에 가로막혀 우회방안을 찾기위해 머리를 싸매는 좌절감도 종종 경험하게 된다.
하지만 Framework이라는 틀에서 생각하면 Server와의 통신, Data와 UI와의 분리 등 복잡한 구조들이 사실은 개발 및 유지보수, 관리를 위해 잘 구성된 Web Application 개발 기반이다.
결론적으로 정리하자면 웹 표준과 이식성, 편의성을 생각하면 javascript와 같은 웹브라우저 공통의 표준언어를 사용하는 것이 너무나 당연하며 많은 knowledge base가 쌓인 extjs와 같은 tool(또는 library)를 사용하는 것이 생산성을 위해서는 필수적이다.

채권의 가격 계산 – 2

채권 가격을 계산하기 위해서는 채권의 발행정보를 이용하여 현금 흐름을 추정/계산해서 각 현금흐름을 현재가치로 할인해야 한다. 채권의 현금 흐름 형태는 채권의 종류에 따라 다르게 나타난다. 국내에서 발행되고 유통되는 채권의 종류는 채권의 현금 흐름(이자지급 방법과 시기)에 따라 할인채, 단리채, 복리채, 이표채로 구분할 수 있으며 원금 상환 방법에 따라 분할상환채권과 만기일시상환채권으로 구분할 수 있으며 이자지급 방법이 중간에 변경되는 경우도 있다. 일반적인 국내채권은 할인채, 단리채, 복리채, 이표채 정도만 이해하면 된다.
채권의 가격계산에서 또한 중요한 요소는 이자금액의 결정인데 이자는 일반적인 채권의 경우 발행시 매 이자지급 시기에 지급될 이자지급액과 그 상환 금액이 확정되어 있다. 그러나 일반적이지 않은 채권의 경우 이자지급액이나 상환 금액이 바뀌는 경우도 있다. 변동금리부 채권(FRN)의 경우 조건에 따라 이자지급액이 다른 금리들의 변동에 따라 변한다.

1. 할인채 : 할인채는 만기시에 채권 원금을 지급하고 발행시에는 그 원금을 할인해서 발행한다. 예를 들어 3년만기 이표율 3%인 채권은 발행시에 원금을 3%로 3년간 할인한 금액으로 발행된다. 할인채는 별도로 이자를 따로 지급하지않는다.
2. 단리채 : 채권 이자가 일년에 한번 발생하는 채권으로 실제 이자는 만기시에 한꺼번에 지급하는 채권이다.
3. 복리채 : 복리채는 채권에 의해 발생한 이자에 계속 이자가 붙는 채권이다. 예를 들어 3% 이자율로 6개월마다 이자가 발생하는 경우 6개월째 이자가 발생하고 또 6개월이 지나면 새로운 이자가 발생하고 6개월째 발생한 이자에도 역시 이자가 발생한다.
4. 이표채 : 이표채는 이자지급 시기마다 발생하는 이자를 실제로 채권 보유자에게 지급하는 채권이다.

이자지급 시기에 대한 이해와 함께 이자와 원금이 얼마인지도 알아야 한다. 이자는 채권발생시 정해진 이표율로 계산하는데 이표율이 아닌 이자율 조건에 따라 변하는 경우 그 이자율을 추정하거나 계산하여 그 결과(이자율,이표율)로 이자를 계산한다.
FRN의 경우 국고채 1년 금리와 CD91일물 금리의 차이 또는 CD91일물 금리의 3개월 평균 등으로 이자율이 정해지는 경우도 있다. 이자율이 일정하지 않은 경우 그 조건에 따라 미래의 이자율을 추정하여 현금 흐름을 계산하여야 한다.

채권의 가격 계산 – 1

들어가며

이미 채권 가격 계산을 위한 OpenSource Library가 존재하고 있으나 개인적으로 채권 가격 계산 Library를 구축하고자 하여 채권 가격 계산에 대한 일반론을 정리하고 실제 Library 작성시 필요한 원리와 Tip을 설명하고자 함.

채권의 가격 결정

주식과 채권은 가장 일반적인 투자 상품이다. 투자 상품이므로 매매가 가능하고 매매가 가능하다는 것은 시장에 가격이 존재한다는 뜻이다.

주식의 가치는 알려진 바와 같이 미래에 주식 발행 회사로 부터 지급 받을 배당금을 현재 가치로 환산하여 그 가치를 측정할 수 있고 그 가치와는 별개로 상대적인 성장 가능성, 안정성, 기회비용, 차익거래 등을 종합적으로 고려해 시장에서 매매를 하게 되고 이에 따라 가격이 결정된다.

채권의 경우는 현재에 투자하는 금액(현금 유출)과 미래에 발생하는 이자 및 원금 상환(현금 유입) 등을 현재 가치로 환산하는 데 이 때 이자 및 원금을 상환 할 개별 기업의 안정성 및 시장 상황에 따라 가격이 달라진다.

사실 본질적으로 가치를 측정하는 데에 있어서는 주식이나 채권 뿐만 아니라 다른 모든 금융 투자 상품이 큰 차이가 없다. 미래에 발생할 수익에 대해 투자를 하기 위해서는 그 투자에 대한 기대 수익이 어느 정도 될 것인지 예상을 하고 투자하는 데 이 기대 수익을 측정하는 여러 방법 중 하나가 미래의 현금 흐름(현금 유출입)을 추정하는 방식이다.

추정된 현금 흐름은 현재가치로 환산할 때 중요한 것이 할인율이다. 즉 미래 특정 시점에서의 금액은 현재 가치로 얼마가 될 것인지 계산하는 기준 비율이 할인율이다. 이 할인율은 개인마다 다를 수 있는데 채권에서는 통상적으로는 동일한 기간의 수익률을 사용한다. 이는 할인율과 수익률이 다르면 차익거래가 발생하고 이로 인해 할인율과 수익률은 서로 균형을 이룰것이라는 가정에 의한 것으로 결국 할인율과 수익률은 동전의 양면과 같은 성격을 가지고 있다.

채권은 미래의 현금흐름을 명시된 채권 발행 조건에 의해 추정할 수 있으므로 시장에서 기대하는 현금 흐름은 대체로 동일하다. 그러나 미래현금흐름을 현재 가치로 환산할 할인율의 경우 시장 참가자들의 시각에 따라 약간씩 달라질 수 있다. 즉 할인율에는 시장의 금리 수준과 발행회사의 안정성(부도가 나면 현금흐름이 완전히 달라지므로), 시장 금리의 움직임 등이 같이 고려되어지므로 이에 따라 그 가격이 서로 다르게 계산된다.

정리하자면 채권 가격 계산을 위해서는 우선 확정되어 있는 채권의 발행 정보와 할인율이 필요한데 채권의 발행정보를 통해서 미래의 현금흐름을 추정 또는 예측하고, 시장금리와 발행기관의 안정성 등을 통해 할인율을 결정하면 채권의 가격은 계산이 가능하다.

 

Finance & IT garage

개인적으로 알게된 다양한 지식 공유
Finance, IT, 기타 잡학
정보취급기관, 공공 금융기관, 외국계 금융회사 등을 거치면서 때로는 IT로 때로는 평가나 전문 영역 업무를 하면서 알게 된 내용을 반추하면서 하나씩 정리하는 곳