서버(server):
외부에서 인터넷 등을 이용해 원격으로 접속할 수 있도록 구성된 컴퓨터 또는 프로그램.
클라이언트(client):
개발쪽에서는 주로 서버에 접속하는 주체, "사용자"의 의미로 쓰인다.
URL(Uniform Resource Locator):
원래는 해당 파일의 위치를 가리키는 말이다. 예를 들면 https://eunsatio.io/images/background.png는 images 폴더 안의 background.png 파일을 기리키는 URL이다.
요즘은 대부분 웹 서버에서 핸들링 기능을 지원하기 때문에 웹 페이지 주소는 URL보다는 URI가 더 많고, 더 정확한 표현이다. 실제로 외국 포럼에 가보면 URL보다는 URI를 더 많이 쓴다.
프로토콜(protocol):
장치 간 통신을 위한 통신 규약이다.
HTTP(HyperText Transfer Protocol):
인터넷에서 정보를 주고 받을 수 있는 프로토콜. 주로 80번 포트를 사용한다.
HTTPS(HTTP over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure):
HTTP 프로토콜의 보안 강화 버전으로 TLS 암호화 기술을 이용해 통신한다. HTTP 프로토콜은 해커가 요청을 가로챌 경우 비밀번호 등 민감한 정보가 평문 그대로 노출되기 때문에 위험한데, HTTPS는 해커가 요청을 가로채더라도 암호화되어 있기 때문에 해킹의 위험이 굉장히 줄어든다. 요즘은 개인정보를 사용하는 사이트들이 대부분 HTTPS를 적용하는 추세이므로, HTTPS를 적용하지 않은 사이트라면 개인정보는 적지 않는 것이 좋다(브라우저에서도 주의하라는 표시를 해준다). 주로 443번 포트를 사용한다.
웹 서버(Web Server):
주로 HTTP 프로토콜로 오는 요청을 처리해, 웹 페이지를 보내주거나 데이터를 관리하는 서버를 말한다.
프레임워크(Framework):
개발 환경 개선을 위해 추가적으로 사용하는 도구.
라이브러리(library):
개발 환경을 개선을 위해 사용하는 플러그인 등을 말한다.
플러그인(plug-in):
기능의 구축을 위해 미리 만들어 놓은 모듈이나 라이브러리를 말한다.
UX(User eXperience):
사용자 경험. 사용자가 제품을 사용하며 얻게 되는 경험을 의미한다.
UI(User Interface):
사용자가 제품을 사용하기 위한 기능.
GNB(Global Navigation Bar):
페이지에서 각 페이지로의 이동 기능을 제공하는 인터페이스.
LNB(Local Navigation Bar):
서브페이지에서 다른 페이지로의 이동 기능을 제공하는 인터페이스.
웹 접근성:
누구나 웹에 접근할 수 있는가의 여부. 웹 접근성 심사는 대체로 장애를 가진 이들의 인터넷 사용 환경을 고려해 웹을 구성했는지의 여부를 판단한다.
반응형 웹(Responsive Web):
브라우저의 사이즈에 따라 유동적으로 변하는 레이아웃을 제공하는 웹 사이트.
정적 웹(Static Web):
브라우저의 사이즈가 아닌 사용자의 장치에 따라 고정적인 레이아웃을 제공하는 사이트. 대표적으로 네이버나 다음 같은 포탈이 있다(브라우저의 사이즈를 줄여도 레이아웃이 바뀌지 않음).
웹 호스팅:
미리 세팅되어 있는 웹 서버 환경의 일부를 제공하는 서비스이다. root 계정으로 접속이 불가능하기 때문에 서버의 설정을 바꾼다거나 하기 어렵다. 업체에 따라 서버의 종류나 버전이 상이하기 때문에 서버의 자유로운 설정을 원한다면 서버 호스팅을 받는 게 낫다.
서버 호스팅:
서버 임대. 웹 서버를 기본적으로 설치해 주는 경우가 대부분이나 직접 설치해서 사용해야 하는 경우도 있다. 서버 컴퓨터의 일부 자원을 분할해서 제공하는 가상 서버 호스팅도 있다.
포트(port):
사전적 의미로는 항구를 뜻하나, 프로그래밍 쪽에서는 네트워크에서 쌍방이 통신하기 위한 통로를 의미한다.
AJAX(Asynchronous Javascript and XML):
웹에서 Javascript를 이용해 비동기 방식의 데이터 처리를 이용하는 기법이다.
동기 방식(synchronous):
기능이 순차적으로 처리되는 것을 의미한다.
비동기 방식(asynchronous):
기능이 순서에 상관 없이 처리되는 것을 의미한다.
자바스크립트(Javascript):
초기 이름은 LiveScript였으나, 당시 핫하던 Java의 유명세를 이용하고자 마케팅 협약을 맺어 Javascript로 개명하였다. DOM 구조나 브라우저를 조작할 수 있다. 브라우저의 JVM에 의존하는 프로토타입 기반의 인터프리터 언어이다.
컴파일러(compiler):
번역기. 프로그래밍 언어를 다른 형태로 변형하는 프로그램 또는 시스템이다.
DOM(Document Object Model):
HTML이나 XML 문서를 처리하는 API로, 문서의 구조적 형태(tree 구조)를 제공한다.
타입스크립트(TypeScript):
자바스크립트의 슈퍼셋인 오픈 소스 언어이다. 마이크로소프트에서 개발, 유지하고 있으며, 직접 실행은 불가능하고 컴파일러를 통해 자바스크립트로 컴파일해야 한다. 기존에 자바스크립트에 없던 정적 타입, 인터페이스 등을 제공한다.
CSS(Cascading Style Sheets):
주로 웹에서 HTML로 이루어진 페이지를 꾸미기 위해 사용하는 언어이다. 요소의 넓이, 배경 색상 등을 지정할 수 있으며 CSS level 3에서는 애니메이션 관련 기능이 대폭 강화되었다.
SASS(Syntactically Awesome Style Sheets):
CSS의 슈퍼셋으로 직접 실행은 불가능하며 컴파일러를 통해 CSS로 컴파일해야 한다. 기존 CSS에서는 불가능했던 제어문, 반복문, 여러 단위 계산, 트리형 선택자 등을 지원한다.
SCSS(Sassy CSS):
SASS의 후발 주자이나 요즘에는 대부분 SCSS를 쓰는 추세이다. SASS가 기존 CSS와는 다소 다른 문법을 차용했다면 SCSS는 기존 CSS의 문법에 여러가지 자료형과 기능을 추가했기 때문에 쉽게 익숙해질 수 있다. 마찬가지로 컴파일러를 통해 CSS로 컴파일해야 사용이 가능하다.
HTML(HyperText Markup Language):
웹 페이지에서 구조적 문서를 만들기 위해 사용하는 언어이다. 원래는 단순한 웹 문서를 위한 언어였으나, 최근에는 CSS(스타일), Javascript(동적 기능)과 같이 사용해 웹 페이지를 만드는 데 사용한다.
선택자(selector):
DOM 요소에 접근하기 위해 사용하는 문법으로, CSS와 자바스크립트 모두 비슷한 선택자를 사용한다.
이벤트(event):
사용자의 동작 등 브라우저의 작업을 요구하는 것을 말한다. 대표적으로 클릭 이벤트 등이 있으며, 자바스크립트나 CSS로 이 이벤트를 후킹해 특정 기능을 수행할 수 있다.
JSON(JavaScript Object Notaion):
속성-값 쌍으로 이루어진 데이터로 기술 방식. 주로 XML과 비교하여 설명한다. JavaScript에서 사용하는 데이터 형식을 그대로 사용하므로, 웹에서 데이터를 송수신하는데 많이 사용한다.
XML(eXtensible Markup Language):
W3C에서 개발한 다목적 마크업 언어로, 주로 데이터를 기술하는 데 사용한다. 최근에는 후발 주자인 JSON에 많이 자리를 내주었다. HTML과 유사한 문법으로 작성한다.
W3C(World Wide Web Comsortium):
월드 와이드 웹(World Wide Web)을 위한 국제 표준을 개발하고 장려하는 국제 기구이다.
Node.js:
웹 상 언어였던 자바스크립트를 서버에서도 사용할 수 있게끔 만든 런타임 라이브러리이다.
npm(Node Package Manager):
Node.js의 기본 패키지 관리 모듈로, 자바스크립트 언어 환경을 위한 패키지와 의존성 모듈을 온라인으로 설치, 배포할 수 있다. 최근 npm 없이 개발하는 자바스크립트 프로젝트가 없을 정도이고, 자바스크립트도 상승세이므로 앞으로 더 성장할 것으로 전망된다.
크롤링(crawling):
특정 웹 페이지의 콘텐츠를 긁어오는 것을 의미한다.
의존성(dependency):
A 모듈이 B 모듈의 기능에 의지하고 있을 경우 B 모듈을 A 모듈의 "의존성 모듈"이라고 말한다.
라우팅(routing):
네트워크에서 데이터를 보낼 경로를 선택하는 과정으로, 웹에서는 페이지를 이동하는 과정을 라우팅이라고 한다.
리액트(React):
페이스북을 주축으로 개발, 유지되는 오픈 소스 자바스크립트 프론트엔드 라이브러리로, 웹 앱과 모바일 앱 개발 시 사용할 수 있다. React.js는 웹 어플리케이션, React는 모바일 어플리케이션 라이브러리로 분류하기도 한다. 기본적으로 탑재되어 있는 모듈이 적어 기본 용량은 적은 편이나, 말 그대로 자주 쓰는 모듈도 없는 편이므로 초기 개발 환경 구성에 시간이 많이 투자되는 편이다.
Agular.js:
구글의 주도 하에 개발, 유지되는 오픈 소스 자바스크립트 프레임워크이다. 양방향 데이터 바인딩 등을 주 기능으로 내세웠으나 구글이 진행하는 프로젝트들이 대부분 그렇듯 초기에는 부실하고 코드가 직관적이지 않은 부분이 많았다. 이 부분은 Angular 2버전에서 대폭 개선되었고, 아예 프레임워크의 성격 자체가 바뀌었기 때문에 Angular.js가 아닌 Angular로 이름을 바꿨다. 때문에 개발자들은 Angular.js를 Angular 1, Angular를 Angular 2+라고 부르기도 한다.
앵귤러(Angular):
구글의 주도 하에 개발, 유지되는 타입스크립트 기반의 프론트엔드 프레임워크이다. 오픈 소스 프로젝트이며, Angular.js 때와 구조 자체가 다르기 때문에 버전 업그레이드가 어렵다는 평을 받기도 했다. 자바스크립트 외에 타입스크립트를 추가로 배워야 하고, 앵귤러에서 독자적으로 채택한 구조에 익숙해져야 하기 때문에 공부하는 데 시간이 많이 걸린다. 정형화된 개발 방식을 제공하므로 대형 웹 어플리케이션 개발에 접합하다는 평을 받는다.
Vue.js:
몇몇 개인 개발자들이 공동으로 개발한 오픈 소스 자바스크립트 프레임워크이다. 개발자의 말에 의하면 Angular.js와 리액트의 장점만을 가져오고자 했으며, 간단한 사용법 때문인지 최근 가장 핫한 자바스크립트 프레임워크로 각광 받는다(물론 가장 사용률이 높은 건 아직 리액트). 스크립트로 임베드해서 사용하는 방식과 별도의 CLI(Command Line Interface)를 사용하는 방식을 모두 제공하며, 유연성을 가장 큰 장점으로 내세우고 있다.
도메인(domain):
***.***.*.***과 같은 형태의 IP 주소가 아닌 eunsatio.io 처럼 문자 형태로 제공되는 주소를 말한다.
객체 지향 프로그래밍(Object-Oriented Programming):
프로그래밍 방식 중에 하나로, 프로그램을 하나의 명령어 묶음으로 보기 보다 여러 개의 독립된 객체로 보는 데서 시작한다. 비슷한 말로 모듈화 프로그래밍, 구조적 프로그래밍 등이 있으며, 주로 절차 지향 프로그래밍과 비교하여 설명한다. 개발에 복잡해지나 유지 보수와 확장이 쉽다는 장점이 있다.
프론트엔드(Front-end):
주로 프로그램의 시각적으로 보이는 부분 또는 클라이언트의 자원을 활용하는 분야를 말한다. 웹에서는 프론트엔드에서 데이터를 처리하는 등 백엔드의 역할을 프론트엔드가 담당하는 경우가 많아지면서 퍼블리셔와 프론트엔드로 세분화됐다.
백엔드(Back-end):
주로 프로그램의 서버, 데이터 처리, 보안 등을 담당하는 분야를 말한다. 최근 클라이언트 쪽 컴퓨터 사양이 좋아지면서, 웹에서는 데이터 처리를 백엔드에서 하기보다는 프론트엔드에서 하는 쪽으로 옮겨가는 추세이다.
퍼블리셔(Publisher):
웹에서 HTML과 CSS 등으로 눈에 보이는 구조와 스타일만을 담당하는 개발자를 말한다. 프론트엔드가 담당하는 일이 많아짐에 따라 세분화되었으며, 상황에 따라서는 간단한 자바스크립트 코딩을 하기도 한다.
BBS(Bulletin Board System, 전자 게시판):
주로 특정 웹 게시판의 소프트웨어를 가동하는 시스템을 말한다. 원래는 소프트웨어 중심의 BBS가 활발하였으나 인터넷이 보급화되면서 인터넷에 기반한 게시판 시스템을 이르는 말이 되었다.
PHP(Professional Hypertext Preprocessor):
주로 동적 웹 페이지를 만들 때 사용하는 서버사이드 프로그래밍 언어이다. 워드프레스, 그누보드, XpressEngine 등의 BBS가 PHP 기반으로 만들어졌다. 대체로 HTML 구조에 PHP 코드를 끼워 넣는 형태로 사용하며, 타입이 느슨하고 코딩이 쉽기 때문에 빠른 결과를 내야하는 프로젝트, 소규모 프로젝트에서 주로 사용한다.
깃(Git):
분산형 버전 관리 시스템이다. 하나의 프로젝트를 여러가지 브랜치(branch)로 나누어 관리할 수 있으며, 이를 통합하고 버전을 릴리즈, 롤백 할 수 있는 시스템이다. 주로 깃허브를 저장소로 이용해 사용한다.
깃허브(GitHub):
무료 깃 저장소. 오픈 소스 프로젝트일 경우에는 저장소를 전부 무료로 사용할 수 있으며, 비공개 저장소의 경우에는 참여자 3명 이하만 무료로 생성 가능하다. 많은 오픈 소스 프로젝트들이 GitHub를 저장소로 삼고 있으며, 처음에는 오픈 소스에 부정적이던 마이크로소프트는 GitHub를 인수하기까지 했다. 온라인 기반이기 때문에 어디서나 프로젝트를 푸쉬, 복사하는 것이 가능하다. 아예 프로그래머 구직 시에 GitHub 계정 url을 요구하는 회사들도 있다.
웹팩(webpack):
오픈 소스 자바스크립트 모듈화 도구이다. 원래 바닐라 자바스크립트에는 모듈이라는 개념이 따로 없는데, 이를 모듈화하고 더 나아가 HTML, CSS 파일까지 모듈화 할 수 있게끔 도와주는 도구로, 다수의 프레임워크가 웹팩에 기능을 베끼거나 직접 사용하고 있다.
바벨(babel):
Node.js 기반의 자바스크립트 오픈 소스 컴파일러이다. 주로 자바스크립트 최신 문법으로 작성한 코드를 이전 버전의 문법으로 컴파일해, 최신 문법을 해석하지 못하는 시스템과의 호환을 위해 사용한다.
캐시(cache):
필요한 데이터를 복사해두는 저장소를 말한다. 주로 웹에서 이미지나 CSS, JS 파일, 경로 등을 저장해 놓고, 나중에 다시 페이지를 로드할 때 서버에 요청을 하는 것이 아니라 저장해 놓은 이미지를 활용하는 것을 캐싱(caching)이라고 한다. 때문에 브라우저에 캐시가 남아 있다면 서버에서 파일을 업데이트해도 실제로 브라우저에서는 업데이트되지 않는 문제가 발생하곤 한다.
세션(session):
웹 서버에서 클라이언트의 데이터를 임시로 저장해 놓은 파일, 저장소 등을 의미한다. 주로 클라이언트의 로그인 정보나, 장바구니 등의 기능에 쓰이며 쿠키가 클라이언트 쪽 저장소를 이용하는 것에 비해 세션은 서버의 저장소를 이용한다.
쿠키(cookie):
브라우저에서 제공하는 작은 크기의 저장소이다. 크기가 작기 때문에 주로 간단한 정보를 저장할 때 사용한다. 세션이 서버 쪽 저장소를 이용하는 것에 비해 쿠키는 클라이언트의 저장소를 이용한다.
API(Application Programming Interface):
프로그램이나 시스템을 구축하는 데 사용하는 도구이다. 예를 들어 구글 API라고 하면 구글에서 제공하는 기능(구글 계정으로 로그인 등)을 사용할 수 있게끔 만들어 놓은 인터페이스를 말한다
데이터베이스(DataBase, DB):
데이터를 저장하는 저장소이다.
SQL(Structured Query Language, 구조화 질의어):
주로 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 프로그래밍 언어이다. 많은 데이터베이스가 SQL을 표준으로 사용한다.
부트스트랩(bootstrap):
일반적으로는 프로그램이나 시스템을 실행할 때 적재되는 프로그램을 의미한다. 부팅(booting)은 부트스트래핑(bootstrapping)의 준말이다. 같은 이름의 프레임워크도 존재하는데, 트위터에서 만들었으며 주로 프론트엔드에서 일관화된 UI를 구성하는 데 사용한다.
제이쿼리(jQuery):
웹 페이지의 DOM 구조를 쉽게 조작할 수 있도록 도와주는 자바스크립트 라이브러리이다. 바닐라 자바스크립트로는 다소 복잡한 작업도 쉽게 처리해준다는 장점이 있으나, 성능 문제와 여타 다른 플랫폼에 밀려 점차 사용을 자제하는 추세다. 하지만 아직도 현재 구축되어 있는 대부분의 사이트에서 사용하고 있으며, 점유율도 하락세이긴 하나 굉장히 높은 편이다.
리팩토링(refatoring):
코드를 고치는 기법을 의미한다. 기능은 되도록 변경하지 않으면서 코드를 내부적을 손 보는 기법으로, 개발자의 취향이나 팀의 원칙에 따라 방식의 차이는 있을 수 있다. 주로 DRY(Do not Repeat Yourself) 또는 DIE(Duplication Is Evil) 원칙에 근거해 중복 코드를 줄이거나 불필요한 과정, 변수 등을 제거하는 작업을 말한다.
인자(argument):
특정 함수를 호출 시에 함수에 전달하는 값을 말한다.
매개 형식 변수(parameter):
함수를 호출한 쪽에서 전달한 인자를 받는 변수를 말한다.
트래픽(traffic):
네트워크에서는 서버 데이터 전송량을 말한다. 전적으로 서버 입장에서의 데이터 송수신량을 말하며, 트래픽이 과다해지면 서버가 다운되기도 한다.
PMA(PhpMyAdmin):
MySQL 데이터 베이스를 웹 인터페이스로 관리하기 위해 PHP로 작성된 오픈 소스 도구이다. MySQL 데이터 베이스 테이블, 필드, 열의 작성, 수정 삭제 등 다양한 작업을 수행할 수 있다.
MySQL:
오라클이 관리, 지원하는 오픈 소스 관계형 데이터베이스 관리 시스템이다. 현재 가장 많이 쓰이는 데이터베이스이다.
MongoDB:
NoSQL 오픈 소스 데이터베이스 중 하나로, JSON 형태의 동적 스키마 도큐먼트 데이터베이스 시스템이다. 스키마가 table에 있는 관계형 데이터베이스 시스템과 달리 각 도큐먼트마다 스키마가 있다는 점이 다르다.
schema(스키마):
주로 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 것을 의미한다.
modal(modal window, 모달, 모달 창):
쉽게 말해서 팝업 창으로, UI 디자인에서 부모 윈도우로 돌아가기 전 상호작용이 필요한 창을 말한다.
SEO(Search Engine Optimization):
웹 페이지를 색인하는 검색 엔진 또는 크롤러가 웹 페이지를 색인하기 쉽도록 웹 페이지를 최적화 하는 작업을 말한다.
'etc' 카테고리의 다른 글
[프로젝트 세팅] 터미널 명령어, 단축키 (0) | 2023.07.02 |
---|---|
[vscode] vscode 코드 ctrl+s 시 자동정렬 자동세미콜론 prettier (0) | 2023.07.01 |
[개발 지식] 콜백지옥 해결하는 방법 (0) | 2023.06.23 |
[개발 지식] 함수형 프로그래밍이란 ? (0) | 2023.06.22 |
[개발 지식] 쉐도우 돔 Shadow DOM , 의사코드 pseudo-code (0) | 2023.06.21 |
댓글