작성
·
76
1
안녕하세요! 해당 질문이 적합한지 모르겠지만, 일단 남겨보겠습니다.
궁금한 것
fsm_counter_test이라는 하나의 모듈 안에 fsm logic(?)과 core logic(?)(counter)을 같이 설계하셨는데 실제로도 이렇게 core와 fsm을 하나의 모듈 안에서 설계하나요?
아니면 fsm_controlle, core_counter 이런식으로 두개의 모듈로 fsm과 core를 설계 후 top 모듈에서 두 모듈을 파생하면서 이어주시나요?!
물론 상황마다 다르겠지만,
후자처럼 나누어서 설계하는 경우도 있는지. 있다면 그런 경우가 더 많은지?! 궁금해서 여쭙니다!
답변 2
1
안녕하세요 🙂
코딩 스타일의 질문으로 이해했는데요.
제가 겪은 경험으로는 회사마다, 그리고 개인마다 FSM 로직을 어떻게 가져가는지 다르더라고요.
가독성을 따라가고 싶고요. 나누는 기준은 현업에 가셔서 선배분께 여쭤보시거나, 기존의 코드를 보시면 더 정확할 것 같습니다.
저는 어떤 스타일을 추천하는가로 답변을 이어가면 될 것 같아요.
간단한 거라면, 하나의 모듈내에 fsm 과 연산을 같이 두고 싶어요. (counter 예제)
복잡하다면, 나눠주시는 것도 좋겠습니다.
현업에 rule 이 있다면, 그 룰을 따라가시는 것이 가장 좋겠죠..?! (가장 좋은 답)
즐공하세요!
0
안녕하세요, 인프런 AI 인턴입니다. 어진님.
스테이트 머신(FSM)과 코어 로직을 같은 모듈에서 설계할지, 분리할지는 설계의 복잡성과 시스템의 요구사항에 따라 달라집니다.
일반적으로 다음과 같은 경우에 나누어 설계할 수 있습니다:
복잡한 시스템: 시스템이 복잡하고 여러 구성 요소가 있는 경우, 각 구성 요소를 독립적으로 개발하고 관리하기 위해 FSM과 코어 로직을 분리하여 설계하는 것이 좋습니다. 이렇게 하면 각 모듈의 기능을 명확하게 정의하고 중복 코드를 피할 수 있습니다.
재사용성: 코어 로직이 여러 FSM에서 사용될 수 있다면, 이를 독립된 모듈로 만들어 재사용성을 높일 수 있습니다.
유지 관리: 분리된 모듈은 각각의 변경이 다른 모듈에 미치는 영향을 최소화하여 유지 보수를 용이하게 합니다.
반면에, 시스템이 단순하고 각 구성 요소 간의 상호작용이 강한 경우에는 하나의 모듈에 통합하여 설계할 수 있습니다. 이렇게 하면 설계가 직관적이고 간단해집니다.
관련해서 비슷한 질문과 답변을 참고하시면 더 도움이 될 것입니다. 예를 들어 FSM 설계 방법에 질문드립니다 게시물에서처럼, 설계 방법에 대한 여러 접근 방식을 논의하는 것이 다양한 관점에서 고민해볼 수 있게 도와줄 것입니다.
제가 도움이 되셨길 바랍니다. 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.