20230131 TIL 은행 목록을 어떻게 관리하는 것이 좋을까?
환전하기 기능을 구현하는데 있어서 은행명과 계좌번호를 검증하는 단계에서 위와 같이 많은 은행을 선택할 수 있게 목록을 보여줘야 했다.
실제로 내가 필요한 것은 은행코드이기 때문에, 서버에서도 은행 목록을 가지고 있어야 한다.
마크업을 먼저 작업을 하는 편이었기 때문에
마크업을 하면서 실제로 하나하나 하드코딩을 해보았는데, 너무 많아서 힘들었다.
그래서 은행 목록을 api로 서버에서 받아올까? 라는 생각이 들었다.
만약 이 방식을 이용하면 지원하는 은행이 바뀐다면 서버에서만 바꿔주면 되니 좋을 것 같기도 하였다.
그런데 불필요한 네트워크 통신을 늘리는 것이 아닐까 하는 의문도 함께 들었다.
또 다른 대안은 프론트에서 은행 목록을 배열로 가지고 있고, 리액트에서 map을 이용하는 방법이었다.
즉, API를 이용하지는 않지만 데이터는 API에서 받아온 것과 같은 상태로 만들어서 일일이 하드코딩하지 않는 방식이었다.
이 방식을 이용하면 서버와 클라이언트의 목록이 불일치하는 경우가 발생할 수 있다는 단점이 있다.
프로그래밍에서 오답은 있지만 정답은 없다고 한다.
결국 모든 것은 장단점을 따져서 더 나은 방향으로 진행을 해야한다.
만약 은행 목록이 자주 바뀌고, 싱크를 맞추는 게 중요하다면 서버에서 받아오는 게 나을 수 있는데,
은행 목록이 자주 바뀌지 않을 것이기 때문에 클라이언트에서 들고 있게끔 작업을 해두었다.
개발자는 어떤 결정에 대해 장단점을 따져서 자신만의 근거를 댈 수 있는 능력이 중요하다고 한다.
앞으로도 고민이 되는 부분이 나타나면 장단점을 비교하고 근거를 대는 연습을 해보면 좋을 것 같다.