Editor’s Note
○ 개발자와 매끄럽게 하기 위해 꼭 숙지해야 할 개발 용어를 소개합니다.
“분명 같은 언어로 대화하고 있는데 무슨 말인지 하나도 모르겠어요😮”
“홈페이지 버튼 위치만 변경하면 되는데 왜 바로 안된다는 건가요😑?”
웹이나 애플리케이션 서비스가 비즈니스의 필수 도구로 자리 잡으면서 기획, 디자인, 마케팅 등 비 개발자와 개발자가 협업하는 일이 정말 많아지고 있어요. 하지만 달라도 너무 다른 개발의 세계. 개발자들이 자주 쓰는 용어 몇 가지만 숙지하면 보다 효율적으로 커뮤니케이션 할 수 있을 거예요.
✅ 서버
데이터를 저장하고 요청을 처리하는 중앙 컴퓨터 시스템이에요. 요청자에게 데이터를 주는 서비스 제공자 역할을 하죠. 서버는 문서, 이미지, 동영상, 파일 등의 대규모 데이터를 저장하고, 여러 요청자의 요구를 동시에 처리할 수 있는 고성능 시스템으로 구성되어 있어요.
✅ 클라이언트
클라이언트는 데이터를 보내 달라고 서버에 요청하거나, 서버가 제공하는 것을 받아 사용하는 주체를 말해요. 주로 PC, 모바일 같은 사용자 기기나 프로그램이 해당되죠. 클라이언트는 사용자가 서버와 상호작용할 수 있는 인터페이스를 제공하고, 서버로부터 제공받은 데이터를 시각적으로 보여줘요.
_________________________
😲 이렇게 생각하면 쉬워요!
서버는 언제든 요청을 처리하도록 항상 켜두는 컴퓨터예요. 우리가 웹 브라우저(클라이언트)를 통해 신세계아이앤씨 홈페이지 URL을 입력하는 건 서버에 홈페이지를 보여달라고 요청하는 행위이고, 웹 브라우저는 서버로부터 즉시 데이터를 받아 사용자에게 시각적으로 정리된 화면을 보여주는 개념이에요.
_________________________
✅ 프론트 엔드
사용자와 직접 상호 작용하는 웹 사이트나 애플리케이션의 한 영역이에요. 프론트엔드(Front-end) 개발자는 HTML, , CSS 등의 언어로 웹 사이트의 레이아웃, 버튼, 이미지, 텍스트 등 사용자가 보고 클릭하는 모든 요소의 사용자 인터페이스를 설계, 구현하는 일을 해요.
✅ 백 엔드
백엔드(Back-end)는 웹 사이트나 애플리케이션이 구동되게 하는 서버, 데이터베이스 등 사용자에게 직접 보이지 않는 뒷면의 모든 영역을 뜻해요. 백엔드 개발자는 Java, Java , php, python 등의 언어를 사용해요.
✅ 프레임워크
말 그대로 뼈대를 뜻해요. 개발 과정의 처음부터 끝까지 공통적으로 자주 사용되는 코드, 로직을 정리해둔 일종의 템플릿이죠. 개발에 필요한 기본적인 내용들이 갖춰져 있기 때문에 매번 프로젝트마다 새로이 구성할 필요 없이 효율적으로 활용할 수 있어요. 대규모 프로젝트를 진행할 때는 수많은 개발자들과 동일한 프레임워크를 적용해 검증된 로직을 일관적으로 적용 가능하다는 장점이 있어요.
✅ 라이브러리
라이브러리는 코드, 함수들의 모음이에요. 라이브러리를 활용해 이미 구현되어 있는 코드를 언제든지 가져다 적용할 수 있죠. 프레임워크와 라이브러리 모두 미리 짜놓은 코드라는 점이 같아 혼동하기 쉽지만 주도성 측면에서 차이가 있어요. 개발자는 원하는 기능을 구현하기 위해 필요한 라이브러리를 호출하며 도구처럼 사용하지만, 프레임워크는 쉽게 바꾸거나 제어할 수 없고 프레임워크가 정해 놓은 흐름대로 진행해야 해요.
_________________________
😲 이렇게 생각하면 쉬워요!
프레임워크는 집, 라이브러리는 집을 구성하는 가구와 같아요. 집이라는 큰 구조를 마음대로 바꿀 수 없지만, 거주자의 취향이나 원하는 용도에 따라 다양한 종류의 가구로 구성할 수 있는 것과 같아요.
_________________________
✅ DBMS
DBMS(Data Management System)를 이해하려면 데이터베이스(DB)를 먼저 알아야 해요. 데이터베이스는 말 그대로 데이터의 집합인데, 여러 사용자와 공유하며 사용하는 게 특징입니다. 이 방대한 양의 데이터베이스를 생성하거나, 외부로부터 보호하는 등 체계적으로 관리할 수 있는 소프트웨어가 DBMS예요. MS SQL, Oracle DB, MySQL, MariaDB 등 개발사마다 다양한 종류의 DBMS를 제공하고 있어요.
✅ 컨테이너
컨테이너는 소프트웨어 실행에 필요한 모든 파일이 묶인 하나의 패키지를 뜻해요. 애플리케이션 실행에 필요한 모든 구성 요소를 하나의 컨테이너로 묶어 어떤 환경에서도 오류를 최소화하고 프로그램을 실행할 수 있어요. 작업 PC에서 문제없었던 애플리케이션이라도 네트워크, 스토리지, 보안 설정이 서로 다른 테스트, 운영 PC로 옮기면 온갖 새로운 오류를 피할 수 없던 개발자들의 골칫거리를 해결해 준 기술이기도 해요.
✅ API
API(Application Programming Interface)는 소프트웨어끼리 상호작용할 수 있도록 도와주는 일종의 규칙이에요. 클라이언트가 서버에 요청을 보내면, 서버가 요청 내용을 이해하고 응답해야 하는데 어떤 요청인지 이해하도록 도와주는 도구가 API인 거죠.
✅ SDK
API가 클라이언트와 서버의 소통을 도와주는 규칙이었다면, SDK(Software Development Kit; 소프트웨어 개발 키트)는 소프트웨어와 소프트웨어를 연결해주는 도구예요. 소프트웨어 개발에 도움이 되는 다른 소프트웨어인 셈이죠. 보통 특정 플랫폼이나 운영체제에서 실행되는 코드 생성에 필요한 디버거, 라이브러리, 컴파일러와 같은 리소스를 하나의 패키지로 모아서 배포해요.
_________________________
😲 이렇게 생각하면 쉬워요!
새로 개발한 소프트웨어에 A사의 지도 기능을 추가하려면 A의 지도 관련 SDK를 설치하면 돼요. SDK에 포함된 API가 A사의 지도 서비스 서버에 요청을 보내 나의 소프트웨어로 지도 데이터를 전달해 주게 될 거예요.
_________________________
__
· 본 게시글은 신세계아이앤씨에 저작권이 있습니다.
· 본 게시글은 사전 동의 없는 2차 가공 및 영리적 이용을 금지합니다.
· 콘텐츠 사용 시 ‘신세계아이앤씨’로 출처 표기 부탁 드립니다.