brunch

매거진 데이터 101

You can make anything
by writing

C.S.Lewis

by 져니박 Apr 04. 2023

똑똑하게 데이터 1탄 : 초깃값

시작이 반이다, 시작할 때 초깃값 Default를 잘 정의해야


처음부터 설명해 주세요,

초깃값이 무엇인지


주요 개념 설명은 이미 두 달 전에 이루어졌고, 고객이 이루고자 했던 과업(Jobs to be Done) 을 이루도록 돕기 위해 단계별로 어떻게 프로세스가 진행되어야 하는지 디자인 리뷰한 것도 어언 삼 주가 지났다. 그리고 개발자로부터 문의가 들어왔다.

그래서... 처음 이 메뉴 들어오면, 항상 값이 0인 거예요?


처음? 처음부터 다시 설명해야 하는 건가? 리뷰한 지 너무 오래된건가? 아득해지는 기분을 뒤로하고 개발자가 이 질문을 하게 된 의도를 생각해 봤다. 아 초기에 어떤 값을 보여줘야 하는지 명확하지지 못했구나. 디자인 리뷰를 통해서, 하나의 과업을 시작하고 끝내는 흐름은 공유되었었다. 그런데 그 흐름이 실제로 구현되려면 그 시작의 상태, 초깃값(default value)이 명확하게 정의되었어야 했다.  


다음은 네이버 영어사전에 default(디-폴트) 검색한 결과이다.

de·fault [명사] [정보·통신]
응용 프로그램에서 사용자가 특별히 명령을 내리지 않으면
시스템이 자동으로 적용하는 미리 정해진 값이나 조건.


최초에 아무것도 없었으면 당연히 0 아닌가? 하지만 개발자가 질문한 그 값은 숫자뿐 아니라 한글이나 영문도 들어갈 수 있는 곳이었다. "-"로 표기해 주세요, 질문해 준 개발자 덕에 두 번 개발하는 일을 막을 수 있었다.

"-" 또는 하이픈(hypen)은 엄밀하게 문자이다. 초깃값이 0은 아닙니다, 라고 하는 순간 나는 해당 컬럼은 숫자형(실수 Long , 정수 Integer ...) 이 아닌, 문자열(String) 데이터라고 정정한 셈이다. 이렇게 해서 또 다른 불필요한 개발을 막게 되었다.


 'ano'라는 컬럼이 바로 문자열 데이터로 정의되었기에, 숫자형 데이터로 정의되고 개발을 시작했다가 문자열 데이터가 저장되지 않아 수정해야 하는 불상사를 막을 수 있었던 것이다. 숫자형 데이터는 더하기, 빼기, 곱하기, 나누기, 제곱 등 연산이 가능하다. 10 + 2 = 12, 10 *2 = 20, 10 ^ 2 = 10 * 10 = 100  하지만  a + 10이나 a * 10은 성립하지 않으므로 a와 10이 함께 숫자형 데이터에 들어갈 수가 없다.  (많은 프로그래밍 언어에서 문자열끼리 이어 붙이거나 반복하는 연산을 허용하지만, 분명 계산기 사칙연산은 아니니까.)



초깃값을 잘 정의하려면,
나중을 상상할 수 있어야


숫자형 데이터가 쌓이는 컬럼이라 해서 무조건 초깃값이 0일까? 그것도 정답은 아니다. 회원가입 단계에서 생년월일 정보를 받을 때 0000년부터 입력을 받는 서비스는 없다. 1900에서 출발하는 경우도 있고, 2023(올해)에서 출발하는 경우도 있다. 이 경우 회원의 나이에 따라 위아래로 스와이핑을 하여 선택을 하게 된다.


오픈 뱅킹에서는 현재 불러온 계좌의 출금 가능 금액 전액을 바로 초깃값으로 표기하기도 한다. 이 경우에는 그대로 또는 그보다 금액을 낮춰서 가져오게 된다. 초깃값이 0원이라 직접 입력하거나 '100만 원' , '전액'을 선택하는 것보다, 이미 전액이 초깃값으로 지정된 경우 더 많은 금액을 인출하는 의사결정을 하기 쉬워진다. (본인은 이런 점에서 경각심을 느끼고 오픈 뱅킹보다 특정 계좌에서 다른 계좌로 이체하는 번거로움을 감수하기도 한다)


숫자로 이루어진 데이터 중심으로 초깃값에 대해 다루었는데, 조금만 더 생각의 외연을 넓혀보면 이 초깃값이 얼마나 서비스에 많은 영향을 끼치는지 쉽게 느낄 수 있다. 예컨대 범주형(Categorical) 데이터, 즉 여러 가지 경우의 수를 구분 짓는 카테고리의 경우 - 초기에 모두 선택되어 있어야 하는가, 1가지만 선택되어 있어야 하는가? 초기에 설정된 범주의 이름은 긍정적인가 부정적인가?


초깃값이 시스템적으로는, 사용자가 특별하게 선택하지 않아도 기본 세팅되어 있는 값이라 단순하게 느껴진다. 하지만, 서비스를 만드는 사람들 입장에서는 사용자가 해당 메뉴를 어떻게 이해하고, 어떤 식으로 선택하고 사용할지 상상할 필요가 있는 것이 초깃값이다.


초깃값을 잘 정의하면 원하는 방향으로 고객의 행동을 유도할 수 있는데, 거꾸로 고객의 행동과 니즈를 잘 파악해야 초깃값을 잘 정의할 수 있다. 닭(나중에 고객이 서비스를 사용하는 방식)과 달걀(초기에 서비스에 설정된 초깃값)의 문제에 비유해볼 수 있겠다.  


이렇게 생긴 달걀에서는 나중에 어떤 닭이 나올까?


출처 Unsplash 의 Tengyart


져니박 씀.

 





















  




  

매거진의 이전글 배달앱 검색: 일방통행남 vs 아무거나녀 (상)
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari