글
아주 단순하게.. 회원 관리 프로그램을 만들었다고 했을때.
사용자가 프로그램의 실행파일을 누르면
1.구동에 필요한 리소스들을 내 app로 읽어 들인다. (init,load등 startup)
2.사용자에게 서비스를 제공한다. (interaction -> update & run 기존 저장 기록(파일,db)등 load)
a.신규 회원 작성
b.회원 조회
c.회원 정보 수정
d.회원 탈퇴
e.프로그램 종료하기.
3.서비스 종료e 수행시 기록을 파일 or db에 저장해야 한다. (close,write등 finalize)
=>1->2->3은 서로 순차적인 의존 관계에 있다.(물론 2->1->3 식으로도 가능하지만.. 3->1->2는 말이 안된다.)
(sol)데이터에 대해 이러한 순차적인 의존성이 있을땐 assert or try catch or if(! ) else 등으로 오류처리를 해준다.
=>사용자 입장에서 2에서 b회원 조회도중 해당 회원의 정보를 수정c or 삭제d 를 수행할수 있을 것이다. 또는 b회원 조회
도중 메인메뉴로 이동을 원하거나, 이대로 프로그램을 종료하길 원할 수 도 있을것이다.(내가 예전에 만들었던 View
(여러메뉴및 사용자와 인터랙션을 포함하는 awt의 하나의 컴포넌트 개념)들 사이의 이동을 관리및 컨트롤하는
SceneManager의 역할)
사용자의 비지니스->그에 따른 서비스별 관계성-> 그에 따른 서브시스템or클래스or메서드간 의존성은 설계를 복잡
하게한다. 난 이것을 단순화&구조화 시키는 솔루션에 대해서 조금 더 알아야 할것이다.
(etc)
=>그림을 화면에 그리는 것도 마찬가지다.. 디바이스(화면 출력용 메모리 관리자) 얻고, 초기화하고, 내가 뿌릴 이미지를
연결하고, 업데이트하고, 화면에 그리고... 종료시 사용한 리소스들을 해제해주고.. (directx를 초 단순화 시킴) 결국
개별적인 명령들의 순차적인 모임이다.
=>지역변수를 선언하고,할당하고,초기화하고,연산에 사용하고,해당 스택 종료시 자동으로 정리및 소멸되고.. 클래스도 타입
(데이터+연산)을 정의하고, 내가 사용하겠다고 선언하고, 메모리에 할당하고, 생성자or setter를 통해 초기화하고, 작업을
수행시키고, 모든 일이 끝났으면 가비지 컬렉터에 넘기거나, 혹은 조금 더 시스템상 상위의 역할을 맡는 클래스라면
app의 종료와 수명주기를 맞추고..
'프로그래밍 > 잡생각' 카테고리의 다른 글
자바에서 제공하는 멀티미디어 패키지 관련 + 각종 웹 개발 프레임워크에 대한 현업 의견 (0) | 2014.01.02 |
---|---|
java 파일들을 패키지 단위로 쪼개는 이유(domain,service,test,exception ...) (0) | 2014.01.02 |
앞으로 진행할 것들 (0) | 2014.01.01 |
byte방식으로 읽어오면 EOF(-1)과 중복될리 없다? (0) | 2014.01.01 |
숫자열 중복 검사(담배피다 떠올린 잡생각) (0) | 2014.01.01 |
RECENT COMMENT