'프로젝트'에 해당되는 글 3건

좋은 자료들을 찾아서 참고 겸 올려둔다.


버전(Version)을 제대로 이해하기


브랜치의 종류

'프로젝트' 카테고리의 다른 글

[UML] Use Case Diagram  (0) 2017.04.12
[C++] Qt 를 이용한 타이머 만들기  (0) 2017.01.24
블로그 이미지

NCookie

,

'어떻게'가 아닌 Actor 가 '무엇'을 하는지에 중점을 두고 작성해야함

=> 사용 사례는 설계가 아닌 요구 분석을 위한 도구임


포함 관계 (<<include>>)

- 어떤 사용 사례가 다른 사용 사례를 포함할 때

- ex) 식당에서 [주문] 을 하기 위해서는 [메뉴 선택] 과 [결제] 를 해야 함

use case extend에 대한 이미지 검색결과

[그림 1 - 포함 관계 예시]



확장 관계(<<extend>>)

- 사용 사례가 일정한 조건 아래 확장된 동작을 포함

- ex) GUI 프로그램에서 [Trigger Action] 을 할 때 상황에 따라 [Enter/Space Key] 를 누르거나 [Click] 을 할 수 있음

use case extend에 대한 이미지 검색결과

[그림 2 - 확장 관계 예시]



일반화(generalization)

- 구체적인 것을 일반화함

- ex) [Place Order] (주문을 발주하다) 라는 것은 phone 으로 주문하거나 internet 으로 주문하는 것을 일반화했다고 할 수 있음

- attribute 와는 다른 개념임

- 상속과 같은 개념 

use case generalization에 대한 이미지 검색결과

[그림 3 - 일반화 예시]



참고 링크


그림 1 : https://i-msdn.sec.s-msft.com/dynimg/IC292999.jpeg

그림 2 : https://i.stack.imgur.com/WJDWU.png

그림 3 : http://sce.uhcl.edu/helm/rationalunifiedprocess/process/modguide/images/ucgen2.gif

'프로젝트' 카테고리의 다른 글

버전 네이밍과 브랜치  (0) 2017.12.01
[C++] Qt 를 이용한 타이머 만들기  (0) 2017.01.24
블로그 이미지

NCookie

,

프로젝트 목적


Qt에 익숙해질겸 간단한 타이머 프로그램을 만들기로 하였습니다.



Qt 설치하기


Qt 설치 : https://wiki.qt.io/Install_Qt_5_on_Ubuntu


우분투 16.04 기준으로 Qt5 를 설치하였습니다.



Qt 특징


- 크로스 플랫폼 지원에 안드로이드, 윈도우 폰 등 모바일도 지원
- 그를 위해 OS와 컴파일러마다 조금씩 다른 라이브러리들의 기능들을 자체적으로 제공
- GUI 뿐만 아니라 콘솔에서도 작동. 애초에 GUI 는 Qt 의 모듈임
- Qt Core 에 Qt GUI 가 포함되어 있음
- Qt 는 GNU software를 활용하기 때문에 개발은 Linux 가 적합


진행 상황

 기본적인 타이머 기능 구현
 누적된 시간(DB 연동)
 스페이스바 누르면 시작/일시정지
 소리 추가
 OS의 API 를 이용하여 시간이 다 되면 창이 가장 상단에 뜨
도록


private slots 이란?

Qt 컴파일러가 따로 있고 슬롯 함수들을 선언하기 위해 사용


Qt 에서는 UI 이벤트를 어떻게 처리할까?

이벤트가 발생하면 시그널을 발생시키고 그것을 받으면 슬롯에서 처리

connect(timer, SIGNAL(timeout()), this, SLOT(showTime()));
// timeout() 이 시그널을 보내면 showTime()이 호출됨



GitHub


https://github.com/NCookies/MyTimer



참고링크


Qt 에 대한 개념을 공부하면서 참고했던 링크입니다.


http://www.korone.net/bbs/board.php?bo_table=qt_lecture&wr_id=475



cross-platform 빌드하기


Ubuntu 16.04, Qt5 기준으로 설명합니다.(Qt4에서 하는 방법)


1. git clone https://github.com/mxe/mxe.git


2. dependencies build 설치

apt-get install \
    autoconf automake autopoint bash bison bzip2 flex gettext\
    git g++ gperf intltool libffi-dev libgdk-pixbuf2.0-dev \
    libtool libltdl-dev libssl-dev libxml-parser-perl make \
    openssl p7zip-full patch perl pkg-config python ruby scons \
    sed unzip wget xz-utils
apt-get install g++-multilib libc6-dev-i386


3. 위에서 git 으로 mxe 를 받았으면 mxe 디렉터리가 생깁니다.

cd mxe && make qt5


4. <mxe root>는 mxe를 설치한 디렉터리 절대경로입니다. 이 부분을 설정해주지 않으면 뒤에서 오류가 발생할 수 있습니다.

export PATH=<mxe root>/usr/bin:$PATH


5. 빌드할 qt 프로젝트 디렉터리에서 다음 명령을 실행합니다.

<mxe root>/usr/bin/i686-w64-mingw32.static-qmake-qt5 && make


6. 중간에 에러가 발생하지 않는다면 release 디렉터리 안에 exe 파일이 생깁니다. 테스트 결과 윈도우에서도 정상적으로 작동합니다.

wine release/foo.exe



오류




make[1]: i686-w64-mingw32.static-g++: 명령을 찾지 못했음

Makefile.Release:387: 'release/main.o' 타겟에 대한 명령이 실패했습니다

make[1]: *** [release/main.o] 오류 127

make[1]: 디렉터리 '/home/ryu/QtProjects/MyTimer' 나감

Makefile:34: 'release' 타겟에 대한 명령이 실패했습니다

make: *** [release] 오류 2

해결 방법 => export PATH=/home/ryu/QtProjects/mxe/usr/bin:$PATH


'프로젝트' 카테고리의 다른 글

버전 네이밍과 브랜치  (0) 2017.12.01
[UML] Use Case Diagram  (0) 2017.04.12
블로그 이미지

NCookie

,