brunch

You can make anything
by writing

C.S.Lewis

by 진clara Jul 27. 2020

'비(非)기획자'를 위한 앱관련 용어와 개념

마케터의 일머리

최근에 회사 내 중국진출을 위해 입사하신 분이 계신데, IT업계가 아닌 산업에서 오셔서 그분을 대상으로 앱서비스의 몇가지 용어와 개념에 대해 설명해달라는 부탁을 받았다. 마침 옆에 앉아있던 디자이너도 제조업에 있다가 앱서비스로 옮긴지 얼마지 않아 같이 듣고 싶다고 했다.


설명을 위해 몇가지 정리하는김에 다른 분들도 도움이 되셨으면해서 브런치에 남겨본다.


사실 12년을 일하면서 누구한테 배운 것은 아니고, 그때그때 눈치껏 어깨너머로 파악한거라 개념이 정확하지는 않을 수 있다. 대략적인 감만 잡으셨으면 한다.



| 서버 / 클라이언트 / API


사람에 비유하면 서버는 뇌, 클라이언트는 신체, API는 신경에 해당한다. 뇌(서버)에서 각종 연산을 수행해서 결과를 신경(API)을 통해 신체(클라이언트)로 보내면 몸이 동작하는 것과 비슷하다. 이때 신체는 팔은 2개, 다리도 2개, 손가락 발가락은 각각 10개로 미리 정의되어 있다. 이처럼 매번 새롭게 정의할 필요가 없는 것들은 클라이언트(신체)에 고정적으로 값이 정해져 있고, 변하는 값들은 서버(뇌)에서 관리한다.  


대략 감이 왔다면 본격적으로 서버, 클라이언트, API에 대해서 알아보자.


서버와 클라이언트가 API를 통해 데이터를 주고 받는 방법


위 그림처럼 하나의 서버는 여러개의 클라이언트를 관리하게 된다.


클라이언트는 보통 사용자의 단말기(PC, 휴대폰)을 이야기하지만, 앱을 만들때 개발자가 단말기의 환경까지는 컨트롤할수 없기 때문에, 클라이언트는 어플리케이션(이하 '앱')을 의미한다고 보면 된다.


그리고 서버는 각각의 클라이언트가 API호출을 통해 요청(request)하는 데이터를 내려준다(response). 예를들면, clara라는 ID를 가진 사용자가 유료결제자인지 아닌지를 API를 통해 서버에 물어보면, 서버는 API라는 정해진 규약에 맞게 응답을 준다.  


가령, 클라이언트와 서버사이에 유료결제여부는 payment = "Y" or "N"로 한다고 미리 약속을 한다. 사용자가 앱을 실행하면 클라이언트에서는 사용자의 ID와 payment를 서버에 물어보고 서버는 사용자의 ID와 payment = "Y" 와 같은 형태로 결과값을 보내준다. 만약에 클라이언트가 사전에 약속하지 않은 이름으로 물어보면 서버는 요청을 이해하지 못하기 때문에 정상적으로 값을 반환해주지 않는다.



서버와 클라이언트의 역할 : 가변데이터와 불변데이터


앞서 이야기한 것처럼 주로 바뀌지 않는 데이터는 클라이언트가 가지고 있는다. 즉, 앱의 각 페이지 디자인과 이름, 인터랙션은 모든 클라이언트(사용자)에게 동일하게 동작하고 바뀌는 경우가 거의 없기 때문에 클라이언트가 값을 가진다. 만약, 고정값까지 서버에서 보내준다면 불필요한 데이터 소비가 발생할 수 있고, 네트워크가 좋지 않은 상황에서 사용자 경험을 해칠 수 있다. 네트워크 연결이 끊겼을 때 사용자가 클라이언트에서 볼 수 있는 화면이 없어지기 때문이다.


한편, 사용자 정보는 클라이언트에 따라 달라지는 값이기 때문에 사용자가 로그인 하는 시점에 클라이언트가 사용자의 정보를 서버에 물어보면 서버에서 정보를 내려준다.  



| 빌드


업무를 하다보면 "빌드 나왔어요" 라는 말을 자주 듣는다. 빌드란, 소스코드파일을 실행가능한 산출물로 만드는 과정이다. 지칭하는게 클라이언트나 앱과 거의 같은데, 상황에 따라 다른 용어를 쓴다고 보면 된다. "QA빌드 나왔어요"라고 하면 QA(Quality Assurance)테스트를 할수 있는 완성된 앱이 나왔구나 정도로 이해하면 되겠다.



| QA / 코드프리징 / 싸인오프


QA란, Quality Assurance의 약자로 앱이 일정수준의 품질에 도달할 때까지 테스트하는 것을 의미한다. 개발이 완료되면 코드프리징(Code Freezing)을 선언하게 되는데 이때 코드프리징은 버그(오류)를 제외한 개발이 완료되었고, 더이상의 스펙은 추가개발하지 않는다는 것을 의미한다.


코드프리징이 되고 나면 QA담당자는 최초 앱실행부터 다양한 기능들이 정상동작하는지 여부를 며칠간 테스트하고 테스트중 발견된 버그를 개발자에게 리포팅해서 수정되도록 한다. 테스트와 수정이 완료되고 나면 QA에서는 테스트가 끝났다는 싸인오프(sign off)를 선언한다.



| 배포 / 서밋 / 릴리즈


배포는 수정된 코드를 실서비스에 반영한다는 의미이다. 웹에서는 배포만 하면 끝이지만 앱의 경우는 서밋과 릴리즈의 과정이 필요하다. 서밋(submit)은 앱이 노출되는 마켓에 앱을 등록하는 것을 의미한다. 주요 마켓으로는 구글 플레이스토어와 애플의 앱스토어가 있는데, 개발자가 앱을 서밋하면 각 마켓에서는 치명적인 오류나 정책위반이 없는지 심사를 한다. 심사가 끝나고 나면 앱을 사용자에게 공개하게 되는데 이를 릴리즈(release)라고 한다.



| 이터레이션 / PM


앱을 릴리즈하는 '주기'를 의미한다. 요즘에는 앱마다 PM(Product Manager)이 있는데 이들이 주로 하는 역할이 이터레이션을 관리하고 각 이터레이션마다 어떤 기능을 내보낼지 결정하는 역할을 한다.





비 기획자가 처음 앱서비스를 접했을 때 생경하지만 자주 쓰이는 용어들을 정리해봤는데요,

혹시 이외에도 궁금한점 있으면 댓글로 문의해주세요 :)

기발자(개발도 하는 기획자) 수준은 아니라 깊이있는 지식은 없지만 저도 배우면서 답해볼께요!





브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari