역할과 책임 (소프트웨어 아키텍처 관점)

Date
Tags
 
notion image
  • 문맥을 포함하는 이름을 사용하고 있다면, 반드시 해당 문맥에 대한 내용을 내포해야 한다.
  • 이 경우는 FridgeTest라는 냉장기능 테스트의 네이밍을 갖지만, 전달되는 onPress prop에 따라 컴포넌트의 정체성이 결정된다.
  • 따라서 위 리스트를 기능별 컴포넌트로 분리하고자 한다면 해당 문맥을 포함하는 기능들까지 컴포넌트에 내장시키는 방향으로 설계 되어야 명확하다.
 
notion image
  • 특정 상황에 따라 화면들 간의 이동을 제어하는 로직이, 특정 한 화면 내에서 구현되고 있다.
  • 특정 스크린에서 처리할 내용이 아니며, 단지 첫 화면이라는 이유로 그 스크린 내에서 구현하고 있었을 뿐이다.
  • 단지 첫 화면이 바뀌게 되는 경우에도, 대 공사를 해야한다.
  • 이런 경우는 보다 상위 단계인 네비게이터 단에서 특정 상황이 트리거 됨에 따라 적절하게 스택 구성을 변경시켜주는 방식이 각자 올바른 역할책임을 가져가는 방향이다.
⚠️
추후 네비게이터 단에서 관련 책임을 다 가져가는 형태로 리팩토링이 진행되었고, 훨씬 명확한 역할/책임 분리가 되었고, 가독성유지보수성 측면의 개선도 따라왔다.
 
notion image
 
notion image
 
notion image
 
notion image
  • 폴더구조 설계 시, 스크린 컴포넌트를 컴포넌트들을 조합하여 화면을 구성하는 컴포넌트라고 정의했다.
  • 따라서 스크린 컴포넌트에서는 어떤 컴포넌트들이 어떻게 구성되는지만 명확히 보여야 한다.
  • 위 코드는 특정 컴포넌트에 대한 구체 코드로, 위의 목적을 방해하는 요소가 되므로, 별도 컴포넌트로 분리돼야 한다.
💡
단계별 목적을 명확하게 구분 지어놓는 것이 중요한 이유다.
 
notion image