개발자 성장 일지

2022.03.12 반성 다짐 그리고 설계

NEWDODORIPYO 2022. 3. 12. 18:27

순서상으로는 투표 로직을 이어서 업로드했어야 하지만 로직을 만들고 공부를 하면서 로직을 쓰고는 있는데 전혀 이해 못 하고 작성하는 느낌이 들어 공부했던 것을 전부 삭제했습니다 기존 방식이 적합한 방법이 아닌 것 같아 

로직의 설계부터 차근차근 다시 시작해 보려합니다 강사님은 로직을 짜는 것도 중요하지만 가장 중요한 것은 로직을 설계하는 것이라고 강조해서 말씀해주셨는데 정말 맞는 것 같습니다 설계가 정확하게 머리에 없으니 강의 시간에 했던 로직에서 조금이라도 응용해야 하는 부분이 생기니 멍~ 해지는 경우가 많았던 것 같습니다 그래서 오늘은 설계부터 다시 차근차근 진행해 보겠습니다  

 

우선 투표자 시스템을 만들려고합니다 

 

목표

유권자가 후보의 목록을 보고 투표를 한다 그리고 투표 결과가 나온다 

 

그러기 위해서는 유권자 . 후보자. 투표 결과라는 정보들이 필요하다는 걸 알 수 있습니다 

 

도메인 설정 

후보자와 유권자 정보는 1차 도메인으로 설정하고 

투표결과는 2차 도메인으로 설정했습니다 <1차 도메인이 있어야 기능할 수 있는 것들은 2차 도메인으로 정리 > 

 

데이터 정리 

이 데이터들은 순수한 데이터들입니다 

 

설계

1. UI유권자 Service에게 " 유권자 번호가 뭐야? " 물어보면 유권자 Service유권자 DAO 를 통해서 유권자를 확인 

 그후 투표 DAO를 통해서 투표 가능 여부를 확인합니다 <이렇게 2가지 행동이 일어나는 것을 Transaction(트랜잭션)이라고 함>

 

2. UI후보자 Service에게 " 후보자 정보가 담긴 용지를 줘 "라고 요청하고 후보자 DAO에서 후보자 Service에게 후보자 데이터를 전달합니다 

 

3. 투표를 하기 위해 요청하는 과정 

 

설계도는 이렇게 작성해 보았습니다 단순한 로직이지만 이런 설계도가 머리에 정확하게 인지되어있어야 로직을 짜고 그 로직을 이해할 수 있을 것 같습니다 그리고 다른 시스템을 만들 때 또한 이러한 작업이 먼저 진행되어야 깔끔하고 안정적인 로직을 만들 수 있다고 합니다