순서상으로는 투표 로직을 이어서 업로드했어야 하지만 로직을 만들고 공부를 하면서 로직을 쓰고는 있는데 전혀 이해 못 하고 작성하는 느낌이 들어 공부했던 것을 전부 삭제했습니다 기존 방식이 적합한 방법이 아닌 것 같아
로직의 설계부터 차근차근 다시 시작해 보려합니다 강사님은 로직을 짜는 것도 중요하지만 가장 중요한 것은 로직을 설계하는 것이라고 강조해서 말씀해주셨는데 정말 맞는 것 같습니다 설계가 정확하게 머리에 없으니 강의 시간에 했던 로직에서 조금이라도 응용해야 하는 부분이 생기니 멍~ 해지는 경우가 많았던 것 같습니다 그래서 오늘은 설계부터 다시 차근차근 진행해 보겠습니다
우선 투표자 시스템을 만들려고합니다
목표
유권자가 후보의 목록을 보고 투표를 한다 그리고 투표 결과가 나온다
그러기 위해서는 유권자 . 후보자. 투표 결과라는 정보들이 필요하다는 걸 알 수 있습니다
도메인 설정
후보자와 유권자 정보는 1차 도메인으로 설정하고
투표결과는 2차 도메인으로 설정했습니다 <1차 도메인이 있어야 기능할 수 있는 것들은 2차 도메인으로 정리 >
데이터 정리
이 데이터들은 순수한 데이터들입니다
설계
1. UI가 유권자 Service에게 " 유권자 번호가 뭐야? " 물어보면 유권자 Service는 유권자 DAO 를 통해서 유권자를 확인
그후 투표 DAO를 통해서 투표 가능 여부를 확인합니다 <이렇게 2가지 행동이 일어나는 것을 Transaction(트랜잭션)이라고 함>
2. UI 가 후보자 Service에게 " 후보자 정보가 담긴 용지를 줘 "라고 요청하고 후보자 DAO에서 후보자 Service에게 후보자 데이터를 전달합니다
3. 투표를 하기 위해 요청하는 과정
설계도는 이렇게 작성해 보았습니다 단순한 로직이지만 이런 설계도가 머리에 정확하게 인지되어있어야 로직을 짜고 그 로직을 이해할 수 있을 것 같습니다 그리고 다른 시스템을 만들 때 또한 이러한 작업이 먼저 진행되어야 깔끔하고 안정적인 로직을 만들 수 있다고 합니다
'개발자 성장 일지' 카테고리의 다른 글
2022.03.12 투표 유권자 패키지 (0) | 2022.03.12 |
---|---|
2022.03.12 투표 시스템 후보자 (0) | 2022.03.12 |
2022.03.10. 투표 서비스 < 유권자 패키지> (0) | 2022.03.11 |
2022.03.10 투표 서비스 <설계 그리고 후보자 패키지> (0) | 2022.03.10 |
2022.03.08 수업일지 (0) | 2022.03.08 |