2016년 3월 18일 금요일

[IDE 팁] 윈도우 7에서 VC6의 편집기 글꼴이 표시되지 않을 경우 처리하는 방법

오늘은 제가 설치한 개발환경에서의 꿀팁을 소개합니다.
윈도우7 64비트 운영환경에서 Visual Studio 6.0을 설치하여 개발하는 개발자들이 공통적으로 겪고 있는 문제점입니다. VC의 IDE 환경에서 윈도우의 글꼴을 변경할 수 없다는 것입니다.

조치방법은 아래와 같은 순서로 진행하면 됩니다.
regedit.exe 를 실행하여 레지트리 변경작업하면 됩니다.
[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0] 으로 이동합니다.
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format]

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Output Window]
"FontFace"="Consolas"
"FontSize"=dword:0000000c

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Source Window]
"FontFace"="Consolas"
"FontSize"=dword:0000000c
위 레지스트리 항목을 추가하여 주세요.

이런 방법으로도 변경되지 않는다면 다시 설치해 보세요.ㅋㅋ

2016년 3월 17일 목요일

[UML 4교시] Class 다이어그램을 알아보자

Class 다이어그램이란

1. 개념

  • Subsystem : 물리적인 시스템의 부분 혹은 전체를 명세화하기 위해 요소들을 그룹화하는 요소입니다.

  • Interface : 클래스에 의해 제공되는 서비스를 구성하는 연산들을 포함하는 요소입니다. 또한 연산들을 효과적인 그룹으로 나누고 그것들을 특징지을 수 있는 방법을 제공합니다. 하지만, 인터페이스로는 객체가 생성될 수 없습니다.


  • Providing Interface : Subsystem1에서는 Interface1을 제공해야 한다.


  • Requiring Interface : Subsystem1에서는 Inteface1을 요구하고 있다.

  • Class : 객체의 구조와 행위를 묘사하는 속성(Attribute)과 연산(Operation)의 집합을 선언하는 요소입니다. 그리고, 클래스는 템플릿 파리미터를 가질 수 있습니다.


2. 클래스 다이어그램 표시구문

Class 다이어그램 사용예시

3. StarUML 구문 사용법

  • 콤마(,) : 여러 개의 다이어그램 개체를 나열해서 사용할 때 이용합니다.
  • 연결(-) : 연결 표시가 앞/뒤에 따라 구분되며 시작점 위치가 주(Main) 개체가 된다.
  • 부등호(<,>) : 단방향 작용을 의미하며 등호의 꼭지점 방향이 주(Main) 개체가 된다.
  • 점선(--) : 상호 의존적 관계를 의미하며 부등호(<,>)와 같이 사용할 수 있다.
  • 등호(=) : 상속적 관계를 의미하며 항상 부등호(<,>)와 같이 사용한다.
  • 포함(i) : 의존적 포함 관계를 의미하며 항상 연결, 부등호(<,>)와 같이 사용한다.
  • 확장(e) : 의존적 확장 관계를 의미하며 항상 연결, 부등호(<,>)와 같이 사용한다.
  • 괄호((,)) : 요구인터페이스를 의미하며 항상 연결과 같이 사용한다.
  • 엣(@) : 제공인터페이스를 의미하며 항상 연결과 같이 사용한다.
  • 각진괄호(<>) : 집합 관계를 의미하며 항상 연결과 같이 사용한다.
  • 각진채움괄호(<*>) : 합성 관계를 의미하며 항상 연결과 같이 사용한다.

[UML 3교시] UseCase 다이어그램을 알아보자

UseCase에 대해서 알아보자.

1. 기본 개념

  • Actor : 일반적으로 시스템 외부에 존재하면서 시스템과 상호작용하는 개체입니다. 액터는 사람이거나 기계 혹은 소프트웨어 등이 될 수 있습니다.

  • UseCase : 시스템의 행위(behavior)를 정의하기 위해 사용하는 요소입니다. 일반적으로 액터와 상호작용합니다.

2. 상호작용 표기구문

UseCase 사용예시

3. StarUML 구문 사용법

  • 콤마(,) : 여러 개의 다이어그램 개체를 나열해서 사용할 때 이용합니다.

  • 연결(-) : 연결 표시가 앞/뒤에 따라 구분되며 시작점 위치가 주(Main) 개체가 된다.
  • 부등호(<,>) : 단방향 작용을 의미하며 등호의 꼭지점 방향이 주(Main) 개체가 된다.
  • 점선(--) : 상호 의존적 관계를 의미하며 부등호(<,>)와 같이 사용할 수 있다.
  • 등호(=) : 상속적 관계를 의미하며 항상 부등호(<,>)와 같이 사용한다.
  • 포함(i) : 의존적 포함 관계를 의미하며 항상 연결, 부등호(<,>)와 같이 사용한다.
  • 확장(e) : 의존적 확장 관계를 의미하며 항상 연결, 부등호(<,>)와 같이 사용한다.



[UML 2교시] UML 다이어그램별 표기법에 대하여 알아보자

UML다이어그램 표기법

이번 시간에는 UML을 작성하기 위해 필요한 다이어그램과 StarUML 도구의 사용법에 대하여 알아보기로 하겠습니다.

1. 다이어그램

이어그램 종류설명
 Class Diagram클래스 다이어그램(Class Diagram)은 클래스관련 요소들의 여러 가지 정적인 관계를 시각적으로 표현한 것입니다. 클래스 다이어그램은 클래스(Class) 뿐만 아니라 인터페이스(Interface), 열거형(Enumeration), 패키지(Package) 및 여러 가지 관계들 뿐만 아니라 인스턴스(Instance)와 그것들의 연결(Link) 등도 포함할 수 있습니다.
 Use Case Diagram유스케이스 다이어그램(Use Case Diagram)은 특정 시스템 혹은 개체내의 유스케이스(Use Case)들과 그 외부의 액터(Actor)들 간의 관계를 표현한 것입니다. 유스케이스는 해당 시스템의 기능을 표현하며 그것들이 어떤 외부 액터들과 상호작용하는지를 나타냅니다.
 Sequence Diagram시퀀스 다이어그램(Sequence Diagram)은 인스턴스들이 어떻게 상호작용을 하는지를 묘사합니다. 하나의 협동-인스턴스집합(CollaborationInstanceSet)에 포함된 인스턴스(Instance)들 상호간에 주고받는 자극(Stimulus)들의 집합인 상호작용-인스턴스집합(InteractionInstanceSet)을 직접적으로 표현합니다. 시퀀스 역할 다이어그램(Sequence Role Diagram)은 역할(ClassifierRole) 중심의 관점을 반영한 반면, 시퀀스 다이어그램(Sequence Diagram)은 인스턴스(Instance) 중심의 관점을 반영한 것입니다.
 Sequence Diagram (Role)시퀀스 역할 다이어그램(Sequence Role Diagram)은 역할 개념들이 어떻게 상호작용을 하는지를 묘사합니다. 하나의 협동(Collaboration)에 포함된 역할(ClassifierRole)들 상호간에 주고받는 메시지(Message)들의 집합인 상호작용(Interaction)을 직접적으로 표현합니다. 시퀀스 다이어그램(Sequence Diagram)은 인스턴스(Instance) 중심의 관점을 반영한 반면, 시퀀스 역할 다이어그램(Sequence Role Diagram)은 역할(ClassifierRole) 중심의 관점을 반영한 것입니다.
 Collaboration Diagram협동 다이어그램(Collaboration Diagram)은 인스턴스들이 어떻게 협동하는지를 묘사합니다. 하나의 협동-인스턴스집합(CollaborationInstanceSet)에 포함된 인스턴스(Instance)들의 협동 모델을 직접적으로 표현합니다. 협동 역할 다이어그램(Collaboration Role Diagram)은 역할(ClassifierRole) 중심의 관점을 반영한 반면, 협동 다이어그램(Collaboration Diagram)은 인스턴스(Instance) 중심의 관점을 반영한 것입니다.
 Collaboration Diagram (Role)협동 역할 다이어그램(Collaboration Role Diagram)은 역할 개념들이 어떻게 협동하는지를 묘사합니다. 하나의 협동(Collaboration)에 포함된 역할(ClassifierRole)들의 협동 모델을 직접적으로 표현합니다. 협동 다이어그램(Collaboration Diagram)은 인스턴스(Instance) 중심의 관점을 반영한 반면, 협동 역할 다이어그램(Collaboration Role Diagram)은 역할(ClassifierRole) 중심의 관점을 반영한 것입니다.
 Statechart Diagram상태 다이어그램(Statechart Diagram)은 특정 개체의 동적인 행위를 상태(State)와 그것들간의 전이(Transition)를 통해 묘사합니다. 일반적으로 클래스의 인스턴스에 대한 행위를 묘사하는데 사용되지만 그 밖의 요소들에 대해서도 얼마든지 사용될 수 있습니다.
 Activity Diagram액티비티 다이어그램(Activity Diagram)은 상태 다이어그램의 특별한 형태로써, 활동들의 수행 흐름을 묘사하는데 적합합니다. 일반적으로 작업흐름(Workflow)을 표현하기 위해 많이 사용되며, 클래스, 패키지 혹은 연산 등의 개체에 대해 주로 사용됩니다.
 Component Diagram컴포넌트 다이어그램(Component Diagram)은 소프트웨어 컴포넌트 사이의 의존관계를 묘사합니다. 소프트웨어 컴포넌트를 구성하는 요소들과 그것들을 구현하는 요소들도 모두 표현될 수 있습니다.
 Deployment Diagram디플로이먼트 다이어그램(Deployment Diagram)은 물리적인 컴퓨터 및 장비 등의 하드웨어 요소들과 그것에 들이 배치되는 소프트웨어 컴포넌트, 프로세스 및 객체들의 형상을 묘사합니다.
 Composite Structure Diagram복합구조 다이어그램(Composite Structure Diagram)은 분류자(Classifier)의 내부 구조를 표현하는 다이어그램입니다. 여기에는 Classifier가 시스템의 다른 부분들과의 상호작용하는 지점 등을 포함합니다.
http://staruml.sourceforge.net/docs/user-guide(ko)/ch04.html [생성할 수 있는 다이어그램 종류 참조]

2. 다이어그램 표기법

다이어그램 종류표기법현재 요소설명
Class Diagram
Component Diagram
Deployment Diagram
Composite Structure Diagram
 
<=Classifier현재 요소로부터 타겟 요소로 specialization 관계를 맺습니다. 
=>Classifier현재 요소로부터 타겟 요소로 generalization 관계를 맺습니다.
--Classifier현재 요소로부터 타겟 요소로 association 관계를 맺습니다.
<-Classifier타겟 요소로부터 현재 요소로 navigable association 관계를 맺습니다.
->Classifier현재 요소로부터 타겟 요소로 navigable association 관계를 맺습니다.
<>-Classifier현재 요소는 타겟 요소를 aggregate하는 관계를 맺습니다.
-<>Classifier타겟 요소가 현재 요소를 aggregate하는 관계를 맺습니다.
<*>-Classifier현재 요소는 타겟 요소를 compose하는 관계를 맺습니다.
-<*>Classifier타겟 요소가 현재 요소를 compose하는 관계를 맺습니다.
<--Classifier타겟 요소가 현재 요소에 대해서 dependency 관계를 맺습니다.
-->Classifier현재 요소가 타겟 요소에 대해서 dependency 관계를 맺습니다.
)-Classifier타겟 요소가 현재 요소에 대해서 requirement 관계를 맺습니다.
-(Classifier현재 요소가 타겟 요소에 대해서 requirement 관계를 맺습니다.
@-Classifier타겟 요소가 현재 요소를 realization하는 관계를 맺습니다.
-@Classifier현재 요소가 타겟 요소를 realization하는 관계를 맺습니다.
Usecase Diagram()-UseCase현재 요소와 연결된 타겟 모델(Actor)과 communication 연결을 한다.
-()Actor현재 요소와 연결된 타겟 모델(UseCase)과 communication 관계를 맺습니다.
<i-UseCase타겟 요소로부터 현재 요소로 include 관계를 맺습니다.
-i>UseCase현재 요소로부터 타겟 요소로 include 관계를 맺습니다.
<e-UseCase타겟 요소로부터 현재 요소로 extend 관계를 맺습니다.
-e>UseCase현재 요소로부터 타겟 요소로 extend 관계를 맺습니다.
Sequence Diagram
Seqeunce Diagram(Role)
<-Object, ClassifierRole현재 요소로부터 타겟 요소로 stimulus를 생성합니다.
->Object, ClassifierRole타겟 요소로부터 현재 요소로 stimulus를 생성합니다.
<->Object, ClassifierRole타겟 요소로부터 현재 요소로 return을 가지는 stimulus를 생성합니다.
<-Stimulus, Message현재 Stimulus의 Sub-Stimulus(타겟 요소로부터 들어오는)를 생성합니다.
->Stimulus, Message현재 Stimulus의 Sub-Stimulus(타겟 요소로 나가는)를 생성합니다.
<->Stimulus, Message현재 Stimulus의 Sub-Stimulus(타겟 요소로부터 나가면서 리턴을 가지는)를 생성합니다.
<~Stimulus, Message현재 Stimulus 앞에 존재하는 Stimulus(타겟 요소로부터 들어오는)를 생성합니다.
~>Stimulus, Message현재 Stimulus 앞에 존재하는 Stimulus(타겟 요소로 나가는)를 생성합니다.
<_Stimulus, Message현재 Stimulus 뒤에 존재하는 Stimulus(타겟 요소로부터 들어오는)를 생성합니다.
_>Stimulus, Message현재 Stimulus 뒤에 존재하는 Stimulus(타겟 요소로 나가는)를 생성합니다.
Collaboration Diagram
Collaboration Diagram(Role)
<-Object, ClassifierRole현재 요소로부터 타겟 요소로 stimulus를 생성합니다.
->Object, ClassifierRole타겟 요소로부터 현재 요소로 stimulus를 생성합니다.
<->Object, ClassifierRole타겟 요소로부터 현재 요소로 return을 가지는 stimulus를 생성합니다.
Statechart Diagram/
Activity Diagram
<-State, ActionState타겟 요소에서 현재 요소로 나가는 transition을 생성합니다.
->State, ActionState현재 요소에서 타겟 요소로 나가는 transition을 생성합니다.
-*State, ActionState타겟 요소(Initial State)로부터 현재 요소로 들어오는 transition을 생성합니다.
-@State, ActionState현재 요소에서 타겟 요소(Final State)로 나가는 transition을 생성합니다.
<-<>State, ActionState타겟 요소(Decision)에서 현재 요소로 들어오는 transition을 생성합니다.
-><>State, ActionState현재 요소에서 타겟요소(Decision)로 나가는 transition을 생성합니다.
-(H) -(h)State, ActionState현재 요소에서 타겟요소(History)로 나가는 transition을 생성합니다.
-(H*) -(h*)State, ActionState현재 요소에서 타겟요소(Deep History)로 나가는 transition을 생성합니다.
<-|State, ActionState타겟 요소에서 현재 요소로 join해서 들어오는 transition을 생성합니다.
|->State, ActionState현재 요소에서 타겟 요소로 fork해서 나가는 transition을 생성합니다.
http://staruml.sourceforge.net/docs/user-guide(ko)/ch04.html [단축생성 구문 참조]

[UML 1교시] 소프트웨어 아키텍처를 설계하기 위한 도구

1. 개요

이번 시간에는 소프트웨어를 개발하기 위해서 다양한 아이디어를 구상하고 스케치한 것을 구체화하기 위한 도구로 UML(Unified Modeling Language공식사이트)에 대해서 알아보기 하겠습니다.

2. 통합 모델링 언어 도구

UML의 상용도구도 많이 있겠지만 여기서는 무료로 사용할 수 있는 도구인 StarUML을 소개하기로 하겠습니다. 저 또한, 여기 저기서 스크랩을 하면서 학습하고 자료를 올리기로 하겠습니다.


3. StarUML 설치

위 다운로드사이트에서 다운로드를 받은 파일을 실행하고, Next 버튼을 클릭합니다.
StarUML 설치화면
"I accept the agreement" 를 선택하여 라이선스를 동의하고 Next 버튼을 클릭합니다.
StarUML 라이선스 동의화면
계속해서 Next 버튼을 클릭하면 아래와 같은 설치를 진행합니다.
StarUML 설치 진행화면
설치가 완료되면, StarUML을 실행하십시오. 아래의 화면은 초기 실행화면 입니다.
StarUML 초기화면



2016년 3월 7일 월요일

[윈도우10 팁] 절전 모드 자동 해제(자동으로 풀리는 현상) 방지 방법

윈도우7에서 윈도우10으로 옮겨타고서 잘~~~ 사용하고 있는데,
컴퓨터의 전원설정을 1시간 정도 아무런 작업을 하지 않으면 절전모드로 변경하도록 설정을 했습니다.
그런데, 절전모드에서 다시 로그인을 해보니 다음의 절전모드까지 걸리는 대기시간은 1시간이 아닌 기본값(?) 으로 변하는 것입니다.
그래서, 이와 같은 고충을 다른 사람들도 겪고 있을 것으로 알고 구글링을 해보니 자료가 있었습니다.

절전 모드 자동 해제(자동으로 풀리는 현상) 방지 방법

간략한 설정 방법

1. 전원 옵션 > 고급 설정 > 절전


2. 도스창을 관리자 권한으로 호출하여 절전모드 해제 디바이스 확인

powercfg -devicequery wake_armed

 3. Window + Pause 키를 눌러서 장치관리자를 호출하여 전원 관리 장치를 해제