인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

vheh502님의 프로필 이미지
vheh502

작성한 질문수

350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법

서버와 클라이언트 간의 역할에 대하여

해결된 질문

작성

·

68

·

수정됨

0

안녕하세요, 최근에 강의를 완강한 사람입니다.

좋은 강의를 통하여 현재 개발의 원동력에 힘을 실어주었습니다, 감사합니다.

 


질문사항입니다!
강의 내용을 베이스로 개발을 하던중 제가 내용을 확립하지 못했던 부분이 있습니다.

클라이언트는 그럼 서버와의 데이터 통신 및 저장으로서의 역할이고 나머지는 서버에게 의존하는 것인지

입니다.(콘텐츠 받기, UI 구현, 액션 컨트롤 등등..)

다른분이 질문하신 내용을 바탕으로 제가 이해한 것은 클라이언트로서의 역할을 위에 언급한 것으로

이해하였는데 제가 잘못 이해한 부분이 있는지 궁금합니다!

 

클라이언트 : 서버와의 API 통신 + 반환 데이터 저장 ( + 반환 데이터를 구현할 수 있는 모듈?)

서버 : 데이터 반환 및 UI구현, 콘텐츠 반환 등 그외 전부 컨트롤

 

답변 2

0

프로그래밍좀비님의 프로필 이미지
프로그래밍좀비
지식공유자

안녕하세요! 서버와 클라이언트의 역할 분담에 대해 질문해 주셔서 감사합니다.

말씀하신 전반적인 이해는 강의에서 설명드린 내용과 일치하며, 제가 현재 앱들을 개발 및 관리/운영되고 있는 방식이 맞습니다. 다만, 이러한 구조를 적용할 때 고려해야 할 몇 가지 중요한 사항들을 말씀드리고자 합니다.

  1. 점진적인 아키텍처 발전

    • 처음부터 완벽한 서버-클라이언트 분리 구조를 구축하려 하기보다는, 프로젝트의 규모와 필요성에 따라 단계적으로 발전시키는 것이 효율적입니다.

    • 여러 앱을 개발하면서 공통 요소들이 발견될 때, 그때 모듈화를 진행하는 것이 현실적인 접근 방법입니다.

    • 처음부터 이러한 설계를 시작하는것은 과도한 오버스펙이 될 수 있습니다.

  2. 프로젝트 규모에 따른 선택

    • 소규모 프로젝트의 경우, 과도한 서버-클라이언트 분리는 오히려 개발 복잡도만 높일 수 있습니다.

      • 저 또한 앱의 규모와 특성상 서버 없이 단순 100% 클라이언트 개발로도 출시한 앱이 많습니다.

    • 개발 생산성을 극대화하기 위한 구조는 다수의 앱을 관리해야 하거나, 공통된 기능이나 UI와 같은 것들을 활용하여 생산성을 끌어올리기 위한 경우에 더 적합합니다.

  3. 유연한 역할 분배

    • UI 구현, 데이터 처리, 비즈니스 로직 등은 상황에 따라 서버 또는 클라이언트 중 적절한 쪽에서 처리할 수 있습니다.

    • 개발자의 역량, 시간 제약, 프로젝트 특성 등을 고려하여 현실적인 판단을 하는 것이 중요합니다.

    • 때로는 클라이언트에서도 UI 구현, 데이터 반환, 액션 컨트롤을 처리하는 것이 더 효율적일 수 있습니다.

결론적으로, "닭잡는데 소잡는 칼을 사용할 필요는 없고, 잡을 닭이 너무 많아진다면 조금 더 효율적인 방법을 찾아봐야 합니다." 즉, 프로젝트의 규모와 요구사항에 맞춰 적절한 수준의 구조를 선택하는 것이 현명한 접근 방법입니다.

프로젝트를 진행하시면서 본인의 개발 능력, 시간 투입 가능 정도, 개발적 성향 등을 고려하여 유동적으로 선택하시는 것을 추천드립니다.

vheh502님의 프로필 이미지
vheh502
질문자

친절한 답변 감사합니다, 강의 내용을 따라한다는것에 너무 초점을 맞춘탓에
제 현 상황을 고려못했던거 같습니다.
배운 내용을 참고삼아 저의 방식에 맞게 점진적으로 나아가보겠습니다.

프로그래밍좀비님의 프로필 이미지
프로그래밍좀비
지식공유자

응원하겠습니다 🙂

0

안녕하세요, 인프런 AI 인턴입니다. vheh502님.

귀하께서 질문하신 서버와 클라이언트 간의 역할 분담에 대해 기존에 비슷한 질문과 답변이 있는지 찾아보았습니다. 서버와 클라이언트의 역할에 대한 이해는 앱 개발의 핵심 중 하나이기에, 이를 명확히 하는 것은 매우 중요합니다.

  1. 클라이언트의 역할: 일반적으로 클라이언트는 사용자 인터페이스(UI)와 사용자 경험(UX)을 책임지며, 주로 서버로부터 데이터를 받아와 화면에 표시하는 작업을 합니다. 클라이언트는 서버의 API와 통신하여 필요한 데이터를 가져오고, 사용자 입력을 받아 서버에 보냅니다. 이는 데이터를 저장 및 처리하는 기능을 포함할 수 있습니다.

  2. 서버의 역할: 서버는 클라이언트에 필요한 데이터를 제공하는 주요 역할을 하며, 데이터의 저장, 복구, 분석 등을 담당합니다. 서버는 비즈니스 로직의 대부분을 처리하며, 클라이언트가 요청한 데이터를 반환합니다. 추가적으로, 서버는 애플리케이션의 보안 및 스케일링을 담당하기도 합니다.

이 게시물에서 프로그래밍좀비님의 답변을 통해 서버와 클라이언트의 역할에 대해 자세히 알아보실 수 있습니다. 질문하신 내용과 관련하여 서버와 클라이언트의 업무 분담이 얼마나 유연하게 이루어질 수 있는지 참고하시면 좋을 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

vheh502님의 프로필 이미지
vheh502

작성한 질문수

질문하기