Algorithm
(알고리즘)

algorithm은 일련의 명령어입니다. 컴퓨터 프로그래머들이 웹사이트나 앱 등 어떤 태스크를 수행하는 프로그램을 만들 때 이 알고리즘을 디자인합니다.

 

App
(앱)

한국에서는 애플리케이션 또는 앱이라고 하죠. 앱은 애플에 의해 대중화된 용어입니다. 스마트폰에서 사용할 수 있는 컴퓨터 프로그램을 가리키는 말입니다.

 

Bite/Byte
(바이트)

데이터의 사이즈 단위를 말합니다. 아마 MB(메가바이트 = 1백만 바이트), GB(기가바이트 = 10억만 바이트)라는 바이트보다 더 큰 단위도 어디선가 보신 적이 있을 거예요. 이 용어는 주로 어떤 디바이스 전체 용량 중 차지하는 데이터 크기를 나타낼 때 씁니다.

 

Bug
(버그)

버그는 컴퓨터 소프트웨어에서 발생하는 이슈/문제를 가리킵니다. 이 버그가 에러 메시지 또는 데이터 핵의 원인이 되죠.

주로 이러한 이슈를 없애기 위해서는 “디버깅” 프로그램을 실행해야 합니다.

 

Cloud
(클라우드)

인터넷을 달리 이르는 용어입니다.

흔히든 “클라우드 기반 저장”이라고 하면 데이터가 디바이스가 아닌 온라인에 저장되었다는 말입니다. 그래서 클라우드는 주로 컴퓨터의 저장 공간을 절약해주는 역할을 합니다.

 

Computer
(컴퓨터)

엄밀히 따지는 “컴퓨터”란 프로그램을 실행할 수 있는 기기를 일컫습니다. 하지만 영어 원어민들은 주로 이 용어를 전체 퍼스널 컴퓨터(PC), 그러니까 모니터와 키보드, 마우스, 본체가 모두 포함된 것을 가리키는 말이라고 생각하죠.

 

Cookie
(쿠키)

웹 브라우저에 저장되는 사용자의 웹사이트 방문 정보 등을 말합니다. 쿠키는 여러분이 웹사이트에서 한 활동(로그인할 때 입력했던 정보나 장바구니에 넣어뒀던 아이템 등)을 기록하는 역할을 합니다.

 

CSS

CSS는 Cascading Style Sheets의 앞글자를 따서 만들어진 용어입니다. 웹사이트의 레이아웃과 디자인을 프로그램하는 기능이 있죠.

예를 들어 CSS는 주로 웹사이트의 폰트 사이즈와 컬러를 프로그램하는데 쓰입니다.

 

Download
(다운로드)

이 동사는 인터넷에 있는 정보를 여러분의 디바이스로 저장하는 것을 의미합니다.

또한 다운로드될 수 있는 정보를 가리키는 “명사”로 쓸 수도 있는데요, 예를 들어 “무료 다운로드를 원하시면 여기를 클릭하세요”와 같은 말에서 명사로 사용되고 있는 게 보이시죠?

 

HTML

HTML는 Hypertext Markup Language의 약자로, 웹사이트에 디스플레이되는 정보를 제공합니다. 예를 들어 HTML은 웹사이트의 홈페이지에 여러 텍스트들을 디스플레이하도록 프로그램하는 역할을 합니다.

 

Internet
(인터넷)

모든 웹 기반 디바이스를 연결하는 온라인 네트워크입니다.

 

IP Address
(IP 주소)

인터넷에서 각 디바이스를 식별하는 고유 코드입니다.

 

Keyboard
(키보드)

컴퓨터에 정보를 입력할 때 쓰는 자판입니다.

 

Keyword
(키워드)

이미지나 생각, 웹페이지, 데이터의 조각을 설명하는 짧은 문구.

이를 테면 여러분이 검색 엔진의 검색 창에 입력하는 용어나 문구 따위가 바로 키워드가 됩니다.

 

Laptop
(노트북)

휴대하기 편한 컴퓨터 디바이스를 말합니다.

 

Monitor
(모니터)

컴퓨터 스크린을 말합니다.

 

Password
(비밀번호)

컴퓨터나 프로그램, 또는 웹사이트 등에 본인 외에 다른 사람이 정보를 취득할 수 없도록 설정하는 일련의 고유 번호 및 글자입니다.

예를 들어 여러분이 페이스북 계정에 로그인할 때 입력해야 하는 비밀번호가 여기에 해당되죠.

 

Screenshot
(스크린샷)

스크린샷(명사)은 컴퓨터나 스마트폰 스크린에 뜨는 이미지를 캡처해서 생기는 디지털 사진입니다.

 

Software
(소프트웨어)

컴퓨터를 기능하게 하는 무형의 정보입니다. 컴퓨터 프로그램을 창조해내는 코드를 일컫기도 하죠.

 

Spam
(스팸)

스팸(네, 이 이름은 통조림 고기 브랜드에서 온 게 맞습니다)은 여러분이 받고 싶지 않은 모든 종류의 이메일을 말합니다. 기본적으로 여러분이 구독하지도 않았고, 별로 읽고 싶지도 않은데 계속해서 오는 정크 메일을 의미하죠.

 

Toolbar
(툴바)

툴바는 주로 웹 브라우저 (예: Internet Explorer 또는 Google Chrome) 상단에서 찾을 수 있습니다. 여러분이 브라우저를 통해 볼 수 있는 것들을 제어하는 기능을 하죠.

전형적으로 앞으로, 뒤로, 새로고침 등의 명령을 할 수 있습니다. 주소 입력 창도 있고요.

 

URL

인터넷에서 어떤 특정한 웹사이트를 불러오는 주소를 말합니다. 일반적으로 www.로 시작하며 .com (또는 .edu 또는 .gov) 등으로 끝납니다.

 

Website
(웹사이트)

웹페이지를 한대 엮어 놓은 컬렉션이라고 보시면 되겠습니다. URL을 주소 입력창에 치면 하나의 웹사이트를 불러올 수 있죠.

FluentU 역시 웹사이트의 한 예입니다.  (URL은 www.fluentu.com/ko이고요.)

 

Wi-Fi
(와이파이)

와이파이는 컴퓨터가 무선으로도 인터넷에 접속할 수 있도록 해줍니다. “Wi-Fi network”에 연결되면 유선 시스템 없이도 인터넷에 액세스 할 수 있습니다.

 

Zip

Zip 파일은 압축된 파일입니다. 일반 파일보다 적은 데이터에 정보를 저장하는 파일이죠.

zip 파일을 갖고 있다면, 그 압축을 풀어주는 프로그램이 있어야 비로소 정보에 액세스할 수 있다는 점 유의 바랍니다.

 

Framework(프레임워크) : 코딩을 쉽게 할 수 있도록 도와주는 도구 모음

(용도별, 언어별 다양한 프레임워크 존재함)

 

Coding(코딩) : 컴퓨터에게 명령하는 것

 

Programming language(프로그래밍 언어) : 컴퓨터에 명령하는 언어

 

DRY rule(드라이 규칙) 

DRY는 Don’t Repeat Yourself(자신을 반복하지 말 것)의 약자다. DIE라고 하기도 한다 : Duplication is Evil.(중복은 악이다.) 이 원칙은 다음과 같다. “모든 지식은 그 자체로 시스템 안에서 유일해야 하고, 모호해선 안 되며, 권위 있게 표현돼야 한다.” 일반적으로 대부분의 어플리케이션은 반복적인 일을 자동화하는 게 목적이다. (일반적으로 컴퓨터가 그렇다.) 이 원칙은 모든 코드에서 유지돼야 한다. 웹 어플리케이션에서조차 마찬가지다. 같은 코드가 어디서도 반복되면 안 된다.

 

refactor(리팩토어링)

리팩토링한다는[역자 주: refactor는 단순히 고친다는 것을 의미하는 게 아니라 리팩토링이라는 기법을 의미하는 것이에 그냥 리팩토링이라고 번역했습니다.] 것은, 코드의 기능을 바꾸지 않으면서 코드를 변경하는 것을 말한다.코드 가독성과 질을 높이기 위한 목적으로 “clean up”을 한다고 생각해도 된다. 리팩토링은 버그를 잡는다거나 기능을 추가한다거나 하는 게 아니다. 아마 바로 전날 작성한 코드를 리팩토링할 것이다. 아직 머리 속에 코드가 생생히 남아 있을 때 말이다. 두 달 후에도 여전히 코드가 읽기 쉽고 재사용하기 쉽게 만드는 것이다. 모토는 이거다. “빨리 고치고(refactor), 자주 고쳐라” 리팩토링 작업을 하는 동안 아마도 “최고의 방법”을 적용하게 될 것이다.

 

CND

CDN은 Content Delivery Network 의 약자로 사용자에게 간편하게 콘텐츠를 제공하는 방식을 말합니다.

즉, CDN은 세계 곳곳의 서로 다은 여러 데이터 센터에 파일의 복사본들을 배치하여, 동일한 URL 을 유지하면서도 더 빨리 사용자에게 콘텐츠를 제공,전송해 주는 것입니다.

  • 콘텐츠 전송 네트워크(Content delivery network 또는 content distribution network (CDN))는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다. 
  • 인터넷 서비스 제공자에 직접 연결되어 데이터를 전송하므로, 콘텐츠 병목을 피할 수 있는 장점이 있다.

인자(Argument)

어떤 함수를 호출시에 전달돼는 값

 

매개 형식 변수(Parameter)

그 전달된 인자를 받아들이는 변수

 

RSS

RSS 문서는 뉴스 등 웹 콘텐츠를 쉽게 배급, 배포할 수 있게 만든 규격화된 형태의 XML 문서입니다.

요청(Request)과 응답(Response)

요청과 응답을 용어로 생각하면 혼란스러운 개념이 될 수 있지만, 쉽게 상대방에게 원하는 의사를 전달하는 것을 요청(request)이라 생각하고, 이에 대한 결과로 데이터를 보내주는 행위를 응답(Response)이라고 생각하는 것이 더 편합니다.

예를 들어 음식점에서 주문을 하는 것은 요청이고, 이에 대하여 음식을 서비스하는 것이 응답입니다.

브라우저에서 가장 많이 하는 요청은 주소 표시줄을 통해서 특정 서버에 정보를 요구하는 것이고, 여기에 맞는 데이터를 보내주는 작업이 응답에 속합니다.

서버측(Server-side) 프로그래밍은 이런 응답을 보낼 때 좀 더 사용자에게 맞는 내용을 만들 수 있는 기술들을 의미하고, 이런 결과를 동적(Dynamic) 자원이라고 합니다.

반대로 언제 어디서나 누구나 같은 결과를 보는 데이터를 정적(Static) 자원이라고 합니다.

HTML 이나 이미지파일, 미디어 파일 등이 보통 여기에 속합니다.

 

자바스크립트와 MVC(Model-View-Controller)

자바스크립트는 웹 페이지에서 간단한 동작을 할 수 있도록 작성된 스크립트 언어이지만, 브라우저의 역할이 커지면서 자연스럽게 자바스크립트의 중요성도 커지게 되었습니다.

규모가 커지면서 프로그래밍은 점차 디자인 패턴이나 아키텍처 패턴이라고 부르는 일종의 가이드나 관습이 생기는데, 이런 관습 중의 하나가 MVC 패턴입니다.

MVC는 쉽게 생각하면 프로그램이 처리하는 영역을 화면(View)과 데이터(Model), 기능(Controller)으로 나누어서 설계하고, 이들 간의 상호작용을 통해서 프로그램이 실행되는 전체 구조를 설계하는 방식입니다.

따라서 기능이 다양한 언어들에서 공통으로 사용되는 패턴이기도 합니다.

자바스크립트는 이에 비해 비교적 브라우저에서 화면에 보조적인 처리만 했기 때문에, 최근까지 그다지 주목받지 못했지만, 다른 스크립트 언어들의 발전과 더불어 점점 더 복잡해지고 엄격하게 설계되고 있습니다.

MVC 패턴을 단순히 접근하자면 다음과 같을 수 있습니다.

  • 데이터에 해당하는 모델(Model)의 역할은 브라우저가 처리해야 하는 HTML 태그로 처리
  • 순수한 데이터를 어떤 형태로 화면에 보여주는지를 결정하는 레이아웃(View)의 역할은 CSS로 처리
  • 사용자의 판단을 동적으로 처리하는 컨트롤러(Controller)의 역할을 자바스크립트로 처리

렌더링(rendering)

HTML 코드는 웹 브라우저에서 읽어온 후 화면에 시각적으로 표시하게 되는데, 이 과정을 "렌더링"이라고 합니다.

코드의 응집성(Code cohesiveness)

코드의 본래 목적에 맞도록 성격이 명확한 것을 의미합니다.

예를 들어 로직을 처리하는 객체는 로직만을 담당하고 화면을 처리하는 객체는 화면만을 담당하는 코드를 응집성이 높은 코드라고 표현할 수 있습니다.

 

컴파일(Compile)

사람이 컴퓨터에게 일을 시키기 위해서는 컴퓨터와 사람간의 공통적인 대화 수단이 필요합니다.

그러나 불행하게도 컴퓨터는 사람의 말을 이해하지 못하고, 사람 또한 컴퓨터가 인식할 수 있는 기계어를 알지 못합니다.

그래서 사람과 컴퓨터가 이해할 수 있도록 중간에서 통역을 이용하여 서로 간의 의사소통이 가능하도록 하였는데 이러한 통역의 역할을 컴파일이라고 합니다.

 

ASP(Active Server Page)

ASP 는 웹 서버에서 많이 사용하고 마이크로소프트 IIS(Internet Information Server)에서 만든 서버 기반 기술로서, WWW 이나 인트라넷에 사용할 수 있는 대화형 HTML 페이지를 제작할 수 있도록 고안된 언어입니다.

PHP(Personal HomePage Tools, Professional HyperText Preprocessor)

PHP 는 서버에서 해석되는 스크립트 언어로서, 유사한 언어에는 MS 사의 ASP 가 있습니다.

이러한 서버용 언어는 서버에서 해석한 후 그 결과를 HTML 형태로 만들어 클라이언트(웹 브라우저)로 보내므로 내부 소스 코드를 볼 수 없습니다.

PHP 는 ASP 처럼 특정 영역에서만 동작하지 않고 C 언어의 문법과 유사하기 때문에 기존의 개발자들이 좀 더 쉽게 접근할 수 있으며, 적은 명령어로 프로그래밍이 가능하다는 장점이 있습니다.

그러나 컴포넌트의 문제 등 지원하는 기능이 미약하다는 단점도 있습니다.

 

Servlet : 서블릿(Servlet : Server + Applet)

서블릿은 썬(Sun)에서 발표한 기술로, 자바 언어를 기반으로 동적인 콘텐츠를 생성하는 기술을 제공합니다.

서블릿은 자바와 거의 같은 형식으로 되어 있기 때문에 쉽게 작성할 수 없습니다.

또, 코드에 HTML 코드가 혼재되어 있어서 작업의 분리적인 측면에서 볼 때 효율성이 떨어진다는 단점이 있습니다.

 

JSP(Java Server Pages)

기본적으로 JSP는 자바 서블릿(Java Servlet)과 같습니다.

JSP 는 웹 전용 스크립트 언어로 PHP 나 ASP 와 문법은 비슷하지만 자바의 막강한 기능을 그대로 가지고 있기 때문에 더욱 강력한 서버측 언어입니다.

JSP 는 서블릿처럼 자바를 기반으로 만들어졌으며, 서블릿과 달리 ASP 나 PHP 처럼 HTML 태그 사이에 자바 코드가 들어간 형태입니다.

JSP 는 스크립트 언어 형식으로 프로그램을 작성할 수 있으며, 사용자가 직접 태그를 정의해서 사용할 수 있는 사용자 정의 태그 기능으로 인해 보다 쉽게 프로그램을 개발하고 효율적으로 웹 사이트를 구성할 수 있습니다.

 

환경변수(Environment variable)

윈도우 운영체제에 등록된 정보(값을 등록, PATH라는 변수에 등록)

 

 

웹 서버(Web Server)와 웹 호스팅(Web Hosting)의 차이점

웹 서버와 웹 호스팅은 둘 다 방문객인 클라이언트(Client)에게 웹 서비스를 제공하는 것입니다.

하지만 웹 서버의 경우는 사용자가 직접 컴퓨터에 서버(Server)를 구축하여 웹 서비스를 제공하므로 웹 서버에 대한 전문 지식이 있어야 하며, 전용 회선을 갖추고 있어야 사용할 수 있습니다.

웹 호스팅의 경우는 이미 서버가 구축된 외부 컴퓨터에 다수의 이용자가 소량의 저장 공간을 나눠 임대하여 사용하는 것을 가리킵니다.

즉, 외부 서버 컴퓨터에 일정한 저장 공간을 임대하여 서비스를 제공하는 것을 '웹 호스팅'이라고 합니다.

그러므로 서버에 대한 전문 지식이 없어도 사용할 수 있으나, 저장 공간 용량의 제한이 있다는 단점이 있습니다.

 

자바스크립트의 스코프(JavaScript scope)

자바스크립트에서 스코프(scope)는 코드가 실행되는 컨텍스트(변수영역, 실행영역, 유효범위 등의 용어로 알려져 있기도 하다. 실제로는 스코프라는 용어가 가장 많이 사용되고 있다)이며, 전역 스코프, 지역 스코프(함수 스코프), eval 스코프로 구분됩니다.

 

스코프 체인(Scope Chain)

함수를 포함한 함수는 서로 연결된 실행 스코프를 만들며 이렇게 연결된 실행 스코프를 스코프 체인이라 부른다.

그래서 자바스크립트는 변수를 찾을 때 스코프의 계층 구조에 기반한 검색 체인을 거슬러 올라가며 추적하게 된다.

 

자바스크립트의 객체(Object)

객체는 사실 매우 간단하다. 

매우 많은 기능을 가지고 있으니 뭔가 특별할 것 같지만 객체는 단지 이름이 지정된 프로퍼티의 모음이며, 키-값 쌍(다른 언어의 연관배열과 거의 동일한) 이루어진 목록입니다.

객체의 프로퍼티가 함수(함수 객체)일 경우에 이를 메소드(method)라고 부릅니다.

 

믹스인(Mixins)

팀 협력이 좀 더 원활하게 이루어질 수 있도록 도와주는 도구를 제작하는 것을 말합니다.

다시 말해, 믹스인은 코드 반복을 제거하고 컴포넌트가 필요한 부분에만 집중할 수 있게 도와주는 역할을 합니다.

믹스인을 이용하면 강력한 추상화를 구현할 수 있으며 복잡한 문제를 우아하게 해결할 수 있습니다.

믹스인을 반드시 여러 개의 컴포넌트에서 사용할 목적으로 작성할 필요는 없습니다.

믹스인을 사용하면 어떤 동작이나 역할을 쉽게 설명하고, 컴포넌트에 적용할 수 있습니다.

또한, 컴포넌트의 코드를 줄일 수 있습니다. 이 덕분에 코드의 가독성도 높아질 수 있습니다.


코딩 컨벤션

마크업 개발은 프런트-엔드 페이지의 기본 골격을 형성하기 때문에 디자인, 브라우저, 스크립트, 성능, 접근성 등과 긴밀한 관계가 있다.

즉, 마크업 개발을 잘 해야 모든 브라우저에서 콘텐츠를 손실 없이, 빠르고 쉽게 사용자에게 전달할 수 있다. 코딩 컨벤션은 이러한 조건을 만족시키기 위해 마크업 개발자가 지켜야 할 표준을 제시한다.

또한, 유지보수에 투자되는 비용을 최소화하기 위해 통일된 코드 작성법을 제시한다. 코드를 최초로 작성한 사람이 끝까지 유지보수할 확률은 매우 낮다.

따라서, 최초 개발자가 아닌 사람도 코드를 빠르고 정확하게 이해할 수 있도록 작성하는 것은 코드의 유지보수 비용을 절감하고 업무 효율을 높이는 데 결정적인 역할을 한다.

적어도 한 프로젝트의 마크업 코드는 같은 코딩 컨벤션에 따라 작성해야 한다.

코딩 컨벤션을 준수하면 프로젝트 멤버 간 코드 공유도 쉬워지고, 일관성 있게 코드를 작성할 수 있다. 어떤 코딩 컨벤션을 선택하느냐가 중요한 것이 아니라, 통일된 기준으로 소스 코드를 작성하는 것이 중요하다.


프로그래밍의 템플릿(template)

프로그래밍에서의 템플릿은, 특정단위코드의 기본으로 사용될 수 있는 일반적인 클래스나 단위 원시코드를 말한다.

객체지향 프로그래밍 언어인 C++에는, 표준화된 템플릿 라이브러리가 있어서 프로그래머는 수정하고자하는 개개의 템플릿 클래스를 그저 선택하면 된다.

MFC 라이브러리가 그 대표적인 예이다.


쿼리(query)

쿼리란 데이터베이스에 정보를 요청하는 것입니다.

쿼리는 웹 서버에 특정한 정보를 보여달라는 웹 클라이언트 요청(주로 문자열을 기반으로 한 요청이다)에 의한 처리입니다.

쿼리는 대개 데이터베이스로부터 특정한 주제어나 어귀를 찾기 위해 사용됩니다. 주제어가 검색엔진의 검색 필드 내에 입력된 다음, 그 내용이 웹 서버로 넘겨지게 됩니다.

+ Recent posts