아키텍쳐(Architecture)란 보통 건축학을 의미하지만 컴퓨터 시스템의 하드웨어 구조를 말한다.

그래서 아키텍쳐는 매우 복잡하여 다 알 수가 없다. 요즘은 컴퓨터를 다 사지 않고 클라우드에서

컴퓨터를 빌려다가 그 아키텍쳐를 구성한다. 이미 제공해주는 기능(클라우드)을 잘 구성하는 것도

개발자의 자질 중의 하나이다. 그리고 팀의 생산성을 결정짓는 실력이기도 해서 매우 중요하다.

데이터베이스(DataBase)란 데이터를 잘 찾게 해주는 프로그램이다. 

DB는 두 종류가 있다. 정형화된 SQL비정형화된 Not-only SQL이다.

인덱스를 태워야 DB가 빨리 데이터를 찾는다. (* 인덱스란 정렬된 순서를 말한다.)

 

 

요즘은 어떤 언어나 프로그램이 대세일까?

프로그래밍 언어로 서버를 처음부터 다 만든다는 것은 아주 어려운 일이다.

그래서 존재하는 것이 프레임워크다. 미리 만들어놓은 블록세트라고 생각하면 쉽다.

언어마다 서버를 만들 수 있는 프레임워크가 있는데 아래의 표처럼 대체적으로 유명한 것들을 쓴다.

프로그래밍 언어 Java Node.js Python
대표적인 프레임워크 Spring Express Django / Flask

요즘 리액트라는 단어가 심심치 않게 들려오는데 웹 프론트엔드에도 프레임워크를 쓴다고 한다.

이것들을 이용하면 용량을 좀 더 적게 보낼 수 있거나 페이지의 깜빡거림을 좀 더 줄일 수 있는 점 등이 있다고 한다. 

서버 사이드 웹 프로그래밍 언어에는 아래에 있는 것들이 요즘 많이 보인다.

Java(자바) : 어렵다. 형식이 있음. 큰 회사에서 많이 씀. 좀 더 안정적이고 에러대응하는 것들이 좋다.

Python(파이썬) : 쉽게 입문할 수 있고 자유롭다. 데이터분석에서도 쓰이고 있다.

node.js(노드제이에스) : JavaScript와 문법이 거의 같다. JavaScript를 서버버전으로 만든 것. 스타트업에서 많이 쓴다. 

 

그 외에도 요즘 뜨는 언어들이다.

C++ : 임베디드 칩, IOT에서 많이 쓴다. 간혹 게임회사에서는 C언어로 서버를 만드는 경우가 있다. 조금 더 컴퓨터하고 가까운 언어다. 보다 정교하게 명령을 내릴 수 있음

GO(고) : 최근 인기를 얻기 시작. 쉬운데 적당히 형식이 있는 언어다.

TypeScript(타입스크립트) : JavaScript에 타입을 얹은 것이 TypeScript로 요즘 많이 쓴다.

 

 

이 외에도 앱을 만들 때는

Kotlin(코틀린) : 안드로이드 앱을 만들 때 쓰인다. 

Swift(스위프트) : iOS 앱을 만들 때 쓰인다.

또는 Flutter(플러터) 나 React Native(리액트 네이티브)라는 프레임워크를 사용해서 한 번에 개발 할 수도 있다.

언어에는 좋고 나쁨이 없다. 특성만 있을 뿐.

그래서 상황을 고려해서 선택하는 것이 좋다.

API란? 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)로

애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트를 말한다.

서버에서 미리 만들어둔 기능이자 클라이언트 개발자하고 미리 한 약속이다. 은행으로 예를 들자면 창구인 셈이다.

API를 사용하면 구현방식을 알지 못해도 제품 또는 서비스가 서로 커뮤니케이션 할 수 있으며

애플리케이션 개발을 간소화하여 시간과 비용을 절약할 수 있다. 

실제로 이렇게 생겼음

이제 아래 문장들을 이해할 수 있게 된다. 

* API하나를 따달라고 요청을 받았을 때는 API명세서도 같이 준다.

공공데이터 같은 경우는 OPEN API로 열어둔다.

웹,앱.. 서버는 상관없다! 한장으로 요약하면 아래와 같다.

웹이든 앱이든 누가 요청하는지 서버는 상관없다.

서버(Server)란? 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로

컴퓨터 프로그램 또는 장치를 의미한다. 클라이언트가 요청하는 정보를 서버가 받아서 처리하고 응답을 주는 것이다.

그래서 요청하는 사람이 많아지면 서버가 힘들어지고 서버가 터지는 일도 발생한다.

웹 서버란 웹사이트를 관리하는 서버를 말하는데, 브라우저는 서버로부터 데이터를 전송받고

컴퓨터에서 HTML(뼈대), CSS(꾸미기), JavaScript(동적이미지) 이 세가지를 다운을 받아 

클라이언트에게 텍스트 및 이미지 등으로 변환하여 보여주는 역할을 한다.

이것이 우리가 늘상 사용하는 웹사이트의 가장 기초적인 구성요소다.

매번 페이지를 로딩하지 않고 데이터만 갈아끼우고 싶을 때는 JSON 방식을 많이 사용한다.

JSON은 특히 앱에서 많이 사용한다. 껍데기(틀)은 갖고 있다가 요청을 하면 데이터를 받아서 붙여주는 것이다.

그렇기 때문에 업데이트가 필요하다. 반면에 웹은 서버에서 껍데기까지 다 받아오기 때문에 업데이트를 할 필요가 없다.

 

컴퓨터란 무엇인가? 컴퓨터는 기본적으로 기계를 모아둔 것이다.

메인보드: 꽂아두기, CPU: 계산하기, RAM: 기억하기, 하드디스크: 적어두기

컴퓨터는 운영체제라고 하는 것을 통해서 조작한다.

OS(운영체제)란 인간이 기계와 소통할 수 있게 만드는 기반이 되는 프로그램이다.

이 운영체제(Android, iOS, Windows10, Linux), 즉 OS에 명령을 내리는 것이 "코딩"이다. (*리눅스는 오픈소스이다)

이 코딩을 어떤 말로 할 것이냐가 "프로그래밍 언어"(Python, JAVA, C++,C#, Scala, JavaScript 등) 이다.

그리고 이걸 미리 짜둬서 매번 똑같이 움직이는 게 "프로그램"이다.

프로그램을 만드는 것 = 프로그래밍 = 코딩

컴퓨터끼리 대화를 주고 받고 싶다면 규칙이 필요하다. 그러한 규칙 중 하나가 웹 = http이다.

"http:// ~ " 웹 통신을 하겠다는 의미 

"https " 보완을 더 강화했다는 의미

+ Recent posts