📢 개요

강력한 MVC 웹 프레임워크들이 등장하고 발전하면서 우리는 빠르고 편리하게 웹사이트를 개발할 수 있게 되었습니다.

하지만 기술이 발달해서 어떤 필요를 충족하고 나면, 항상 또 다른 수요와 해결과제가 생기게 되죠 ?

기존 MVC 웹이 가졌던 아쉬움들 중에서 2가지 예시를 보면

1. 오래된 웹사이트일수록, 이것저것 많이 있는 웹사이트에서 한 게시글을 읽고, 내용이 마음에 들어 "좋아요"를 눌렀다.

👉 이거 하나 눌러서, 전체 좋아요 수가 증가하는 것을 업데이트하려고, 화면이 "깜빡"하면서 페이지가 새로 로딩된다.

게시물 페이지 접근시

 

게시물 페이지에 좋아요를 반영한 경우

좋아요를 눌렀을 경우, 위에 두 그림같은 과정이 매번 좋아요 버튼을 누를경우 반복될 것입니다. 

바뀐건 좋아요 하나뿐인데, 위에 모든 작업을 매번 새로하다보니, 굉장히 비효율적이지요.

사이트에 로드할 정보들이나 이미지가 많으면, 데이터 낭비도 심할 것입니다.

결과적으로, 이건 옛날 방식 !

2. 옛날에는, PC용 웹사이트 하나만 만들면 되었지만, 요즘같은 모바일 시대에서는, 앱이나 스마트폰 브라우저로 서비스들을 이용하면서, 이제는 어느정도 갖춰진 사업을 하는 회사에서는, PC용 웹사이트, 모바일용 사이트,안드로이드,ios 서버까지 개발하게 되었습니다.

👉 반응형 웹사이트를 만든것이 아니라는 전제하에, PC나 모바일 페이지에 접속하는 방식은 위 그림과 비슷한 과정을 보이며, 안드로이드나 ios에서는 자체적인 OS환경에서 페이지가 로딩되도록, 따로 프로그래밍을 해야합니다.

사이트 하나만 만들면 되던 예전보다, 개발 인력이 배로 들것입니다.

여기서, 겹치는 부분을 최소화하고, 업무를 좀 더 깔끔하게 분할할 수는 없을까요 ?

예를들어, 안드로이드와 ios에는 자체적인 SW와 시스템이 있어서, 서버로부터 데이터만 전송받으면 화면이 보여질 수 있으니, 웹에서도 그게 가능하다면, 즉 서버에서 데이터만 보내줘도, 그걸 서버가 아닌 "사용자의 브라우저"에서 HTML/CSS/JS로 렌더링해낼 수 있다면, 서버는 어디서 정보를 요청하든, 동일한 작업을 수행해서 데이터만 전송하면 될 것 입니다.

사용자 컴퓨터의 브라우저에서 돌아가는 👉 프론트엔트(Front_End)
서버에서 돌아가는 👉 백앤드(Back_End)

철저하게 분리하는 것이지요.

 

📢 Angular, React, Vue 는 SPA Framework

브라우저에서도 동작하는 "JavaScript" 로 강력한 라이브러리나 프레임워크를 만든 것이 바로

👉 Angular, React, Vue 같은 "SPA 프레임워크" 입니다.

SPA = Single Page Application 이라고 하는데요.

비유를 하면, 종업원들이 고기와 쌈재료를 가져다주면, 주방장이 아닌, 손님이 직접 불판에 구워먹는 고기집이라고 생각하면 됩니다.

게시물 페이지 SPA 방식

이렇게 되면 사이트에서 뭘 할 때마다 새로 접속하지 않고, 한 번 로드된 화면에서 많은 기능을 수행 할 수 있게 됩니다.

그래서 Single Page Application, SPA 라고 불리는 것입니다.

 

📢 마무리

왼쪽에서부터 React / Angular / Vue

Angular, React, Vue 에 대한 자세한  설명까지하는것은 이 글의 취지는 아니어서 생략하겠습니다.

다만, 대표적인 이 3가지의 SPA 프레임워크는 방식들은 조금씩 다르지만, 기본 원리와 아이디어는 유사합니다.

특징만 간단히 말하자면

  • Vue : 코드가 깔끔하고 배우기 쉽다. Angular, React에 비해 후발주자지만 빠르게 성장하고 있습니다.
  • React : Facebook에서 만들었는데, 막강한 커뮤니티와 자료들을 갖추고 있습니다. 다른 서비스에 잘 녹아들어 유연함을 요하는 서비스들에 권장됩니다.
  • Angular : Google에서 만들었고, TypeScript라는, JavaScript를 보완한 언어로, 매우 안정적이고 탄탄한 프론트엔드 앱을 만들 수 있다고 합니다. 대신 상대적으로 무겁고 배우기 어렵다고 하네요.

 

 

문제나 잘못되었거나 미흡한것이 있다면 알려주세요.🙏


 

728x90
반응형

📢 개요

네이버 같은 딱봐도 복잡한 웹사이트는, 요소와 기능들이 많아지고, 구조가 이것저것 얽혀있다는 것이 느껴집니다.

뭔가 거대해지고 복잡해질수록, 특정 기준으로 분리,모듈화해서 접근을 해야합니다.

국가기관을 입법,사법,행정으로 나누듯이, 웹사이트를 비롯한 소프트웨어는

  • Model
  • View
  • Controller

라는 접근법이 많이 사용됩니다.

 

📢 MVC Web Framework

MVC 패턴

MVC 패턴

  • Model : "데이터"에 관련된 것
  • Veiw : 눈에 보이는것, 웹의 경우 HTML/CSS 나타내는 요소들
  • Controller : 뭔가를 제어하는것, 프로그래밍의 대부분을 차지

게시판을 예시로 봅시다.

Model

👉 게시판에 쓰이고 읽히고 수정되는 글들은, DB에 데이터로 저장될 것입니다.
데이터의 형식을 지정하고, 저장하고 불러오는 작업들에 관한 코드들이 Model 

Veiw

👉 이걸, 사용자들이 목록과 글, 입력화면 등으로 시각적으로 볼 수 있도록 해주는 HTML/CSS 등의 요소가 View

Controller

👉 Model에 데이터를 View에 연결시켜서 사용자가 GUI화면을 통해 데이터를 읽고,쓰고,지우고 할 수 있도록 전반적 제이를 하는 파트가 Controller 입니다.

앞선, "정적 웹 vs 동적 웹" 포스팅에서 동적 웹을 "식당"에 비유했습니다.

 

[알쓸 IT] Static Web ? Dynamic Web ?

📢 개요 편의점과 식당이 있습니다. 편의점은 미리 조리되어있는 음식들을 내가 사다 먹을 수 있습니다. 식당은 내가 주문 넣으면, 그 자리에서 음식을 조리해서 만들어 제공을 해주면 먹을 수

youngminieo1005.tistory.com

Model은 이 식당의 식료품창고를 관리하고, 음식을 요리하는 "주방장"
View는 주방장이 내온 음식을 플레이팅하는 "직원"
Controller는 주문도 받고 서빙도 하는 매니저라고 생각하면 적당합니다.

이렇게 Model, View, Controller를 갖춘 웹사이트를 코드로 기본 골격을 한 번 짜고 나면, 그 코드를 기반으로 내 사이트를 개발하는 일이 수월해지겠지만, 이런 구조 자체를 개발하는 것은 꽤나 시간이 걸릴 것입니다.

다행이도 여러 회사나 비영리 단체, 혹은 개인들이 이 MVC 구조의 기본 설계가 갖춰진 상태인
"MVC 웹 프레임워크" 란 걸 제공합니다.

마치, 건물의 기초 골격과 수도,전기,난방이 설치된 채로 사용자가 원하는대로 집을 개조하고 꾸밀 수 있게 제공하는 것입니다.

"프레임워크"는 남이 이미 짜놓은 코드란 점에서 라이브러리와 비슷하지만, 이 둘을 간단히 비교하자면

라이브러리(Library) 프레임워크(Framework)
각각 개별적인 기능들을..
비유하자면, 문짝이나 욕조 등의 부속품
"가져다 쓰는 것"
부족품들이 연결되어서..
기초적인 제품 골격을 갖춘 상태
"기본 틀에서 덧붙여 만드는 것"

웹 프로그램언어에는 다양한 언어가 있고, 또 언어마다 다른 MVC 웹 프레임워크가 있습니다.

예로 들면, 한국에서, Java 언어로 동작하는 Spring 프레임워크, php 의 Laravel 등이 있지요.

특이하게 MVC라고 안하고, MTV(T,Template) 라고하는 python의 Django, Ruby 의 Ruby on Rails, 함수형 언어 Scala의 Play 등등 굉장히 많다고 합니다.

웹 프로그램언어 - 웹 프레임워크 

후에, 본인이 어느 회사에서 일을 하는가, 또는 어떤 웹사이트를 만드는가에 따라서, 무슨 언어와 프레임워크를 사용할지 결정하면 됩니다.

대략적인 구조나 사용법은 다 비슷해서, 한 두가지 써보면 새로운 걸 접해도 쉽게 터득할 수 있을 것입니다.

 

문제나 잘못되었거나 미흡한 설명 있으면 알려주세요. 🙏


 

728x90
반응형

📢 개요

편의점과 식당이 있습니다.

편의점은 미리 조리되어있는 음식들을 내가 사다 먹을 수 있습니다.
식당은 내가 주문 넣으면, 그 자리에서 음식을  조리해서 만들어 제공을 해주면 먹을 수 있죠.

이 둘의 근본적인 차이는, 업소에서 그때그때 음식을 만들어 주는가 입니다.

정적 웹(Static Web) = 편의점
동적 웹(Dynamic Web) = 식당에 비유할 수 있겠습니다.

 

📢 Static Web vs Dynamic Web

정적 웹(Static Web)

  • 말 그대로, "움직이지 않는, 언제 접속해도 같은 리소스를 보여주는 웹사이트"
  • 프로그래머가 서버에 미리 작성해놓은 HTML/CSS/JS 코드들 그대로 클라이언트의 브라우저에 건내준다.
  • 하지만, 무조건 매번, 동일한 페이지를 보여주는 것은 아닙니다.
    현재 시간을 보여주는 페이지나, 매번 랜덤숫자를 보여주는 페이지, 서버에 직접요청을해서 받아온 내용을
    보여주기도 하는 페이지도 존재합니다.
  • 결국, 정접웹의 기준은, 접속할 때마다 받게 되는 HTML,CSS,JS 코드들, 그리고 동봉된 이미지,영상 파일들이 같은지에 따라 판단이 됩니다.
  • 좀 더 정확하게는, 서버에서 프로그래머가 개발해놓은 HTML/CSS/JS 코드들을, 서버에서 직접 가공해서 제공하는 것이 아니라, 미리 개발해놓은 제품들을 그대로 가져가게 하냐 ? 입니다.
  • 예를들어, 접속시마다 내용이 바뀔필요가 없는 사이트. 회사의 소개페이지, 댓글기능이 없는 블로그 페이지 등에 사용 될 수 있겠죠 ?

동적 웹(Dynamic Web)

  • 하지만, 실시간으로 댓글들이 게시판 페이지같은 경우는 어떤가요 ?
  • 매번 새로운 댓글들이 추가된, 새로운 웹페이지를 제공하기엔 무리가 있을 것입니다.
  • SNS 웹페이지 같은 곳은 말할 것도 없겠죠 ?
  • 이런 페이지는, 식당같이, 서버가 그때그때 요리를 하도록 해야합니다.

두 웹 페이지의 제공 방식을 비교해보죠.

정적 웹은 개발자가 HTML/CSS/JS를 서버에 미리 사용자에게 보여질 모습, 최종모습으로 코딩해서 서버에 올려놓는다.

동적 웹은 DB에서 정보를 읽어서 서버에서 가공된 모습을, 접속할 때마다 최신 정보로 보여주는 방식이 대표적입니다.

 

📢 마무리

음....그러면 Dynamic Web이 좋은 것 같네요 ?

👉 모든 경우가 그렇지는 않습니다 : 오히러 동적이었던 방식에서 정적으로 많이 넘어가는 추세이기도 합니다.

옛날에 네이버같은 포털사이트에서 제공하는 방식인, 작성자,제목,내용,작성일,댓글 등의 정보가, DB에 따로 저장이되고 이를 접속시마다 페이지로 가공해서 보여주는 방식의 동적 블로그들을 다들 이용했습니다.

일단 글들이 DB 따로 저장이 되는 것이다보니, 따로 보관하거나 관리하기 까다로울 수 있고, 내가 직접 블로그사이트를 운영한다해도, 고작 같은 글 보여주느라 매번 서버가 일을 하도록 코딩하고 관리하는 것도 일 입니다.

차라리 글 하나하나를 HTML 파일 단위로, 잡지처럼 진열해놓는게 훨씬 운영하기 편할 것입니다.
보관도 그 HTML파일들을 그대로 복사해서 어딘가 저장해놓으면 됩니다.

그래서 요즘 개발자들은 Jekyll 이나 Hugo 같은, 정적 웹 생성 툴로 블로그를 많이 만듭니다.
특정 형식으로 블로그 글을 작성하면, 그걸 HTML,CSS 등등의 파일들로 출력해내고, 그 프로젝트를 Github이나 Netlify 같은 곳에 올리면, 자동으로 진열돼서 블로그 페이지로 보여지는 것입니다.

Jekyll 과 Hugo 정적 웹 생성 툴

개발자 블로그 중에, https:// ~ . github.io 로 끝나는 것들이, 바로 정적 블로그들의 예시 입니다.

Jekyll로 블로그를 작성해서 github에 게시하는 건 비용도 들지 않고, 배우기 크게 어렵지 않으니, 프로그래밍을 공부하면서 본인이 공부한 내용들을 이렇게 블로그에 정리하면, 공부하는데 많은 도움이 될 것입니다.

 

 

문제가 되거나, 잘못된 정보가 있으면 알려주세요. 🙏


 

728x90
반응형

📢 개요

HTML/CSS/JavaScript(Js)

오늘날의 HTML, CSS, JavaScript(JS)는 "웹사이트", 즉 브라우저에서 동작하는 소프트웨어에만 국한되어 있지 않습니다. 

React Native나 Native Script처럼 혹은, 비슷한 변형들로, "모바일 앱"을 만드는 기술들이 이미 널리 사용되고 있습니다.

Electron.js 같은걸로 이젠, 웹사이트가 아닌, "컴퓨터 프로그램"까지 HTML/CSS/JS로 만들 수 있게 되었습니다. 😮

 

📢 HTML/ CSS / JavaScript

사실상, HTML(Hyper Text MarkUp Language) , CSS(Cascading Style Sheets)는 사실 프로그래밍언어에도 속하지 못합니다..

  • HTML은 "마크업(Markup)"언어입니다.

    👉 화면에 "어떤 요소들이 놓여 있어라 !" 하고 갖다놓는 수단

  • CSS는

    👉 HTML을 통해 띄어놓은 요소들이, "이렇모양, 저런 색 등으로 보여라 !"하고 정해주는 수단

  • JavaScript만이 그나마(?) 프로그래밍언어 속합니다. 

    👉 원래는 브라우저에서 웹사이트를 돌리는 목적으로 만듦, 그래서 그닥 대우를 못받는 언어였습니다.
    👉 그러나, 계속 발전을 하고, 특히 Node.js가 이것을 브라우저 바깥 세상으로 꺼내오면서, 위상이 아주 높아졌다.
    👉 웹사이트에서 돌아가는 JS는 브라우저에서 다양한 일을 수행하고, HTML로 올려놓은 요소들을 변형시키거나, 직접 만들어내기까지 합니다. !! 😮

📝 HTML / CSS / JavaScript 문서들이 합쳐져서, 하나의 웹페이지가 구동한다면,

  • HTML = "갖다놓고"
  • CSS = "꾸미고"
  • JavaScript = "시킨다."

라고 생각합시다. 

 

📢 마무리

HTML / CSS 는 배우는 건 쉽지만, 숙달이 되려면 시간이 좀 필요합니다.

같은 구조와 모습도, 구현하는 방법이 다양한데, 어느쪽이 효율적이고, 여러 환경이나 기기에 유연하게 적용 가능한지는 많이 만들어보고, 직접 봐야 느낄 수 있습니다.

매우 유명한 사이트, 예를 들면, "네이버" 나 "다음", "구글" 같은 사이트가, 어떻게 구성되어 있는지, "크롬 개발자 도구 같은 툴들로 분석해보면, 좋은 방법론들을 많이 얻을 수 있습니다. 👍👍👍

오른쪽화면이 "크롬 개발자 툴 (F12) 누르면 된다.

자바스크립트는 현재도 빠르게 변화해가고 있는 언어이다 보니, "끊임없이" 공부할 것이 생긴다고 합니다. 😂

예전에는 대부분이 "JQuery" 라는 강력한 "라이브러리" 로 순수 자바스크립트보다 훨씬 편하고, 쉽게 코딩을 하곤 했는데, 요즘은, 자바스크립트 자체가 파워풀해지고, JQuery의 성능문제도 있어서,,,

프론트엔드 프레임워크 같은 새로운 개발 방식들이 나오면서 "JQuery를 더 이상 쓰지말아야한다." , "없애야 한다" 라는 말이 나오고 있다고 합니다. 🙄

프론트엔트 Framework 들 ( 순서대로, React, Angular, Vue.js )

입문자들은, 우선 "JavaScript"를 탄탄히 먼저 배워놓은 다음, 위에서 언급한 라이브러리나 프레임워크를 필요에 따라, 배워나가면 좋을 것입니다.

웹 사이트를 만들 때, 기억해야 할 것은, HTML,CSS,자바스크립트의 최신 기술들을 전부 공부해서 이용하려면 곤란하답니다. 😅

웹사이트는 어디까지나, 크롬(Chrome), 사파리(Safari), 파이어폭스, 익스플로러  같은, "웹 브라우저"에서 구동하는데, 이 브라우저들 중, 일부에서 최신 기술들을 지원하지 않거나, 혼자 이상하게 돌아가는 경우( 익스플로러..🤬 )가 있기 때문에, 사람들이 어떤 버전의, 어떤 브라우저를 얼마나 사용하고, 그것들이 지원하는 기능들은 어디까지인지

즉, 📝 "호환성"확인하고, 테스트해가면서, 개발하는 것이 중요합니다. 

 

 

미흡하거나, 잘못된 정보가 있다면, 문의해주세요. 🙏


 

728x90
반응형

📢 개요

어떤 회사가, 직원들을 해외 출장을 파견 시키게 됬습니다.
파견기간동안 머물 공간이 필요할 것 입니다.

방법은 크게 2가지가 있습니다.

  • 일터와 숙소로 쓸 가건물 하나 전체를 빌리는 것
  • 가성비가 꽤 좋은 초대형 호텔을 이용하는 것

이 둘은 각각의 장단점이 있습니다.

  • 가건물 전체를 빌리는 것

    [ 장점 ]
    👉 우리 팀만의 넓은 공간이 확보된다.
    👉 호텔보단 평단가가 싸다

    [ 단점 ]
    👉 건물 전체를 빌리다보니, 필요 이상의 공간까지 값을 치르는 것이 된다.
    👉 결과적으로 내야하는 총 금액이 클 것이다. ( 전기,수도, 등 건물 관리비 포함, 청소,빨래 등 개인 작업 필요 )
    👉 어쩌다 현지 파견자 규모가 커지면, 현재 공간이 부족하게 되면, 곤란하다.

  • 반면, 초대형 호텔을 이용하는 것

    [ 장점 ]
    👉 팀에게 딱 필요한 공간만 방을 빌릴 수 있다.
    👉 상황에 따라, 건물의 공간을 더 대여하거나, 취소 할수도 있다.
    👉 건물 관리도, 호텔 측에서 해주고, 잡일(빨래,청소) 서비스도 제공해도 된다. ( 돈을 더 낼 여유가 있다면.. )
    👉 결과적으로, 내 주요 업무에만 집중할 수 있게 될 것이다.

    [ 단점 ]
    👉 단, 여러 서비스를 신청해서 받으려고 할수록, 지불해야할 총 금액은, 건물 렌트보다 비싸질 것이다.
    👉 남이 관리하는 시설이다보니, 보안 측면에서 불안해 할 수도 있고, 업무에 맞는 커스터마이징한 건물보다 효율이 떨지는 부분도 있을 것이다.

결과적으로, 회사의 재정적 상황과, 업무의 효율에 맞는 선택을 해야 할 것이다.

 

📢 클라우드 컴퓨팅(Cloud Computing)

앞선 건물 렌트를 비유해서, 인터넷을 기반으로 서비스를 제공하는 제품을 개발할 때, 서버를 두는 방식은 2가지

  • 회사가 자사의 시설, 혹은 IDC(Internet Data Center)에 "자체적으로" 컴퓨터 서버를 두고 운용방식

    👉 온-프레미스(On-Premise) 방식

  • AWS, Azure, GCP, 네이버 클라우드 플랫폼같은 "대기업 브랜드" 들에서 제공 서버를 사용하는 운용 방식이

    👉 클라우드 컴퓨팅(Cloud Computing) = 클라우드(Cloud)

클라우드 (Cloud)

클라우드 컴퓨팅도 역시, 자사의 거대한 데이터센터에 서로 연결된 수~많은 컴퓨터들을 운용하고 있습니다.

다만, 전통적인 방식처럼, 사용자들에게 컴퓨터를 하나씩 통째로 배당하는 방식이 X
필요한 만큼 떼어서 제공합니다. ( ??? )

  • 컴퓨터를 어떻게 떼어서 제공한다는 것인가 ?

    = "가상 컴퓨팅(Virtual Computing)" 이란 기술을 이용하면, 물리적 컴퓨터 한 대에 "가상의" 컴퓨터 여러 대를 띄울 수 있습니다.

    👉 예로 들면, 윈도우(Windows)에 "우분투 리눅스"를 깔아 쓰는 것입니다.

    즉, 컴퓨터의 물리적 자원을, 필요에 따라 분할해서 쓸 수 있는 것입니다.

    사용자는 원격접속 프로그램을 이용해서, 마치 한 대를 쓰는 것처럼, 인터넷으로 연결된, 가상 컴퓨터를 사용하는 것

  • 컴퓨터 자원이 많지 않거나, 수시로 변화하는 회사나 기관, 혹은 개인에게, "클라우드"는 아주 매력적일 것입니다.

    👉 예로 들어, 세일 시즌이나, 이벤트 기간에만 유독, 접속량이 폭주하는 앱의 경우, 클라우드에서 그 때마다,
    자원을 늘려주거나 줄여줄 수 있습니다.

    = 시간이나 접속량에 따른 "종량제" 개념으로, 필요한 만큼만 쓰고, 돈을 지불하면 됩니다.

가상 컴퓨팅(Virtual Computing)

 

📢 클라우트 컴퓨팅의 장점

  • 하드웨어도 클라우드에서 알아서 관리해주니까 걱정할 필요 없고
  • 비용을 더 지불하면, 원래는 회사에서 자체적으로 해야 했던, DB, 자료백업, 스토리지, 자동화 등을 검증된 최고급 프로그래머들이 구현해 놓은 것을 서비스로 이용할 수 있습니다.
  • 결과적으로, 그러한 것들을 직접 개발하고 관리하는데 써야 했던, 시간적, 인적, 물적 비용을 회사의 주요 업무에만 집중할 수 있도록 할 수 있다보니, 시스템 엔지니어, DB전문가 같은 고급 인력들을 고용하는데, 부담이 큰, 중소기업이나 벤처에게는 굉장히 유용한 서비스 일 것입니다.
  • 물론, 규모가 작은 기업만 쓰는 것이 아닙니다. 글로벌하게, 대기업에서도 클라우드 시스템을 사용합니다.
  • 다만, 보안상의 이슈때문에, 대기업류의 회사들은, 온-프레미스 vs 클라우드 중에 이것저것 따져보고 사용합니다.

📢 클라우드 서비스의 분류

  하드웨어 가상서버 소프트웨어
IaaS (Infra as a Service) O X X
PaaS (Platform as a Service) O O X
SaaS (Software as a Service) O O O
  • IaaS (Infra as a Service)

    👉 서비스로 제공되는 "인프라" , 가상컴퓨터, 즉 하드웨어 자원의 일부를 떼어주는 것
    👉 클라우드에서는 하드웨어만 관리, 내가 직접 가상서버를 본체 사서 원도 깔고, 드라이버 다운받고, 프로그램 깔고 하듯이 운영하고 관리한다고, 생각하면 됩니다.

  • Paas (Platform as a Service)

    👉 플랫폼이 서비스로 제공됩니다.
    👉 하드웨어관리, 가상서버(가상컴퓨터) 또한 내가 신경 쓸 필요 없습니다. 클라우드에서 관리해줍니다.
    👉 내가 짠 코드를 압축해서, 업로드하거나 "깃(Git)"으로 전송하면, 클라우드에서 알아서 서버에 넣고 돌려준다.
    👉 이를, "배포" 한다고 합니다. = 난 코드만 짜면 되니깐, 정말 편합니다.

  • Saas (Software as a Service)

    👉 아예 다 만들어진 소프트웨어를 서비스로 제공하는 것입니다.
    👉 드랍박스,SNS,이메일,에버노트,구글닥스,온라인페이, "유트브" 등이 예 입니다.

 

📢 마무리

우리가, 어느정도 코딩을 배우고,

  • "이제 내가 리눅스(linux) 좀 만져볼 수 있을 것 같다 !"
  • "서버나 웹사이트 한 번 직접 만들어서 직접 세상에 온라인에 열어보고싶다 한다면 !"

앞서 언급한, "AWS(아마존 웹서비스)" , "GCP(구글 클라우드 플랫폼)", "Azure", "네이버 클라우드 플랫폼" 같은 주요 클라우드 업체들 모두 새 가입자에게 "1년간 IasS(외 다수) 무료 이용권"을 제공한다고 합니다. 😮

대기업 클라우드 플랫폼

작은 서비스를 운영하기엔 충분한 리소스를 제공해주는 것이니까요 !
서버 관리 말고, 서비스 개발에만 집중해보고 싶다면, "히로쿠(heroku)" 나 "넷리파이" 같은 PaaS 서비스도  좋으니 참고해보길 바랍니다.

이렇게, 소개한, "클라우드" 서비스 덕분에, 내가 서비스를 제공함에 있어서 신경써야할, 관리,배포 적인 면들을 일정부분 무료로 제공해주고 하는 시대에 우리가 살고 있으니깐요 !!

오로지 개발자는, "개발"에만 집중해서, 자신이 생각해놓았던 서비스가 있다면, 개발해보는것도 좋을 것 같습니다. 😀

 

 

미흡하거나, 잘못된 정보가 있다면 문의주세요. 🙏


 

728x90
반응형

'알쓸 IT 지식' 카테고리의 다른 글

[알쓸 IT] Angular, React, Vue  (3) 2021.01.11
[알쓸 IT] MVC 웹 프레임워크  (0) 2021.01.11
[알쓸 IT] Static Web ? Dynamic Web ?  (0) 2021.01.11
[알쓸 IT] HTML/CSS/JavaScript  (1) 2021.01.03
[알쓸 IT] Server란 무엇인가 ?  (0) 2021.01.03

📢 개요

우리는 웹사이트를 이용할때나, 게임 같은 것을 이용하려다가도 잘 돌아가지않거나, 끊겨버리거나하면 흔히...

" 서버에 문제가 있나 ? 서버 터진거 아냐 ? " 말한다.


또, 우리가 유트브나 네이버같은 서비스를 이용해서, 온갖 영상이나, 정보들을 볼 수 있죠 ?
근데, 이것이 원래, 내 컴퓨터에 있는 영상이나 정보인가요 ?

👉 NO !! 아니죠 ?

다른 어딘가에 !! 우리가 흔히, "서버" 라고 부르는 어떤 "컴퓨터" 에 들어가 있는 것이에요.
맞다 !! 서버도, "컴퓨터"이다.

사실, 서버란 "역할(Role)"의 개념을 말한다.

예를 들어, 이 글이 있는 현재 블로그에서 글을 쓰는 필자는 이 블로그의 "주인" 입니다.
반대로, 내가 A군의 블로그에 접속해서 이용하면, 그때의 필자는 그 블로그의 "손님"이죠.

또 다른 예로, "A씨네 김밥집"에서는 "A씨"가 그 김밥집의 "사장님" 이지만, "B씨네 김밥집"에서 밥을 먹으면
A씨는 그때는 "손님" 이 됩니다.

IT 쪽으로 돌아와서 생각을 해보면..

한 컴퓨터가 네트워크로 연결된 다른 하나 또는 그 이상의 컴퓨터들에게 무언가를 해주게 되면, 이를테면...

  • 저장된 글이나 사진같은 정보를 보여주거나
  • 그런 글이나 사진같은 정보를 업로드받아서 보관해주거나
  • 한 컴퓨터에서 메시지를 보내면, 상대방 컴퓨터에서 알림을 보내주거나
  • 위치와 목적지를 받아서, 가는 길 사이에, 소요시간 등을 계산해주거나
  • 여러명이 참여할 수 있는, 온라인 게임을 열어주거나

하면 !! 그 "serve" = "제공하다" 해주는 것이 바로, "서버(Server)" 입니다.
그리고, 그 서비스를 받는 컴퓨터가 "손님", 바로, "클라이언트(Client)" 입니다.

서비스 제공(서버)  - 서비스 요청 (클라이언트)

 

📢 서버(Server) - 클라이언트(Client)

앞선 설명에서의 핵심은...

서비스를 제공하는 역할 (컴퓨터)  👉  서버(Server)
서비스를 받아 사용하는 역할 (컴퓨터)  👉  클라이언트(Client)

이, "서버 - 클라이언트" 관계상대적이라고 생각할 수 있다.

예를 들어서, 한 맛집 앱을 담당하는 내 컴퓨터가 하나 있습니다.
이 내 컴퓨터는,  앱이 깔린 폰들에게 맛집들의 정보를 전송해줍니다.

👉 이 때, 내 컴퓨터는 폰들에게 맛집 정보를 전송(제공)해주니깐 👉 "서버(Server)" 이죠 ?

그런데, 이 맛집 정보를, 사용자의 특정 지리의 지리 정보가 필요할 때에는, 네이버 지도 서버같은 곳에서, 지리 정보를 받아와야하겠죠 ?

👉 이때 내 컴퓨터는, 네이버에서 지리 정보를 받아오니깐 👉 "클라이언트(Client)" 가 되겠죠 ?

서버-클라이언트 상대적인 예시

 

즉, 서버 - 클라이언트 역할은, 그 때마다, 서비스를 제공하는 쪽고, 받는 쪽이 누구냐에 따라 달라집니다.

흔히 우리가 알고 있는 "서버"라고 알고있는 컴퓨터들은 보통

👉 IDC(Internet Data Center) 라는 말 그대로, 인터넷 데이터 센터란 시설에 있습니다.

IDC(Internet Data Center

냉각장치와 함께 수많은 컴퓨터들이 쫙~박혀서 인터넷에 연결되어 있습니다.
대부분 서버용으로 특수제작한 컴퓨터들이지만, 어떤것들은 그냥 "똥컴.."도 있다고 합니다.

 

📢 마무리

그럼 !! 서버가 "역할을 맡은 컴퓨터" 이면, 우리집에 있는 컴퓨터도 서버가 될 수 있는 거 아닌가 ?

👉 맞다 !! 우리들의 개인 컴퓨터에도, 서버 역할을 하는 "소프트웨어를 깔고" "외부에서 특정 주소로 접속해올 수 있도록 설정"하면 (어렵다..😂) 전 세계 사람들이 이용할 수 있는, "웹 서버" 나 "게임 서버"로 만들 수 있습니다.

다만, 서버이다 보니깐, 컴퓨터를 계속 틀어놔야 되겠죠 ? 전기세도 많이 들고, 통신의 질이나, 컴퓨터 다운 가능성 등의 한계가 있기 떄문에, 보통은 IDC에 있는 특정 컴퓨터를 사용하거나, "AWS" 와 같은 "클라우드 컴퓨팅 서비스"를 사용합니다. 😃

🧵 클라우드 컴퓨팅이 궁금하다면 ??

 

[알쓸 IT] 클라우드 컴퓨팅(Cloud)

📢 개요 어떤 회사가, 직원들을 해외 출장을 파견 시키게 됬습니다. 파견기간동안 머물 공간이 필요할 것 입니다. 방법은 크게 2가지가 있습니다. 일터와 숙소로 쓸 가건물 하나 전체를 빌리는

youngminieo1005.tistory.com

 

 

 

미흡하거나, 잘못된 부분이 있으면 문의부탁드립니다. 🙏


 

728x90
반응형

+ Recent posts