본문 바로가기

자라나라 PM

HTML, CSS, JavaScript, 기계어,마크업, 스크립트 언어 등등

728x90

별이라는 지식을 얻기 위해서는, 별에 대해서만 찾아보는 것이 아니라

세모도, 네모도, 오각형도, 때로는 동그라미도 찾아봐야 한단다.

그것들이 이어져 결국에는 내가 원하는 별이라는 지식을 주게 된다고 한다.

 

 

나는 우리 회사 웹 사이트가 왜 느린지 궁금했을 뿐이다.

그래서 우리 웹 사이트아 어떤 식으로 만들어졌길래 이렇게 느린지, 

개선방법은 뭔지 궁금했다.

 

이해하기 위해 파고파다 보니 아래와 같은 것들이 감자 캐듯이 줄줄이 나온다.

a 를 알기위해서 b 를 알아야하고, b 에 대한 정보를 찾다보니 c 가 나오는데, 그럼 c 는 뭐지..

하는 식으로.

 

예전에 공부하며 기록했던 것들을 간단히 살펴보며 다시 기억했고,

대부분의 것들은 나무 위키를 통해 연결해서 알게 됐다.

나무위키..엄청 좋잖아..?

 

 

 

HTML

- 말하자면 웹의 구조를 그냥 글로 나열한 것

- 웹 페이지의 모습을 기술하기 위한 규약. 

- 프로그래밍 언어가 아니라 마크업 언어

 

마크업 언어

- 문서가 화면에 표시되는 형식을 나타내거나 데이터의 논리적인 구조를 명시하기 위한 규칙들을 정의한 언어의 일종

- 데이터를 기술한 언어

- 본래는 교정 부호 등을 표기하는데에 사용했지만, 점차 용도가 확장되어 문서의 구조를 표현하도록 발전

- 대표적인 마크업 언어로 HTML, 마크다운이 있다. 

- 메모장이나 워드프로세스에서 제목 앞에 몇 칸의 공백을 넣는 등의 행위도 마크업의 일종이라고 볼 수 있다.

 

CSS

- HTML 을 꾸미는 것

- HTML 등의 마크업 언어로 작성된 문서가 실제로 웹사이트에 표현되는 방법을 정해주는 스타일시트 언어

 

JavaScript

- HTML 이 웹페이지의 기본 구조, CSS 가 디자인을 담당한다면 자바스크립트는 클라이언트 단에서 페이지가 동작하는 것을 담당. 위의 것들을 진짜 움직이게 하는 프로그래밍 언어 

- 웹 페이지를 자동차에 비유하자면, HTML은 자동차의 뼈대, CSS는 자동차의 외관, JavaScript는 자동차의 동력이라고 볼 수 있다.

 

프로그래밍 언어

- 기계(컴퓨터)에게 명령이나 연산을 시킬 목적으로 설계되어 기계와 의사소통을 할 수 있게 해주는 언어를 뜻한다.

- 이 언어들은 사람이 이해하기 쉽게 만든 언어로 실행될 때 컴파일러 컴파일 된다.

 

컴파일러

- 어떤 프로그래밍 언어로 쓰여진 소스파일을 다른 프로그래밍 언어로 바꿔주는 번역기

 

컴파일

- 사전적 의미

1
(여러 출처에서 자료를 따와) 엮다, 편집[편찬]하다
We are trying to compile a list of suitable people for the job
우리는 그 일에 적합한 사람들의 명단을 작성해 보려고 하고 있다.
2
명령어를 번역[컴파일]하다

- 명령어를 해석해주는 것 

- 어떤 언어의 코드를 다른 언어로 바꿔주는 과정. 대표적으로 C++ 코드를 기계어로 바꿔주는 것이다.

 

기계어 

- 따로 해석해주지 않아도 컴퓨터가 바로 알아듣는 용어

- 컴퓨터(CPU)가 별다른 해석(컴파일) 없이 읽을 수 있는 프로그래밍 언어.

- 컴퓨터만을 위해 사용되는 언어.

- CPU 에 입력했을 때. CPU 가 바로 해석할 수 있는 유일한 언어.

- 모든 프로그래밍 언어의 종착지. 

- 모든 프로그래밍 언어는 이 기계어를 인간이 이해하고 사용하기 쉽도록 번영하고 축약하고 풀이한 것으로, 어떤 프로그래밍 언어든지 입력된 뒤 최종적으로는 기계어로 번역되어 CPU 에 전달되어서 컴퓨터가 인간이 의도한 작업을 수행케 한다.

- 비트 단위로 표기하기 때문에 0과1로만 표현된다.

 

php

- 대표적인 서버 사이드 스크립트 언어로 전 세계 수많은 웹 시스템의 기반이 되는 언어다.

- 비슷한 언어로는 ASP, JSP 등이 있다.

- 웹 페이지 제작시 기본적으로 웹관련 함수들이 많아 생산성이 높다는 점에서 사용자, 사용처가 많다.

- 워드프레스, 미디어위키 등의 많은 애플리케이션이 PHP 로 작성되어있다.

- 한국에서는 대다수 웹사이트들이 PHP 로 되어있는 경우가 많다.

- 서버에 배포하는 것이 간편하다. PHP 인터프리터에서 실행할 때마다 파일을 확인 후 바뀐 부분이 없으면 캐시를 실행하고 바뀐 부분은 다시 해석한 뒤 캐시하는 방식으로 작동해서 업로드만 하면 되므로.

- 위의 특징으로 인해 프로젝트가 커지면 빌드시간이 늘어나는 다른 언어들과 달리 PHP 는 개발이나 배포할 때 빌드가 필요없다.

- 초기 버전과 그 뒤의 버전이 바뀐 부분이 많아 일관성이 떨어지는 부분이 많다.

- 스크립트언어라는 특성상 인터프리터 방식을 사용하는 만큼 성능한계가 있다.

- 업그레이드 되면서 단점이 나아지고 있다.

- PHP 로 작성된 프로그램에는 그누보드, 워드프레스, 미디어위키 등이 있다.

 

서버

- 서버(server)는 클라이언트에게 네트워크를 통해 서비스하는 컴퓨터를 의미한다. 

- 제공자.

구글 데이터센터 (사진=구글)

스크립트 언어

- 기존에 있는 소프트웨어를 조종할 수 있는 언어

- 프로그래밍 언어의 한 종류로, 기존에 이미 존재하는 소프트웨어(어플리케이션)를 제어하기 위한 용도로 쓰이는 언어

- 대표적으로 자바스크립트, 오토핫키, 파이썬, PHP 등이 있다.

 

인터프리터

- 코드를 한 줄씩 읽어 내려가며 실행하는 프로그램. 컴파일러와는 대조적

- 이 방식을 쓰는 프로그래밍언어의 대표는 MATAB, Python

- 고급 프로그래밍 언어 중 대부분이 인터프리터 언어

- 자체적인 실행기능이 없어, 목적 프로그램(.exe)을 만드는 곳만 컴파일러 언어를 사용하고 대부분 코드를 인터프리터 언어로 짜는 식으로 결합하는 경우가 많다.

- 컴파일러 언어는 C언어 계열 언어 정도지만 인터프리터 언어는 인터넷 웹브라우저에서 동작하는 자바스크립트, 데이터베이스 언어인 SQL, 파이썬, 스크래치 등 다양하다. 

- 실행시마다 소스 코드를 한 줄씩 기계어로 번역하는 방식이기 때문에 실행 속도는 컴파일 언어보다 느리나, 프로그램 수정이 간단하다는 강력한 장점이 있다.

- 수정이 빈번히 발생하는 용도의 프로그래밍 언어에서 많이 사용되는데, 인터프리터를 적극적으로 채용한 것이 스크립트 언어다.

 

워드프레스

- 오픈소스를 기반으로 한 설치형 블로그 또는 CMS

- 전세계 웹사이트의 41% 정도가 워드프레스로 제작

- 업데이트가 되면서 각종 쓸만한 플러그인이 나왔고, 단순 블로그 뿐 아니라 웬만한 사이트를 만드는 데에 활용할 수 있을 정도가 되었다.

- 전세계 개발자들이 제작한 다양한 플러그인과 테마가 존재

- 전세계에 사용자가 있어, 외국어만 가능하다면 당신도 해외에서 프리랜서 가능

- 웹사이트를 완전히 커스터마이징 할 수 있는 자유도

- 사용법을 배우는데 시간이 걸린다.

 

CMS

- Content Managment System

- 게시판, 레이아웃, 모듈과 같은 기능을 모아둔 웹 프레임워크. 

- CMS 를 사용하면 클릭 한번으로 사이트를 만들 수 있다.

 

프레임워크

- 어떠한 목적을 달성하기 위해 복잡하게 얽힌 문제를 해결하기 위한 구조며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.

- 웹 프레임워크는 웹 서비스 개발을 위한 프레임워크를 말한다.

 

 

 

 

 

 

728x90