직장인 필수 지식, 개발자 용어 모음집 Chapter 1
약 3주 전, 한 IT 기업의 신입으로 입사한 박모모씨가 계십니다.
호기롭게 시작한 사회생활이지만 고민은 계속해서 늘어나기만 하죠.
기획서를 쓸 때나 거래처를 상대할 때, 새롭게 도입할 기능을 개발팀에 건의할 때도 마찬가지..
어떤 업무를 할 때라도 도저히 이해할 수 없는 말들만이 오갔기 때문입니다.
자신의 분야가 아니기 때문에 모르는 것이 당연하다고 생각했지만,
이 용어들을 모르는 것은 생각보다 큰 문제로 다가왔습니다.
박모모씨는 어떻게 해야할까요?
위와 비슷한 사례를 가지신 분이
계속해서 늘어나고 있는 요즘입니다.
그런 분들을 위해 오늘은 개발 용어에 대해 알아보려고 해요!
오늘 내용인 개발 용어는 이런 코드가 아니라
실무에서 의사 소통을 위해 쓰이는 용어를 중점으로 알아보려고 해요.
개발 용어 모음집
서버 vs 클라이언트
서비스를 제공하느냐/제공받느냐에 따른 구분합니다. 외부에 필요한 서비스를 제공하도록 만든 컴퓨터나 프로그램 영역을 서버라고 한다면, 여기에 접속해 서비스를 요청하고 제공 받는 유저가 클라이언트가 됩니다.
프론트엔드 개발자
웹 브라우저를 통해 유저가 직접 마주하는 웹 서비스의 앞단(front-end)을 담당하는 개발자입니다.
클라이언트/서버를 기준으로 보면 웹 페이지 화면을 비롯한 클라이언트 영역을 프론트엔드라고 할 수 있다.
백엔드 개발자
프론트엔드 개발자의 반대 개념으로, 웹 서비스의 뒷단(Back-end)을 담당하는 개발자입니다.
주로 유저에게 보이지 않는 DB와 API로 이루어진 서버 영역을 관리, 개발하는 역할을 하죠.
풀스택
프론트엔드 개발과 백엔드 개발 영역을 통틀어 이르는 말, 혹은 모두 다룰 수 있는 개발자입니다.
모두 다룰 수 있는 능력자이기에 모두들 환상을 가지고 있지만, 많은 업무에 심한 스트레스를 받을 수도 있으니
막연한 환상은 안 가지시는 게 좋습니다.
프레임워크
프로그램을 개발하기 위한 구조를 제공하는 개발 환경, 코딩을 자주 할 때 자주 쓰이는 여러 클래스(변수와 함수의 묶음)를
프레임 워크가 정해둔 흐름에 맞춰 쓸 수 있도록 지원해 주기 때문에 복잡하거나 반복되는 작업에 대한 부담을 덜어줄 뿐만 아니라 개발에 들이는 시간 대비 프로그램의 질을 높일 수 있습니다.
라이브러리
프로그램을 개발하는 데 필요한 여러 기능을 활용할 수 있도록 묶어놓은 함수 또는 기능의 집합입니다.
프레임워크가 개발을 제어하는 틀거리를 제공해준다면, 라이브러리는 도서관에서 책을 빌리듯 개발자가 필요한 기능을 마음대로 가져다 쓸 수 있는 일종의 모음집에 가까워요. 즉 정해진 방식으로 개발을 하게끔 정해주는 프레임워크와 달리 제어권이 개발자에게 주어지는 셈이죠.
플러그인
어떤 특정한 기능을 해결하는 데 쓸 수 있도록 미리 만들어 놓은 코드 및 데이터의 모음입니다.
한 라이브러리나 프레임워크에서 여러 개의 플러그인을 제공한다고 볼 수 있습니다.
웹 퍼블리셔
디자인 시안에 맞춰 웹 화면을 구현하는 웹 퍼블리싱을 담당하는 직무로 한국에서만 쓰이는 말이에요.
프론트엔드 개발에서 웹하면과 관련한 시각적인 면을 담당하는 개념을 떼놓은 것이죠.
디자인은 물론 웹 표준과 호환성을 고려해 코딩을 진행하고, 디자이너와 프론트엔드 개발자 사이에서
의견을 조율하기도 합니다.
마크업 언어
태그 등을 이용해 문서나 데이터의 구조를 표시한 언어입니다.
프로그래밍 언어와는 다르며, HTML,CSS,XML이 대표적인 마크업 언어이죠.
웹 접근성
누구에게나 평등한 웹 환경을 구성하는 요소입니다.
웹 표준을 지킴으로써 장애를 가진 사람과, 고령자,어린이 등이 다른 유저들과 마찬가지로
웹에서 제공하는 정보를 원활하게 이용할 수 있도록 보장하는 것입니다.
검색 엔진 최적화
실무에선 영어로 많이 쓰이는 용어인데요. 영어로는 'Search Engine Optimize'로, 줄여서 'SEO'라고 많이 불립니다.
웹페이지를 구글 등 검색 엔진이나 포털사이트의 기준에 맞춰 구성하는 작업이죠. 말 그대로 최적화입니다.
구체적으로 사람들이 많이 검색할 만한 관련 키워드를 배치하고, 웹 표준을 지키며, 스팸으로 분류되지 않게끔 하는 등 웹 페이지 링크가 더 많이 노출되도록 처리합니다. 온라인 마케팅의 필수 요소이죠.
버그
모두들 아시겠지만 소프트웨어에서 발생하는 예견치 못한 오류나 오작동입니다.
에러
유저가 입력한 애용이 잘못됐을 때 발생하는 문제입니다.
잘못 짠 코드처럼 내부 문제로 예상하지 못한 문제가 일어나는 버그와 달리, 외부에 있는 유저가 오탈자를 내거나 띄어쓰기를 실수하는 등 내부에서 정한 형식을 따르지 않을 때 주로 발생합니다.
예외
에러가 일어날 가능성을 개발자가 미리 예상하고 프로그램이 비정상적으로 종료되지 않도록 하는 것입니다.
예외처리 또는 트러블 슈팅을 통해 예외를 구분하고, 유저에게 문제를 바로 잡아달라는 에러 메세지를 띄어줘야 에러로 인한 문제를 예방할 수 있죠.
트래픽
서버를 통해 전송되는 데이터의 양. 서비스 방문자 수가 많을 수록, 접속이 잦아질 수록 증가하는 시스템입니다. 트래픽이 너무 높아지면 서버가 먹통이 될 수 있어요. 하지만 정말 많아야 일어나는 현상입니다.
데이터베이스
영어로 Database이며, 줄여서 DB라고 많이 사용됩니다.
서버를 통해 넘어오는 데이터를 저장하고 관리하는 일종의 창고 역할을 해요.
데이터베이스 관리 시스템
말 그대로 데이터베이스를 통해 데이터를 저장, 수정, 추출할 수 있도록 관리하는 프로그램입니다.
영어로는 Data base Management System이며, 줄여서 DBMS라고 불러요.
관계형 데이터베이스
데이터베이스에서 키와 값의 관계로 이루어진 표로 데이터를 구성하는 방식입니다.
줄여서 RDB라고 부르죠.
쿼리
관계형 데이터베이스에서 데이터를 조회,추출,조작하기 위해 쓰는 명령어 혹은 질의 자체를 쿼리라고 합니다.
관계형 데이터베이스에서 데이터를 요청하고 관리를 하기 위해서는 SQL(구조화 쿼리 언어)를 써야 하죠.
API
응용 프로그램 인터페이스입니다. 어떤 응용프로그램에서 특정한 기능을 사용하기 위해 필요한 데이터를
주고 받게끔 만든 도구나 방법을 뜻해요. 즉 API가 규격에 맞게 데이터를 요청하고 받아볼 수 있도록 하는
중간 창구 역할을 하는 셈인 것이죠.
오픈소스
누구나 제한 없이 쓸 수 있는 소스 코드 혹은 소프트웨어입니다.
오픈 소스로 배포된 코드는 열람, 수정, 복제, 재배포 등이 자유로워요.
한국에서는 공공데이터포털을 통해 공개된 오픈 API를 내려받을 수 있습니다.
SDK
소프트웨어나 시스템을 만드는 데 쓰이는 개발 도구 키드입니다.
SDK 안에는 개발에 필요한 샘플 코드, 코드 편집기 같은 툴이나 콘솔, 안내 문서, API 등이 포함됩니다.
IDE
프로그램을 개발하는 데 필요한 소스 코드 작성 및 편집, 컴파일, 디버깅 등 모든 작업을 한 번에 할 수 있는 통합 개발 환경.
유닉스
기계어에 가까운 언어인 어셈블리어로 개발한 컴퓨터 운영 체제, 주로 서버 개발이나 시스템 개발에 쓰이며,
macOS나 리눅스, 안드로이드 등 오늘날 많은 운영 체제의 원형이 된 운영 체제입니다.
리눅스
유닉스 계열에 속하는 오픈 소스 운영체제입니다. 서버 개발 및 구축, 수퍼 컴퓨터, 임베디드 기기, 스마트폰 OS 개발 등
다양한 용도로 활발하게 사용되고 있으며, 리눅스를 개량해서 만든 배포판도 상당히 많습니다.
스레드
프로그램을 실행하는 하나의 프로세스 내에서 실제로 작업을 처리하는 주체를 뜻합니다.
모든 프로세스는 한 개 이상의 스레드를 가지죠.
멀티스레드
하나의 프로세스가 두 개 이상의 스레드를 가지는 경우엔 프로세스 내에 있는 각각의 스레드가 프로세스 메모리를 공유하기
때문에 지원을 절약할 수 있고, 스레드간 정보 교환이 쉽다는 장점이 있습니다.
HTTP,HTTPS
HTML과 비슷한 HTTP는 하이퍼텍스트 전송 프로토콜(Hyertext Transfer Protocol)의 약자로
네트워크에서 HTML 문서를 주고 받기 위한 통신 규악이다. 한편 HTTPS는 HTTP가 가진 보안 취약점을
암호화 및 인증 구조를 통해 개선하기 위해 만들어졌다.
이 부분을 보시고 계신 분이 계시다면, 정말 대단하신 것 같아요!
게임 개발 용어는 많지만, 너무 많이 한 번에 설명을 드리면
읽어보기 전에 의욕이 떨어지기 때문에
오늘은 여기까지만 하겠습니다!
다음 포스팅에서 봬요. :)