티스토리 뷰

안녕하세요, 야메군 입니다.
회사 개발자들과 미팅을 하다 보면, 간간히 언급되는 용어 중 하나가 트랜잭션(Transaction)인데요. 부끄럽게도 오랜 기간 온라인 서비스 업종에서 일한 저도 느낌적인 느낌으로 알고 있었을 뿐, 트랜잭션의 개념이나 커뮤니케이션 과정에서 언급되는 트랜잭션이 의미하는 것이 무엇인지 잘 몰랐습니다. 

 

그러던 중 현재 재직중인 SaaS 기반의 모니터링 솔루션 회사, 와탭랩스에서 일하게 되면서 트랜잭션이란 용어를 명확하게(?) 이해하게 되었습니다. 트랜잭션을 한마디로 정의하자면 “하나의 완성된 결과를 내기 위한 연산 과정” 정도로 설명할 수 있는데요. 좀 더 쉽게 설명하자면 이런거죠.

 

[그림.1] Whatap Labs가 제공하는 모니터링 솔루션 Whatap의 히트맵 차트 UI


우리가 이용하는 대부분의 온라인 서비스들은 멤버쉽 기반으로 운영됩니다. 한마디로 가입을 해야하고 로그인을 해야한다는 의미인데, 이용하고자 하는 서비스에 로그인을 위해선 ID와 Password를 입력하고 로그인 버튼을 누르게 되겠죠? 여기서 로그인 버튼을 누르는 순간 트랜잭션이 발생하게 되는데, 먼저 ID가 일치하는 회원 계정이 있는지를 DB서버에서 조회를 하고 일치하는 계정이 있다면 다시 Password가 일치하는지를 조회합니다. 여기까지 문제가 없다면 로그인 상태로 전환되겠죠? 이러한 과정에서 “하나의 트랜잭션이 발생“하게 됩니다. 이때 발생한 트랜잭션을 뜯어보면 ID를 조회하는데 몇 ms가 소요됐고 Password를 조회하는데 몇 ms가 소요됐는지를 알 수 있습니다.

 

또 다른 예로 쇼핑몰에서의 구매 과정을 들어볼 수 있는데요, 이건 로그인 보다는 좀 더 복잡한 과정을 거치게 됩니다. 만일 여러분이 온라인 서점에서 책을 한 권 구매한다고 가정해보죠. 이를 Logic화 해보면 다음과 같습니다.

 

1. 상품 상세페이지에서 구매하기 버튼을 누른다. (Transaction 발생!)

2. 결제/배송정보 입력 페이지로 이동해서 정보를 입력한다. 

3. 결제하기 버튼을 누른다. (Transaction 발생!)

4. 결제완료 페이지에서 정보를 확인한다.

 

위와 같이 책을 구매하기 위해 사용자가 인지하거나 경험하게 되는 과정은 크게 네 단계로 구성되는데, 이때 트랜잭션이 발생하는 시점은 1번과 3번 과정입니다. 1번 과정에서는 구매하고자 하는 책의 재고 여부를 물류에서 체크를 하게 되고요, 3번 과정에서 결제 버튼을 누르는 순간 배송지 정보나 수령인 정보가 정확한지, 결제를 위해 입력/선택한 정보가 정확한지, 결제를 위한 잔액이 남아있는지 등의 트랜잭션이 발생하게 됩니다.

 

[그림.2] Whatap Labs가 제공하는 모니터링 솔루션 Whatap의 트레이스 분석 UI


제 블로그를 방문하시는 대부분은 기획자이기 때문에 시간의 단위인 ms(Millisecond)를 인지하고 있는 경우는 드문 경우가 많습니다. 그저 “오늘 로그인할 때 왜 이렇게 느려졌어요?” 또는 "결제하는데 장애가 발생했어요!" 정도의 표현으로 서비스에 문제가 있음을 개발자에게 전달하면 개발자가 직접 트랜잭션 로그(Log)를 들여다보며 어떤 부분에서 시간 지연(Delay time)나 액티브스택(Active stack)이 발생했는지 들여다보고 원인을 찾아 문제를 해결합니다. 경우에 따라선 회사가 운영하는 서비스 규모가 크다면 개발자가 아닌 Systems Engineer(SE) 또는 System Management(SM) 담당자가 이 문제를 해결하기도 하고요.

문제를 인지한 이후 소스코드를 들여다보거나 네트워크 속도 혹은 SQL 쿼리 등을 들여다보며 문제의 원인을 찾아 해결하게 되는데, 어떻게 해결하느냐까지는 굳이 이해하실 필요는 없으니 그에 대한 설명은 생략하고요. 여튼 이러한 일련의 과정의 중심엔 트랜잭션이라는 개념이 뙇하고 자리를 잡고 있습니다.

 

오늘은 트랜잭션의 개념을 쉽게 설명하기 위해 로그인을 예로 들어보았는데요. 로그인의 사례처럼 사용자가 원하는 어떠한 결과(게시판 글 작성, 상품 결제, 은행 이체, 검색 등)를 얻기 위해 확인 버튼을 누르는 등의 최종 행위가 이루어질 때 트랜잭션이 발생한다고 이해한다면 조금 더 쉽게 이해가 되겠죠? 오늘은 여기까지만 할게요. 담에 또 봐요!  

 


야메군, Web, Mobile, Digital 카테고리 SME(Subject Matter Expert). 서비스기획 21년차로 네이버 웹/모바일 기획자 커뮤니티 "웹(WWW)를 만드는 사람들"에서 운영진으로 활동했으며, 딴지일보를 시작으로 아이러브스쿨, 짱공유닷컴, YES24를 거쳐 IT 원천기술 연구소 "Valhalla Lab"에서 Pattern recognition과 Machine learning 기반의 Natural language processing를 기반으로 하는 기술의 상업적 이용방법에 대한 연구를 수행. 최근 스타트업계로 이직하여 반려동물과 온라인 피트니스 분야를 경험했고 현재 자율주행 도메인을 거쳐, 현재 SaaS 기반의 APM Monitoring 도메인에서 유일한 기획자로 재직 중. 2016년 7월, 웹/모바일 기획자의 업무능력 향상을 위한 서적, "처음부터 다시 배우는 웹 기획(정재용, 최준호, 조영수 공저)" 출간.

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday