constants 관리는 왜 프론트에서 할까?

정규상·2022년 6월 7일
0

고민의 흔적

목록 보기
1/4
post-thumbnail

진짜 모름 궁금함.

최근 회사에서 필터를 구현했는데, [가,나,다] 를 입력받고 URLSearchParams로 QueryString을 구성해서 get 요청을 보내는 방식을 사용했다.

이때 [가,나,다][A,B,C]로 요청을 보내야하는데 그럼 변환해주는 오브젝트 혹은 함수를 따로 만들어야한다.

본인은 아래 방식으로 작성했다.

	// constants
	export const KOREAN = {
		OPTION_1: '가',
      	OPTION_2: '나',
      	OPTION_3: '다',
    };

	// App
	// import KOREAN as K
	const data = [K.OPTION_1, K.OPTION_2, K.OPTION_3];
	
	const korToEng = {
    	[K.OPTION_1]: 'A',
      	[K.OPTION_2]: 'B',
      	[K.OPTION_3]: 'C',
	}
    
    // 실 사용 시
    setState(korToEng[K.OPTION_1]);

작성하기 전부터 이걸 왜 프론트에서 하는지 이해못했었는데, 리드님께 말씀드리니 같이 고민해주셨지만 결론을 내지 못했다. 그나마 이유를 찾아보니
서버(백엔드)는 서버로서의 동작만 해야한다. 정도였다.

근데 생각을 해보면 실제 프로덕트에서의 필터기능이라면.
앞으로 어떤 추가 사항이 생길지 모르는데, 일일이 프론트에서 수기로 추가하는 것은 별로지 않은가?
예를들어 쇼핑몰이라 했을때, 어떤 브랜드가 입점할지 클라이언트에서는 알 수 없지만 브랜드가 입점하면 해당 브랜드의 상품 정보를 서버로부터 받기 때문에 클라이언트보다 서버가 먼저 알게된다. 그렇다면 위에서 작성한 constants 정보 자체를 서버에서 내려주는 것으로 사용하면 되지 않는가? 하는 것이다.

아직 1년도 안된 개발자라 생각하는게 많이 어리고 귀여워보일 수 있는데 "진짜 모름" 상태라서 글을 남겨본다.

일단은 기존 방식대로 constants 생성해서 하는 중 더 좋은 해결방안이 제시된다면 업데이트 예정

추가 의견

김X유(24) / 백엔드 개발자

백에서 관리를 하게 되면 백에 서버가 모노리스면 상관없지만
점점 커져서 마이크로서비스로 체제 전환을 할 경우에 constants도 서비스별로 분리가 되어야 하는데 그게 더 코스트가 높다. (처음부터 마이크로로 할 수 도 있음)

profile
이것 저것 다해보는 삶

0개의 댓글