JavaRush /Java Blog /Random-KO /서버. 인형을 위한 교육 프로그램

서버. 인형을 위한 교육 프로그램

Random-KO 그룹에 게시되었습니다
아래에서는 Panopto의 개발자인 Kannan Chandrasegaran이 쓴 비기술자를 위한 서버 가이드 기사의 번역본을 제공합니다. 이 기사는 애플리케이션과 서버의 서버 측 개념에 거의 익숙하지 않은 초보자를 대상으로 작성되었습니다. 서버.  인형을 위한 교육 프로그램 - 1

회사생활부터

IT 회사에서 "비기술자"가 되는 것은 어렵습니다. 제 말을 믿으세요! 마케팅 담당자, 영업 관리자, 회계사 등은 중요하지 않습니다. 때때로 그들은 기술에 정통한 동료를 만납니다. 그들은 프로그래머일 수도 있고 시스템 관리자일 수도 있습니다.... 어느 쪽이든 "비기술자"는 뇌의 중요한 부분이 절단된 것처럼 느낍니다. 아니면 인간형이 아닌 지적인 생명체가 살고 있는 미지의 행성에 착륙했습니다. 또는…
서버.  인형을 위한 교육 프로그램 - 2
물론 때로는 모든 것이 잘 끝나기도 합니다. 예를 들어, 프런트 엔드 소녀가 복도를 걷고 있습니다. 문제를 예고하는 것은 없습니다. 그녀는 왼쪽으로 향하고 있고 당신은 오른쪽으로 향하고 있으며 가능한 한 빨리... 아니요, 이번에는 그런 일이 발생하지 않았습니다. 당신은 이미 그녀와 함께 테이블에 앉아 어색한 침묵을 극복하려고 노력하면서 "그리고... 정확히 무슨 일을 하시나요?"라고 묻습니다. 그녀는 무언가를 말하기 시작하지만 당신은 그녀가 말하는 내용을 즉시 이해하지 못합니다. 사용자 인터페이스, 애플리케이션, 그리고 예, Facebook은 웹사이트입니다. 예, 버튼과 메뉴가 있습니다... 당신은 어떻게든 그녀의 작업의 복잡성을 파악하고, 그녀의 작별 인사에 고개를 끄덕이고, 당신의 길은 큰 사무실의 복도에서 갈라집니다.
서버.  인형을 위한 교육 프로그램 - 3
그러나 조만간 운이 좋지는 않을 것입니다. 서버 엔지니어를 만나게 될 것입니다. 아니면 백엔드 개발자. 당신이 지금 어떤 정글에 있게 될지 알지 못한 채, 순진하게 같은 질문을 하고... 대답으로 아브라카다브라를 받습니다. 외국어를 많이 듣고, "API가 무엇인지 묻는 것이 예의인가?", "우리는 항상 "데이터베이스"를 사용하지 않습니까?", "도대체 누구인가?"라는 생각이 머리 속에 떠오릅니다. 이 제이슨?”(JSON)??”. 당신의 엔지니어 친구가 당신에게 서버에 대해 말하려고 하지만 전문적인 용어로 가득 찬 그의 말을 당신이 이해하는 것이 얼마나 어려운지 이해하지 못합니다. 이전에 "서버"라는 단어를 들어본 적이 있을 것입니다. 그러나 이 단어는 매우 다양한 상황에서 사용되므로 그 의미를 이해하기 어렵습니다. 글쎄, 이 용어를 이해하려고 노력합시다.

토끼굴 아래로

일반 사람(프로그래머나 관리자가 아님)이 애플리케이션을 사용할 때 그가 보는 것은 인터페이스, 즉 명백한(가장 자주) 작업에 반응하는 그림뿐입니다. 실제로 사용자가 일반적으로 "애플리케이션"으로 이해하는 것은 프런트 엔드, 즉 상호 작용하는 래퍼인 앞 부분입니다. 그러나 사용자는 내부 내용, 즉 애플리케이션을 작동하게 만드는 요소에 대해 거의 알지 못합니다. 예를 들어 Whatsapp이나 Viber를 통해 나에게 메시지를 보냈다고 가정해 보겠습니다. 네 스마트폰에서 내 쪽으로 메시지가 오는 것 같아. 이 과정을 자세히 살펴보겠습니다. 내 휴대폰이 꺼져 있을 때 당신이 나에게 메시지를 보내고, 당신이 직접 스마트폰을 끈다고 가정해보자. 그래서 저는 전화기를 켰는데도 여전히 당신의 메시지를 받습니다. 비록 우리 전화기가 동시에 작동하지는 않았지만 말이죠. 뭔가 빠진 것 같아요! 이것이 바로 우리가 놓친 "무언가", 즉 백엔드 또는 서버입니다.
서버.  인형을 위한 교육 프로그램 - 4
프로그래머가 프런트엔드와 백엔드에 관해 이야기할 때 이는 일반적으로 프로그램 로직에서 애플리케이션의 사용자 부분을 분리하는 것을 의미합니다. 따라서 프런트엔드는 애플리케이션의 인터페이스 부분이고 백엔드는 서버 부분입니다.

서버

기본적으로 서버는 인터넷에 연결되어 있고 지속적으로 켜져 있는 컴퓨터인 컴퓨팅 시스템입니다.
서버의 두 가지 주요 작업은 데이터 저장과 통신입니다.
서버.  인형을 위한 교육 프로그램 - 5
Whatsapp이나 Viber를 통해 메시지를 보내면 스마트폰의 애플리케이션이 메시지가 저장된 서버로 메시지를 보냅니다. 내 스마트폰에 설치된 Viber가 서버에 연결되면 저장된 모든 메시지가 나에게 전송됩니다.
서버는 애플리케이션이 실행되는 "기지국"입니다.
애플리케이션에 정보가 필요한 경우 서버에 연결합니다. 응용 프로그램이 응용 프로그램의 다른 사용자와 통신해야 하는 경우 해당 사용자가 통신할 수 있도록 허용하는 것은 서버입니다. 서버, 백엔드 및 API라는 용어는 종종 같은 의미로 사용됩니다.

스토리지 또는 데이터 스토리지 시스템

서버의 주요 작업은 데이터 저장입니다. 여기에는 사진, 비디오, 문서 등 의 파일이 포함됩니다. 서버는 이를 컴퓨터의 폴더와 유사한 구조화된 방식으로 저장하므로 애플리케이션에서 액세스할 수 있습니다. 정보는 서버에도 저장됩니다 . 모든 애플리케이션에는 작동에 중요한 정보가 포함되어 있습니다.
서버.  인형을 위한 교육 프로그램 - 6
이 정보를 테이블 세트로 표시할 수 있습니다. 예를 들어, 애플리케이션은 인증이 수행될 수 있도록 사용자 및 해당 비밀번호에 대한 정보를 저장해야 합니다. 귀하의 애플리케이션은 레스토랑 가이드가 될 수 있으며, 이 경우 서버는 각 레스토랑에 대한 정보를 저장합니다. 서버는 정보 자체 외에도 데이터 간의 관계 도 기록합니다. 예를 들어, 사용자가 스마트폰의 애플리케이션에서 레스토랑을 좋아하면 서버는 레스토랑과 사용자 간의 이러한 연결을 기억합니다.
서버.  인형을 위한 교육 프로그램 - 7
이를 통해 많은 질문에 답할 수 있습니다. 예를 들어:
  • 이 레스토랑을 좋아하는 사용자는 몇 명입니까?
  • 이 사용자는 어떤 레스토랑을 좋아합니까?
  • 한 번에 여러 사용자의 관심을 끄는 요리는 무엇입니까?
데이터 간의 정보와 관계는 데이터베이스 (DB) 에 저장됩니다 . 데이터베이스에는 여러 유형이 있지만 모두 다음과 같습니다.
  • 정보를 저장할 수 있다
  • 데이터 간의 관계를 저장할 수 있습니다.
  • 정보에 대한 요청을 수신 하고 요청에 따라 단일 데이터 또는 데이터 세트로 응답할 수 있습니다.
데이터베이스에는 다양한 유형이 있으며 각각 고유한 장점과 단점이 있습니다. SQL, MySQL, MongoDB, CouchDB, Redis와 같은 용어를 듣는다면 데이터베이스에 대해 이야기하고 있다는 것을 아십시오.

상호 작용

서버의 주요 작업은 애플리케이션 및 다른 서버와의 상호 작용입니다.
서버.  인형을 위한 교육 프로그램 - 8
많은 애플리케이션 작업에는 서버와의 상호 작용이 필요합니다. 예를 들어 사용자가 무언가를 검색하는 경우 검색어가 서버로 전송되고 서버에서 결과가 나옵니다. 사용자가 다른 사용자에게 메시지를 보내면 해당 메시지가 먼저 서버에 도착합니다. 그런 다음 거기에서 다른 사용자의 애플리케이션으로 전송되며, 대부분 알림 형식으로 전송됩니다. 애플리케이션이 상호 작용할 수 있도록 서버가 제공하는 인터페이스를 일반적으로 API 라고 합니다 . 일부 인터페이스 기능은 엔드포인트 (예: 사이트의 검색 또는 인증) 와 연결될 수 있습니다 . 초보자에게는 이러한 상호 작용이 이상하게 보일 수 있습니다. 가장 일반적인 두 가지 상호 운용성 형식은 JSON과 XML입니다.
서버.  인형을 위한 교육 프로그램 - 9
왼쪽은 XML, 오른쪽은 JSON 언뜻보기에 읽기 어려운 형식입니다. 서버는 노트북이나 스마트폰과 같은 컴퓨터일 뿐이라는 점을 이해하는 것이 중요합니다. 휴대폰의 앱은 음성, 문자, 음성 인식 또는 화면 터치를 통해 사용자 입력을 받아들입니다. 애플리케이션은 이 정보를 처리한 후 화면에 이미지 형식으로 답변을 제공합니다. 스마트폰은 사람과 상호작용하는 컴퓨터이기 때문에 입력과 출력이 사람에게 편리한 형태로 제공된다. 서버는 다른 컴퓨터하고만 상호 작용하는 컴퓨터입니다. 사람은 글꼴 크기, 텍스트 색상, 서식 등을 통해 정보를 인식합니다. 그러나 이것은 컴퓨터에게는 아무런 의미가 없습니다.
서버 간의 상호 작용은 다른 컴퓨터에서 쉽게 구문 분석하고 이해할 수 있는 형식으로 발생합니다.

서버 애플리케이션

휴대폰에서 실행되는 앱을 만들려면 서버에서도 실행되는 앱이 필요합니다. 서버 측 애플리케이션은 서버 측 프로그래밍 언어 및 프레임워크를 사용하여 생성되며 널리 사용되는 옵션으로는 Java , Ruby on Rails , Node.js , PHP , ASP.NET 이 있습니다 .
서버.  인형을 위한 교육 프로그램 - 10
API는 서버의 "문"이고 애플리케이션은 이를 두드리는 방법을 알고 있다고 말할 수 있습니다. 데이터베이스는 귀하의 모든 정보를 저장합니다. 그리고 서버 애플리케이션은 모든 것을 하나로 연결하는 "브레인"입니다. API를 통해 전송된 요청을 수신 및 응답하고, 데이터베이스에서 정보를 추가 및 검색하고, 결정을 내립니다. 예를 들어, 사용자 애플리케이션이 로그인 정보를 제출하면 요청은 API를 통해 이루어지며 올바른 로그인 정보는 데이터베이스에 저장됩니다. 서버 애플리케이션의 임무는 API를 사용하여 이를 비교하고 그에 따라 애플리케이션에 응답하는 것입니다.

하드웨어

서버.  인형을 위한 교육 프로그램 - 11
"서버"라는 단어를 들으면 아마도 닫힌 방에 깜박이는 조명이 있는 캐비닛과 같은 이미지가 떠오를 것입니다. 아마도 그림을 완성하기 위해 누락된 유일한 것은 천장에서 내려와 무언가를 훔칠 톰 크루즈일 것입니다. 많은 대기업은 자체 서버와 전체 데이터 센터(깜박이는 캐비닛이 있는 거대한 공간)를 소유하고 있습니다. Facebook과 Google은 전 세계에 수백 개의 서버를 보유하고 있습니다. 수백만 명의 사용자를 대상으로 대규모 서비스를 운영하는 경우 자체 서버를 운영하는 것이 훨씬 저렴하고 더 나은 성능을 제공할 수 있습니다. 많은 개발자는 자체 서버를 유지 관리하는 대신 클라우드 서비스를 사용합니다. Amazon Web Services, Azure 및 Digital Ocean과 같은 서비스는 "가상 서버"를 사용할 수 있는 기능을 제공합니다. 이러한 서비스는 하드웨어를 소유하고 유지 관리하며 개발자는 하드웨어에 서버 애플리케이션을 로드하기만 하면 됩니다. 일부 서비스 제공업체는 백엔드를 서비스로 제공하므로 백엔드 애플리케이션을 직접 작성하지 않고도 간단한 백엔드를 가질 수 있습니다.

모든 애플리케이션에 백엔드가 필요합니까?

여러분에게 익숙한 대부분의 앱에는 백엔드 구성 요소가 있을 것입니다. 물론 서버 부분이 없는 프로그램도 찾을 수 있습니다. 예를 들어 일부 생산성 앱이 있습니다. 애플리케이션에 백엔드가 있는지 확인하는 쉬운 방법은 다음과 같습니다.
비행기 모드로 전환해도 앱이 계속 작동하나요?
대답이 "아니요"라면 이는 애플리케이션에 확실히 백엔드 서버가 있다는 의미입니다.
서버.  인형을 위한 교육 프로그램 - 12
이제 애플리케이션의 백엔드가 무엇인지 이해하셨기를 바랍니다. 아마도 다음에 동료 프로그래머를 만나면 그들이 말하는 내용을 이해할 수 있을 뿐만 아니라 대화에서 빌어먹을 "제이슨"이라는 표현을 사용할 수도 있을 것입니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION