강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

송사무엘님의 프로필 이미지
송사무엘

작성한 질문수

비전공자도 이해할 수 있는 DB 설계 입문/실전

[실습] 화면 UI 디자인을 보고 DB 설계해보기 - JSCODE 투두리스트

프론트단에서 고정 저장 / 백엔드에서 조회 저장

작성

·

41

0

데이터베이스에 저장해야 한가? 아닌가? 구분은

이 정보들이 자주 바뀌는 정보면 데이터 베이스에 저장을 해 놓는다.

프론트단에서 백엔드로 저 데이터를 받아와서 그때 그때 실시간으로 업데이트를 시키는 것이 훨씬 좋다?

 

이렇게 말씀하셨는데 고정일 경우에는 그냥 프론트 코드에서 고정 시켜서 연동하면 된다는 것으로 이해했습니다. 고정적이니까 백엔드까지 갈 필요 없이 프론트 코드에서 연동하면 된다는 것도 이해가 됩니다.

 

그런데 자주 바뀌면 백엔드에 저장한다? 이 말씀 자체가 이해가 안됩니다. 그러면 백엔드에서 해당 앱들에 대한 데이터들을 어떻게 연동한다는 것인지 이해가 안가요. Oauth를 통한 연동 이런 것을 말씀하시는 걸까요?

 

그런데 그러면 고정적일 때도 어짜피 연동은 해야하니까 백엔드에 하는 것이 맞지 않을까요?

데이터를 Db에서 주고 받는데 백엔드에서 처리하는게 맞지 않을까요?

 

제가 백엔드 개발자 신입이여서 자세히는 모르겠습니다. 설명 부탁드립니다.

답변 1

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 송 사무엘님 ! 질문 너무 잘 주셨어요 ㅎㅎ

질문 주신 내용에 대해 차근차근 설명드려볼게요 ~

 

"자주 바뀌면 백엔드에 저장해야 한다"는 말이 무슨 뜻인가요?

-> 이해하기 좋은 사용자 프로필 정보로 예를 들어 볼게요 !

사용자 이름, 이메일, 프로필 사진 등은 사용자 본인이 변경할 수 있죠!

"자주 바뀔 수 있는 데이터"니까, DB에 저장하고 백엔드 API를 통해 제공하면 좋아요 !

이렇게 하면 프론트에서는 항상 최신 데이터를 백엔드에서 받아올 수 있고,

변경 사항이 생기면 백엔드에 요청해서 업데이트을 하수 있어요 ~

즉, "변화가 생길 수 있는 데이터는 백엔드에서 책임지고 관리해야 한다"는 의미예요 :)

 

"Oauth 같은 걸 통해 연동한다는 말인가요?"

-> 강의 에서 말씀드린 "백엔드에 저장한다"는 건,

그 데이터를 DB에 저장해서 API로 내려주는 구조로 설계하라는 뜻이에요!

예를 들어 프론트에서 GET /users/me API를 호출해서

백엔드가 DB에서 사용자 정보 꺼내서 전달한다는 말이에요 :)

 

"그럼 고정된 데이터도 결국 연동하려면 백엔드에 저장해야 하지 않나요?"

-> 디테일한 상황과 데이터에 따라 다르지만,

일반적으로 고정된 데이터의 경우에는 연동을 한다고 해서 백엔드에 저장을 하진 않아요 !

예를 들어, "앱 내 ‘공지사항’ 섹션에 “앱 버전 1.0 출시!” 라는 문구",

"프론트 UI에 쓰이는 버튼 라벨 '더보기', '확인”'등"은 변경될 일이 거의 없고,

프론트 코드에 직접 하드코딩을 하는 게 더욱 효율적이에요 ~

 

실무적인 팁을 드리자면, 설계 초반에 힘을 너무 안주시고

당장의 시야에서 보이는 설계만 하셔도 전혀 문제가 없어요 !

나중에 바뀔 수 있을 것 같거나, 애매하다 싶으신 부분은 팀원과

"이 부분이 이렇게 해서 애매한것 같은데 어떻게 할까요 ?

DB로 관리하는게 좋을까요 아니면 프론트단에서 하드코딩하는게 좋을까요 ~?" 과 같이

소통하시며 디벨롭 시키는 것 또한 좋은 전략입니다 :)

 

추가로 궁금하신점 있으시면 편하게 질문주세요~~😄😄

송사무엘님의 프로필 이미지
송사무엘

작성한 질문수

질문하기