#소프트웨어
저번엔 유스케이스와 ui를 설계해 보았다.
이번엔 다음 단계인 클래스를 설계와 순차 다이어 그램까지 설계해 보도록 하겠다.
먼저 클래스에는
atm클래스(atmService), 사용자 클래스(user), 관리자클래스(administrator)로 설계해 보았다.
그리고 속성에는
잔액, 인증번호, 상태, s/w버전, 계좌번호, 송금 계좌번호, 비밀번호, 내용 등이 있다.
그리고 메소드에는
카드 삽입(insertcard), 카드 제거(removeCard), 잔액 조회(checkBalance), 현금 인출(withdrawCash), 현금 입금(depositCash), 현금 송금(transferCash), 인증번호 입력(inputCode), 계좌번호 입력(inputAccount), 비밀번호 입력(inputNumber),관리자 모드(administratorMode) , 현금보충(refillCash), 소프트웨어 업데이트(updateSW)등이 있다.
그리고 클래스 속성과 메소드의 가시성을 표로 작성해 본다면
atmService
|
user
|
administrator
|
잔액
s/w 버전
|
걔좌번호
송금 계좌번호
비밀번
|
인증번호
|
insertCard()
removeCard()
checkBalance()
withdrawCash()
depositCash()
transferCash()
inputAccount()
inputPhoneNB()
inputNumber()
administratorMode()
|
refillCash()
updateSW()
|
하지만 생각보다 메소드를 짜는데 오래 걸렸다는점...
틀린점이 있을 수 있지만 내 머리속에서 구상하고 짰기에 많이 배울 수 있었다.
정말 엄청 더 많은데 복잡해 버릴까바 참고 하였다.
이렇게 구조를 짜보았다.
간단하게 워드로 작성해 보았는데 이걸 옮겨 적으면서도 수정과 삭제과정이 있었다.
그만큼 불완전하긴 하지만 이런것 또한 발전하는 과정이기에 긍정적인 마인드로 작성해 나가겠다.
그리고 마지막으로 순차 다이어그램을 작성해 보겠다.
화살표의 모양도 가리키는 방향도 다 생각하고 설계하다보니 생각보다 머리가 지끈했다.
정보처리기사시험을 준비할때 많이 외우고 했던 것들이지만
막상 적용시키려니 책과 컴퓨터를 반복해서 왔다갔다 보고있는 내자신을 볼 수 있었다.
마치며...
<< 느낀점 >>
이렇게 소프트웨어 설계를 끝마치게 되었다.
사실 더하고 싶지만 생각보다 구조라는 것이 기초지만 복잡하고 귀찮고 어려웠다.
그리고 소프트웨어 설계를 하면서 '아 그냥 코딩하고 싶다' 라는 생각이 많이 들었다.
하지만 한다고 했으니 포기할 순 없었고 어거지로 하긴 했다.
하지만 스스로 풀이 해나가면서 많은 것을 배웠다.
기초를 복습하는 과정도 있었고 찾아보면서 새로운걸 얻기도 하였지만 가장 많이 느끼고 배운 것은
구조가 튼튼하면 내용연수가 길어지 듯이 기초 설계가 튼튼하면 후에 개판같이 코딩해도 쉽게 흔들리지 않은 것이라는 생각이 든다.
그만큼 소프트웨어에대해 구조를 짜고 설계하는 것의 중요성을 알게 되었다.
사실 코딩을 하면서 그 전체적인 구조와 설계를 파악하고 코딩하는 개발자는 많지 않다.
많지 않은 것 보단 효율이 떨어진다. 코딩하기도 바쁜데 굳이?
하지만 이것은 관심도의 차이라고 생각한다.
사소하지만 그 소프트웨어에 관심이 많은 사람이거나 그것을 사용하는 회사에 대해 애정도가 높은 사람이라면
기계적으로 코딩하는것을 넘어서 스스로 기초적인 구조와 시스템이 어떻게 돌아가는지 궁금하지 않을까??
그렇게 된다면 어려움이 생겼을 때 유연하게 대처해 나갈 수 있는 훌륭한 개발자가 될 수 있지 않을까?
마치 요리에 관심있고 애정이 있는 사람이 요리과정에 굴소스가 없다면 '아! 굴소스가 없으니 짜고 비슷한 간장이나 데리야끼 소스를 넣으면 되겠다?!' 라는 논리적인 사고를 하는 반면
요리에 관심이 없었고 그냥 레시피 대로 만들던 사람은 굴소스가 없다면 '아! 굴소스가 없으니 난 이요리를 만들 수 없어!ㅜㅜ' 라는 유도리 없이 폐쇄적인 사고 밖에 할 수 없는 것처럼 말이다!!!
'프로젝트' 카테고리의 다른 글
하루에 일어나는 액션 횟수 구하기 View & SQL & Service (0) | 2023.08.13 |
---|---|
Mybaits를 이용한 UPDATE 쿼리~뷰까지 만들기 (0) | 2023.08.12 |
소프트웨어 설계 part.1 (0) | 2023.08.11 |
#HTML #JQuery 태그 삭제, 숨기기, 보이기 part3. 야매 응용(feat. context클릭 popup이벤트) (0) | 2023.08.10 |
프로젝트 아이디어 (asmrBlock) (0) | 2023.08.04 |