ExampleFrameListener의 개념

ExampleFrameListener는 ExampleApplication 클래스와 마찬가지로 Ogre에서 기본적으로 제공하는 Framework 클래스 중 하나이다. KeyListener와 FrameListener로부터 다중상속을 받는 구조이며 기본적으로 갖는 책임 중에 가장 중요한 것은 마우스나 키보드로부터 입력을 받아 처리하고 Frame을 렌더링하데는 필요한 상태정보를 갱신하고, 렌더링을 계속할 것인지의 여부의 결정이다. 아래는 ExampleFrameListener 클래스 관계도이다.

또한 Overlay 클래스를 이용하여 FPS 정보 등을 나타내준다. 사용자가 마우스나 키보드의 입력을 buffer 방식인지, unbuffered 방식인지의 결정에 따라 buffered 방식인 경우, 사용자 입력에 대한 처리를 Event 방식(Callback 방식)으로 하기 위해 EventProcessor 클래스의 인스턴스를 생성해준다.

unbuffered 방식인 경우에는 InputReader 클래스의 인스턴스를 생성해서 사용자가 필요한 시점에서 InputReader의 인스턴스를 이용해서 키보드나 마우스의 상태를 Query할 수 있다. buffer 방식인 경우에도 InputerReader 인스턴스를 사용할 수 있다는 점도 알아 두길 바란다.

기본적으로 ExampleFrameListener 클래스는 unbuffered 방식의 경우에 대해 마우스와 키보드 입력에 대한 처리를 해 놓았다. 예를 들어 커서키를 누르면 화면이 이동한다든지, 마우스를 이용해 확대나 이동을 한다든지 말이다. 하지만 사용자가 원할 경우 이러한 처리를 재정의해서 쉽게 변경할 수 있다.

buffered 방식인지, unbuffered 방식인지의 결정은 ExampleFrameListener 클래스 생성자의 인자를 통해 결정한다.

사용자 입력 이외에 ExampleFrameListener 클래스에서 중요한 것은 FrameListener 클래스의 상속에 있다. FrameListener 클래스는 단지 frameStarted와 frameEnd 가상함수만을 가지고 있다. frameStarted는 하나의 frame을 렌더링 하기 직전에 호출하고 frameEnd는 하나의 frame에 대한 렌더링이 끝났을때 호출된다. 두개의 함수 모두 bool을 반환하는데, false일 경우 다음 frame을 렌더링하지 않는다. 즉, 계속 렌더링하려면 true를 반환해야 한다.

위의 말대로라면 Ogre3D의 main loop인 Root::startRendering 함수의 내용은 다음과 같을 것이고, 실제로 같다.

  1. Root 객체는 자신에 등록된 모든 FrameListener 객체의 frameStarted 함수를 호출
  2. Root 객체는 하나의 frame을 렌더링 함
  3. Root 객체는 자신에 등록된 모든 FrameListener 객체의 frameEnd 함수를 호출

입력이 unbuffered 방식일때 frameStarted나 frameEnd 함수안에서 InputReader 인스턴스를 이용해 키보드나 마우스의 상태를 Query 해서 회전상태나, 이동상태값들을 변경해서 물체를 회전시키고 이동시킬 수 있다. 클래스 관계도에서 ExampleFrameListener 클래스가 Camera 클래스와 관계를 맺고 있는 이유가 여기에 있는데, 입력에 따라 상태정보를 변경하고 다시 이 상태정보를 통해 Camera를 제어하기 위해서이다. RenderWindow와 연관을 맺는 이유는 다음과 같다.

  • FPS를 얻기
  • 개발을 위한 Debug 기능을 이용
  • 화면을 캡쳐화여 png 파일로 저장

마지막으로, 여러분들이 ExampleFrameListener 클래스의 소스를 열어놓고 기본적으로 입력에 대해서 구현해 놓은 것이 무엇인지를 살펴보길 바란다. 이 글을 읽은 후에 소스를 살펴보면 조금이라도 이해가 수월할 것이다.

[펌] 아키텍처 체크 리스트

1. 아키텍처의 개요와 설명을 포함해서 프로그램의 구조가 명확한가?
2. 기능과 다른 모듈과의 인터페이스를 고려해서 모듈이 잘 정의되었나?
3. 모든 기능들이 너무 많거나 적지않은 모듈에 의해 적절히 수행되는가?
4. 설계된 아키텍처가 변화에 적절히 대응할 수 있는가?
5. 구매와 개발에 대한 비교와 결정을 포함하는가?
6. 아키텍처가 다른 목적을 위해 만들어진 코드를 재사용할지를 기술하는가?
7. 중요 데이터 구조가 기술되고 확인되었는가?
8. 중요 데이터 구조가 루틴 액서스 뒤에 은폐되었는가?
9. 데이터베이스 구조와 내용은 설명되었나?
10. 중요 알고리즘이 기술되고 확인됐는가?
11. 중요 대상들이 기술된 것을 확인했는가?
12. 사용자 입력을 처리하는 방법이 기술되었나?
13. 사용자 인터페이스의 중요관점이 정의 되었나?
14. 변경시 프로그램의 다른부분에 영향을 끼치지 않게 사용자 인터페이스가 모듈화되었는가?
15. 메모리관리에 대한 메모리 사용량의 예측과 방법이 기술되고 확인됐는가?
16. 아키텍처는 각 모듈의 용량과 속도를 설정했는가?
17. 문자열 처리에 대해 기술했으며 문자-문자열-저장량에 대해 평가했는가?
18. 에러처리 방법에 대해 기술하는가?
19. 에러메시지는 명확한 사용자 인터페이스를 나타내기 위한 부분으로 처리되는가?
20. 견고성의 정도를 설명하는가?
21. 정도에 지나치거나 부족하게 설계되었나? 이 부분에 대해 명확하게 설명하는가?
22. 시스템의 중요목표가 명확하게 기술되었나?
23. 전체 아키텍처가 개념적으로 일치되었나?
24. 기본 설계가 앞으로 구현될 기종과 언어에 독립적으로 쓰여졌는가?
25. 모든 중요 결정에 대한 동기가 명시되었는가?
26. 시스템을 구현할 프로그래머로써 당신은 아키텍처에 만족하는가?

출처: Steve McConnell의 Code Complete(MS Press 1995)

이 체크 리스트를 읽은 후, 실제 Code Complete 책을 읽고 내가 느낀 아키텍쳐를 세가지로 나타낸다면 다음과 같다.

  1. 아키텍쳐는 산출물이기 이전에 실무 개발자가 코딩하는 매 순간 순간 마다 참고하고, 참고 해야만 하는 유연한(때로 아키텍쳐도 수정되어야 한다) 성서이여야 한다.
  2. 아키텍쳐는 DBMS와 Web Server 그리고 방화벽 등의 시스템의 구성도와 같은 A2 용지 크기의 한장짜리 문서를 포함해서, 시스템을 개발하기 위해 고려해야할 사항을 세부적으로 기술하거나 묘술하는 것이다.
  3. 아키텍쳐에서 어떤 선택 사항에 대한 이유가 반드시 있어야 한다. “예전에 그랬으므로..” 또는 “다른 시스템도 그랬으므로..” 라는 것은 이유가 될 수 없다.

ExampleApplication의 개념

ExampleApplication 클래스는 Ogre에서 기본적으로 제공하는 Framework 클래스이다. 이 클래스가 Framework가 될 수 있는 이유는 이 클래스를 상속 받아 가상함수를 구현하면 하나의 3D 어플리케이션이 만들어지기 때문이다. ExampleApplication 클래스의 구조와 흐름을 파악한다면, Ogre의 전체적인 흐름까지 쉽게 파악할 수 있을 것이므로 Ogre의 첫번째 분석에 ExampleApplication에 대해서 집중적으로 살펴보았다. 아래는 ExampleApplication의 클래스 관계도이다. 매우 심플한 구조인것을 알 수 있다. 심플하다는 것은 확장성이 뛰어나다는 것을 의미하며 또 그만큼 견고하다는 의미라고 생각된다. (너무 Ogre를 좋게만 보는거 아닌가 싶다)

위의 클래스 관계도에서 파악할 수 있는 몇가지를 살펴보면, ExampleApplication 클래스는 RenderWindow, Root, SceneManager, FrameListener, Camera를 속성맴버로 갖고 있다. (SceneNode는 아니다) 생성과 소멸에 관한 Composition 관계는 ExampleApplication은 Root와 FrameListener를 생성하며 Root가 RenderWindow와 SceneManager를 생성한다. 그리고 Camera는 SceneManager가 생성하여 관리한다. 일단 여기서 가장 중요한 FrameListener와 SceneManager에 대해 간단히 설명하면, FrameListener는 사용자의 Interaction에 대해 렌더링될 각 Frame을 컨트롤하는 역활을 한다. 그리고 SceneManager는 화면상에 렌더링될 SceneNode 들을 관리해준다.

SceneNode는 직접적으로 ExampleApplication과는 관계가 없지만 Ogre에서 매우 중요한 개념(대부분의 3D엔진에서 중요한 용어이며 개념이다)이다. Ogre에서 SceneNode를 말하려면 Entity도 함께 언급을 해야한다. Entity는 3차원 Geometry 좌표로 구성한 Mesh라고 할 수 있는데, 이 Entity가 SceneNode에 붙게된다. SceneNode는 위치와 방향 값을 갖고 있으므로 Entity와 SceneNode가 붙게되면 특정 위치와 방향으로 놓이게 되는 물체가 정의되는 것이다. 여기서 중요한 것은 하나의 SceneNode에는 여러개의 Entity가 붙을 수 있다는 점이다. 참고로 빛(Light)도 SceneNode에 붙일 수 있다.

관계도에서 하나 더 알 수 있는 것은 ExampleApplication의 모든 맴버 함수는 추상함수라는 점이다. 즉, 앞서 언급한것처럼 ExampleApplication을 상속받아 추상함수를 구현하게 되면 하나의 어플리케이션이 만들어진다는 것이다.

이제 ExampleApplication의 추상함수들의 용도를 살펴보면, 유일한 공개(public) 함수인 go()와 보호(protected) 접근자 함수인 그외의 함수들로 구성되며 그 목적은 다음과 같다.

  • go – WinMain이나 main, 또는 Rendering Thread에서 직접 호출되며 SceneNode 등과 같은 것을 화면상에 렌더링 한다. 내부적으로 setup 함수를 호출하고 조건무한루프 함수인 Root의 startRendering 함수를 실행한 뒤, destroyScene 함수를 호출한뒤, 일반적으로 어플리케이션이 종료된다.
  • setup – 가장 많은 일을 하는 함수로, 리소스 파일을 읽어들이고 Root 클래스를 초기화하며 Root 클래스를 통해 SceneManager를 생성시킨다. 그외에 카메라, 뷰포트, SceneNode를 생성을 담당하는 함수등을 차례로 호출한다.
  • destroyScene – 어플리케이션이 종료되기 직전에 더 이상 필요하지 않을 SceneNode를 메모리에서 제거한다.
  • setupResources – 리소스(이미지, Mesh, 스크립트 등)의 경로를 외부 cfg로부터 읽어들여 추후에 읽어들일 리소스의 경로를 파악한다.
  • configure – 사용자에게 3D API로 OpenGL이나 Direct3D를 쓸것인지와 해상도, 전체화면여부등을 결정할 수 있도록 하고, 결정된 사항을 기반으로 3D 환경을 설정한다.
  • chooseSceneManager – sceneManager를 생성한다.
  • createCamera – 카메라 생성
  • createViewport – Viewport 생성. Viewport는 실제 렌더링될 창(Window)의 배경색 및 픽셀 너비와 높이 값등을 가지고 있다.
  • createResourceListener – 리소스를 실제로 Loading할때 사용자에게 현재 얼마만큼의 리소스가 Loading되었는지를 파악할 수 있는 Listener 클래스를 생성한다.
  • loadResources – 실제 리소스를 Loading 한다.
  • createScene – 다른 추상 함수와는 달리 순수 추상함수로써 화면상에 렌더링할 SceneNode를 생성한다.
  • createFrameListener – 사용자의 Interaction을 받거나 그외의 다른 이유를 통해 변경된 사항을 매 Frame에 반영할 수 있도록하는 Listener를 생성한다. Ogre를 분석때 처음에 ExampleApplication을 분석하는 것처럼 다음에는 ExampleFrameListener를 분석해 볼것이다. 일단 여기서는 간단이 앞서 언급한 내용만 알아도 충분할 것같다.

일단 ExampleApplication에 대한 개념적인 것을 정리했다. 다음에는 실제로 ExampleApplication을 상속받아 화면상에 하나의 모델을 나타내는 예제를 만들어보는 것으로 해서 ExampleApplication에 대한 정리를 마루리할 것이다.

여기서 ExampleApplication의 이름을 ExampleApplication이라고 정의했는지 생각해 볼 필요가 있을 것 같다. ExampleApplication은 단지 Ogre에서 최소한 실행되는 3D 프로그램이 갖추어야할 것들만을 가지고 있는 예제에 불과한것같다. 즉, 처음 Ogre에 접근하는 개발자들에게 ExampleApplication을 상속받아, 얼마나 쉽게 3D 프로그램을 개발할 수 있는지를 보여주기 위한 Example에 불과한것이 아닌가 싶다. 물론 예상일뿐이지만 말이다.

[펌] 지문으로 보는 성향

오른손잡이를 기준으로 하였을 경우, 왼손 엄지의 문형이 주인격적 성향을 나타낸다고 보면 된다. 반대로 왼손잡이일 경우 오른손엄지의 문형이 주인격적 성향을 나타낸다. 왼손 엄지를 기준으로 하고, 오른손의 엄지와 양손 검지에 나타난 지문의 유형을 참고해 보면 된다.

두형문
호형문
정기문
쌍기문
반기문

1. 지문 유형에 따른 성향별 특징

호형문

기본적으로 온화하고 안정적이지만 도전정신은 크지 않다. 따라서 체계적인 지도와 규범으로 이끌어주어야 한다.

기본 특질 : 호형문의 기본적인 특징은 온화하고 안정적이며 인정이 많고, 보수적이며 엄격한 편이면서도 융합을 잘하는 성향이다. 정해진 계획이 갑작스럽게 변하는 것을 좋아하지 않으며, 개인의 사생활을 중요하게 여기기 때문에 몇몇 절친한 사람들과의 깊이 있는 교유를 선호한다. 충성심이 뛰어나지만 도전적이지 못하기 때문에 지도자적 자질 역시 약한 편이다. 어떤 일이든지 지시와 규칙에 의해 실행하길 원하며, 조건이 명확한 상황에서 집행 능력을 발휘한다. 학습에 대한 반응은 매우 양호하지만, 자극의 여부에 의해 상대적인 차이가 크게 나타난다.

성격상의 장점 : 안정감이 높고 학식이 풍부하며 깊게 생각하는 편이다. 위기에 직면했을 때 차분히 대응하며, 예의 바르고 독립심이 강하며 복잡하지 않고 단순한 삶을 선호한다.

성격상의 단점 : 어떤 강렬한 느낌을 두려워하고 갑자기 일어난 돌발상황에 두려움을 느낀다. 사생활이 침해당하는 것을 꺼려하며, 만족스럽지 못한 환경 혹은 공허한 느낌에 대해 불안해한다. 창조력과 열정을 발휘하는 능력이 비교적 풍부하지 못하다.

성장시키는 방법 : 스스로 내린 결정이 성취되는 과정을 체험할 수 있는 기회를 제공하고, 본인의 감정을 마음에만 담아두지 말고 밖으로 표현할 수 있도록 도와주어야 한다. 다른 사람들이 자신의 내면세계에 대해 알고자 하는 것을 스트레스나 사생활 침해로 받아들이지 않도록 배려해야 한다. 이런 아이에게는 ‘너는 충분한 능력을 가지고 있으며 어떤 일도 해낼 수 있다’고 인정해 주고, 봉사활동 내지는 자원봉사에 적극 동참할 수 있도록 유도하는 것이 좋다. 또 단체활동에 참여해 자신의 의사를 발표하고, 자신에게 일어난 일에 대해 적극적으로 이야기할 수 있는 분위기를 조성해 주어야 한다.

대화 요령 : 명확한 지시 내지는 정확한 내용을 표명해야 한다. 과장된 표현이나 사실이 아닌 것을 말했을 경우 쉽게 역효과를 낼 수 있으므로, 안정감과 공정함과 진실성을 강조해야 한다. 분명하지 않거나 사전에 계획된 일이 아닐 경우에는 쉽게 내면의 저항을 일으킬 수 있다. 친절하게, 규범적·규칙적으로 이끌어가는 것이 가장 적합한 대화 요령이다.

정기문

감수성이 풍부하고 창의적이지만 충동적이다. 따라서 끊임없는 존중과 관심을 쏟아주어야 한다.

기본 특질 : 감성적이며 감수성이 풍부하고 정서적 반응이 비교적 직선적이다. 자유스러운 방식으로 일을 처리하며 매우 민감하다. 단체활동과 융화를 중시하지만, 어떤 일을 결정할 때 충동적으로 하는 성향이 있다. 성격이 급하고 잘 기다리지 못하는 편이다.

성격상의 장점 : 감수성이 강하고 매우 열정적인 사람으로서, 창조력이 뛰어나고 다른 사람의 아픔을 민감하게 느끼며 연민이 많다. 감정 반응이 강렬하고 낭만적인 것을 추구한다. 신뢰와 온화함으로 대인관계를 맺는다.

성격상의 단점 : 상대방의 거절을 두려워하는데, 이는 소외당하는 느낌을 매우 힘들어하기 때문이다. 누군가에게 자신이 중요한 사람이라는 느낌이 들지 않거나 의미 없게 받아들여지는 것을 매우 싫어한다. 스스로 정한 기준에 도달하지 못했거나 뭔가 틀렸다는 느낌이 강하게 들기 때문이다. 또한 인내심과 감정 조절 능력이 부족하며, 습관적으로 상대방이나 사물을 비교하고 비판하기도 한다.

성장시키는 방법 : 안정감을 키워주고 일관된 행동 모델을 제시해 심한 감정의 기복에 시달리지 않도록 도와주어야 한다. 단체활동에 주도적으로 참여할 수 있는 기회를 제공해 자기만의 세계에서 빠져나올 수 있도록 도와주고, 다른 사람들과의 관계에서 도피하지 않도록 해야 한다. 감정의 기복이 심할 때는 먼저 스스로 평정을 찾을 수 있는 시간을 주고, 그런 다음 어떤 결정을 내릴 수 있도록 유도해야 한다. 일상생활을 즐기고 광범위한 영역에 걸쳐 있는 자신의 흥미를 채울 수 있도록 도와주며, 진실한 성취감을 맛볼 수 있도록 배려해야 한다.
대화 요령 : 다른 사람으로부터 존중과 관심을 받기 원하므로 친절하게 대해주고, 심리적인 안정감을 느낄 수 있도록 배려해야 한다. 다른 사람과 비교하거나 비평하지 말고, 도전적인 면을 피하라. 단체의 목표를 향해 함께 노력하자고 권하고 명확한 목표를 정해서 실행하도록 해야 한다.

반기문

신뢰와 책임감이 크지만 자기주장이 강하다는 단점을 가지고 있다. 따라서 일방적으로 주문을 하기보다는 개성을 충분히 살려주어야 한다.

기본 특질 : 자유스러운 가운데 자기주장이 강하고, 낭만적이지만 자의식이 분명하며, 충성심과 강인함이 있다. 말 바꾸는 것을 싫어하고, 유머러스한 대화와 재치로 일을 처리하며, 다른 사람과의 관계에 성실하게 반응하고 직접적으로 대응한다. 반면 자신의 정서 조절 능력은 약한 편이다.

성격상의 장점 : 신뢰를 중시하고 책임감이 있는 사람이다. 다른 사람에게 충성을 다하고 일을 처리하는 데 있어서 우회적인 방법을 사용하지 않으며 실험정신이 강하다. 인정이 많고 다른 사람의 능력을 보호하고자 한다. 관찰력이 뛰어나며 매사에 의문이 많고 기지와 위트가 뛰어나며 민감하다.

성격상의 단점 : 상대방이 도움을 요청했을 때 적극적으로 돕고자 하는 성향이다. 그러나 위험한 상황에 직면하거나 상처를 받았을 경우 적극적으로 대처하지 못하고 불안해한다. 또 이러한 상황에 대해 스스로 굴복했다고 여길 경우 심한 무력감에 빠지기도 한다. 자신이 의지하고 따르는 사람으로부터 호의적인 반응을 얻지 못하면 아예 그들과의 교유를 단절해 버리기도 한다.

성장시키는 방법 : 자기 자신이 인생의 주인공이라는 생각이 들도록 배려해야 한다. 자신감을 갖고 상대방과 외부세계에 대해 믿음을 갖도록 유도한다. 어느 정도의 불확실성이나 불안감 역시 생활의 일부분이라고 생각하고 진심으로 받아들이도록 교육해야 한다. 상대방에 대한 의심이나 두려움에 대해 깊이 생각하고, 바쁘게 움직이는 것이 근심과 걱정을 줄이는 방법임을 알려준다. 대항하거나 도피하는 것은 두려움의 표현이라는 것을 깨달을 수 있도록 도와주고, 정면에서 적극적으로 대처하도록 유도해야 한다.

대화 요령 : 자기만의 스타일과 창의적인 표현을 인정하고 존중해 주어야 한다. 풍부한 상상력을 발현시킬 수 있는 공간을 마련해 주고 내면의 상태를 중시하고 평형을 유지하도록 배려해야 한다. 진심으로 자녀의 특성을 이해하고 받아주려는 노력이 필요하다.

두형문

용감하고 용의주도하지만 자신의 약점을 두려워한다. 따라서 온유한 방식으로 대화를 풀어나가야 한다.

기본 특질 : 매사에 엄격하고 합리적이며 공평하다. 인격을 중시하고 노력을 많이 하지만, 간혹 극단적으로 일을 처리하는 모습을 보이기도 한다. 용감하며 목표 주도형이다.

성격상의 장점 : 용감하고 과감하며 공정하고 다른 사람들의 능력을 보호해 주는 타입으로, 사람을 끄는 매력을 가지고 있다. 스스로 문제를 해결하고 우정을 중시하며 생각이 깊다.

성격상의 단점 : 고집이 세고, 비평적이기도 하며, 유약함을 싫어한다. 자신의 약점이 드러나는 것을 극히 두려워하고 부정확한 것을 싫어한다. 남에게 의지하거나 도움받는 것에 대한 심리적 거부감이 강하며, 이를 몹시 꺼려한다. 다른 사람에게 존중받지 못하거나 무시당하는 것을 못 견뎌한다. 단체생활에 화합하지 못할 것 같은 두려움이 강하며 과도하게 존엄성을 중시한다.

성장시키는 방법 : 다른 사람에게 도움받기를 꺼려하는 것은 자기 내면이 약하기 때문이라는 점을 인지시키고, 상대의 호의에 대한 과도한 거절은 상대에게 압박감이나 상처를 줄 수도 있다는 점을 깨달을 수 있도록 도와주어야 한다. 자신의 연약함은 스스로 성장할 수 있는 도구이므로, 자신의 약점에 대해 너그러운 마음을 가질 수 있도록 지도한다. 행동하기 전에 먼저 다른 사람들의 의견을 충분히 수렴하고, 본인의 의사와 다른 경우 적당한 방법을 찾아내 대처하고 내면의 평정을 유지하도록 유도한다. 상대방의 관심과 사랑을 받아들이고 대화하는 데 적당한 방법을 모색하도록 격려한다. 자신을 보다 가볍고 유연한 상태로 만드는 방법을 배울 수 있도록 적당한 기회를 제공한다.

대화 요령 : 매사에 목표를 분명히 하고 결과를 명시해야 하며 개성을 존중해 주어야 한다. 지도자적인 성향을 활용해 자신에게 주어진 권한의 범위를 최대한 분명하게 명시해 주는 것이 좋다. 온유한 방식의 질의문답 형태의 대화법이 효과적이다. 내성적이기 때문에 외형보다는 내면의 세계를 중시한다. 따라서 칭찬은 공개적으로 하되 지적은 개별적으로 해서 자존심을 지켜줘야 한다.

쌍기문

적응 능력이 강하고 긍정적이지만 효율성이 떨어지는 면도 있다. 따라서 지시는 명확하게, 계획은 엄격하게 관리해 주는 것이 좋다.

기본 특질 : 다른 사람을 언제나 긍정적인 시선으로 바라보며, 안정적인 인생을 선호하고 중용의 도를 추구한다. 남을 도와주는 것을 즐기고, 직접적으로 거절하는 것을 힘들어하며, 완벽주의적인 경향이 있고 매사에 생각이 많다.

성격상의 장점 : 자신이 주도적으로 다른 사람에게 관심을 갖고 몸으로 실천한다. 책임감이 강하고 조정 능력이 탁월하며, 환경이나 상황에 따른 적응 능력이 뛰어나 새로운 것을 쉽게 받아들이며 사랑이 많다.

성격상의 단점 : 어떤 일을 하는 데 있어서 충돌과 대립을 두려워하는데, 이는 본인의 입장이 곤란해지는 상황이나 불편한 감정을 싫어하기 때문이다. 스스로의 에너지를 낭비하는 일 혹은 정신적으로 상처를 입는 일을 꺼려하며, 어떤 중대한 결정을 할 때 생각이 너무 많아 때를 놓치거나 효율이 떨어지기도 한다. 거절하기를 어려워하고 잡다한 일이 너무 많아 시간 관리에 어려움을 겪는다.

성장시키는 방법 : 자신이 진정으로 원하는 것과 즐거워하는 것에 관심을 갖고, 힘들거나 화가 났을 때 자신의 불만을 충분히 표현할 수 있도록 배려한다. 자신이 정말 소중한 사람이라는 것을 일깨워줘야 한다. 스스로에게 스트레스를 주는 행동을 하고 있지는 않은지 돌아보도록 주의를 환기해 준다. 정말로 먼저 해야 할 일과 나중에 해도 되는 일에 대한 우선순위와 시간 안배를 정확히 하고 있는지 점검해 준다. 다른 사람을 사랑하듯 자신을 사랑할 수 있도록 끊임없이 일깨워야 한다.

대화 요령 : 자신의 의견과 생각을 명확하게 표현하고 결정하도록 하라. 지시는 명확하게 하고 계획은 엄격하게 관리해 주어야 한다. 평소 은연중에 자신의 생각이나 내면의 느낌이 표출될 수 있기 때문에, 아이가 평소에 하는 말을 경청하고 적당한 시기에 결정하도록 유도하라.

2. 지문 유형에 따른 미래의 직업

내 아이에게 딱 맞는 역할, 타고난 잠재력을 최대한 발휘할 수 있는 직업은 과연 무엇일까?

호형문 _ 안정형. 공무원 등 안정적인 직업

정확한 지시 및 정해진 규범대로 일하는 보수적인 타입이므로 실무적인 일에 적합하다. 새로운 도전보다는 기존의 안정적인 분야를 선호하며, 낯선 사람에게 자기의 생각이나 가치를 표현하는 데 익숙하지 않다. 안정성을 추구하고 자기주장을 관철시키기보다 주어진 규범에 따라 일하기를 좋아하므로, 사무적이고 정확한 관리 능력을 필요로 하는 직장에서 자신의 특기를 발휘한다.

일반적으로 기업의 재무관리나 조직관리 및 사무 진행에 적합한 능력을 지니고 있다. 새로운 업무나 사람에 대해서는 한 걸음 뒤로 물러서며 부끄러움을 잘 타고 소극적이지만, 일단 시작하면 매우 안정적인 집행 능력을 발휘한다. 새로운 업무라도 일단 경험해 보고 어느 정도 익숙해지면 기존의 사람들과 적절히 협력하여 공정하고 정확한 집행자가 된다.
사생활이 침해되는 것을 몹시 싫어하며 미지의 세계에 대한 도전을 기피하는 편이다. 일반적으로 보면 정열을 표출하는 일이 드물지만, 일단 선택한 일에 대해서는 쉽게 변하지 않는 태도를 견지한다. 외적으로 볼 때는 경쟁을 싫어하고 매사에 사무적이며 엄숙하고 안정된 정서를 가지고 있다. 내성적으로 보이는 경우가 많다.

적합한 직업 부류
_ 사무 능력을 요하는 분야, 안정적인 기술 분야
_ 전원에서 일할 수 있는 직업
_ 경리, 자료관리, 환경 관련 사업, 전문적인 농부, 운전기사
_ 공무원, 교사, 의사, 전문기술직, 회계사, 세무사

정기문 _ 감성형. 교사나 고객관리자 등 친절과 성실성이 필요한 직업

감수성이 풍부하며 매우 친절하지만 일처리나 대인관계에서 감정적일 때가 많다. 자유스러운 분위기를 좋아하며 무리한 요구나 엄숙한 환경을 피한다. 단체생활 자체를 좋아할 뿐 아니라 열정적이고 적극적으로 봉사한다. 자신의 생각이나 감정을 밖으로 드러내 표현하기를 좋아하고, 남을 적극적으로 이해하려고 하며, 직장에서의 친화력도 뛰어나다.

자신을 지지해 주는 환경일 때 일의 능률이 오르고 신나하지만, 반대의 경우 능률이 많이 떨어진다. 남의 말에 귀를 잘 기울이며, 주변 환경의 영향을 많이 받고, 미래에 대한 대비보다는 현실을 주로 바라보는 편이라고 할 수 있다. 매우 창의적이라는 장점이 있지만, 결정적인 순간에 판단력이 약하고 경쟁이 치열한 환경에서는 견디기 힘들어하며 구속을 싫어하는 면은 직장생활에서 단점으로 작용하기도 한다.

정해진 삶을 좋아하며, 감정 표현이 적극적이어서 좋고 싫음이 얼굴에 분명히 드러난다. 때에 따라서는 약간 안일하고 피동적인 경우도 있으며, 스트레스를 극복해 내는 힘이 부족하고 분위기에 따라 쉽게 변하며 추진력이 약하다. 특히 장기적인 계획과 목표 수립을 어려워한다.

적합한 직업 부류
_ 서비스업, 교육, 기술
_ 인사관리 및 고객관리
_ 교사, 엔지니어, 예술가, 가수
_ 사회사업, 간호사, 특수교육
_ 컨설턴트, 서비스관리, 마케팅 매니저

반기문 _ 창의형. 작가나 감독 등 창의적이고 개성이 강한 직업

일반인들과는 많이 다른 사고방식의 소유자다. 일처리와 대인관계에서도 창의적인 성향이 매우 강하다. 일반적인 규범과는 다른 방식으로 일을 처리하기 때문에 다른 사람들을 긴장하게 만들기도 한다. 독특한 자기만의 스타일을 발산하고 색다른 아이디어로 신선함을 주며 창의적이고 개성이 강하다. 연구 능력이 뛰어나기 때문에 연구개발 분야에서 우수한 능력을 발휘한다. 흥미 있는 일에 몰두하여 연구하고 질문하기를 좋아하고, 그에 따라 비판적인 태도를 보이기도 한다.
창의적이며 선택 능력이 탁월하고 민감한 관찰력의 소유자다. 특히 자신의 경험과 지식을 중시하며 자기주장이 확실하고 의지력이 강하다. 일반인들과는 다른 독특한 주장을 많이 하기 때문에 자신을 이해하지 못하는 사람들에게는 쉽게 받아들여지지 못하며, 그런 사람들과 대화하기를 힘들어한다. 자기 내면의 세계를 적극적으로 표현하지 않는 편이다.

외적으로는 의문이 많고 관찰력이 세밀하며 도전적인 모습을 보여주는 경우가 많으며, 뛰어난 유머감각으로 좌중을 압도하기도   한다.

적합한 직업 부류
_ 창의적인 시장 개발, 일반적인 개념에서 벗어난 독특한 기술개발 분야
_ 연구단체 및 개발부
_ 작가, 예술가, 영화감독

두형문 _ 전략형. 장군이나 CEO 등 주도성과 담판 능력이 필요한 직업

두형문은 넓은 시야에서 사고하고 자기주관이 분명하며, 일이나 대인관계에서 명확한 결과를 요구한다. 따라서 일반적으로 독립 창업하는 경우가 많고 회사의 CEO, 마케팅 매니저, 국가 지도자 등으로 일하는 경우가 많다. 도전적인 목표를 좋아하고 지도력이 특출하며 관리 능력이 탁월하다는 얘기다. 특히 내면이 강하고 독립적이며 경쟁이 치열한 직장 환경에서 더욱 확실한 리더십을 발휘하고, 거의 습관적으로 많은 일을 리드해 나간다.

목표 지향적이며 개척정신이 투철하고 한번 설정한 목표는 철저한 계획과 관리로 반드시 이뤄낸다. 실질적인 물건을 좋아하며 복잡한 문제에 도전해 해결하기를 즐긴다. 목표를 향해 불도저처럼 나아가는 사람을 연상하면 두형문의 직업적인 특질을 쉽게 이해할 수 있을 것이다.

정서적으로는 매우 침착하며 객관적인 분석을 바탕으로 일을 판단하고 관리하며 효율을 중시한다. 관계를 맺기가 쉽지 않지만, 한번 신뢰를 맺으면 의리가 강하다. 자기 내면의 세계를 표현하는 데는 적극적이지 못하지만, 한번 일을 추진하기 시작하면 대단히 열정적이며 패기가 넘친다. 강하고 활기차고 성과를 창출해 내며 사실적인 것을 추구한다. 깨끗하고 엄격하며 세밀하다. 감정 조절을 잘하며 깊고 멀리 볼 줄 알고, 용감하고 담대하다. 하지만 때로 극단적인 성향을 드러내기도 한다.

적합한 직업 부류
_ 주도성과 담판 능력을 필요로 하는 일
_ 기획 혹은 관리부
_ 연설가, 엔지니어, 지휘자, 군 장성, CEO
_ 독립 창업 경영인

쌍기문 _ 조정형. 기획자나 컨설턴트 등의 정보 수집과 경쟁이 강한 직업

생각이 많은 쌍기문은 정보를 수집하는 일에 능하다. 일처리나 대인관계에서도 가장 원만한 방법을 찾아 해결한다. 충돌과 대립을 피하면서 다방면으로 생각하고 결정하는 합리적인 성향이다. 다른 사람들과의 관계에서도 우수한 정신력을 바탕으로 자기의 주장을 내세우기보다는 전체의 의견을 수렴하는 편이며, 경쟁이 치열한 직장 환경에서 더욱 탁월한 기질을 발휘한다.

조정 능력과 협조성이 좋으며, 평소에도 생각을 많이 하고 일에 있어서 늘 공평을 기한다. 적응 능력이 좋고 변화에 도전하기를 즐기며, 환경에 따라 목표와 입장을 쉽게 바꾼다. 오랜 생각 끝에 내린 결론이라고 하더라도 상황에 일치하지 않으면 비교적 쉽게 바꾸는데, 이는 유연성이라고 볼 수도 있지만 때에 따라서는 변덕으로 보이기도 한다.

생각이 많아서 최종 결정을 내리기가 어렵지만, 전체를 조합하고 새롭고 독특한 아이디어를 내는 능력이 탁월하다. 관찰을 잘하고, 평가와 질문이 많다. 감정 조절을 잘하고 다방면으로 생각하며 직접적인 입장 표명을 피한다. 동시에 여러 가지 목표를 세우지만, 그에 비해 목표 달성 능력은 부족하다는 단점이 있다.

적합한 직업 부류
_ 기술 분석 및 컨설턴트, 전문 평론가
_ 기획자, 공무원, 비서 및 조력자 역할
_ 중개인(무역·사무), 외교관, 전문 가이드
_ 독립 창업 경영인
_ 협회 및 단체활동

내 아이의 지문에 미래가 숨어있다(황금나침반) 中 발췌