Option, Setting, Configuration

Horus-iOS·2022년 6월 6일
0

주의: 변수, 메소드, 타입 이름을 지을 때, 설정과 관련이 있는 것에서 Option, Setting, Configuration 중 어떤 것이 어울리는지 고민해본 내용을 담아봤습니다. 영어를 잘하는 편은 아니며, 개인적인 생각과 실생활에서 사용되는 예를 생각하며 고민해본 내용이기 때문에 잘못된 부분이 있을 수 있습니다.

Option

옵션에 대해서 먼저 이야기해볼까 합니다. 플랫폼 쇼핑 서비스 이용 시 옵션 상품이 있는 경우가 있습니다. 예를 들어서 게임 콘솔 기기인 닌텐도 스위치를 구매할 때, 옵션 1 닌텐도 스위치 액정 필름, 옵션 2 닌텐도 스위치 하드케이스 등 선택사항이 있는 경우 옵션이라는 표현을 볼 수 있습니다. 초점을 맞추고 싶은 부분은 '당장의 서비스 이용 및 구매에서 선택사항'이라는 것입니다. 결제 전, 즉 장바구니에 담기 전에 판매자는 '이러한 옵션들이 있는데, 필요하다면 추가 금액 지불과 함께 옵션 상품을 동봉해서 판매합니다'와 같은 형식입니다.

옵션이라는 단어는 금융에서도 사용되는 단어입니다. 금융상품 중 파생상품을 공부하다보면 대표적으로 선물, 옵션, 스왑이라는 금융상품을 공부하게 됩니다. 선물과 스왑은 제쳐두고 옵션이라는 금융상품을 토대로 글을 전개하겠습니다. 파생상품을 공부할 때 '파생상품은 계약이다'라는 문장에 지지하는 편입니다. 옵션은 '정해진 가격'으로 '미래의 특정 시점'에 거래를 하겠다는 계약입니다. 정확히 표현하면 앞의 문장은 다른 파생상품인 선물에 가깝습니다. 옵션은 '정해진 가격'으로 '미래의 특정 시점'에 '거래를 할 수도 있고 안 할 수도 있는 권리'입니다.(옵션은 콜옵션과 풋옵션이 있고, 손익에 따라 행사가 결정된다는 내용까지 담기에 금융과 관련한 글이 되어버리기 때문에 이 글은 콜옵션에 대해서만 이야기합니다.)

다음의 대화를 먼저 소개해드리고자 합니다.

A: 갖고 계신 아이폰 13 기기를 3개월 후에 50만원으로 구매할 수 있는 권리를 구입하고 싶습니다.

B: 해당 권리에 대한 금액 역시 지불해주시겠죠?

A: 네. 권리에 대한 금액으로 5만원을 드리겠습니다. 다시 말씀 드리지만 이 계약은 권리에 대한 거래이므로 3개월이 지난 뒤, 제가 그 아이폰을 구매할지 하지 않을지는 모릅니다. 때가 되어서 제가 결정하겠습니다.

B: 알겠습니다.

3개월이 지난 후 A는 자신의 손익에 따라 아이폰 13을 50만원이라고 정했던 가격에 구매할 수도 있고, 구매하지 않을 수도 있습니다. 정해진 시점, 즉 3개월이 지난 후 구매여부는 선택사항이 됩니다. 어떠한 시점이 되었을 때, 의사결정은 선택사항이 됩니다.

다른 예시를 들면 패스트푸드 프랜차이즈에서 키오스크를 사용해 메뉴를 장바구니에 추가하고, 결제 진행 전 키오스크가 추천하는 메뉴도 옵션에 가깝다고 봅니다. 상대적으로 간단한 메뉴를 소개하면서 '이런 메뉴를 추가해보시는 것은 어떠신가요?(맥너겟 등)'하는 물음을 던져줍니다. 다시 표현하면 서비스 혹은 재화의 제공자가 제공한 정해진 범위의 메뉴 안에서 고객은 추가할 수도 있고, 그렇지 않을 수도 있는 선택사항을 제시받습니다.

옵션에 대해서 세 가지 사례를 통해 느껴지는 공통점은 아래와 같다고 생각했습니다.

  • 재화 혹은 서비스의 제공자가 제한된 범위로 제공한 선택사항이 존재합니다.
  • 사용자는 해당 선택사항을 선택할 수도 있고, 그렇지 않을 수도 있습니다.
  • 선택의 시점은 그 순간입니다.

Setting

세팅 역시 설정과 관련해 자주 사용하는 표현입니다. 'set'은 집합을 의미하기도 하고, 어떠한 상태가 되게끔 만든다는 의미로 느껴지기도 합니다. 'set up'은 어떠한 상태가 되게끔 완료했다는 느낌을 전달해주기도 합니다. 실생활에서 사용되는 예로 다음의 경우를 생각해볼 수 있습니다. 유투버이자 스트리머인 어떤 분께서는 다른 스트리머 혹은 유투버의 방송 촬영 장비를 설정해주시는 컨텐츠를 보여주십니다. 아래와 같은 대화를 준비해봤습니다.

의뢰인: 세팅 벌써 다 끝났네요?

설정 제공자: 네 세팅 다 끝났고요. 사용해보시다가 불편하시면 이 설정을 바꾸시면 되고, 잘 모르겠으면 저한테 다시 연락주세요. 다시 세팅해드릴게요.

'사용해보시다가'라는 표현에 집중해보려고 합니다. 옵션과 다르게 사전에 준비해놓은 구성을 두고 비교적 긴 시간 사용하게 됩니다. 시점이 옵션과 다르게 사용 전에 이뤄집니다. 때때로 설정을 바꾸고자 한다면, 해당 시점에 설정을 바꾸기도 합니다. 마치 '환경설정'이라는 단어를 떠올리도록 합니다. 아래와 같은 대화도 준비해봤습니다.

A: 이거 뭐가 잘 작동하지 않는 것 같은데, 뭐가 문제인지 모르겠어.

B: 야 이거 세팅을 이렇게 해놨으니까 작동이 이렇지.

잠시 정리하는 차원에서 옵션과 공통점이 있다면 '제한된 범위' 내에서 설정할 수 있다는 점입니다. 그러나 차이점은 시점이 다르다는 것입니다. 옵션은 당장의 순간에서 선택하지만, 세팅은 설정 후 상대적으로 장시간 사용이 이뤄질 것으로 보입니다.

Configuration

흔히 일상에서 아래와 같은 표현을 자주 사용하지는 않습니다.

A: 야 이거 Configuration이 잘못되어 있어.

B: ???

(어쩌면 개발자 사이에서는 비교적 사용할 수도 있겠습니다.) 반면에 아래와 같은 표현은 비교적 자연스럽습니다.

A: 야 이거 Setting이 잘못되어 있어.

B: 어? 언제 이렇게 되어 있었지?

Configuration은 흔히 나누는 대화에서 상대적으로 자주 등장하지 않습니다. 앞서 세팅과 관련한 내용도 그렇지만, 논리적이기보다 일상에서 접하는 느낌으로 글을 작성한다는 점이 개인적으로 아쉬운 부분이긴 합니다. 그러나 공감하시는 분들이 많을 것이라고 스스로 합리화하고 일반화하면서 글을 작성하는 점 양해부탁드립니다. 그런데 어차피 이 글의 핵심은 단어들에 대한 정확한 정의가 아닙니다.

컴퓨터에서 언어라는 것은 Swift와 조금의 Python, R 밖에 모르기 때문에 자바나 기타 백엔드언어로 개발을 하시는 분들(그 외의 많은 분야와 많은 언어)이 공감하실 수 있는 표현으로 글을 작성하기 어려운 점 역시 양해부탁드립니다. 상대적으로 Configuration은 제한된 범위가 없다는 점이 특징으로 보입니다. 동시에 개인적으로 느끼는 Configuration이라는 표현은 사용자가 아닌, 개발자가 사용자의 사용 환경에 관여하는 것으로 느껴집니다. 어디까지나 개인적으로 느낀 부분입니다.

제한된 범위가 없다는 것처럼 느낀다는 부분을 설명하자면, 어떤 UI 요소가 다른 UI 요소에 대해 상대적인 거리가 20(단위는 무시하겠습니다)으로 설정할 수도 있고 -5000으로 설정할 수도 있다는 점입니다. 'configure'는 사용자와 관계없이 개발자 입장에서 생각하는 환경의 설정에 가깝게 느껴집니다.

물론 사용자에게 사용환경에 있어 '사용자분께서 편하신대로 이 UI 요소는 왼쪽에 배치할 수도 있고, 오른쪽에 배치할 수도 있습니다'와 같은 환경설정을 제공할 수도 있습니다. 그럼에도 왼쪽과 오른쪽이라는 위치를 결정할 수 있는 자유도는 개발자에게 있습니다.

결론

개인적으로 느낀점에 대해서 말씀을 드리면서 글을 마무리하려고 합니다. 앞서 말씀드린 것처럼 이 글의 핵심은 단어들에 대한 정확한 정의가 아니라는 점을 먼저 말씀드리고 싶습니다. 변수, 메소드, 타입의 이름을 짓는 데 시간을 들이기보다, 기준을 마련해서 서로의 약속을 마련하는 편이 시간을 아끼는 방법일 수 있다고 느꼈습니다. 즉 영어 단어가 갖는 의미, 일상생활에서 사용하는 예시보다 조직 내에서 어떠한 단어를 사용하는 기준을 마련하는 편이 고민하는 시간을 단축시킬 수도 있겠다는 생각이 들었습니다. 바꿔 표현해서 '그래서 단어의 정확한 정의가 무엇이죠?'라는 질문에 도망치면서 결론을 내리고 글을 마무리하겠습니다.

0개의 댓글