용어 모음
Ajax (Async JavaScript And Xml)
비동기적 자바스크립트와 XML의 약자로, 한 웹페이지를 로딩할 때 페이지의 일부 데이터만을 갱신하는 웹 개발 기법
전체를 로딩할 필요 없이 일부분만 불러오기 때문에 웹페이지를 처리하는 속도가 빨라지고 코드의 양도 줄어든다는 장점
API (Application Programming Interface)
응용 프로그램 인터페이스. 어떤 응용 프로그램에서 특정한 기능을 사용하기 위해 필요한 데이터를 주고받게끔 만든 도구나 방법을 뜻한다.
API가 규격에 맞게 데이터를 요청하고 받아볼 수 있도록 하는 중간 창구 역할을 하는 셈이다.
CDN (Content Delivery Network / Content Distribution Network)
한국어로 옮기면 콘텐츠 전송 네트워크. 멀리 떨어진 사용자에게 콘텐츠를 더 빠르게 제공할 수 있도록 하는 기술.
원 서버에서 사용자에게 직접 콘텐츠를 전송하는 대신, 사용자와 가까운 서버로 데이터를 분산시켜 제공하는 네트워크 시스템을 말한다.
CLI (Command-Line Interface)
가상 터미널 또는 텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식
작업 명령은 사용자가 툴바 키보드 등을 통해 문자열의 형태로 입력, 컴퓨터로부터의 출력 역시 문자열의 형태.
CSS (Cascading Style Sheets)
CSS는
Cascading Style Sheets
의 약자로 HTML이나 XML로 작성된 문서에서 스타일을 표현하기 위해 사용하는 스타일시트 언어
DNS (Domain Name System)
도메인을 도메인이 올라가 있는 웹 서버의 IP로 연결하는 시스템.
웹페이지에 접속하기 위해 필요한 IP를 일일이 챙길 필요 없이 도메인과 IP를 변환해주는 역할
GUI (Graphic User Interface)
그래픽 유저 인터페이스.
사용자가 화면 안의 요소를 시각적으로 확인하고, 마우스로 아이콘을 클릭해 기능을 작동시키는 환경.
도스처럼 문자로 된 명령어를 입력시켜야 하는 CLI(
Command-Line Interface
)에 반대되는 개념
HTML
HTML은
Hyper Text Markup Language
의 약자로 웹에서 가장 단순한 형태의 웹 언어
HTTP, HTTPS
HTTP는 하이퍼텍스트 전송 프로토콜(
Hypertext Transfer Protocol
)의 약자로 네트워크에서 HTML 문서를 주고받기 위한 통신규약이다.HTTPS는 HTTP가 가진 보안 취약점을 암호화 및 인증 구조를 통해 개선하기 위해 만들어졌다.
IDE (Integrated Development Environment)
프로그램을 개발하는 데 필요한 소스 코드 작성 및 편집, 컴파일, 디버깅 등 모든 작업을 한번에 할 수 있는 통합 개발 환경.
비주얼 스튜디오(Visual Studio), 이클립스(Eclipse) 등...
JSTL (JavaServer Pages Standard Tag Library)
JSTL + EL의 조합
HTML 코드 내에 java 코드인 스크립틀릿
<%= student %>
를${student}
로,<%=if %>
문을<c:if>
,<%=for%>
문을<c:forEach>
로 대체하여 사용Java EE 기반의 웹 애플리케이션 개발 플랫폼을 위한 컴포넌트 모음
XML 데이터 처리와 조건문, 반복문, 국제화와 지역화와 같은 일을 처리하기 위한 JSP 태그 라이브러리를 추가하여 JSP 사양을 확장
SDK (Software Development Kit)
소프트웨어나 시스템을 만드는 데 쓰이는 개발 도구 키트.
SDK 안에는 개발에 필요한 샘플 코드, 코드 편집기 같은 툴이나 콘솔, 안내 문서, API 등이 포함
UI (User Interface)
사용자가 서비스를 이용하는 환경.
UI는 사용자 경험(UX)에 큰 영향을 미침.
UX (User eXperience)
사용자가 서비스를 이용하며 느끼고 얻는 경험.
SEO (Search Engine Optimize)
검색 엔진 최적화
웹 페이지를 구글 등 검색 엔진이나 포털사이트의 기준에 맞춰 구성하는 작업
사람들이 많이 검색할 만한 관련 키워드를 배치하고, 웹 표준을 지키며, 스팸으로 분류되지 않게끔 하는 등 웹 페이지 링크가 더 많이 노출되도록 처리.
온라인 마케팅의 필수 요소로도 꼽히는데, SEO가 잘 적용된 웹 페이지는 검색 시 상단에 오를 수 있기 때문
관계형 데이터베이스(Relational DataBase)
데이터베이스에서 키(key)과 값(value)의 관계(Relationship)로 이루어진 표(table)로 데이터를 구성하는 방식으로, 줄여서 RDB.
오라클(Oracle), MySQL, Microsoft SQL Server 등 가장 널리 쓰이는 데이터베이스 관리 시스템이 관계형 데이터베이스 모델을 따르고 있다.
깃 (Git)
프로젝트 결과물을 버전별로 백업, 관리하는 툴인 버전 관리 시스템(VCS, Version Control System)의 한 종류.
프로젝트를 유지보수하면서 발생할 수 있는 문제를 미연에 방지하고 해결하는 역할
깃허브, 깃헙 (Github)
깃을 기반으로 소스 코드를 온라인에 저장하고, 공유할 수 있게끔 하는 소스코드 관리 서비스.
언제 어디서나 깃허브를 통해 협업 프로젝트를 쉽게 관리할 수 있으며, 뷰(Vue.js), 도커(Docker), 판다스(Pandas) 등
전세계의 다양한 오픈소스 프로젝트가 깃허브를 통해 공개중.개발 직군에서 취업하거나 이직할 때 깃허브 계정 링크를 제출하는 경우도 상당수.
데이터베이스 (Database, DB)
데이터의 집합. 서버를 통해 넘어오는 데이터를 저장하고 관리하는 일종의 창고 역할을 한다.
DBMS (Database Management System)
데이터베이스 관리 시스템
데이터베이스를 통해 데이터를 저장, 수정, 추출할 수 있도록 관리하는 프로그램.
도메인 (Domain)
숫자로만 이루어진 IP와 달리 naver.com 처럼 문자로 지정된 인터넷 주소(URL).
동기 방식 (Sync)
기능에 대한 요청을 보내고 응답을 받아야만 동작이 순차적으로 처리되는 방식
브라우저 리프레시 필요
동적 웹 페이지 (Dynamic Web Page)
서버에 저장된 데이터를 그대로 보여주는 것이 아니라 스크립트를 통해 가공을 거쳐 출력하는 웹페이지.
사용자의 인터랙션에 따라 같은 페이지라도 각기 다른 결과를 받아볼 수 있게 된다.
디버깅 (Debugging)
디버깅 또는 디버그(Debug).
프로그래밍 과정에서 발생하는 버그를 찾아 바로잡는 작업.
단순히 버그를 없애는 것뿐만 아니라 문제가 발생한 근본적인 원인을 찾아 해결하는 과정
라이브러리 (Library)
프로그램을 개발하는 데에 필요한 여러 기능을 활용할 수 있도록 묶어놓은 함수 또는 기능의 집합.
자바스크립트에서는 리액트(React)와 제이쿼리(jQuery)가 대표적임
리눅스 (Linux)
유닉스 계열에 속하는 오픈소스 운영체제. 서버 개발 및 구축, 수퍼컴퓨터, 임베디드 기기, 스마트폰 OS 개발 등 다양한 용도로 활발하게 사용되고 있다.
리눅스를 개량해서 만든 배포판도 상당히 많음.
리팩토링 (Refactoring)
이미 완성된 코드의 구조를 개선하는 일.
결과값은 바뀌지 않지만, 코드 내부를 뜯어고쳐 다른 사람이 이해하기 쉽고 간결하게 만드는 행위.
버그를 고치거나 새로운 기능을 만드는 건 아니지만, 코드의 생산성을 높이고 유지보수가 쉽게끔 만들어줌
마크업 언어 (Markup Language)
태그 등을 이용해 문서나 데이터의 구조를 표시한 언어.
프로그래밍 언어와는 다르며 HTML, CSS, XML이 대표적인 마크업 언어
매개변수 (parameter)
함수 선언에서 활용하기 위하여 사용하는 변수
인자의 값을 받아온다.
멀티쓰레드 (Multi Thread)
하나의 프로세스가 두 개 이상의 스레드를 가지는 경우.
프로세스 내에 있는 각각의 스레드가 프로세스 메모리를 공유하기 때문에 자원을 절약할 수 있고, 스레드간 정보교환이 쉽다는 장점이 있음.
오늘날 대부분의 최신 운영체제는 멀티스레드 프로그래밍을 지원하며, 시스템 개발, 서버 개발, 응용 프로그램 개발 등 다양한 작업에 쓰이는 기술
모달 (Modal Window)
웹페이지나 프로그램 화면에서 대화상자 형태로 나타나 사용자에게 동작을 요구하는 창.
웹에서는 팝업(Pop-up) 창과 비슷하지만, 브라우저를 새로 띄우는 팝업과 달리 한 브라우저 화면 내부에서 레이어를 한 겹 얹듯이 새로운 창을 보여줌.
DOM (Document Object Model)
문서 객체 모델
구조화된 문서를 표현하는 형식
RWD (Responsive Web Design)
반응형 웹
디스플레이 비율과 크기, 해상도에 따라 유동성있게 변하는 웹사이트
백엔드 개발자 (Back-end Developer)
프론트엔드 개발자의 반대 개념.
웹 서비스의 뒷단을 담당하는 개발자.
주로 유저에게 보이지 않는 DB와 API로 이루어진 서버 영역을 관리, 개발
버그 (Bug)
소프트웨어에서 발생하는 예견치 못한 오류나 오작동. 있어도 이상하고 없어도 이상한 것.
비동기 방식 (Async)
요청을 보내는 순서와 상관 없이 동작이 처리되는 방식
브라우저 리프레시 불필요
세션 (Session)
웹 브라우저를 통해 서버에 접속해 연결을 끊기 전까지(=브라우저를 종료하기 전까지) 한 브라우저를 통해 사용자가 요청하는 상태 정보를 서버에서 일정하게 유지하는 기술.
한 사이트 내에서 페이지를 이동할 때마다 로그인이 끊기지 않도록 하는 게 대표적인 예
쓰레드 (Thread)
프로그램을 실행하는 하나의 프로세스(Process) 내에서 실제로 작업을 처리하는 주체를 뜻한다.
모든 프로세스는 반드시 한 개 이상의 스레드를 가진다.
스택오버플로우 (Stack Overflow)
세계에서 가장 큰 개발자 웹 커뮤니티 중 하나.
이름은 프로그래밍 과정에서 데이터가 할당된 메모리 공간을 초과할 때 발생하는 동명의 오류에서 따온 것.
개발자 사이에선 ‘원인을 알 수 없는 버그가 발생하면 스택오버플로를 뒤져보라’는 말까지 돌 정도로 잘 알려진 사이트
SPA (Single-Page Application)
싱글 페이지 애플리케이션
서버로부터 완전한 새로운 페이지를 불러오지 않고
현재 하나의 페이지를 동적으로 다시 렌더링하여 페이지를 보여주는 웹 애플리케이션이나 웹사이트
알고리즘 (Algorithm)
문제를 해결하기 위해 필요한 계산 절차.
프로그래밍 언어를 통해 알고리즘을 프로그램으로 만들어가는 작업을 프로그래밍이라고 한다.
에러 (Error)
유저가 입력한 내용이 잘못됐을 때 발생하는 문제.
잘못 짠 코드처럼 내부 문제로 예상하지 못한 문제가 일어나는 버그와 달리, 외부에 있는 유저가 오탈자를 내거나 띄어쓰기를 실수하는 등 내부에서 정한 형식을 따르지 않을 때 주로 발생
오픈소스 (Open Source)
누구나 제한 없이 쓸 수 있는 소스 코드 혹은 소프트웨어.
오픈 소스로 배포된 코드는 열람, 수정, 복제, 재배포 등이 자유롭다.
한국에서는 공공데이터포털(data.go.kr)을 통해 공개된 오픈 API를 내려받을 수 있다.
웹 접근성 (Web Accessibility)
누구에게나 평등한 웹 환경을 구성하는 요소.
웹 표준을 지킴으로써 장애를 가진 사람, 고령자, 어린이 등이 다른 유저들과 마찬가지로 웹에서 제공하는 정보를 원활하게 이용할 수 있도록 보장하는 것
웹 퍼블리셔 (Web Publisher)
디자인 시안에 맞춰 웹 화면을 구현하는 웹 퍼블리싱(Web Publishing)을 담당하는 직무. (한국에서만 쓰이는 말)
프론트엔드 개발에서 웹 화면과 관련한 시각적인 면을 담당하는 개념을 떼놓은 것
웹표준 (Web Standards)
웹 제작 문서에 맞는 표준과 규격
유닉스 (Unix)
기계어에 가까운 언어인 어셈블리어로 개발한 컴퓨터 운영 체제.
주로 서버 개발이나 시스템 개발에 쓰이며, macOS나 리눅스(Linux), 안드로이드(Android) 등 오늘날 많은 운영 체제의 원형이 되었다.
인자 (argument)
함수를 호출할 때 매개변수로 값을 넘기는 값
전달인자를 뜻함
인터랙티브 웹 (Interactive Web)
웹 페이지 내의 콘텐츠가 클릭, 스크롤, 입력 등 사용자의 동작에 따라 상호작용하는(interact) 웹 페이지.
인터프리터 (Interpreter)
컴파일과 달리 프로그램을 실행할 때마다 고급 프로그래밍 언어로 작성된 코드를 한 줄씩 기계어로 번역해 주는 프로그램
인터프리트 (Interpret)
컴파일과 달리 프로그램을 실행할 때마다 고급 프로그래밍 언어로 작성된 코드를 한 줄씩 기계어로 번역하는 방식
인터프리티드 언어 (Interpreted Language)
한 줄 한 줄씩 코드를 실행해내려가기 때문에 실행 속도는 느리지만 디버깅은 쉽다.
Javascript, JAVA, Python, PHP 등이 인터프리티드 언어
임베디드 (Embedded, Embedded System)
특정 기능을 수행하는 전자 시스템을 내장해놓은 것.
일반적인 PC가 다양한 목적에 따라 범용적으로 쓰인다면,
임베디드 시스템은 각종 가전제품, ATM, 개표기, 키오스크 등 특수한 목적에 따라 기능을 수행하도록 제작.OS는 보통 간소한 형태(예: 임베디드 리눅스)로 탑재되거나 생략되며, 낮은 전력으로도 정교힌 기능을 실시간으로 처리할 수 있게끔 하는 게 핵심
자료 구조 (Data Structure)
데이터를 효과적으로 접근할 수 있도록 만들어진 데이터 체제.
코드상에서 자료를 저장하는 방법, 자료끼리의 관계 등을 구조적으로 표현하는 방식.
어떤 자료구조를 쓰느냐에 따라 코드 효율이 달라짐
정적 웹 페이지 (Static Web Page)
서버에 미리 저장된 데이터를 그대로 불러오듯 전달하는 웹 페이지.
서버의 데이터가 바뀌지 않는 한 모든 사용자는 늘 고정된 웹페이지를 받아보게 된다.
주로 서비스 소개페이지처럼 내용이 자주 변경되지 않는 경우 정적 웹 페이지를 이용하는 경우가 많다.
캐시 (Cache)
데이터베이스, 서버, 세션 관리 등 다양한 장치에서 널리 쓰이는 개념으로, 사용자가 데이터에 빠르게 접근할 수 있도록 데이터를 임시로 저장해둔 장소.
컴파일 (Compile)
사람이 이해할 수 있는 고급 프로그래밍 언어로 작성한 코드를 컴퓨터가 처리할 수 있는 기계어로 한꺼번에 번역하는 과정
컴파일드 언어 (Compiled Language)
수정이 까다롭지만 프로그램 실행 속도가 빠르다는 장점이 있다.
C, C++이 대표적인 컴파일드 언어
쿠키 (Cookie)
서버에 저장되는 세션과는 달리 사용자의 브라우저에 간단한 정보를 저장하는 작은 데이터 파일
키(Key)와 값(Value)의 구조로 이루어진다.
브라우저에 ID나 암호를 저장하거나, 사이트 방문 기록을 저장하는 데 주로 쓰인다.
쿼리 (Query)
관계형 데이터베이스에서 데이터를 요청하고 관리하기 위해서는 SQL(Structured Query Language, 구조화 쿼리 언어)이라는 데이터베이스 언어를 써야함.
SQL을 이용하면 데이터베이스에 쿼리(Query), 즉 질의를 통해 원하는 조건에 맞는 데이터를 추출하거나 조작할 수 있다.
관계형 데이터베이스에서 데이터를 조회, 추출, 조작하기 위해 쓰는 명령어 혹은 질의 자체를 쿼리라고 한다.
크로스브라우징 (Cross Browsing)
웹 표준에 있어서 핵심이 되는 요소 중 하나.
익스플로러, 크롬, 사파리, 파이어폭스 등 각기다른 브라우저에서 브라우저를 보아도 똑같은 화면과 똑같은 기능을 사용할 수 있도록 해주는 기술
트래픽 (Traffic)
서버를 통해 전송되는 데이터의 양. 서비스 방문자 수가 많을수록, 접속이 잦아질수록 증가한다.
트래픽이 너무 높아지면 서버가 먹통이 된다.
펌웨어 (Firmware)
하드웨어를 제어하는 소프트웨어.
프레임워크 (Framework)
프로그램을 개발하기 위한 구조를 제공하는 개발 환경.
자바스크립트에서는 뷰(Vue.js), 앵귤러(Angular)
자바에서는 스프링(Sprint)이 대표적임
프로토콜 (Protocol)
컴퓨터나 서버, 통신 장비 등 장치 사이에서 서로 통신하기 위해 미리 정해놓은 규칙.
프론트엔드 개발자 (Front-end Developer)
웹 브라우저를 통해 유저가 직접 마주하는 웹 서비스의 앞단을 담당하는 개발자
플러그인 (Plug-in)
어떤 특정한 기능을 해결하는 데 쓸 수 있도록 미리 만들어 놓은 코드 및 데이터의 모음