게으른 컴공생
article thumbnail

GUI

게임을 만드는 데 있어서 GUI도 매우 중요한 요소라고 생각한다.

이전에 GUI를 다뤄본 경험이 한 번 있었는데

바로 위에서 언급했던 갤러리 관리 프로그램을 만들 때였다.

그때는 python에서 tkinter라는 모듈을 이용했었는데 C++에서는

어떻게 GUI를 다룰 수 있는지 조금의 자료조사를 거쳤다.

 

그 방법에는 세 가지 정도가 있다고 한다.

1. window api를 이용하는 방법

2. mfc를 이용하는 방법(정말 암 걸리는 방법이란다)

3. 라이브러리를 이용하는 방법(Qt, JUCE, Nana)등

+window form

 

window api의 경우는 내가 다뤄본 경험이 있어서 자신이 있지만

라이브러리의 경우는 듣도 보도 못한 내용들이 많았다. 설치부터 설정까지도 꽤나 많이 신경써야 한다는 점도 존재한다.

공부와 새로운 경험을 위해서 라이브러리를 선택할 것이냐 아니면 속도와 복습을 위해서 window api를 고를 것이냐의 문제가 되었다.

현재 Qt로 마음이 가는 중

여기 잘 정리 되어있음 makersweb.net/qt/12205

 

첫 프로젝트 빌드시 jom파일을 찾을 수 없다고 오류 발생

아마 한글 경로의 문제인듯

blog.daum.net/knightofelf/24570

option에서 use jom 체크 해제

 

qt quick emluation layered crash라는 에러로 인해 다른 버전으로 재설치

 

UI design -> https://ovenapp.io/view/8pZANLM6GjkYmoLt2j8W5rEH6x47WcgB/

 

DB

데이터베이스에 대한 요소도 학습해야 할 것이라고 생각한다.

mysql에 대해서 학습할 예정인데

생활코딩강좌를 이용해서 데이터베이스가 뭔지 어떻게 이용되는지 이해하고 적용할 수 있기를 바란다. 

opentutorials.org/course/3160

apache wamp를 통해 mysql을 설치했다

인스턴스-데이터베이스-스키마-테이블 의 구조를 가진다

mysql에서는 데이터베이스 == 스키마

 

UML

Use Case

what is use case diagram?

www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-use-case-diagram/

uml basic notation

www.tutorialspoint.com/uml/uml_basic_notations.htm

use case diagram을 그릴 때 가이드라인

m.blog.naver.com/PostView.nhn?blogId=neos_rtos&logNo=30185414173&proxyReferer=https:%2F%2Fwww.google.com%2F

 

UML에는 여러 종류가 있다. 그 중 하나가 use case diagram이다.

무엇을(what) 하는지는 명시하지만 어떻게(how) 하는지는 명시하지 않는다.

유저의 입장에서 생각할 수 있다.

일의 순서를 명시하지 않는다.

간단해야 한다. 20가지 이상의 use case가 있으면 잘 못 그린 것

functional requirement만 명시 가능하고 non functional requirement나 buisness 관련 개념은 명시 불가

actor, system, use case, relation으로 구성됨

 
uml은 모델링 언어로
다양한 관점에서 만들어지는 다양한 모델이 있다
그 중 하나가 use case diagram이다.

uml은 언어이기 때문에 구문 즉 문법이 있다
그 중 관계를 표현하는 문법에는
단순히 실선으로 표현되는 association과 실선 끝에 빈 화살표가 달린 generalization 등이 있다
기본적인 관계 표현 문법 말고도 다양한 관계를
표현할 수 있도록 이중꺽쇠처럼 생긴 guillemet으로 추가적인 문법을 나타낸다.
use case diagram에서는 include와 extend가 그 예이다
include는 이 유즈케이스를 위해선 다른 유즈케이스가 선행되어야만 하는 경우이고 ex)글 쓰려면 로그인
extend는 이 유즈케이스에서 추가적으로 할 수 있는 유즈케이스가 있는 경우이다 ex)글 쓸 때 그림 첨부
뭔가 include와 extend의 방향만 반대인 것 같은 느낌인데 왜 구분되는지는 아직 잘 모른다

use case diagram을 그릴 땐 순서를 신경쓰지 않는다는 점을 주의해야할 것 같다.
순서를 표현할 때는 acticity diagram이라는 모델이 있다.

use case diagram을 그릴 때 어느정도 detail까지 할 것이냐에 따라 단계가 구분된다.

대부분은 high level하게 그린다.

 

사용자의 상호작용만이 use case이다. 내부적인 작업은 그릴 필요 없음

Context

이 소프트웨어와 주변 관계를 명시한다. 이전에 소프트웨어 공학 수업에서 그려본 적이 있다.

 

Activity

프로그램의 진행을 순차적으로 표현한다. 직관적이라 어렵지 않다.

Sequence

프로그램의 진행 분기 중 하나를 가지고 각 object들이 어떻게 상호작용하고 언제 시작 및 종료되는지 표현한다. 처음 그려봤는데도 불구하고 어렵지 않았다. 또한 많은 통찰을 제공해줬음

State Machine

소프트웨어 공학 수업시간에 교수님께서 finitie state machine라고 부른다고 했던, 컴퓨터회로 시간에 sequential circuit시간에 그렸던 그거다.

Class

그냥 클래스 설계랑 비슷하다.

 

 

Photo by Gaelle Marcel on Unsplash

profile

게으른 컴공생

@노나니노나

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그