개발자

백엔드에서 데이터가공도 하나요?

2024년 05월 13일조회 215

저는 주니어개발자입니다 제 방식은 백엔드는 로직처리나 쿼리결과를 프론트로 보내고 프론트에서 데이터를 화면에 보이기쉽게 가공해서 보이는방식으로 하는데 지금다니는회사 프로젝트에서 이중중첩반복문을 사용해서 json형태로 만들고 화면에선 그대로 보여주는 방식을 하라고합니다 이중중첩반복문 자체도 좋지않을뿐더러 데이터가공을 백엔드에서 할때 데이터가많으면 서버부하가 나지않나요? 그리고 프론트에서 객체리스트로 2차원배열형태를 사용하는걸 보통 개발자들은 좋아하지않나요? 특히 그래프나 통계를 낼때 데이터들을 분류해서 꺼내는작업을하다보면 객체리스트형태로 할수밖에없던데 이렇게하지말고 데이터를 동적(데이터값이 바뀌어도 수정할필요없이)이 아닌 정해진 변수로 값을 꺼내도록 하라는데 이게맞나요..?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

백승훈님의 프로필 사진

안녕하세요 답변 드립니다. 😏 예시가 없어서 말씀하시는게 어떤 경우인지 잘 와닫지 않지만 프론트에서 데이터는 되도록 가공을 지양하는 것이 좋습니다. 데이터를 처리하는 것이 있다면 백엔드의 서버가 클라이언트보다 빠르고 좋으며 캐싱이나 Redis등을 활용하여 적제적소에 적은 리소스로 뿌리는게 가능합니다. 대부분의 경우 클라이언트에서 여러번의 가공이 들어간다면 페이지의 로딩이나 첫 화면이 느려지거나 인터렉티브 동작까지의 시간이 오래 걸리게 되며 이러한 경우 유저 이탈이나 프로덕트의 문제가 될 수 있습니다. 특히 최근엔 모바일 웹으로도 접근하는 유저가 많아졌고 그 중 성능이 안좋은 기기들도 많은 만큼 이러한 처리는 서버에서 하는것이 맞으며 이러한 추세로 최근 SSR(서버사이드 렌더링)을 중심으로 한 Next나 React에서 데이터를 서버에서 처리하도록 지향하고 있습니다. 또한 데이터 가공을 프론트에서 한다면 필요한 정보를 여러 군대에서 가져와야 할 수 있으며 필요 없는 정보까지 불러오게 되 리소스와 통신시간이 더욱 증대될 수 있습니다. 가장 치명적인 경우는 예를 들어 사용자가 아이템 5번의 A B C를 보여줘야 하는데 서버에서 5번인지 알아야 A가 나오고 A정보가 있어야 B가 나오고 B정보를 통해 C를 조회한다면 매우 치명적입니다. 순차적으로 통신이 이뤄져야 되서 첫 화면 조회시 매우 많은 시간이 소요될 수 있으며 중간에 B 혹은 C에서 에러가 발생하면 다시 A를 요청할지? A가 틀렷는지? B가 에러인지 등 수많은 예외처리를 작업해야 합니다. "객체리스트로 2차원배열형태"가 어떤 것인지 모르겠지만 하나의 객체 (예를들어 리스트)라면 List : [a, b, c] 등은 종종 사용하지만 2중 배열은 거의 사용하지 않습니다. 2중 배열 데이터의 유무판단, b가 1중일지 2중일지, b의 안에 또 1~2중이 들어갈 수도 있다면 이후 예외처리나 데이터의 타당성을 파악하기 매우 힘들어집니다. 한 객체에는 하나의 1차 배열, 다중배열을 사용하게 된다면 그것은 상단에서 오브젝트로 분리해서 따로 전달하는게 더 적절합니다. 마지막의 동적 정적의 경우 일반적으로는 작성자님이 주신 동적으로 처리하는게 일반적입니다. 만약 정적 값을 사용해야 한다면 그 이유가 이미 그런식으로 처리하는 로직이나 코드가 반영되어 있어 큰 변경이나 테스트 없이 적용하고 싶거나 기존 프로덕트를 활용하기 위해서 그러한 설계를 했을 가능성이 있긴 합니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!