코드에프에 비개발자가 많이 합류하고 있습니다. 한 달만에 개발자와 비개발자의 비율은 7:3에서 대략 6:4가 되었습니다. 비개발자의 비율이 늘어난다는 것은 그만큼 서로 반대되는 직군 간 소통이 증가한다는 뜻입니다. 같은 프로젝트를 진행하고 있지만, 사용하는 프로그램도, 생각하는 방식도 너무나 다르기에 개발자와 비개발자 간에는 소통의 어려움이 생기곤 합니다.

게다가 개발자가 사용하는 용어는 상당히 생소하기 때문에 그 의미를 모르면 ‘내가 외국어를 듣고 있는건가..?’라는 혼란에 빠질 수도 있습니다. 때문에 오늘은 업무에서 자주 쓰이는 개발 용어에 대해 알아보겠습니다.

현업에서 자주 쓰이는 개발 용어

개발 용어는 정말 다양합니다. 개발자들도 자신의 분야가 아니라면 처음 듣는 것들도 많을 정도이죠. 개발자와 소통해야 하는 비개발 직군(특히 기획자)의 경우 생소한 용어 때문에 좌절감을 느끼는 일이 많습니다. 현업에서 몸으로 부딪히며 깨닫는 것도 좋지만, 아래 나오는 용어들은 먼저 익히고 있으면 시행착오를 훨씬 줄일 수 있습니다.


서버(Sever), 클라이언트(Client)

서버(Sever)란 백 엔드와 프론트 엔드 등 개발단에서 이용하는 모든 데이터가 저장되는 곳을 의미합니다. 어떤 형태로든 정보 제공을 하는 컴퓨터를 서버라고 칭할 수 있습니다. 서버 역할을 하는 컴퓨터는 사용자(클라이언트)에게 언제든지 원하는 정보를 전달해야 하므로 계속 켜져있습니다. 그리고 여러 명이 동시에 데이터를 요구하는 경우에도 작업이 원활해야 하므로 매우 고사양입니다. 과거에는 물리적인 서버를 구축하기 위해 거대한 컴퓨터를 모아 놓은 서버실을 구축하곤 했습니다.(물론 지금도 있습니다.) 하지만 최근에는 클라우드 서버로 전환되는 추세여서 기업이 직접 서버실을 만들기보단 가상 서버를 이용하는 경우가 많습니다.

클라이언트(Client)는 서버에 데이터 요청을 보내는 주체, 즉 사용자라고 보면 됩니다. 특정 웹사이트에 접속하여 원하는 키워드를 검색하는 우리도 일종의 클라이언트라고 할 수 있습니다. 그리고 서버에 데이터를 요청하고 알맞은 형태로 전환하여 보여주는 응용 프로그램 또한 클라이언트이죠. 웹 브라우저도 웹 서버에 화면 출력을 위한 웹 페이지를 받아 보여주는 대표적인 클라이언트 중 하나입니다.¹

클라이언트와 서버의 상호작용이 바로 개발의 기본적인 구조라고 할 수 있습니다. 때문에 이 두 용어가 무엇을 의미하는지, 우리 기업에서 어떨 때 주로 사용되는지는 알고 있는 것이 중요합니다.

01-3


DBMS(Data Base Management System)

DBMS는 말 그대로 데이터 베이스를 관리하는 시스템입니다. 여기서 데이터 베이스란 데이터가 모인 집합체이며, 궁극적으로 자료를 구조화하여 여러 사람들과 공유하기 위해 관리하는 정보라 할 수 있습니다. DBMS는 데이터베이스를 효율적으로 관리하기 위한 저장, 보안, 공유 등의 기능을 제공합니다.

DBMS에는 여러 종류가 있습니다. 국내 대기업에서 주로 사용하는 것이 Oracle(오라클)이며 현재는 오라클에 합병된 MySQL도 있습니다. 이외에도 MSSQL, MariaDB, Tibero 등이 있는데, 모두 DBMS이며 우리 기업에서는 어떤 시스템을 사용 중인지 알아두면 개발자와 소통하는데 하는데 많은 도움이 됩니다.


SQL(Structured Query Language)

SQL은 DBMS의 데이터 관리를 위해 만들어진 특수한 프로그래밍 언어입니다. 데이터베이스에서 데이터를 입력하거나 조회하고, 수정하는 일련의 작업을 하기 위해선 SQL의 문법을 따라야 합니다.

데이터 처리를 위한 SQL의 명령어 종류는 다음과 같이 크게 3가지로 나뉩니다. 데이터 베이스에서 테이블 생성・변경・삭제 등을 하는 DDL(데이터 정의 언어), 데이터 검색・삽입・변경・삭제 등을 하는 DML(데이터 조작 언어), 그리고 사용자별 관계 구축 또는 데이터 접근 권한을 다루는 DCL(데이터 제어 언어)이 있습니다.


API(Application Programming Interface)

API는 애플리케이션 프로그래밍 인터페이스 (Application Programming Interface)를 줄인 말입니다. 즉, 어떠한 응용 프로그램에서 데이터를 주고받기 위한 인터페이스를 의미하죠. 쉽게 설명하자면 서로 다른 응용 프로그램 사이에 소통을 하기 위한 일종의 매개체이자, 원하는 데이터 또는 기능을 연결하기 위해 “어떤 내용을, 어디에, 어떻게 넣어야 하는지”를 명시한 규칙의 집합이라고 할 수 있습니다.

코드에프는 API에 대해 여러 번 다루었습니다. API에 관한 더 많은 내용이 궁금하다면 아래 콘텐츠를 참고해 보세요.

▶ ︎API 개념 쉽게 이해하기
API의 역할과 종류


JSON(JavaScript Object Notation)

“앞으로 데이터는 JSON으로 주세요~” 혹은 “JSON에 추가할까요?”라는 이야기 들어본 적 있으신가요? 얼핏 보면 프로그래밍 문법과 비슷하지만, JSON(제이슨)은 개발 언어가 아닙니다. 자바 스크립트에서 데이터를 저장하고 교환하기 위한 기본적인 표기 방식을 의미합니다. 위에 설명한 서버와 클라이언트 간 데이터 교류에서 가장 많이 사용되는 데이터 표현법 중 하나이죠.

02-1

비개발자가 데이터 작성에 일반적으로 사용하는 워드나 엑셀을 개발자에게 전달하면 JSON 형태에 맞게 수정하는 과정을 거쳐야 합니다. 때문에 개발자는 데이터 요청 조건(key, 키)과 그에 응답할 내용(value, 값)으로 구성된 JSON을 요구하곤 합니다. JSON의 기본적인 형태와 작성 방식을 알고 있다면 개발자와 더욱 빠른 소통이 가능할 겁니다.


레거시(legacy)

legacy의 사전적인 의미는 ‘유산’이지만, 개발에서의 레거시는 약간 다릅니다. 특히 개발 프로젝트 도중 ‘레거시 코드'나 ‘레거시 함수’라는 단어가 자주 나온다면 부정적인 의미에 더 가깝습니다. 과거부터 내려온 낡은 코드가 그대로 남아 있어서 수정하거나 고치기 어려운 상황이라는 것을 뜻하죠. 레거시 코드는 코드를 짠 본인 외에는 이해하기 어렵거나, 코드 간 결합이 복잡해서 수정이 어렵거나, 정해진 규칙이 없는 등 여러 가지 경우에 쓰입니다.

하지만 레거시는 개발에서 은어처럼 사용되는 용어이기 때문에, 본인이 속한 기업에서 어떤 의미인지 맥락을 잘 들어볼 필요가 있습니다.


디버깅(Debugging)

디버깅이란 코드에서 오류를 찾고 그 원인을 알아내어 제거하는 과정을 뜻합니다. 프로그램 개발 마지막 단계에 진행하며, 길게 작성된 코드를 일일이 검증하기란 어려우므로 디버깅 도구의 도움을 받습니다.

--------------_-----------_05-3

오늘은 몇 가지 개발 용어에 대해 알아보았습니다. 이 외에도 정말 다양한 것들이 있지만, 단어의 의미만 익히는 것은 개발자와의 소통을 돕기 위한 하나의 수단일 뿐입니다. 훨씬 더 중요한 것은 개발자에게 요청할 업무의 핵심 목적을 파악하고 이를 제대로 전달하는 것이죠.

다음 콘텐츠에는 개발자에게 개발 요청을 하는 기획자와 화면 구성을 위해 끊임없이 개발자와 소통해야 하는 UI UX 디자이너들을 인터뷰하며 그 고충과, 소통을 위한 꿀팁을 들어보겠습니다.

--------------_-----------_02-5

코드에프는 데이터를 활용한 핀테크 서비스를 지원하며 서비스 제공 기업이 온전히 서비스에만 집중할 수 있도록 돕습니다. 코드에프는 복잡한 절차를 간결하게 바꾸고 수고로움을 줄이고자 노력합니다. 얼마 전 새롭게 개편한 개발가이드를 통해 코드에프의 API 서비스에 대해 자세히 알아보세요.

banner_ver2_220506

[자료 출처]

1. 클라이언트(컴퓨팅) / 위키백과
서버란 무엇인가? / 김은지 브런치
DBMS란? (데이터베이스 관리 시스템)
SQL이란?