프로그래밍 용어

2020. 12. 20. 17:11웹서비스

영어 사전을 볼 때 되도록 영영한 사전을 본다. 대부분 언어의 단어는 단순히 명시적인 뜻만 가지고 있지 않다. 단어에는 의미가 함축되어 있다. 영영 사전에는 단어에 대한 의미 해설이 있어 단어가 어떤 의미로 사용되는지 알 수 있다. 한국어 사전에도 단어를 검색하면 단어 의미 해설을 볼 수 있다.

 

각 언어권의 자신의 언어 사전에는 단어의 의미가 있지만, 다른 언어 사전에는 의미 해설보다는 명시적이고, 단순한 뜻만 기록되어 있다. 영한사전도 헷갈리게 여러 가지 한국어 단어로 매칭 하는 것보다 의미 해설로 기록하는 게 더 좋을 것 같다고 생각한다.

 

예를 들어 '의미'와 '뜻'을 보자. 언듯 같은 단어로 생각하지만, 같은 해석을 가지는 단어를 두 개나 만들 필요가 있을까. 비슷하지만, 다른 해석이 있다. 

 

일단 구글 번역에서 '의미', '뜻'을 검색하면 ‘meaning’이라는 한 단어만 나온다. 반대로 'meaning'이라고 검색하면 ‘의미’, ‘뜻’이라는 단어가 두 개가 나온다. 여기에 ‘의미’에 해당하는 유사 단어로 'sense, significance, intent…' 같은 단어들이 나열되고, ‘뜻’에는 'wish'가 있다. 'meaning'의 영영사전을 보면 ‘what is meant by a word, text, concept or action’이라는 해설을 볼 수 있다. ‘단어, 텍스트, 콘셉트 또는 행동이 무엇을 전달하려는 의도’라고 해석할 수 있다.  

 

'의미'와 '뜻'을 보자. 네이버 사전에서 ‘의미’를 찾아보면 ‘말이나 글, 행위나 현상이 지닌 뜻’으로 검색되고, ‘뜻’은 ‘무엇을 하겠다고 속으로 먹는 마음, 말이나 글, 또는 어떠한 행동 따위로 나타내는 속내’라고 검색된다. 

 

‘뜻’은 목표이고, ‘의미’는 목적이다. ‘뜻’을 이루기 위한 행위가 ‘의미’가 된다. 따라서 영어의 ‘meaning’은 ‘의미’에 가깝고, ‘뜻’은 ‘goal’이나, ‘want’, ‘wish’에 더 가까운 듯하다. 

 

이렇듯 단어는 뜻만 봐서는 안된다. 그 단어가 전달하려는 의미를 알아야 좀 더 정확한 표현이 가능하고, 응용 또한 수월하다. 

 


 

각 분야의 용어도 마찬가지로 의미가 함축되어 있다. 일반적인 단어인데 그 분야에서는 다르게 통용되는 단어가 많다. 다르다 하더라도 단어가 가지고 있는 본래 의미에는 변함이 없다. 의미는 같지만, 대상이 틀릴 뿐이다. 

 

레코드(record)라는 단어를 보자. ‘record’를 네이버 사전에서 찾아보면 ‘기록, 음반, 경력, 이력, 신원, 성적’ 등의 뜻이 나온다. 캠브리지 영영 사전을 보면 ‘to store sounds or moving pictures using electronic equipment so that they can be heard or seen later’라는 해설이 나온다. 해석해보면, ‘전자 장치를 사용하여 소리 또는 움직이는 사진을 저장하는데, 나중에 듣거나 볼 수 있다.’라는 해설이다. 위키백과에서 컴퓨터 용어인 ‘record’를 찾아보면, ‘기본적인 자료구조이다. 데이터베이스나 스프레드시트의 레코드는 보통 로우(row)라고 부른다. 각기 다른 자료형에 속할 수 있는 필드의 모임이며, 보통 고정 숫자나 시퀀스로 이루어져 있다.’라고 해설되어 있다.

 

‘레코드’는 ‘저장’이다. 무엇인가를 이용하여 기록하는 것을 말한다. 레코드 음반은 ‘저장된 음원 판’이다. 기록하거나 저장한다는 뜻이고, 나중에 볼 수 있게 저장하는 의미를 가지고 있다. 그런데 컴퓨터 용어에서는 마치 완전히 다른 단어처럼 쓰여 있다. 결론은 ‘같다’이다. 뜻과 의미는 변하지 않는다. 

 

컴퓨터 용어에서 ‘record’를 다르게 해석하면, ‘각각 다른 데이터 자료들을 모아서 하나로 저장하는 것’이라고 볼 수 있다. 한 마디로 데이터를 ‘저장하고 기록’하는 것이다. 

 

각 분야의 용어에 나오는 단어를 다르게 해석해서는 힘들다. 본래의 뜻과 의미는 같은데, 분야에 맞춰 해석한 것이다. 

 

단어 본래 의미를 알면 어떤 분야에서도 그 분야의 특성에 맞게 생각하면 쉽게 용어를 익힐 수 있다.

 


 

프로그래밍에서 자주 사용되는 용어를 보자.

 

‘알고리즘(Algorithm)’은 인공지능이 이슈화 되고, 매스컴에서도 자주 나와서 대부분 알고 있을 것이다. ‘문제를 해결하기 위해 절차나 방법을 공식화한 형태’이다. 예를 들어 수학에서 많이 사용되는 ‘피타고라스의 정리’, ‘방정식’ 등이다. 문제가 주어졌을 때 원하는 결과를 얻을 수 있는 공식이다. 

 

‘비즈니스 로직(Business Logic)’은 줄여서 ‘로직(Logic)’이라고 하며, ‘논리’, ‘타당성’이라는 뜻을 가지고 있다. ‘알고리즘’의 공식이 타당한지 수행하는 절차라고 생각하면 된다. 공식이 다 맞는 것은 아니다. 실제로 공식대로 계산해서 제대로 된 결과가 나와야 한다. 수학에서는 이를 ‘증명’이라고 부른다. 컴퓨터에서도 공식(알고리즘)이 있으면 제대로 결과가 나오는지 절차 또는 흐름을 만들어 진행해야 한다. 알고리즘(공식)은 될 것 같은데, 실제 로직을 진행했을 때 다른 결과가 나올 수도 있다. 

 

‘DAO(Data Access Object)’은 영어 그대로 데이터 접근 객체(오브젝트)이다. -컴퓨터 용어는 대부분 줄임말을 많이 사용한다.- 데이터는 대부분 데이터베이스에 있다. 수많은 데이터들 중에 어떤 데이터를 선별해서 가져올지는 DAO에서 정의한다. 마트의 장바구니 같은 개념이다. 마트가 데이터베이스이고, 장바구니와 구매할 목록이 DAO라고 생각하면 된다. 

 

‘DTO(Data Transfer Object)’도 영어 그대로 데이터 전송 객체(오브젝트)이다. 다른 단어로 ‘VO(Value Object)’라고도 한다. -VO를 사용하는 이유는 데이터베이스에서 찾은 값(value)의 오브젝트이기 때문이다.- DAO가 데이터베이스에서 가져온 데이터를 받아서 전달해줄 곳에 이동시키는 객체이다.  마트를 예로 들자면, 포장 같은 개념이다. 마트에서 장바구니(DAO)를 들고 상품(데이터)을 골랐다면 계산 후에 집으로 가져가지 위해 비닐봉지 또는 쇼핑백에 담는다. 비닐봉지, 쇼핑백에 DTO(또는 VO)에 해당한다. 

 

‘트랜잭션(Transaction)’은 ‘거래, 매매’라는 뜻을 가지고 있다. ‘거래’, ‘매매’는 사고파는 행위이다. 사고 판다라는 의미는 ‘상품’이 주체가 된다. ‘상품’ 없다면 ‘거래’나 ‘매매’가 이루어질 수 없다. ‘상품’은 데이터에 해당한다. 데이터를 ‘거래’, ‘매매’ 한다는 것은 데이터베이스에 있는 데이터를 ‘거래’, ‘매매’한다는 개념이다. 다시 말해, 데이터베이스의 데이터를 변동시키는 작업이다. 다시 마트를 예로 들자면, 마트에서 계산하는 사람이 하나의 ‘트랜잭션’에 해당한다. 그 사람이 마트의 상품을 ‘거래’하는 행위를 하기 때문이다. 

 

‘프로세스(Process)’는 ‘공정’, ‘과정’, ‘진행’이라는 뜻을 가지고 있다. 뭔가를 진행하고 있다는 의미이다. 상점 하나가 영업 중인 것이 하나의 프로세스와 같다. 다시 마트를 생각하자. 마트가 ‘영업 중’이 프로세스이다. ‘휴무’라면 프로세스가 중지된 상태이다. 

 

‘스레드(Thread)’는 ‘실’, ‘가닥’, ‘계속’, ‘연속’이라는 뜻을 가지고 있고, 영어 해설로는 ‘매우 얇은 섬유의 길이 또는 불빛이나 연기 같은 얇은 선’라고 해설되어 있다.  얇게 이어져 있다는 의미이고, 어떤 행위가 계속 이어져 있다는 의미로도 볼 수 있을 것 같다. 스레드는 프로세스에서 진행되는 한줄기의 과정이다. 다시 마트를 불러오자. 마트가 영업 중이면 프로세스 중이고, 영업 중에 사람이 들어가서 상품을 고르는 행위가 하나의 스레드이다. 또는 고객센터에서 상담을 받고 있는 것도 하나의 스레드이다. 

 


 

정리해서 마트에서 일어나는 일들을 예로 들어보자. 마트를 오픈하려고 한다. 오픈하기 위해서는 고객들이 편하게 쇼핑하기 위한 동선을 기획해야 한다. (알고리즘을 만든다.) 계획된 동선이 정말 편하고, 상품을 잘 보일 수 있게 하는지 검토한다.(로직 검증을 한다.) 모든 준비가 끝나고 마트를 오픈하여 영업을 시작했다. (프로세스를 시작한다.) 고객이 방문하고 장바구니를 들고 입장한다. (DAO를 준비한다.) 고객이 상품을 쇼핑한다. (스레드가 동작한다.) 쇼핑을 마친 고객이 계산대로 이동하여 계산을 진행한다. (트랜잭션이 동작한다.) 계산을 마친 고객이 가지고 온 쇼핑백에 상품을 담는다. (DTO-VO에 데이터를 담는다.) 고객이 영수증을 가지고 경품을 받기 위해 고객센터에서 상담한다. (스레드가 동작한다.) 고객이 마트를 나간다.

 

프로그래밍 개발에 사용되는 용어는 이외에도 많지만, 가장 대표적이고, 가장 많이 사용되는 용어들만 정리하였다. 

 


 


Background Photo by Priscilla Du Preez on Unsplash

'웹서비스' 카테고리의 다른 글

프로그램 언어  (0) 2021.01.10
프로그램 패턴  (0) 2020.12.29
프로그래밍 개발 방식  (0) 2020.12.14
프로그램 언어의 번역과 통역  (0) 2020.11.16
웹 프로젝트 - 시작편  (0) 2020.11.08