VC tip (XP 스타일 포함)

No Comments

From: Devpia 최재욱님

http://www.devpia.com/Forum/BoardView.aspx?no=7219&ref=7219&page=1&forumname=VC_LEC&stype=&KeyW=manifest&KeyR=titlecontent

여기 저기서 줏어들은 내용들을 토대로 제 나름대로 적용해서 사용해 오던 VC6 용 팁 몇가지를 정리해봤습니다. VC7 이상에서도 (적절하게 변경하면) 사용가능할거라 생각됩니다.

팁 #1. 디버그 Watch 창에서 std::vector 내용 확인하기

STL 를 사용하다보면 어려운 점 중에 하나가 그 내용을 확인하기가 쉽지 않다는 점입니다. 배열을 사용하면 디버그 watch 창에 그

내용물이 보기 쉽게 표시되는데 배열의 STL 대응인 std::vector 를 사용하면 무슨 내용이 vector 저장되어 있는지 디버깅 시 확인하

기가 쉽지 않습니다. 다음과 같이 watch 창에 입력하면 std::vector 의 내용을 확인할 수 있습니다.

[ 테스트 소스 시작 ]

01: // testWatch.cpp : Defines the entry point for the console application.02: //03: 04: #include "stdafx.h"05: #include <vector>06: #include <string>07: 08: struct Student09: {10:   std::string name;11:   int id;12: 13:   Student(const std::string & _name, const int & _id) : name(_name), id(_id) { }14: };15: 16: int main(int argc, char* argv[])17: {18:   std::vector<Student> rgStudent;19: 20:   rgStudent.push_back(Student("Jae", 1));21:   rgStudent.push_back(Student("Mina", 2));22: 23:         printf("Hello World!\n");24:         return 0;25: }26:  

[ 테스트 소스 끝 ]

a) VC6 내장 STL (Dinkum???)

” rgStudent.size() ” 를 watch 창에 입력하면 벡터의 크기를 알 수 있습니다..

watch 창의 다음칸에 ” rgStudent._First,2 ” 를 입력하면 (2는 바로 위에서 구한 벡터의 크기) rgStudent 의 내용을 쉽게 확인할 수 있습니다.

b) STLPort 4.6.2

” rgStudent.size() ” 를 watch 창에 입력하면 벡터의 크기를 알 수 있습니다.

watch 창의 다음칸에 ” rgStudent._M_start,2 ” 를 입력하면 (2는 바로 위에서 구한 벡터의 크기) rgStudent 의 내용을 쉽게 확인할 수 있습니다.

팁 #2. AUTOEXP.dat 활용하여 STL 사용 시 디버깅 조금 더 쉽게 하기

이 후 부터는 VC6 이 “C:\Program Files\Microsoft Visual Studio” 에 설치되었다고 가정합니다. 따라서 MSDEV.exe 파일은  ”C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin” 에 위치하게 됩니다.

VC6의 MSDEV.exe 파일이 있는 폴더에는 AUTOEXP.dat 란 파일이 존재합니다.

AUTOEXP.dat 파일은 툴팁에서나 디버그 Watch 창에서 해당 변수의 내용을 어떻게 표시할 지를 사용자가 결정할 수 있게 해줍니다.

간단하게 예를 들어서 MFC의 CPoint 형 변수를 디버그 Watch 창에 추가하면 오른쪽에 결과로 “{x=100 y=200}” 과 같은 형식으로 표

시가 됩니다. 또는 디버깅 시 해당 변수위에 마우스 커서를 올려놓고 잠시 기다리면 나오는 툴팁에서도 똑같은 결과가 표시됩니

다.

AUTOEXP.dat 파일을 열어보면 기본적으로 ” CPoint =x=<x> y=<y> ” 라는 아이템이 있습니다. 즉 CPoint 형 변수는 그 구조체(클래스)

의 멤버변수인 x, y 를 각각 x=<x> y=<y>의 식으로 표시하라는 의미입니다. (재미있게도 CSize 에 대해서는 기본적으로 확장이 정

의되어 있지 않습니다. CSize 형의 데이터를 watch 창에 추가한 경우에는 왼쪽의 + 마크를 클릭하여 트리를 확장하여 멤버를 직접 접근함으로써 CSize에 저장된 내용을 볼 수 있습니다.)

다음과 같은 내용을 추가함으로써 STL 사용 시 디버깅이 조금 더 수월해질 수 있습니다.

1) 우선 다음 내용의 부분을 찾아서 주석 처리합니다.

std::basic_string<*>=<_Ptr>

; std::basic_string<*>=<_Ptr>

2) 다음의 내용을 AUTOEXEC.dat 파일의 끝에 추가합니다.

[추가할 내용 시작]

;STL

std::basic_string<*>=strlen=<_Len,d> string=<_Ptr,st>

std::basic_stringstream<*>=strlen=<_Sb.str()._Len,d> strbuf=<_Sb._Pbeg,st>

std::basic_ostringstream<*>=strlen=<_Sb.str()._Len,d> strbuf=<_Sb._Pbeg,st>

std::basic_istringstream<*>=strlen=<_Sb.str()._Len,d> strbuf=<_Sb._Pbeg,st>

std::vector<*>=size=<size(),d> begin=<_First,x> <_First[0]> <_First[1]> <_First[2]> <_First[3]> <_First[4]> <_First[5]> <_First[6]> <_First[7]> <_First[8]> <_First[9]>

std::set<*>=size=<size(),d>

std::list<*>=size=<size(),d>

std::map<*>=size=<size(),d>

std::deque<*>=size=<size(),d>

std::queue<*>=size=<size(),d>

; STLPort

_STL::basic_string<*>=strlen=<size(),d> string=<_M_start,st>

_STL::basic_stringstream<*>=strlen=<_M_buf._M_str.size(),d> strbuf=<_M_buf._M_str._M_start,st>

_STL::basic_ostringstream<*>=strlen=<_M_buf._M_str.size(),d> strbuf=<_M_buf._M_str._M_start,st>

_STL::basic_istringstream<*>=strlen=<_M_buf._M_str.size(),d> strbuf=<_M_buf._M_str._M_start,st>

_STL::vector<*>=size=<size(),d> begin=<_M_start,x> <_M_start[0]> <_M_start[1]> <_M_start[2]> <_M_start[3]> <_M_start[4]> <_M_start[5]> <_M_start[6]> <_M_start[7]> <_M_start[8]> <_M_start[9]>

_STL::set<*>=size=<size(),d>

_STL::list<*>=size=<size(),d>

_STL::map<*>=size=<size(),d>

_STL::deque<*>=size=<size(),d>

_STL::queue<*>=size=<size(),d>

_STL::_DBG_iter<*>=<_M_iterator,x>

; Jae’s

tagSIZE =cx=<cx> cy=<cy>

[ExecutionControl]

CString::CString=NoStepInto

CString::~CString=NoStepInto

CString::operator==NoStepInto

operator new=NoStepInto

; STL

std::*=NoStepInto

; STLP

_STL::*=NoStepInto

[추가할 내용 끝]

마지막의 [ExecutionControl] 섹션은 “Step Into (F11)” 명령 시 해당 소스로 들어가는 것을 금지시킬 수 있는 기능입니다. 일반적으로

CString 생성자/소멸자나 대입 연산자의 정의로 step into 할 필요성이 별로 없습니다. 마찬가지로 STL의 소스로 step into 하는 것도

커다란 의미가 없다고 생각합니다. STL의 소스로 step into 하기를 원한다면 해당 사항을 적절하게 제거또는 수정하시면 됩니다.

팁 #3: STLFilt ( http://www.bdsoft.com/tools/stlfilt.html ) 이용하여 STL 관련 warning 또는 에러메세지를 해석할 수 있는 형태로 변환하기.

STL 사용하면서 부딪히는 문제 중의 하나가 STL에 관련되서 발생되는 warning 또는 에러메세지는 거의 해독 불가능하다는 것입니

다. 템플릿 클래스가 중복되어서 사용되기 때문에 거의 3~4줄에 해당하는 메세지가 의미를 해석할 수 없는 형태로 출력됩니다.

STLFilt 라는 프로그램은 이렇게 복잡하게 출력되는 STL 관련 warning 또는 에러 메세지를 비교적 프로그래머가 해석할 수 있는 정

도 수준의 형태로 변환해 줍니다. 그런데 STLFilt 의 저자가 기본적으로 제안하는 방식은 VC6 설치파일의 위치를 이동시키고 제공된 새로운 파일을 사용하여 소스를 컴파일 해야하는 등등의  별로 탐탁치 않은 방법을 사용합니다.  따라서 개인적으로 VC6의 사용자 툴 기능을 이용하는 방법을 선호하며 그렇게 사용하고 있습니다. STLFilt 는 텍스트 프로세싱을 하기 위해서 Perl을 사용하기 때문에 Perl 인터프리터가 설치되어 있어야합니다. 이미 설치되어 있지 않다면 STLFilt 사이트에서 추천한 대로 ActivePerl ( http://www.activestate.com/Products/ActivePerl/ ) 을 다운로드 받아서 설치하여 사용할 수 있습니다.

*** STLFilt 는 ” C:\Dev\STLFilt ” 에 Perl 인터프리터는 ” C:\Perl ” 에 설치되었다고 가정합니다.

1) VC6의 사용자 툴을 사용하는 방법은 STLFilt 패키지 중에서 MFiltTool.bat 라는 파일과 STLFilt.pl 파일만 있으면 됩니다. MFiltTool.bat

를 다음과 같이 자신의 폴더 세팅에 따라서 적절하게 수정합니다.

[ MFiltTool.bat 시작 ]

@echo off

rem

rem MFiltTool.bat: Driver for processing a PLG file with STLFilt.pl

rem as an MSVC “Tool” script. See README-VCTool.txt for instructions.

rem (Updated 4/05/2003)

rem ********************************************************************

rem Configure the following variables as appropriate for your system:

rem STLFILT:  Full pathname of the Perl script

rem POPTIONS: Options to Perl interpreter

rem FOPTIONS: Options to Filter (the Decryptor Perl script)

rem

rem The value of the environment variable FOPTS is concatenated onto the

rem value of FOPTIONS. This permits trying out different filtering options

rem without editing this batch file: just set FOPTS to the desired options

rem before running MFilt.BAT.

rem *********************************************************************

set STLFILT=C:\Dev\stlfilt\STLFilt.pl

set POPTIONS=

set FOPTIONS=/plg

rem ********************************************************************

if not “%1″ == “” goto filter

echo Usage: mfilttool PLG-filename

echo Filters PLG file through STL Error Decryptor.

echo (to supply Decryptor options, set the FOPTIONS variable to

echo  your “permanent” options, and/or the FOPTS variable in your environment

echo  to “temporary” options.)

echo.

goto done

:filter

C:\Perl\bin\perl.exe %POPTIONS% “%STLFILT%” %FOPTIONS% %FOPTS% < “%1″

:done

[MFiltTool.bat 끝]

2). VC6 의 Tools/Customize 메뉴 선택 후 다이알로그에서 Tools 를 선택한 후 다음과 같이 새로운 사용자 툴을 등록합니다.

Menu Contents: STLFilt

Command: C:\Dev\stlfilt\MFiltTool.BAT

Arguments: $(WkspName).plg

Initial directory: $(WkspDir)

Use Output Window 체크

3) VC6에서 STL 사용하면서 컴파일 시 해석하고자 하는 STL warning 또는 에러메세지가 발생했을 경우 위에서 등록한 Tools/STLFilt

를 선택하면 STL warning 또는 에러메세지가 STLFilt 출력창에 비교적 해석할 수 있을 정도 수준으로 변환된 형태로 출력됩니다.

팁 #4. 툴바 레이아웃 저장/불러오기

VC6을 실행/디버깅 하다보면 툴바의 레이아웃이 제멋대로 이동하여 보기 싫게 되는 경우가 많이 생긴다. 특히 VC6 애드인을 추가

하는 경우 이러한 애드인들은 보통 버튼이 2-3개 밖에 없는 툴바를 추가하는  경우가 많은데 이런 툴바가 한줄 전체를 차지하게

되면 쓸데없이 가시영역을 낭비하게 되면서 슬슬 짜증이 나기 시직한다. 일일이 툴바를 드래그해서 이동하고 재배치한 후 VC6을

종료하면 툴바 레이아웃이 저장되긴 하는데 다시 실행/디버깅 하다보면 특히 VC6을 최소화 시키거나 하면 툴바 레이아웃이 다시

망가져버린다.

(해결책)

VC6 툴바 레이아웃은 레지스트리의 “HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Layout” 에 저장된다. 이러한 사실

을 바탕으로 간단한 배치파일을 작성하여 VC6 실행 시 자동으로 저장되었던 툴바 레이아웃을 강제로 로딩한다.

1) MSDEV.bat 파일을 MSDEV.exe 실행 파일이 있는 폴더에 다음과 같이 작성합니다.

[MSDEV.bat 시작]

@echo off

;

; copy this file into “<<VC_INSTALLATION_PATH>>\Microsoft Visual Studio\Common\MSDev98\Bin”

;

;

;

if “%1″==”/e” goto export

if “%1″==”-e” goto export

if “%1″==”/i” goto import

if “%1″==”-i” goto import

:import_executeVC

cmd /C “%SystemRoot%\regedit.exe” /s TBLayout.reg

cmd /C “msdev.com”

goto end

:import

cmd /C “%SystemRoot%\regedit.exe” /s TBLayout.reg

goto end

:export

cmd /C “copy /Y TBLayout.reg TBLayout.reg.bak”

cmd /C “%SystemRoot%\regedit.exe” /e TBLayout.reg HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Layout

goto end

:end

[MSDEV.bat 끝]

MSDEV.bat /e 또는 -e 옵션은 현재 툴바 레이아웃을 TBLayout.reg 라는 파일로 저장 합니다.

MSDEV.bat /i 또는 -i 옵션은 TBLayout.reg 파일로부터 툴바 레이아웃을 로드합니다.

MSDEV.bat 를 옵션 없이 실행 시키면 TBLayout.reg 파일로부터 툴바 레이아웃을 로드한 후 바로 MSDEV.exe 를 실행시킵니다. (실재

로는 MSDEV.com 파일을 호출함으로써 MSDEV.exe 파일이 실행됩니다.)

2) 시작/프로그램/Microsoft Visual C++ 6.0 에 다음과 같은 단축 아이콘을 추가했습니다.

a) “Load Toolbar Layout”

Target : “C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.bat” /i

Start in : “C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin”

Run : Minimized

b) “Save Current Toolbar Layout”

Target : “C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.bat” /e

Start in : “C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin”

Run : Minimized

c) Microsoft Visual C++ 6.0 and Load ToolBar Layout

Target : “C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.bat”

Start in : “C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin”

Run : Minimized

3) VC6을 실행시킨 후 툴바를 원하는데로 정돈한 후 “Save Current Toolbar Layout” 단축 아이콘을 실행 시켜서 툴바 레이아웃을 저장

합니다. 이 후부터 “Microsoft Visual C++ 6.0 and Load ToolBar Layout” 단축 아이콘을 통해서 VC6을 실행 시키면 앞서 정돈 된 툴바 레이

아웃으로 VC6이 실행됩니다.

4) VC6이 실행될 때 위에서 언급된 레지스트리 위치에서 툴바 레이아웃을 로드하고 VC6이 종료할 때 같은 장소에 툴바 레이아웃

을 저장합니다. 따라서 VC6이 실행하고 있는 동안에는 “Load Toolbar Layout” 단축아이콘을 통해서 툴바 레이아웃을 로드해도 적용

이 되지 않습니다.  VC6을 종료한 후 단축 아이콘 적용한 후 다시 실행시켜야지만 원하는 툴바 레이아웃을 로드됩니다.

팁 #5: VC6 에서 XP 비주얼 스타일 적용하기

MSDEV.exe 있는 폴더에 첨부된 msdev.exe.manifest 파일을 복사해주면 됩니다.

팁 #6: VC6에서 최신 MSDN 사용하기

최신 버전의 MSDN을 VC6의 내장 도움말(키워드에서 F1 눌렀을 때 자동으로 해당 주제의 도움말이 나타나는 방식)로 사용하는 방법입니다.

레퍼런스 : Integrate the latest MSDN with VC6 and Hook functions of COM (http://www.codeproject.com/macro/VSNetHelp.asp )

(*** 반드시 PSDK가 설치되어 있어야 합니다. ***)

1) 위에 링크된 코드 프로젝의 글에서 VC6용 애드인 파일을 다운로드 받습니다. (Download demo project – 13.3 Kb)

2) 다운로든 받은 파일(VSNetHelp.zip) 의 압축을 풀고 VSNetHelp.dll VC6용 애드인 파일을 “C:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIn” 폴더에 복사합니다.

3) PSDK가 설치된 폴더의 bin 서브폴더에 있는 “Depeneds.exe” 를 실행시킵니다. VC6에 딸려오는 “Depends.exe” 가 아니라 PSDK에 딸려오는 “Depends.exe” 를 실행시켜야 합니다. 기본 설정으로 PSDK 설치했을 경우 “C:\Program Files\Microsoft SDK\Bin\” 폴더에서 Depends.exe 파일을 찾을 수 있습니다.

4) Dependency Walker가 실행된 후 ” Options / Configures External Function Help Collection… ” 를 선택하면 나오는 다이알로그 창에서 설최된 최신 버전의 MSDN 도움말을 선택합니다. (MSDN 2.x Default Collection 또는 MSDN 2.x MSDN Quartery Library – XXX 2005 정도를 선택하면 됩니다.)

5) Dependency Walker를 종료합니다.

6) VC6을 실행시킨 후 “Tools”->”Customize”->”Add-ins and Macro Files”->”Browse” 메뉴에서 VSNetHelp.dll 을 선택합니다.

7) 소스 코드에서 F1을 누르면 설치된 최신 MSDN의 도움말을 사용하여 관련 주제를 표시해줍니다.

#6-1: PSDK 2003 년 2월 버전

VC6 에서 사용가능한 가장 최신 PSDK는 2003년 2월 버젼입니다. 이 후에 나온 버젼에서는 새로이 향상된 보안기능이 바이너리에 활성화 되면서 VC6을 더 이상 지원할 수 없게 되었다고 합니다. ( 참고: http://blogs.msdn.com/loripe/archive/2005/05/02/414100.aspx ) 2003/2월 이 후 버전을 사용하여 컴파일 하는 경우 LNK1103 에러가 발생합니다.

2003년 2월 버젼 PSDK는 다음의 링크에서 다운로드 받을 수 있습니다.

http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

1869330987.zip

platform sdk 2003 feb (for vc 6.0)

1 Comment

Platformsdk 2003 feb 버전은 Visual Studio 6를 지원하는 마지막 버전입니다.

Platformsdk 2003 sp1 버전 부터는 일부 지원하지 않아서. 특히 디버깅이 안되는 경우가 많습니다.

막상 예전 버전을 찾을려고 해도 검색이 쉽지 않아 이렇게 알려드립니다.

아래 주소에서 다운로드 받아서 CD로 보관하시는 것도 좋을 듯…

URL = http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

Platform SDK downlaod

No Comments

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sdkintro/sdkintro/devdoc_platform_software_development_kit_start_page.asp

시장과열로 투자, 실수요자 모두 시장으로 나와 (2006.11.26)

No Comments

From: http://www.drapt.com/themeWeb/index.htm?page_name=view&uid=17&seq=73

시장과열로 투자, 실수요자 모두 시장으로 나와
11월 아파트 시장은 10월의 과열 양상이 지속 될 것으로 예상된다. 매물이 나오지 않는 상황에서 투자처를 찾지 못한 투자자들과 시세가 오를 것이라는 인식이 팽배한 실수요자 마저 매수에적극적으로 나서 시세상승은 더 거세질 것이다. 다만 이미 오른 시세에 부담을 느껴 상대적으로 저렴한 시세를 유지하고 있는 지역 중심으로 상승세가 나타나겠다.
매도호가 시세로 굳어질 가능성 커
수도권 전역에서 매물이 자취를 감추면서 매도호가는 천정부지로 치솟을 가능성이 높다. 매물이부족하다 보니 높은 매도호가에 나온 매물이 하나둘 거래되면서 이것이 시세로 굳어질 것으로 예상되기 때문이다.
일반아파트, 재건축, 분양권 등 종류와 지역을 불문하고 전반적으로 오름세가 지속 될 것으로 보인다. 그동안 매수자들에게 외면 받았던 남양주시나 구리시 등 경기도 북부 지역을 중심으로 매수자의 관심을 받을 수 있을 것으로 전망된다.
연말까지 내집마 련 하겠다는 매수자 많아 매수세 더 늘듯
11월 전국아파트 값은 10월 수준을 조금 넘는 2.5% 정도 상승 할 것으로 예상된다. 수도권은 인천과 신도시가 초강세를 보이면서 3.5% 서울은 3.0% 가량 오를 것으로 전망된다. 한번 달아오른 시장은 쉽게 안정되기 힘들 것으로 보이며 적어도 올해까지는 내 집 마련을 하겠다는 목표를 잡은 매수자들이 다수이기 때문에 매수세가 줄어들기는 어려울 것으로 예상된다.
매물가뭄 심화되면서 강남권 재건축 단지 강세 지속 될 것
서울은 강남권 재건축단지들의 매물품귀 현상이 심화되면서 강남권 강세가 지속될 것으로 예상된다. 매물이 부족하다보니 거래는 많지 않을 것으로 보이지만 매도호가 상향 조정 폭은 더 증가할 것으로 전망된다. 또한 재건축을 예정하고 있는 입주 20년 된 단지 또한 재건축단지들의 상승에 힘입어 강세를 보일 것으로 예상된다.
인천검단신도시와 파주운정신도시 상한가 행진 할 듯
10월 27일 지정된 인천검단신도시 지역과 면적인 증가한 파주운정신도시는 매수문의가 더욱 증가하면서 수요자들의 초미의 관심지역으로 또 오를 것으로 예상된다. 그러나 매물이 없고 매도자들 또한 신도시 개발에 따른 기대감으로 과도하게 매도호가를 높일 것으로 보여 시세 상승은 불가피할 것으로 전망되기 때문이다.
과천시 의왕시 강세는 지속 화성시 가담
과천시와 의왕시는 지난달에 이어 강세가 지속될 것으로 예상된다. 강남권의 시세 움직임을 그대로 따라가는 성격이 강해 강남권이 강세를 보이는 한 역시 비슷한 양상을 보일 것으로 전망  되기 때문이다.
이에 동탄신도시 입주를 앞두고 동탄신도시 분양권이 30평형대 4억3천만~4억5천만원의 시세를 형성할 것으로 예상되면서 동탄신도시 시세를 추격하는 모습을 보일 것으로 전망되는 화성시도 상승세가 거세질 것으로 보인다. 특히 신도시와 지리적으로 가까운 병점동을 중심으로 크게 오를 것으로 보인다.
대전, 부산 등 지방 상승세는 아직
수도권의 과열 양상이 대전, 부산 등 지방광역시로 확산되기는 힘들 것으로 판단된다. 아직 입주물량이 소화되지 않은데다 새로이 수요자들이 유입되지 않은 상황에서 상승세로 반전되기는 힘들 것으로 판단되기 때문이다.
지방광역시로는 연내 분양예정물량이 1만가구 이상 기다리고 있어 매수심리를 자극하기 어려울 것으로 보인다.
방학이사철 앞두고 발 빠른 학부모 세입자 움직일 듯
가을이사철 마저 지난 11월의 전세시장은 안정세를 보일 것으로 전망된다. 그러나 일부 방학이사철을 앞두고 발 빠르게 움직이려는 학부모들이 전셋집을 구하려 시도할 것으로 보인다. 따라서 우수한 학군을 갖축 강남구, 강동구 명일동, 양천구 목동 등으로 전세수요가 증가하면서 전셋값 상승세가 예상된다.
이미 전세물건은 거의 소진된 데다 새로 출현하는 물건이 거의 없는 상황이어서 11월에도 전셋집을 구하긴는 쉽지 않을 것으로 전망된다.
도촉지구 거래 끊기고 노량진, 가좌로 매수세 전환 예상
도촉지구 지정된 곳은 거래는 더욱 위축되면서 매수, 매도 모두 관망세를 돌아 것으로 보인다. 지구 내 토지 거래 시 6평 이상인 경우 실 거주 요건까지는 충족하기 쉽지 않을 것으로 보이기 때문이다.
기존 뉴타운 중 도촉지구 지정이 벗나난 노량진, 가좌, 방화 쪽으로 매수세가 몰릴 것으로 전망된다. 뉴타운은 아니지만 재개발 사업진행 빠른 금호15구역, 불광6구역도 관심을 받을 것으로 예상된다.

하락하지 않는 내재가치 아파트 찾기

No Comments

http://www.drapt.com/know/index.htm?uid=414&page_name=rich_note_view&menu_key=9&view_count=15&sort_key=0&part_key=&start=0&field=&s_que=

 

이용안내
HOME > 지식富동산 > 부동산 노트 > 오윤섭의 부자노트

오윤섭[ysoh] 現) 닥터아파트(주) 대표이사
고려대학교 서문과 졸업
동아일보 편집국 기자 7년근무(부동산 팀장 2년)
동아일보 인터넷신문 마이다스의 부동산사이트 부동산마트 개설
PC통신 부동산 정보(분양권전매센타, 아파트 투자컨설팅 설립 및 운영)

추천하기 프린트 메일발송 스크랩
하락하지 않는 내재가치 아파트 찾기
[2006-11-16] 조회 : 16845 추천 : 8 댓글 : 18 평점 : //// 
‘닥터아파트 CEO 오윤섭의 부동산 가치투자’

부동산 투자, 여전이 유효하다는 믿음을 심어준 책-YES24

“각종 부동산 대책이 난무하는 시절이다. 한국 사회에서 부동산, 그중에서도 아파트가 재테크로서의 무게와 가치가 여전할 것인가에 대해 고민을 했었는데, 이 책을 읽고 자신있게 부동산을 투자의 대상으로 삼을만 하다는 결론을 내렸다.

다만, 저자의 언급대로 투기가 아닌 투자가 되어야 진정한 부자로 발돋음할 수 있다는 점에 동의한다. 주식에서의 가치 투자 만큼 부동산에서의 가치 투자가 부의 창출에 큰 매개가 될 수 있음을 확신하게 되었다.”

가치투자를 하기위한 전제조건은 바로 내재가치가 높은 부동산을 매입해야 한다는 것입니다. 반드시 비싼 것만 내재가치가 높은 것은 아닙니다.

가치투자의 핵심은 시장가격보다 내재가치가 높은 부동산을 매입하는 것입니다. 이것이 바로 앞으로 불확실한 부동산시장에서 하락하지 않는 내재가치 높은 아파트를 고르는 법입니다.

아파트 내재가치란?

그러면 먼저 아파트시장에서 내재가치(intrinsic value)가 무엇인지 알아보겠습니다.

주식을 가지면 배당을 받게 되고, 채권 소유자가 원리금을 받는 것처럼 아파트도 보유하면 지속적으로 임대료 수익을 얻을 수 있습니다. 주식시장에서 내재가치란 기업이 존속되는 동안 얼마나 벌어들일지를 현재가치로 계산하는 것입니다. 계산하기가 쉽지 않은데다 내재가치는 고정돼 있는 것이 아니라 시장 상황에 따라 항상 바뀝니다.

아파트의 경우 내재가치란 주택 보유에 따른 미래의 수익을 현재가치로 평가한(환산한) 금액입니다. 아파트 내재가치는 임대료(보증금이 없는 월세)를 3년 만기 회사채수익률로 나누는 아주 단순한 방법으로 계산해볼 수 있습니다.

예를 들어 서울 강남구 32평형 8억원짜리 아파트의 월 임대료(보증금이 없는 월세로 임대를 놓았다고 가정)가 2백30만원(매매가 대비 전세비율 36%. 월세이율을 0.80%로 계산)이라고 한다면 연간 임대료는 2천7백60만원이 됩니다. 3년 회사채 수익률(시장금리)을 5%로 보면 이 아파트의 내재가치는 5억5천2백만원(2천7백60만원/0.05)입니다. 시장가격(8억원)이 내재가치의 144% 수준으로 이론적으로는 44%가 거품이 끼었다고 볼 수 있습니다.

이러한 계산방법은 경제성장률, 임대료 기대상승률, 지역별 수급물량 및 호재, 세금 등 보유비용을 전혀 고려하지 않아 현실과 괴리가 있는 단점은 있지만 간단하게 내재가치를 계산, 참고할 수 있습니다.

내재가치가 높은 아파트란?

위에서 단순한 내재가치 계산법에서도 봤듯이 금리가 하락할수록, 전셋값이 상승할수록 내재가치는 높아집니다.

강남권에 수요가 많은데 아파트공급물량이 부족하다는 것은 전셋값 상승으로 이어져 내재가치가 높아집니다. 주거환경이 개선되고 학군이 좋아지고 문화 쇼핑 등 기반시설 인프라가 구축되고 안정화될수록 내재가치는 당연히 높아집니다.

반면 종합부동산세 및 재산세 강화는 보유비용이 늘어나므로 내재가치를 떨어뜨립니다. 개발이익환수나 개발부담금도 당연히 내재가치를 하락시킵니다.

한편 워렌 버핏은 부를 쌓기 위해선 필수적으로 주식의 내재가치를 계산해낼 수 있을 정도로 기업에 대해 많이 알아야 한다고 말했습니다. 즉 투자하려는 회사가 어떻게 돈을 버는지, 수익은 얼마나 지속되는지, 약점은 무엇인지, 장차 성장의 기회는 어떠한지, 경쟁자들은 어떤 장점이 있는지, 그리고 경영진이 얼마나 정직하고 유능한지 등을 아는 것입니다.

아파트시장도 마찬가지입니다. 시장가격에 반영되기전, 시장가격보다 낮은 내재가치가 높은 아파트를 남보다 빨리 찾는 비법에는 왕도가 없습니다. 자신에게 친숙한 아파트 분야를 고르고 자신이 잘 아파트는 지역 및 단지에 대해 철저하게 조사, 분석하는 방법 외에는 없습니다.

제가 내재가치가 높은 아파트를 고를 때 기준을 소개하면 다음과 같습니다. 첫째 전세 사는 아파트를 구입해서 살고 싶어 하는 세입자들이 늘어나고 있는가를 봅니다. 가장 중요하다고 생각합니다. 유효수요가 뒷받침되지 않는 아파트는 결국 거품이 빠질 수밖에 없으니까요. 지역과 단지를 잘 알아야 하며 현장방문이 필수입니다.

둘째로 서울 강남권 접근성과 강남권 주민들이 얼마나 관심을 갖고 있는 단지인가를 봅니다. 셋째 주부가 선호하는 인프라(교육환경, 단지내 커뮤니티공간, 단지밖 문화쇼핑시설 등)가 언제 개선되는가를 속도를 중심으로 봅니다. 마지막 넷째로 개발 호재(도로망 전철망 학교 및 공원 개설 등)와 관련된 공사가 착공했나를 확인하고 완공 시기를 점검합니다.

다시 강조하면 구입해서 살고 싶어 하는 세입자들이 늘어나는 단지, 도로망으로 강남 접근이 쉽고 강남 주민 및 자녀들이 대체 주거지로 생각하는 곳, 개발 호재가 착공해서 입주후 3년 전후에 완료되는 것이라면 구입후 최소한 3년 이상 내재가치가 높아질 것으로 기대합니다.

하락하지 않는 내재가치가 높은 아파트란?

하락하지 않는 내재가치가 높은 아파트란 내재가치보다 시장가격이 낮은 즉 저평가된 단지를 말합니다. 주식에서 벤저민 그레이엄이 말한 안전 마진(margin of safty)을 확보한 단지가 긍극적으로(일시적으로 하락할 수는 있기 때문에 쓴 표현) 하락하지 않는 내재가치가 높은 아파트 입니다.

그레이엄은 1달러 가치가 있는 주식을 50센트에 매입하는 행위를 반복하면, 궁극적으로 더 많은 이득을 얻고 보다 중요하게는 안전 마진을 얻을 수 있다고 보았습니다.

안전 마진을 확보한 아파트를 찾으려면 투자 대상에 대해 최소한 5년 이상 거래한 해당 지역의 중개업소 사장 이상으로 지역 아파트시장 동향을 소상히 알아야 하고 매입하기에 앞서 읽고 조사 연구해야 하며 그 아파트에 거주할 가치가 있는 단지라는 확신이 있어야 합니다. 매입타이밍은 일반인들이 구입하는 시기는 피하는 것이 상식입니다.

불확실한 부동산시장일수록 이처럼 리스크를 최소화하는 가치투자 전략인 안전 마진 확보가 아파트시장에서도 위력을 발휘할 것입니다.

마지막으로 필립 피셔의 주식 투자철학을 인용하겠습니다. 아파트 투자에 있어서도 최후의 승리자가 되려면 반드시 실행해야 할 원칙이라고 생각합니다.

-시장이 아니라 기업을 조사하라.
-군중의 광기를 무시하라.
-시장효율이론을 무시하라.(기계적인 공식에 충실한 정부 고위관료, 대학교수, 연구소 연구원 등 전문가의 말을 무시하라)
-시장 타이밍을 피하라

Older Entries