스토리 홈

인터뷰

피드

뉴스

조회수 1561

타운어스 신규플랫폼을 오픈하며

안녕하세요. 타운컴퍼니 R&D 파트의 백대현입니다.타운컴퍼니는 단체들를 위한 공동구매 플랫폼인 타운어스를 운영하는 스타트업입니다. 기술블로그를 시작하며 최근 오픈한 타운어스 2.0에 대한 소개, 타운컴퍼니 기술조직인 R&D 파트에 대한 소개를 드리려 합니다.타운어스는 대학생들이 학교 내에서 자주 진행하는 공동구매가 굉장히 복잡하고 만족하기 어렵다는 문제를 해결하기 위해 시작되었습니다. 수작업으로 진행하던 공동구매를 플랫폼화 시켜 편하게 공동구매를 진행할 수 있게 만들고, 전국단위로 공동구매를 진행하여 최저가로 구매할 수 있도록 하였습니다.2014년 9월 오픈베타서비스인 캠퍼스샵을 시작하였고 이어서 2015년 6월 정식서비스 타운어스를 런칭하여 2년 넘게 폭발적으로 성장해왔습니다.사실 그 동안 타운어스 사이트에 대한 아쉬움이 많았습니다. 사이트가 초기에 린(Lean)하게 만들어진 이후에 몇차례 업데이트를 거쳐 타운어스 비즈니스를 받쳐주고 있었지만 내부 개발팀의 부재, 인력부족으로 유지보수가 잘 되지 않고 있었습니다. 그 와중에 몇 차례의 비즈니스 전략 변경(Pivot)을 거치면서 기술과 비즈니스의 괴리가 점점 벌어지게 되었습니다.타운어스 신규플랫폼타운컴퍼니에서는 여러 고민을 거쳐 한층 업그레이드 된, 이제 대학생 뿐만 아니라 모든 단체를 위한 공동구매 커머스 플랫폼으로 거듭나고자 타운어스 2.0 프로젝트를 시작하며 기획팀, 디자인팀, 개발팀으로 이루어진 R&D 파트를 출범하고 기술조직을 구성하였습니다.새로 출범한 타운컴퍼니 R&D 파트에서는 물려받은 기존 코드베이스를 유지하며 플랫폼을 개선할 것인지, 부채를 청산하고 새로운 코드베이스를 쌓을 것인지 많은 고민을 했습니다. 결론적으로 새로운 코드베이스로 프로젝트를 진행하기로 하였는데 대표적인 이유는 아래와 같았습니다.타운어스 2.0에서 변경되어야할 기획이 상당히 많아 재설계가 필요함비즈니스적 전략 변경을 서비스에 반영하기 위해 변경해야할 기획이 상당히 많고 그 동안 기술에 반영되지 않은 비즈니스 요구사항이 많아 여려 요구사항이 복합적으로 고려되어야함서비스 아키텍처가 연속성이 없음초기에 MVP로 시작된 코드베이스가 연속적인 기술조직이 발전시키지 못하고 외주 개발과 인력 변경을 거치다 보니 일관적이지 않고 누수가 많음버그 빚더미인력부족으로 인해 그 동안 유지보수가 되지 않아 해결해야할 버그가 복합적으로 존재함 (해결되지 않은 리포팅된 이슈 450여개 OMG)위 외의 여러 이유로 타운컴퍼니 R&D 파트에서는 기술부채 파산을 선택하고, 새로운 코드베이스에서 프로젝트를 시작하기로 하였습니다.신규플랫폼 간략 소개결론적으로 타운어스 신규플랫폼은 전체적인 일정과 인력을 고려하여 우선 부분적으로 오픈하게 되었습니다. 가장 많은 사용자들이 사용하는 단체의류공동구매에 대한 서비스를 먼저 개발하게 되었고 그 외 카테고리의 공동구매는 기존플랫폼에서 서비스하고 있습니다.이렇게 시작한 타운어스 신규플랫폼의 현재 오픈한 변경 사항은 크게 아래와 같습니다.전체적인 UX/UI 업데이트공동구매를 더 편하게 시작하고 진행하고 마무리할 수 있도록 개선“공동구매방”을 친숙하게 사용할 수 있도록 유도하였습니다.단체의류 커스터마이징 기능 강화커스터마이징 의류 종류 확장 : 과잠, 코치자켓, 티셔츠 (점진적으로 확대할 예정)커스터마이징 예상가격 계산 기능편하게 단체의류 디자인을 미리 해볼 수 있는 서비스를 제공합니다.최근 오픈을 시작으로 타운컴퍼니 R&D 파트에서는 지속적으로 서비스를 발전시켜 세상 모든 단체활동을 위한 공동구매, 타운어스에 걸맞는 공동구매 커머스 플랫폼으로 만들어갈 예정입니다.기술 스택과 조직 문화타운컴퍼니 R&D 파트의 기술에 대해서는 꾸준히 소개를 드리려 합니다. 때문에 오늘은 조직 문화와 기술 스택에 대해서 간단하게 소개를 드리겠습니다.프로젝트 진행협업툴로 JIRA, Confluence, Slack을 사용하고 있습니다.프로젝트는 Agile Kanban 방식으로 테스트 주도 개발, 코드 리뷰, 페어프로그래밍을 통해 진행하고 있습니다.서비스에 대한 충분한 고민 이후에 개발을 진행하려 노력합니다.기술 스택Back-End는 Django 1.11 (DRF) 기반으로 개발하며, AWS, MySQL, Vagrant, Docker 같은 기술을 사용하고 있습니다.Front-End는 Angular 5.1을 사용해서 개발하고 있으며 Less, RxJS, Webpack 등의 기술을 사용하고 있습니다.UX/UI에 Sketch와 Zeplin을 주로 사용하고 있습니다.CI(Continuous Integration)로 Travis-CI, 배포 관리로 Fabric과 AWS CLI, 버그 리포팅으로 Sentry.io, 플랫폼 모니터링으로 ELK(ElasticSearch, Logstash, Kibana)를 사용하고 있습니다.지향하는 조직 문화 및 지원자유롭고 주도적인 조직 환경시간에 쫓겨 비루한 코드를 생산하지 않도록유연한 리모트 근무지시가 아니라 스스로 할 일을 찾는 자율 속에서 책임을 다하는 문화자유롭게 의견을 제시할 수 있는 편한 분위기건강한 비판과 토론을 장려하는 커뮤니케이션 문화이상을 추구하되 비즈니스에 기반한이상적인 기획, 디자인, 개발을 지향하지만 비즈니스 영역에 기반한 의사결정회사 모든 조직들이 더 부가가치가 높은 업무에 집중할 수 있는 환경 조성을 위해 노력TOY TIME매주 금요일 4시부터 7시까지 3시간 자유로운 주제로 프로젝트 진행세미나, 컨퍼런스 참가 적극 장려 및 도서 지원저희는 아직 성장하고 있는 만큼 개선할 점도 많고 배워야하는 부분도 많이 있습니다. 그 만큼 기술블로그를 통해 저희가 고민하고 겪었던 기술을 공유하고 소통하며 서로 성장할 수 있는 기회가 되었으면 합니다.잘 부탁드립니다.#타운컴퍼니 #서비스소개 #기업문화 #사내복지 #조직문화 #원격근무 #디지털노마드 #재택근무
조회수 1299

회사는 아무것도 하지 않는다.

"회사란 우리가 생각하는 것만큼 대단하지 않습니다."난 회사에 대해 큰 의미를 두지 않습니다. 예전 직장 생활을 시작하던 시절에는 회사를 매우 커다란 존재라고 생각했었습니다. 대학을 졸업하고 병역특례로 회사생활을 시작하다보니 회사에서 시키는 일은 무엇이든 해야 하는 줄 알았습니다. 병역특례가 끝나고 여러 회사를 다니면서 제가 가졌던 생각은 회사와 직원의 관계가 1:1의 관계라는 것이였습니다. 개인은 자신의 재능과 시간을 회사에 제공하고 회사는 그 대가를 지불하는 공평한 관계라고 생각했죠.회사란 무엇일까?"저 회사는 복지가 참 좋아." 이런 이야기가 나오는 회사가 있다면 그 회사에는 복지에 신경을 쓰는 누군가가 있는 것입니다. 왜냐면 회사는 스스로 아무것도 할 수 없는 존재이기 때문입니다. 우리가 회사라고 칭하는 많은 일들은 정확하게는 회사의 누군가를 의미하는 경우가 많습니다. 회사가 나의 가치를 몰라준다는 것은 나의 상사가 나의 가치를 몰라 준다는 것이며 우리 회사가 영업력이 강하다는 것은 영업을 정말 잘하는 누군가가 있거나 영업 관리를 잘하는 누군가가 있다는 것입니다. 이렇게 우리가 칭하는 회사에 대한 이야기는 결국 회사의 구성원에 대한 이야기로 귀결되며 결국은 나에 대한 이야기일 수도 있게 됩니다. 회사와 구성원의 관계저는 회사와 구성원의 관계가 결국 구성원과 구성원의 관계라고 생각합니다. 때문에 좋은 문화를 가진 회사라는 것은 좋은 문화를 가진 구성원들이 모여 있다는 것이며 수평적인 문화를 가졌다는 것 또한 구성원들이 서로의 전문성을 인정하고 결과를 만들어 가는 것에 집중하는 사람들로 이뤄졌다고 생각하고 있습니다.누군가는 회사와 대표를 동일시 여기기도 하지만 저는 대표도 결국 다른 구성원들과 마찬가지로 역활과 책임이 정해진 구성원이라고 생각하고 있습니다. (책임이 정해졌다는 것이 책임이 유한한다는 의미은 아닙니다. 대표는 회사에서 발생하는 모든것에 책임을 지는 구성원입니다.) 그럼에도 우리는 규칙을 지켜야 합니다."회사란 우리가 생각하는 것만큼 대단하지 않습니다."그럼에도 우리는 회사에서 정한 수많은 규칙들을 지켜나가야 합니다. 그건 우리가 서로에게 약속한 규칙이기 때문입니다. 회사가 자율 출근제가 아니라면 회사가 정한 출근시간을 지켜야 합니다. 다른 동료들과 함께 정한 약속이기 때문입니다. 대신 의미없는 규칙들을 없애 나가야 하며 그러기 위한 끊임없는 노력을 해야합니다. 이해할수 없는 제도가 있다면 왜 존재하는지 누군가에게 따져야하며 더 좋은 환경을 만들어 나가기 위해 노력해야 합니다. 그리고 이 모든 것들은 나와 구성원들이 더 일을 잘 할 수 있게 하기 위함입니다.특히 스타트업이라면 더욱 사람이 중요합니다.스타트업은 더욱 그러합니다. 스타트업은 회사라는 프로세스 보다 사람의 역할이 중요하며 한명 한명이 존재의 이유가 분명한 조직입니다. 우리가 이루고자 하는 가치를 실현하는 것에 모든것을 바치는 사람들이 일하는 곳입니다. 회사를 위해서가 아니라 나와 내가 이루고자 하는 가치를 위해 모인 사람들이 일하는 곳입니다. #와탭랩스 #기업문화 #조직문화 #인사이트 #경험공유 #일지
조회수 1687

Tips for building fast portrait segmentation network with TensorFlow Lite

PrefaceDeep learning has led to a series of breakthroughs in many areas. However, successful deep learning models often require significant amounts of computational resources, memory and power. Deploying efficient deep learning models on mobile devices became the main technological challenge for many mobile tech companies.Hyperconnect developed a mobile app named Azar which has a large fan base all over the world. Recently, Machine Learning Team has been focusing on developing mobile deep learning technologies which can boost user experience in Azar app. Below, you can see a demo video of our image segmentation technology (HyperCut) running on Samsung Galaxy J7. Our benchmark target is a real-time (>= 30 fps) inference on Galaxy J7 (Exynos 7580 CPU, 1.5 GHz) using only a single core.Figure 1. Our network runs fast on mobile devices, achieving 6 ms of single inference on Pixel 1 and 28 ms on Samsung Galaxy J7. Full length video. There are several approaches to achieve fast inference speed on mobile device. 8-bit quantization is one of the popular approaches that meet our speed-accuracy requirement. We use TensorFlow Lite as our main framework for mobile inference. TensorFlow Lite supports SIMD optimized operations for 8-bit quantized weights and activations. However, TensorFlow Lite is still in pre-alpha (developer preview) stage and lacks many features. In order to achive our goal, we had to do the following:Understand details of TensorFlow and Tensorflow Lite implementation.Design our own neural network that can fully utilize optimized kernels of TensorFlow Lite. (Refer to 1, 2 and 3)Modify TOCO: TensorFlow Lite Optimizing Converter to correctly convert unsupported layers. (Refer to 4)Accelerate several quantized-layers with SIMD optimized code. (Refer to 5 and 6)We are willing to share our trials and errors in this post and we hope that readers will enjoy mobile deep learning world :)1) Why is depthwise separable layer fast in Tensorflow Lite ?Implementing low-level programs requires a bit different ideas and approaches than usual. We should be aware that especially on mobile devices using cache memory is important for fast inference.Figure 2. Memory access requires much more energy (640 pJ) than addition or multiplication.Accessing cache memory (8 pJ) is much cheaper than using the main memory (table courtesy of Ardavan Pedram) In order to get insight into how intrinsics instructions are implemented in Tensorflow Lite, we had to analyze some implementations including depthwise separable convolution with 3x3 kernelsBelow we describe some of the main optimization techniques that are used for building lightweight and faster programs.Loop UnrollingCan you spot the difference between the following two code fragments?for (int i = 0; i < 32; i++) { x[i] = 1; if (i%4 == 3) x[i] = 3; } for (int i = 0; i < 8; i++) { x[4*i ] = 1; x[4*i+1] = 1; x[4*i+2] = 1; x[4*i+3] = 3; } The former way is what we usually write, and the latter is loop-unrolled version of former one. Even though unrolling loops are discouraged from the perspective of software design and development due to severe redundancy, with low-level architecture this kind of unrolling has non-negligible benefits. In the example described above, the unrolled version avoids examining 24 conditional statements in for loop, along with neglecting 32 conditional statements of if.Furthermore, with careful implementation, these advantages can be magnified with the aid of SIMD architecture. Nowadays some compilers have options which automatically unroll some repetitive statements, yet they are unable to deal with complex loops.Separate implementation for each caseConvolution layer can take several parameters. For example, in depthwise separable layer, we can have many combinations with different parameters (depth_multiplier x stride x rate x kernel_size). Rather than writing single program available to deal with every case, in low-level architectures, writing number of case-specific implementations is preferred. The main rationale is that we need to fully utilize the special properties for each case. For convolution operation, naive implementation with several for loops can deal with arbitrary kernel size and strides, however this kind of implementation might be slow. Instead, one can concentrate on small set of actually used cases (e.g. 1x1 convolution with stride 1, 3x3 convolution with stride 2 and others) and fully consider the structure of every subproblem.For example, in TensorFlow Lite there is a kernel-optimized implementation of depthwise convolution, targeted at 3x3 kernel size:template <int kFixedOutputY, int kFixedOutputX, int kFixedStrideWidth, int kFixedStrideHeight> struct ConvKernel3x3FilterDepth8 {}; Tensorflow Lite further specifies following 16 cases with different strides, width and height of outputs for its internal implementation:template <> struct ConvKernel3x3FilterDepth8<8, 8, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 4, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 2, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 1, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 2, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 4, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<1, 4, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 1, 1, 1> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 2, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 4, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<4, 1, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 2, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 4, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<2, 1, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<1, 2, 2, 2> { ... } template <> struct ConvKernel3x3FilterDepth8<1, 4, 2, 2> { ... } Smart Memory Access PatternSince low-level programs are executed many times in repetitive fashion, minimizing duplicated memory access for both input and output is necessary. If we use SIMD architecture, we can load nearby elements together at once (Data Parallelism) and in order to reduce duplicated read memory access, we can traverse the input array by means of a snake-path.Figure 3. Memory access pattern for 8x8 output and unit stride, implemented in Tensorflow Lite's depthwise 3x3 convolution. The next example which is targeted to be used in much smaller 4x1 output block also demonstrates how to reuse preloaded variables efficiently. Note that the stored location does not change for variables which are loaded in previous stage (in the following figure, bold variables are reused):Figure 4. Memory access pattern for 4x1 output and stride 2, implemented in Tensorflow Lite's depthwise 3x3 convolution. 2) Be aware of using atrous depthwise convolutionAtrous (dilated) convolution is known to be useful to achieve better result for image segmentation[1]. We also decided to use atrous depthwise convolution in our network. One day, we tried to set stride for atrous depthwise convolution to make it accelerate computation, however we failed, because the layer usage in TensorFlow (≤ 1.8) is constrained.In Tensorflow documentation of tf.nn.depthwise_conv2d (slim.depthwise_conv2d also wraps this function), you can find this explanation of rate parameter.rate: 1-D of size 2. The dilation rate in which we sample input values across the height and width dimensions in atrous convolution. If it is greater than 1, then all values of strides must be 1.Even though TensorFlow doesn’t support strided atrous function, it doesn’t raise any error if you set rate > 1 and stride > 1. <!-- The output of layer doesn't seem to be wrong. -->>>> import tensorflow as tf >>> tf.enable_eager_execution() >>> input_tensor = tf.constant(list(range(64)), shape=[1, 8, 8, 1], dtype=tf.float32) >>> filter_tensor = tf.constant(list(range(1, 10)), shape=[3, 3, 1, 1], dtype=tf.float32) >>> print(tf.nn.depthwise_conv2d(input_tensor, filter_tensor, strides=[1, 2, 2, 1], padding="VALID", rate=[2, 2])) tf.Tensor( [[[[ 302.] [ 330.] [ 548.] [ 587.]] [[ 526.] [ 554.] [ 860.] [ 899.]] [[1284.] [1317.] [1920.] [1965.]] [[1548.] [1581.] [2280.] [2325.]]]], shape=(1, 4, 4, 1), dtype=float32) >>> 0 * 5 + 2 * 6 + 16 * 8 + 9 * 18 # The value in (0, 0) is correct 302 >>> 0 * 4 + 2 * 5 + 4 * 6 + 16 * 7 + 18 * 8 + 20 * 9 # But, the value in (0, 1) is wrong! 470 Let’s find the reason why this difference happened. If we just put tf.space_to_batch and tf.batch_to_space before and after convolution layer, then we can use convolution operation for atrous convolution (profit!). On the other hand, it isn’t straightforward how to handle stride and dilation together. In TensorFlow, we need to be aware of this problem in depthwise convolution.3) Architecture design principles for efficient segmentation networkUsually segmentation takes more time than classification since it has to upsample high spatial resolution map. Therefore, it is important to reduce inference time as much as possible to make the application run in real-time.It is important to focus on spatial resolution when designing real-time application. One of the easiest ways is to reduce the size of input images without losing accuracy. Assuming that the network is fully convolutional, you can accelerate the model about four times faster if the size of input is halved. In literature[2], it is known that small size of input images doesn’t hurt accuracy a lot.Another simple strategy to adopt is early downsampling when stacking convolution layers. Even with the same number of convolution layers, you can reduce the time with strided convolution or pooling within early layers.There is also a tip for selecting the size of input image when you use Tensorflow Lite quantized model. The optimized implementations of convolution run best when the width and height of image is multiple of 8. Tensorflow Lite first loads multiples of 8, then multiples of 4, 2 and 1 respectively. Therefore, it is the best to keep the size of every input of layer as a multiple of 8.Substituting multiple operations into single operation can improve speed a bit. For example, convolution followed by max pooling can be usually replaced by strided convolution. Transpose convolution can also be replaced by resizing followed by convolution. In general, these operations are substitutable because they perform the same role in the network. There are no big empirical differences among these operations. <!-- substitutable -->Tips described above help to accelerate inference speed but they can also hurt accuracy. Therefore, we adopted some state-of-the-art blocks rather than using naive convolution blocks.Figure 5.  Atrous spatial pyramid pooling (figure courtesy of Liang-Chieh Chen) Atrous spatial pyramid pooling[1] is a block which mimics the pyramid pooling operation with atrous convolution. DeepLab uses this block in the last layer.We also substitute most of the convolution layers with efficient depthwise separable convolution layers. They are basic building blocks for MobileNetV1[3] and MobileNetV2[4] which are well optimized in Tensorflow Lite.4) Folding batchnorm into atrous depthwise convolutionWhen quantizing convolution operation followed by batchnorm, batchnorm layer must be folded into the convolution layers to reduce computation cost. After folding, the batchnorm is reduced to folded weights and folded biases and the batchnorm-folded convolution will be computed in one convolution layer in TensorFlow Lite[5]. Batchnorm gets automatically folded using tf.contrib.quantize if the batchnorm layer comes right after the convolution layer. However, folding batchnorm into atrous depthwise convolution is not easy.In TensorFlow’s slim.separable_convolution2d, atrous depthwise convolution is implemented by adding SpaceToBatchND and BatchToSpaceND operations to normal depthwise convolution as mentioned previously. If you add a batchnorm to this operation by including argument normalizer_fn=slim.batch_norm, batchnorm does not get attached directly to the convolution layer. Instead, the graph will look like the diagram below: SpaceToBatchND → DepthwiseConv2dNative → BatchToSpaceND → BatchNorm The first thing we tried was to modify TensorFlow quantization to fold batchnorm bypassing BatchToSpaceND without changing the order of operations. With this approach, the folded bias term remained after BatchToSpaceND, away from the convolution layer. Then, it became separate BroadcastAdd operation in TensorFlow Lite model rather than fused into convolution. Surprisingly, it turned out that BroadcastAdd was much slower than the corresponding convolution operation in our experiment:Timing log from the experiment on Galaxy S8 ... [DepthwiseConv] elapsed time: 34us [BroadcastAdd] elapsed time: 107us ... To remove BroadcastAdd layer, we decided to change the network itself instead of fixing TensorFlow quantization. Within slim.separable_convolution2d layer, we swapped positions of BatchNorm and BatchToSpaceND. SpaceToBatchND → DepthwiseConv2dNative → BatchNorm → BatchToSpaceND Even though batchnorm relocation could lead to different outputs values compared to the original, we did not notice any degradation in segmentation quality.5) SIMD-optimized implementation for quantized resize bilinear layerAt the time of accelerating TensorFlow Lite framework, conv2d_transpose layer was not supported. However, we could use ResizeBilinear layer for upsampling as well. The only problem of this layer is that there is no quantized implementation, therefore we implemented our own SIMD quantized version of 2x2 upsampling ResizeBilinear layer.Figure 6. 2x2 bilinear upsampling without corner alignnment. To upsample image, original image pixels (red circles) are interlayed with new interpolated image pixels (grey circles). In order to simplify implementation we do not compute pixel values for the bottommost and rightmost pixels, denoted as green circles.for (int b = 0; b < batches; b++) { for (int y0 = 0, y = 0; y <= output_height - 2; y += 2, y0++) { for (int x0 = 0, x = 0; x <= output_width - 2; x += 2, x0++) { int32 x1 = std::min(x0 + 1, input_width - 1); int32 y1 = std::min(y0 + 1, input_height - 1); ResizeBilinearKernel2x2(x0, x1, y0, y1, x, y, depth, b, input_data, input_dims, output_data, output_dims); } } } Every new pixel value is computed for each batch separately. Our core function ResizeBilinearKernel2x2 computes 4 pixel values across multiple channels at once.Figure 7. Example of 2x2 bilinear upsampling of top left corner of image. (a) Original pixel values are simply reused and (b) – (d) used to interpolate new pixel values. Red circles represent original pixel values. Blue circles are new interpolated pixel values computed from pixel values denoted as circles with black circumference. NEON (Advanced SIMD) intrinsics enable us to process multiple data at once with a single instruction, in other words processing multiple data at once. Since we deal with uint8 input values we can store our data in one of the following formats uint8x16_t, uint8x8_t and uint8_t, that can hold 16, 8 and 1 uint8 values respectively. This representation allows to interpolate pixel values across multiple channels at once. Network architecture is highly rewarded when channels of feature maps are multiples of 16 or 8:// Handle 16 input channels at once int step = 16; for (int ic16 = ic; ic16 <= depth - step; ic16 += step) { ... ic += step; } // Handle 8 input channels at a once step = 8; for (int ic8 = ic; ic8 <= depth - step; ic8 += step) { ... ic += step; } // Handle one input channel at once for (int ic1 = ic; ic1 < depth; ic1++) { ... } SIMD implementation of quantized bilinear upsampling is straightforward. Top left pixel value is reused (Fig. 7a). Bottom left (Fig. 7b) and top right (Fig. 7c) pixel values are mean of two adjacent original pixel values. Finally, botom right pixel (Fig. 7d) is mean of 4 diagonally adjacent original pixel values.The only issue that we have to take care of is 8-bit integer overflow. Without a solid knowledge of NEON intrinsics we could go down the rabbit hole of taking care of overflowing by ourself. Fortunately, the range of NEON intrinsics is broad and we can utilize those intrinsics that fit our needs. The snippet of code below (using vrhaddq_u8) shows an interpolation (Fig. 7d) of 16 pixel values at once for bottom right pixel value:// Bottom right output_ptr += output_x_offset; uint8x16_t left_interpolation = vrhaddq_u8(x0y0, x0y1); uint8x16_t right_interpolation = vrhaddq_u8(x1y0, x1y1); uint8x16_t bottom_right_interpolation = vrhaddq_u8(left_interpolation, right_interpolation); vst1q_u8(output_ptr, bottom_right_interpolation); 6) Pitfalls in softmax layer and demo codeThe first impression of inference in TensorFlow Lite was very slow. It took 85 ms in Galaxy J7 at that time. We tested the first prototype of TensorFlow Lite demo app by just changing the output size from 1,001 to 51,200 (= 160x160x2)After profiling, we found out that there were two unbelievable bottlenecks in implementation. Out of 85 ms of inference time, tensors[idx].copyTo(outputs.get(idx)); line in Tensor.java took up to 11 ms (13 %) and softmax layer 23 ms (27 %). If we would be able to accelerate those operations, we could reduce almost 40 % of the total inference time!First, we looked at the demo code and identified tensors[idx].copyTo(outputs.get(idx)); as a source of problem. It seemed that the slowdown was caused by copyTo operation, but to our surprise it came from int[] dstShape = NativeInterpreterWrapper.shapeOf(dst); because it checks every element (in our case, 51,200) of array to fill the shape. After fixing the output size, we gained 13 % speedup in inference time.<T> T copyTo(T dst) { ... // This is just example, of course, hardcoding output shape here is a bad practice // In our actual app, we build our own JNI interface with just using c++ code // int[] dstShape = NativeInterpreterWrapper.shapeOf(dst); int[] dstShape = {1, width*height*channel}; ... } The softmax layer was our next problem. TensorFlow Lite’s optimized softmax implementation assumes that depth (= channel) is bigger than outer_size (= height x width). In classification task, the usual output looks like [1, 1(height), 1(width), 1001(depth)], but in our segmentation task, depth is 2 and outer_size is multiple of height and width (outer_size » depth). Implementation of softmax layer in Tensorflow Lite is optimized for classification task and therefore loops over depth instead of outer_size. This leads to unacceptably slow inference time of softmax layer when used in segmentation network.We can solve this problem in many different ways. First, we can just use sigmoid layer instead of softmax in 2-class portrait segmentation. TensorFlow Lite has very well optimized sigmoid layer.Secondly, we could write SIMD optimized code and loop over depth instead of outer_size. You can see similar implementation at Tencent’s ncnn softmax layer, however, this approach has still its shortcomings. Unlike ncnn, TensorFlow Lite uses NHWC as a default tensor format:Figure 8. NHWC vs NCHW In other words, for NHWC, near elements of tensor hold channel-wise information and not spatial-wise. It is not simple to write optimized code for any channel size, unless you include transpose operation before and after softmax layer. In our case, we tried to implement softmax layer assumming 2-channel output.Thirdly, we can implement softmax layer using pre-calculated lookup table. Because we use 8-bit quantization and 2-class output (foreground and background) there are only 65,536 (= 256x256) different combinations of quantized input values that can be stored in lookup table:for (int fg = 0; fg < 256; fg++) { for (int bg = 0; bg < 256; bg++) { // Dequantize float fg_real = input->params.scale * (fg - input->params.zero_point); float bg_real = input->params.scale * (bg - input->params.zero_point); // Pre-calculating Softmax Values ... // Quantize precalculated_softmax[x][y] = static_cast<uint8_t>(clamped); } } ConclusionIn this post, we described the main challenges we had to solve in order to run portrait segmentation network on mobile devices. Our main focus was to keep high segmentation accuracy while being able to support even old devices, such as Samsung Galaxy J7. We wish our tips and tricks can give a better understanding of how to overcome common challenges when designing neural networks and inference engines for mobile devices.At the top of this post you can see portrait segmentation effect that is now available in Azar app. If you have any questions or want to discuss anything related to segmentation task, contact us at ml-contact@hcpnt.com. Enjoy Azar and mobile deep learning world!References[1] L. Chen, G. Papandreou, F. Schroff, H. Adam. Rethinking Atrous Convolution for Semantic Image Segmentation. June 17, 2017, https://arxiv.org/abs/1706.05587[2] C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, Z. Wojna. Rethinking the Inception Architecture for Computer Vision. December 11, 2015, https://arxiv.org/abs/1512.00567[3] A. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto, H. Adam. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications, April 17, 2017, https://arxiv.org/abs/1704.04861[4] M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, L. Chen. MobileNetV2: Inverted Residuals and Linear Bottlenecks. January 18, 2018, https://arxiv.org/abs/1801.04381[5] B. Jacob, S. Kligys, B. Chen, M. Zhu, M. Tang, A. Howard, H. Adam, D. Kalenichenko. Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference. December 15, 2017, https://arxiv.org/abs/1712.05877
조회수 13607

TLX에 대한 진실 혹은 거짓

인사가 만사. 리더가 해야될 일은 적절한 인재를 적절히 배치하는 인데. 중요하지만 어디 그게 쉬운가요;;TLX PASS에서 Product Owner (PO)를 맡게 되면서 좋은 사람을 팀내에 모셔오려고 노력하지만, jobplanet 리뷰가 좋지 않아서 발목 잡히는 경험이 몇번 있었네요.깔끔히 좋지 않은 부분은 인정하고 어떻게 바뀌어 나가고 있는지 알려드리고 싶어 글을 적습니다.(Jobplanet TLX 페이지로 가면 리뷰를 하나하나 보실 수 있습니다.)— 참고사항 —TLX는 10년차 회사이며, 저는 이 회사에서 일한지 1년이 거의 다 되어갑니다. 초기엔 B2B 영업기반으로 회사 복지를 대행해주는 회사였으며, 8년차부터 제품개발팀을 구성해 App 개발을 통해 B2C 사업을 진행하고 있습니다. 제가 PO로 맡고 있는 팀은 15명 내외의 다양한 분야(사업/제품개발/마케팅/영업)의 인력들이 한 팀으로 일하며, B2C 사업을 담당하고 있습니다.아래는 저희 팀에서 오픈 된 포지션입니다. 안드로이드 개발자백엔드 개발자SNS 마케터아래는 저희 팀에서 곧 오픈될 포지션 입니다.모바일 UI 디자이너브랜드 디자이너데이터 분석 및 그로스 해킹 담당그럼 리뷰부터 한 번 보시죠.#1사실 비전이 없어보여서 자주 갈등되긴함. 퇴사자는 꾸준히생김.인력돌려막기 심해서 전문성없이 일하는 인력이보임. 팀에서 배우는사람도있고. 실무자 채용이 상식인데 학원좀 다녔다고 만들수있을거같나. ;;ㅋ인력관리를 못하긴함 — 별점 2/5, 전문직 | 현직원 | 경기 | 2018/1/18#2영업팀은 다른회사같고 분위기도 무섭고 군기잡고 소리지르고 욕도함 다 퇴사함 개발디자인쪽은 널널하고 능력도 없는듯 뭘 요청해도 소통할줄모르고 열심히 안함 대충다니고 싶으면 이쪽을 추천 이쪽은 연차 낮아도 태도 안좋으니 말다했지본인이 일은 꽤 하거나 소통이 잘되는 성격이거나 상식적이라면 추천하지 않음 잘생각해보시길요 — 별점 3/5, IT/인터넷 | 전직원 | 경기 | 2017/9/27#3업무적인 압박이 별로 없어서 배우려고 회사에 들어오면 발전 없을 수 있음 / 주니어들은 자발적인 일처리가 어려울 수 있음 — 별점 4/5, 마케팅/시장조사 | 전직원 | 경기 | 2017/8/2#4대기업도 아니면서 사내정치 장난아님. 윗 사람들 말이 계속 바뀜. 부서가 자꾸 생기고 사라짐. 군대식 문화. 부서에 따라 야근있음. 회사 망할 것 같음. — 별점 1/5 | IT/인터넷 | 전직원 | 경기 | 2017/7/13#5말이 매번 바뀌고, 이거 잘 하다가 갑자기 다른 거 하라니 당황.. 그런데 이게 매번 바뀜. 연차는 안쓰면 수당 안나오니 쓰라는 식이고, 영업은 실적 압박이 많음.. 개발쪽에 비해 야근하는일이 비일비재, , 갑질마인드로 제휴사 대하는 태도 — 별점 2/5 | 영업/제휴 | 전직원 | 경기 | 2017/7/9#6가족회사/직원들한테 돈쓰는거 아까워함/ 사내정치로 뒤통수의 연속으로 괜찮은사람은 다 나감 — 별점 1/5 | IT/인터넷 | 전직원 | 경기 | 2017/2/11그럼 하나씩 얘기해 보겠습니다. 편의상 어투는 평소에 제가 쓰는 어투로 바꿀께요.비전이 없다 —TLX PASS는 원래 운동시설만 이용하다가 사용자의 요청으로 자연스럽게 피부관리나 마사지와 같은 분야로 사업이 확장됐다. 이 과정에서 기존에 가지고 있던 건강관리라는 비전이 좀 흐릿해졌고, 2017년이 좀 전환기였던 것 같다. 여느 O2O 플랫폼과 같이 제휴사에서 파생되는 모든 비지니스를 IT를 통해 혁신시키자는 큰 줄기 아래 지금은 각 사업부가 각자의 비전을 가지고 고객의 문제를 해결하기 위해 움직이고 있다.TLX PASS 만 놓고 봤을 때, 빈 자리를 채워주는 사업 모델의 특성상 한계가 보이는 것은 맞다. 그래서 다른 부서에서는 새로운 제품으로 신사업을 모색하고 있고, 기존에 우리가 가지고 있는 제휴사 네트워크를 활용한 유통사업 또한 차근차근 밟아 나가고 있다.B2C 고객에게 TLX PASS가 어떤 문제를 풀어주어야 할지는 우리 팀 멤버들이 다같이 고민하고 있다. 월 매출이 10억이 넘어가지만 2017년의 성장을 돌아보면 우리가 아직 정확히 문제를 정의하지 못했다는 반성을 하게된다. 2018년이 이 문제를 정의하는 여정이 될 것 같다.비전이 성장성을 의미한다면 사업 모델의 한계에도 불구하고 아직 성장할 부분은 많다고 생각한다. 매주 데이터를 보며 새로운 기능이나 운영 방식을 테스트해 나가는데, 주간 3% 성장 목표를 달성해 나가고 있다.이 속도라면 현재 우리 팀이 가지고 있는 단기 목표인 상반기내에 유저베이스 2배수가 가능하리라 생각한다.인력관리 못 한다 —사내에 HR담당자가 지금도 없다. 꾸준히 요청하고 있지만 다른 포지션이 더 급해서, PO/CTO/대표가 팀에 필요한 인력을 리크루팅 하고 있다. (지금 나 처럼)회사가 성장하면서 기존 멤버들이 같이 성장해주면 정말 좋지만, 현실은 그러지 못하는 경우가 많다. 신규채용이 늦어져 고육지책으로 기존 인력의 재교육을 진행한 적이 있었지만, 결국 신규채용이후에 업무는 신규인력이 진행했다. 적절한 시점에 인력수급이 아쉬운 부분이다.이제 50명 정도 되는 회사다. 제품개발 인력만 본다면 20명 안팎. 한 사람이 하나의 플랫폼을 맡아서 진행하기 때문에, 사수를 잘 둬서 일을 배우려고 했을 때 좋은 회사는 아니다. 다만, 회사에서 자기 학습을 위한 도서구매 및 세미나참석은 적극 지원해 주고 있다.팀에서는 회식 문화를 지양하고, 회고미팅을 통해서 업무방식으로 인해 생긴 문제점을 해결해 나가고 있다. 이를 통해 팀이 스스로 문화를 만들어 나가면서 소속감을 높이는 일을 하고 있다.커뮤니케이션이 잘 안된다 —작년엔 기능조직으로 조직이 구성되었다. 팀장이 부서장에게 부서장이 임원에게 보고를 했고, 임원미팅을 통해서 결정된 사항이 다시 부서장 미팅, 팀장 미팅을 통해서 전달이 되었으니. 몇단계를 통해서나 왔는지 모르겠다;;;제품개발부는 장기적인 제품 로드맵을 중시했고, 사업부는 단기적인 매출을 중요시 했으니. 사업부 입장에서 답답함을 느낄만도 했다.기능조직으로 나눠져있다보니, 적은 인원수에도 커뮤니케이션이 원할하지 못해 지금의 사업부제로 개편되었다. 지금은 같은 팀에 사업/제품개발/영업/마케팅 인력이 모두 같이 일하고 있다.현재 우리팀은 칸반을 중심으로 업무가 진행된다. 결국 제품의 완성도와 사업기회가 같은 선상에서 고민되며, 하나의 우선순위 리스트로 제품개발 업무가 관리되고 있다.칸반 미팅/데이터 공유 미팅/팀 레터를 통해 서로 같은 수준의 정보가 공유될 수 있도록 하고 있다.팀 레터는 매주 작성되는데, 정보량이 제일 많은 PO가 제품/사업적인 방향과 진행사항을 팀원에게 공유한다.야근이 많다 / 널널하다 —1년 동안 나는 야근한 경험이 1번 있다. 그리고 이 글을 적는다고 두 번째 야근을 하고 있다. 물론 야근이 잦은 사람도 많다. 이건 선택의 문제인 것 같다. 나는 주로 아이를 재우고 늦은 밤에 사용자 데이터 분석을 하는 경우가 많다. 칸반으로 모든 업무가 공유되고 하나의 목표를 위해 달려가고 있는 팀에서 프리라이더가 버틸 자리는 없다.망할 것 같다 —2월중에 브릿지 투자가 잘 마무리될거라 향후 2년간은 망하진 않을 것 같다.사내정치가 심하다 —사내정치가 있다. 대표가 2명인 것부터 시작해서 그런 요소들이 많다. 이전엔 사내정치를 통해서 제품개발의 우선순위가 바뀌는 경우가 빈번했는데, 사업부제로 변경된 이후로는 많이 줄어들었다.내가 PO가 되고 나서는 역으로 사내정치를 이용해 제품 로드맵에 맞게 제품 개발이 진행될 수 있게 사업 우선순위를 조절하고 있다. 기존에 이벤트 위주로 매출을 올리던 구조에서, 데이터분석을 기반으로한 제품개선과정을 통해서 고객을 늘려나가는 구조로 변경해 나가고 있다.사실 다 떠나서 성장에 집중해서 성장 하면 된다고 본다. 고인물이 썩지 흐르는 물은 썩지 않으니깐.다시 한 번 깨알같은 홍보. 주간 성장률 3%이랬다가 저랬다가 한다 —내가 처음 맡았던 예약시스템 진행을 결정할 때도, 그 당시 경영진은 예약보다 헬스장 1년 회원권을 TLX에서 판매하는게 더 중요하다고 판단해서 진행 중인 프로젝트가 중단되었다. 그 이후에 회원권 판매를 위해선 기존 코드에 대한 정리가 선행되어야 된다는게 뒤늦게 발견되어, 개발이 늦어지고 끝내 두 기능 모두 릴리즈 되지 못했다.작년엔 기능조직과 긴 의사결정 구조로 한 번 결정된 사항이 실무진에 도달할 때 쯤에는, 다른 사업기회로 기존의 의사결정이 뒤집히는 적이 많았다. 그리고 내가 처음 들어왔을 때는 대표 두분이 제품개발/제품중심성장/데이터를 기반으로한 성장 등의 개념이 많이 부족했고 책임과 권한을 위임하는 데 좀 서툴렀던게 사실이다.지금은 달라졌다. 제품에 대한 책임과 권한은 PO가 확실하게 가지고 있다. 우리팀은 칸반으로 제품 개발 프로세스를 관리하고, 칸반에서는 개발이 진행되던 테스크를 PO가 개발을 중단시키진 않는다. 다만 다음 테스크에 대한 우선순위를 잘 정리할 뿐이다. 의사결정도 한 팀에 다양한 인력이 같이 일하고 있어서 빠르다. 대부분의 의사결정은 PO선에서 진행되고, 그 이상이어도 대표와 바로 의견을 조율해 의사결정 라인을 짧게 가져가고 있다.직원에게 돈 쓰는걸 아까워 한다 —비용 컨트롤이 좀 심하긴하다. 이건 업태 자체가 현금흐름이 매우 중요한 업이라서 그렇다. 밖에서 보면 중개해주고, 낙전수입으로 땅짚고 헤엄치는 것 처럼 보이나, 안에서 보면 마냥 그렇진 않다. 8년간 생존전쟁을 치러왔고, 2년전 Series A 투자로 어느정도 캐쉬가 있게 된 회사이다. 올해 브릿지 투자와 Series B 투자를 마치고 나면 복지정책에 대해서 목소리를 크게 낼 생각이다.나는 우리팀 매출/수익이 높아지는 만큼 회사에 복지를 요구할 생각이다. 아직까지는 간단히 간식을 사먹는 수준이지만.기본적으로 TLX 직원에게는 12만원 정도의 PASS가 매월 지급되어서, TLX 제휴시설을 이용할 수 있다. 나는 주로 헬스장에 쓰고, 아내가 한달에 한 번 에스테틱시설에서 마사지를 받고 있다.마치며 —안 좋은 리뷰를 일부러 언급한게 아닌가 하는 생각도 듭니다. 어떻게 보면 가장 어려운 길인 정공법을 택한 것 같기도 하네요. 하지만 단점을 덮어두고 넘어가기 보다는 들어내서 고쳐나가는게 올바른 방향이라고 생각합니다. JobPlanet 리뷰에 나온 모습이 현재의 모습이 아니라는 것을 알려드리고 싶었습니다.리뷰에 나온 내용중에 아직도 개선하려 노력하는 부분이 많습니다. 작게는 제가 맡은 부서부터 시작해서 크게는 회사의 시스템까지 변화를 만들려고 노력 중 입니다.저희 팀에서는 데이터 기반으로 빠르게 실행에 옮겨서 제품을 통한 성장을 추구합니다. PO인 제가 직접 데이터 분석을 해서, 여러 가설들을 실험해 나가고 있습니다. 같이 아이디어를 내고 실행하고 학습해 나갈 사람들을 찾고 있습니다.한줄요약 —현재 제가 주도적으로 바꿔나가고 있는 팀/회사의 모습은 JobPlanet 리뷰와 다르며, 저와 같이 성장해 나갈 사람을 찾습니다.#티엘엑스 #TLX #기업문화 #조직문화 #비전 #목표
조회수 525

새해에도 사회공헌 열풍이 계속된다

- 현중특전동지회 '물품 기증 행사' 사회공헌 열풍이 거셌던 2018년인데요. 기해년(己亥年) 새해도 불우이웃을 향한 사랑이 벌써부터 뜨겁습니다. 현중특전동지회가 지난 1월 10일 방어진노인복지관을 찾아, ‘독거노인을 위한 물품기증 행사’를 가졌습니다.이들은 독거노인들이 따뜻한 겨울을 보냈으면 하는 마음으로 쌀, 라면 등 30만원 상당의 물품을 전달했어요. 현중특전동지회는 현대중공업 직원들 가운데 특전사 출신들이 모인 사내 봉사단체입니다.특전동지회는 지난 2005년부터 연 10회씩 수중 정화활동을 펼치는 것으로 유명한데요. 한번 나설 때마다 바다 속에서 4톤가량의 쓰레기를 수거하고 있어요. 이웃들을 배려하고 사랑하는 이들이야말로 진짜 사나이가 아닐까요?   현대건설기계도 연말 연시를 맞아, 사랑의 연탄 나눔행사에 나섰습니다. 현대건설기계 신입사원 10여명은 충북 음성군 관내 독거노인 15가구에 연탄 3천750장을 전달하며 따뜻한 온정을 나눴는데요.이번에 전달한 사랑의 연탄은 현대건설기계 직원들이 지난 2018년 연초부터 진행한 사랑의 동전 모으기 행사를 통해 마련됐습니다.봉사활동에 참여한 현대건설기계 최문후 사원은 “이번 봉사활동을 통해 주위 어려운 환경에서 생활하는 노인 분들이 아직도 많다는 걸 알게 됐다”며, “잠시나마 어르신들의 밝은 표정을 보는 보람의 시간이 됐다”고 말했습니다.  현대건설기계는 설, 추석 등 명절이면 어르신들께 위문품을 전달하고 있는데요.이처럼 현대중공업그룹 사우들이 소속을 막론하고 지속적으로 소외이웃들에게 사랑의 손길을 전하며, 함께 사는 지역사회를 만들어가고 있습니다.#현대중공업 #기업문화 #기업봉사 #연말봉사 #조직문화 #직무정보 #공채정보 #사회공헌 #CSR활동
조회수 1209

스타트업을 시작하며... 1

기록으로 남겨보고 싶었다.사업이 성공적으로 launching되고 나서, 지금의 고민이 나중에 어떻게 증명될 수 있을까에 대한 호기심이랄까? ^^;; 새로운 서비스를 만들어가는 과정에 대한 기록을 남기는 것이 이 글의 목적이다. Brunch에 쓰기 전에 다른 곳에 남겼던 기록들을 이곳으로 옮겨왔다.Phase 0. 향수 서비스를 고민하기 시작하다.사실 지금 고민하고 있는 서비스는 어떤 특정한 problem을 해결하겠다는 접근에서 시작된 것이 아니었다. 원향(Fragrance oil)을 제조하는 회사와 business 관계가 있었고.. 4년 전 처음 그 회사(DROM fragrance)와 업무가 시작될  때부터 그 향을 어떻게 사용해 볼 수 있을까에 대한 고민을 하고 있었다. 그러던 중, Kukka 서비스를 보면서 향을 subscription 해주면 어떨까? 라는 아이디어를 떠올리고 비즈니스 모델을 생각하기 시작하였다. 향수는 지금까지 강력한 브랜드 가치를 통해 "오만한" 가격을 받고 있으며.. start-up에게 깨져본 적이 없는 영역이었다.Phase I. 서비스 모델을 구체화해 나가다..향수를 SPA업체들과 같이 트렌디하게 빨리 만들어서, 그 시점의 trend에 맞게 또한 날씨, fashon 및 occasion을 세팅하여서 한 달 정도에 사용 가능한 5ml 정도를 보내준다면 남기지 않고 잘 사용하고 버릴 수 있지 않을까?Phase II. 문제를 define 해보기 시작하다.사실 문제를 발견하고 그것을 어떻게 서비스화 할 것인가에 대한 고민이 순서에 맞다고 생각하지만, 향수라는 토픽을 정해 두고 시작하니 문제를 오히려 찾아야 하는 상황이다..  파우더 룸 같은 유명 female 카페에 가서 향수 카테고리를 뒤져보니..  남자친구나 저에게 어울리는 향이 무엇일까요? 가 problem number 1이고..   향수 소분 해서 팝니다... 연락 주세요! 가 problem number 2이고..  내가 생각하는 것은.. 향이 50ml, 100ml 이렇게 팔다 보니 너무 많이 집에 쌓아있다는 점.  나에게 어울린다고 생각하는 향수가.. 날씨, occasion 등을 모두 cover 할 수 있을까?   향수를 들고 다니기 쉽게 해서 사용하게 하면 어떨까?   브랜드 좀 있다고 하는 향수들 너무 비싼 거 아님? 공급자의 입장에서는 개발에 들인 공이 있고, 대량 생산을 해야 하기 때문에.. 양을 적게 해서 팔기 어렵다.  언제 어떤 상황에 어울리는지에 대한 story line이 없다.. Phase III. 현실 세계를 둘러보기 시작하다.향수를 만드는 공장을 방문해 보았다. 공장은 한 번의 batch를 돌리기 위한 최소한의 물량이 필요하고.. 이 공장에서는 50ml 기준이라면 불량률 15% 정도를 고려해서 3,000병 정도가 최소한의 물량이라고 한다. 물론 더 적은 양을 만들어 줄 수 있으나.. 단가가 올라갈  수밖에 없다.그리고, bottle 뚜껑은 screw 타입으로 할 것인지, 아니면 clipping type으로 할 것인지?  라벨은 자동 라벨 기를 사용할 것인지? 분사 양은 어느 정도로 할 것인지 등등 현실의 문제가 다가오기 시작한다.Phase IV. 주변의 인물들에게 의견을 구해보기 시작하다.일단은 물어보기 시작한다. 와우 좋은데.. 될 것 같은  비즈니스야!라고 하는 사람부터 음.. 미안한데 난 안 쓸 것 같아!라고 하는 사람 등등 다양한 사람들이 존재한다. 흠.. 그렇다면 이것을 받아들이겠다고 한 사람들의 의견을 모아서 작은 시장에서 시작할 것인가? 아니면 모두가 만족하는 서비스로 계속해서 수정을 할 것인가?뭐가 되든.. 소비자를 push 할 수 는 없다. 좋은 제안을 주고.. 그것에 따라오는 고객이 있다면 그 고객들을 더욱 만족시킬 수 있는 방향으로 진화하는  수밖에..Phase V. "이건 안되지 않을 이유가 없어요"를 주의하라.새로운 서비스를 기획하는 사람의 입장에서는 대부분 밝은 면 만을 볼  수밖에 없다. 어느 정도의 의견은 귀에 들어오지만, 비판적인 의견에 대해서는 귀에서 튕겨내는 것이 특징이다. 그러던 중, 한 선배에게서 "내 서비스가 안되지 않을 이유가  없어요"라고 말하는 것 같이 들린다는 의견을 들었다. 현실의 망치로 뒤통수를 맞아봐야 정신을 차리는 법이다.#파펨 #스타트업 #창업가 #창업자 #마인드셋 #인사이트
조회수 1774

소셜 기부 플랫폼 3대장

그동안 3대장 시리즈를 통해 수많은 서비스들을 소개해 드렸습니다. 창업 보육기관과 엑셀러레이터를 소개해드리기도 했고 스타트업을 주로 다루는 미디어들을 소개해드리기도 했지요. 이번에는 조금 더 특별한 서비스를 소개해드리려고 합니다."혹시 기부하고 계신가요?"2016년 '아름다운 재단' 산하 '기부문화연구소'의 발표에 의하면 2015년 대한민국 국민 중 기부를 하는 사람의 비율은 45.6%로 지난 2013년 조사 때 나왔던 48.5%보다 2.9%가량 낮아졌으며 2005년 조사에는 68.6%였으니 10년 사이에 무려 23%가 낮아진 겁니다.[출처] 기부문화연구소그렇다면 기부를 하지 않는 이유는 무엇일까요? 해당 연구소에서 발표한 자료에 따르면 가장 큰 이유는 경제적인 이유였습니다. 그다음으로 기부단체를 믿지 못한다는 답변과 기부에 관심이 없거나, 기부 방법을 알지 못해서라는 답변이 가장 많았습니다.[출처] 기부문화연구소그렇다면 이 문제를 해결할 수 있는 방법이 무엇일까요? 경제적인 어려움 없어도 기부를 할 수 있고, 신뢰를 얻을 수 있고, 기부에 관심을 유도할 수 있으며, 기부를 쉽게 접할 수 있게 할 방법. 이런 문제들을 해결하기 위해 나온 서비스가 있습니다.1. 네이버 해피빈2005년 7월에 시작된 해피빈은 네이버에서 운영하고 있는 기부 플랫폼입니다. 국내 최초의 공익 플랫폼이라고 자신들을 설명하고 있죠. 초기의 해피빈은 자사의 서비스를 이용하는 유저들에게 콩을 나눠주며 그 콩을 통해 기부를 쉽게 할 수 있도록 만들어졌습니다. 이후 미투데이 같은 서비스에도 도입하며 점점 더 큰 규모로 성장을 했죠. 현재는 자사의 서비스에서 받을 수 있는 방법들은 거의 사라졌고 해피빈 내에서 활동을 하면 받을 수 있는 해피에너지 스탬프를 통해 콩을 충전할 수 있습니다.2017년 현재 해피빈2017년 현재의 해피빈은 다양한 프로젝트를 할 수 있습니다. 나눔기부를 통해 도움이 필요하신 분들이 모금을 할 수 있으며 공감펀딩을 통해서는 일종의 리워드형 크라우드펀딩을 하고 있습니다. 정기저금은 기부를 위해 적금처럼 정기적으로 계좌이체를 통해 기부금을 모아두는 일종의 기부 저금통입니다. 마지막으로 캠페인은 해피빈의 파트너들과 참여형 봉사활동이나 제품 판매와 같은 다양한 형태의 프로젝트를 모아두었습니다.2005년 시작된 해피빈은 2017년 현재 누적 기부액이 674억에 달하며 누적 사용자는 1300만 명이 넘습니다. 우리나라 국민이 5천만 명이라고 보면 4명 중 한 명은 해피빈을 통해 기부를 해 본 적이 있다는 말이니 정말 대단하죠.그런 해피빈이지만 과거에 비하면 기부를 하는 방법이 어려워진 느낌이 있습니다. 콩은 한 개 당 100원의 가치를 가지고 있고 과거에는 콩을 지급해주었지만 현재는 스탬프로 바뀌었고 스탬프는 5개를 모아야만 콩 1개로 바꿀 수 있습니다.  그래서 사용자들은 서비스를 사용하며 얻은 콩으로 기부하던 간접기부에서 직접 충전한 콩으로 기부하는 직접 기부 형태로 발전하고 있습니다.실제로 서비스가 시작된 첫 해에 총 기부금액이 7억 8천만 원 정도였는데 후원콩과 기업 기부금이 6억 5천만 원 정도로 그 비중이 83%에 달했는데 12년이 지난 2016년에는 총 기부금액이 106억 정도였는데 63억이 후원콩과 기업 기부금이었습니다. 그 비중이 59%로 24%가 낮아졌죠. 그 추세는 계속될 것 같습니다. 아직 2달 정도 지난 2017년이지만 그 비중이 이제는 5:5까지 낮아졌네요. 어떻게 보면 기부에 관심을 가지는 사용자는 정해져 있고 그 사용자들은 더 많은 기부를 원하셔서 이런 흐름으로 왔다고 볼 수 도 있겠네요.실제 앞에서 언급했던 기부문화연구소의 자료에 따르면 기부를 하는 사람의 수는 줄었지만 인당 기부금액은 늘어났다고 합니다.[출처] 기부문화연구소 : 금액은 만원단위자료를 보면 인당 기부금액은 우상향을 하고 있으며 기부를 하고 계신 분들의 평균금액 증가는 더 큰 폭임을 알 수 있습니다. 그렇다고 하면 네이버의 정책이 어느 정도 이해는 됩니다. 하지만 더 많은 분들이 기부를 할 수 있는 방법은 계속 고민해서 이어나갔으면 하는 바람이 있네요.2. 같이가치 with 카카오네이버가 하면 다음도 해야겠죠? 2007년 12월 다음도 기부 관련 서비스가 생깁니다. 다음 아고라 내의 희망모금 메뉴로 시작되었죠. 아고라는 네티즌들이 각종 청원을 위해 만들어진 서비스인데 그 안에서 모금활동이 시작되었고 그걸 메뉴화 시킨 겁니다. 2011년 4월 희망해라는 이름으로 독립 서비스로 나왔고 카카오와의 합병 이후 2016년 3월 현재의 같이가치가 되었습니다.2017년 현재 같이가치모금활동으로 시작된 같이가치는 2017년 현재 같이기부라는 형태의 모금활동을 이어가고 있으며 같이타요라는 형태의 독특한 프로젝트를 진행하고 있습니다. 매거진은 같이가치의 소식이나 웹툰 같은 다양한 콘텐츠를 보실 수 있습니다.같이기부는 일반적인 기부활동이라고 한다면 같이타요는 조금은 독특한 형식입니다. 속마음버스는 서울시와 함께 하는 프로젝트로 말 그대로 속마음을 나눌 수 있도록 버스를 제공합니다. 그 안에서 1시간 40분가량의 드라이브를 즐기면서 소중한 사람과 그동안 나누지 못했던 속마음을 나누는 거죠.어떤버스는 미스테리봉사여행이라는 컨셉으로 약간은 진부할 수 있는 봉사활동을 미스테리여행이라는 이름으로 재미를 더했다고 볼 수 있습니다. 봉사활동에 대한 정보를 최소화시켜서 몇 가지 주어진 아이콘만으로 추측을 하고 봉사에 참여하고 싶다면 신청을 해서 낯선 사람들과 단체로 버스에 올라타고 봉사를 하러 가는 겁니다. 2월의 여행은 이미 끝이 났고 3월의 여행에 대한 정보는 아직 공개되지 않았습니다.네이버의 콩과 같은 소셜화폐가 과거에는 있었지만 같이가치로 개편된 이후에는 특별한 소셜화폐가 있지는 않습니다. 대신 SNS로 공유하거나 댓글과 응원을 통해 각 100원이라는 금액을 기부해주며 이를 참여기부라는 이름으로 부르고 있습니다.같이가치는 현재 누적 기부액이 146억을 넘었으며 누적 참여자는 2015년 기준으로 764만여 명이며 이후 자료는 찾기가 어려워 현재는 얼마나 누적되었을지 모르겠습니다.3. 쉐어앤케어지금까지 나왔던 서비스들은 모두 포털이라는 자산을 가지고 시작했다면 마지막으로 소개해드릴 쉐어앤케어는 유일한 스타트업 서비스입니다. 세상에서 가장 쉬운 기부 플랫폼이라고 칭하는 쉐어앤케어는 2015년 7월 베타 서비스를 시작했으니 이제 1년 반이 조금 더 되었네요.2017년 현재 쉐어앤케어쉐어앤케어는 페이스북을 기반으로 기부활동을 하고 있습니다. 도움이 필요한 곳과 도움을 주고자 하는 곳을 연결해주며 그 스토리를 캠페인으로 담아내면 사용자들이 자신의 페이스북으로 공유하여 기부를 할 수 있습니다. 그리고 그 사용자의 게시물을 사용한 사람들이 그 내용에 동감하여 좋아요를 누르면 그 역시 기부로 이어지는 말 그대로 소셜기부플랫폼이라고 할 수 있겠습니다. 앞에서 기부문화연구소의 발표에 의하면 경제적인 이유로 기부를 못한다는 답변이 가장 많았는데 현재 쉐어앤케어는 온전히 스폰서를 통해 기부금액을 모금하며 기부를 사용자들의 공유를 통해 만들어냅니다.실제 쉐어앤케어가 2016년을 결산하며 발표한 자료를 보면 2015년 대비 2016년에 큰 성장을 이루었음을 알 수 있습니다. 2017년 현재 누적 사용자는 41만 명이며 누적 기부액은 14억을 넘었습니다. 이게 작은 스타트업이 이루어낸 성과라고 생각하면 대단하다고 말하지 않을 수 없을 것 같네요.쉐어앤케어는 캠페인이 시작되면서부터 끝까지 모든 과정이 투명하게 나와있습니다. 모금되는 과정부터 모금된 금액이나 물품이 어떻게 전달되는지 후기를 통해 보이며 영수증과 같은 증빙자료들도 게시되어 있습니다. 이것 역시 기부문화연구소가 발표한 기부단체를 신뢰하지 못해서 기부를 안 한다는 답변에 대한 해답이 될 수 있겠네요.그리고 쉐어앤케어도 쉐케뉴스를 통해 자신들의 소식을 전하고 있습니다. 언론 기사나 진행했던 캠페인 관련된 이야기를 들려주네요. 예를 들어 최근 진행되었던 캠페인 눈길 시사회의 진행 소식이나 과거 초인종 의인 故안치범님을 기리는 소화기 기증식 같은 소식들이 눈에 띕니다. 이벤트에서는 자신이 기부했던 금액을 페이스북으로 공유하는 이벤트가 진행 중이네요.쉐어앤케어는 게이미피케이션을 적극적으로 활용하는 모습입니다. 매일, 그리고 매월 공유를 통해 가장 많은 좋아요를 얻은 사용자의 랭킹을 보여주고 있습니다. 가수나 정치인, 다양한 인플루언서들이 상위에 랭크되는 모습을 볼 수가 있네요.하지만 위의 두 서비스와는 달리 간접기부에만 묶여 있습니다. 해피빈과 같이가치를 보면 직접 기부의 비중이 점점 더 커지고 있다는 것을 알 수 있습니다. 쉐어앤케어도 분명 그런 부분에 대해 고민하고 있으러라고 생각이 드네요."그래서 제가 쉐어앤케어에 합류하였습니다."그동안 3대장 시리즈를 연재하면서 제가 몸담았던 서비스를 소개한 적이 없었지만 이번에는 꼭 소개해드리고 싶었습니다. 작은 스타트업이 강력한 인프라를 가진 회사들인 네이버와 카카오가 하고 있는 소셜기부플랫폼에 도전하여 사회공헌을 위해 힘쓰고 있다는 사실도 알려드리고 싶었고, 더불어 제 소식도 함께 알려드리고 싶었습니다.과거에 페이스북에 좋아요 1개당 1달러를 기부하겠다는 글들이 많이 돌았습니다. 쉬운 행동이라 많은 분들이 좋아요를 눌러주었지만 그게 정말 기부로 연결되었는지를 확인할 방법이 없었습니다.그런 사례로 사용되던 이미지그래서 좋아요가 무슨 도움이 되냐는 말이 있었습니다. 하지만 쉐어앤케어의 좋아요는 정말로 도움이 됩니다. 공유는 1,000원이 기부되고 내가 공유한 글에 좋아요가 눌릴 때마다 나의 이름으로 200원씩 기부가 됩니다. 그렇게 모인 기부금이 위에서 말씀드린 것처럼 14억이 넘었습니다.스타트업들이 가장 많이 하는 말이 '더 나은 세상을 만들겠다.'라고 하죠? 쉐어앤케어는 정말 더 나은 세상을 만들기 위해 노력하고 있습니다. 저와 쉐어앤케어 앞으로 지켜봐 주세요.#쉐어앤케어 #쉐케 #기업문화 #회사자랑 #사회공헌 #사회적활동
조회수 1704

디자인 콘셉트는 이렇게 잡아요!

생각보다 훨씬 많은 분들이 '톤앤매너' 라는 말을 쓰고 있더라구요. 컨셉이란 말도 왕창 쓰고 있구요. 그런데 도대체 그게 정확히 뭔지 아는 분은 굉장히 드물었어요. 그래서 오늘은 이걸 좀 알아보려구 해욤. 톤을 살펴볼까요. 파스텔톤, 비비드톤, 팬톤(?), 화이트톤 등등... 이런톤 저런톤이 많아요. 톤은 색과 밝기를 의미해요. 어려운 말로 색채와 명암이죠. 어떤 색을 쓰는가.색이 진한가 연한가색이 밝은가 어두운가이걸 결정하는게 톤이예요. 매너를 살펴볼까요. 매너는 화풍이나 스타일을 의미해요. 몽유도원도를 그린 안견씨는 이곽파화풍의 영향을 받았어요. 침식된 흙산을 좋아하고, 선이 끊김없이 이어지는 느낌, 산의 아랫부분이 밝은 형태의 그림이죠. 고흐는 밀레와 램브란트 스타일의 밝디밝은 인상주의 화풍을 어둡게 변형시켰어요. 또한 곡선을 강하게 그리고 신기방기한 원근을 사용하죠. 이렇듯 사람이 만들어내는 모든 것에는 일정한 흐름이란게 있어요. 100사람이 만들면 100개의 서로 다른 작품이 나오겠지만 유심히 보면 4,5정도의 카테고리화 시킬 수 있거든요. 인간의 창의력은 완전히 새로운 걸 만들어내는 것이 아니라, A와 B를 섞어 새로운 C를 만드는 것과 같습니당. 디자인도 마찬가지예요. 세리프폰트를 활용한 정적이고 감성적인 느낌을 만들수도 있고, 여백을 늘리고 강직한 폰트로 고급스러움을 나타낼 수도 있어요. 아주 가는 획을 이용해서 날카롭거나 전문적인 느낌을 줄 수도 있고, 두껍고 둥근 선&폰트를 활용하여 통통한 아기돼지 마냥 귀여운느낌을 낼 수도 있어요.사람들은 어떤 대상에 부여하고 있는 메타포(=은유)가 있기때문에 가능한 일이지요.  마동석씨가 나오면 아 팔뚝이 있겠구나...드웨인 존슨이 나오면 가족을 구하겠구나...라는 고유한 메타포 말이예요. 화풍은 이렇듯 몇 개의 요소나 기법으로 메시지나 성격을 만들어내는 것을 의미해요. 고유한 아이덴티티는 물론이구요.컨셉을 알아볼께요.컨셉의 정의는 수도 없지만 어쨌든 중요한 건 '관통' 이예요. 톤과 매너가 디자인, 말투, 태도 등에 대한 얘기였다면 컨셉은 그 각각의 요소를 하나로 묶는 실과 같죠. 왜 그런 톤과 매너를 만드는가? 에 대한 근거이기도 하구요. 그러니 컨셉이 먼저 잡히고 톤앤매너가 나오는 게 순서상 맞아요.실상은 로고와 색깔을 잡고 나중에 의미부여를 하는 경우가 많지만요. 하지만 이게 틀렸다고만 볼 순 없을 것 같아요. 이론상으로야 컨셉 다음이 톤앤매너이지만, 현실적으론 컨셉은 그냥 '생각' 일 뿐이예요. 눈에 보이지 않으면 그 생각의 헛점이나 오류를 파악할 수 없죠. 또 시장성도!그래서 실상 눈으로 보이는 톤앤매너를 보고서야 컨셉 재정리가 들어가는 경우도 상당히 많답니다. 무조건 그건 이빨까는거고 그냥 의미부여일 뿐이야! 라고 말할 순 없죠. 다만 눈으로 나온 톤앤매너가 뭔가 조금 이상하다는 쌔한 느낌이 있는데도 무시하고 그냥 밀어붙여선 안되요.쌔하면 다시 해야해요.안쌔해도 다시 봐야해요. 컨셉 잡는 방법이 뭐 정해져있겠습니까. 사실 의식의 흐름대로 아무말을 하다보면 잡히는 경우도 있고, 브레인스토밍을 할 때도 있고 마인드맵을 할 때도 있고, 뒤통수에 총구를 겨눌수도 있고, 게임을 할 수도, 제비뽑기로 정할 수도 있는 것이죠.여기선 그냥 제가 컨셉 잡는 법을 말해보려고 해요.1. 데카르트는 천재예요.천장에 붙은 파리였던가 방충망에 붙은 파리였던가... 데카르트씨는 파리를 보고 사분면의 개념을 생각했다고 해요. 덕분에 우린 함수를 6년내내 배워야했고 대학에서도 배우고 지금도 쓰고 있고 비즈니스모델 잡을 때도 쓰고 심심하면 쓰고 있죠. 사분면이란 건 참으로 놀라운 도구예요.컨셉도 사분면을 활용하면 짱편해져요.x와 y축의 가로세로 두 선으로 이루어진 4개의 공간으로 이루어져있어요. x의 한 점과 y의 한 점이 만나 이루는 특정한 공간이 우리의 영역인 셈이죠.x는 가로선이예요. 0을 기준으로 +방향은 미래적의미를 담고있어요. 고객에게 줄 수 있는 가치가 미래적인 경우. P2P대출, 다이어트앱, 투자서비스, 캐시슬라이드, 영어공부 등등... 뭔가가 누적되고 쌓여야 그 가치가 온전해지는 경우죠.x축의 -방향은 과거의 의미를 담고 있어요. 누적과 저장을 통해 가치가 형성되는 경우죠. 커리어정리 서비스, 일기, 사진큐레이션, 데이터기반 무슨 서비스, 추억팔이 게임, 리뷰서비스 등등..이 이런 종류예요. 과거를 돌아보게 만들고, 과거로부터 누적된 것들이 현재에 도움을 주는 경우예요. y축의 +방향은 '있으면 더 좋은 거!' 예요. 현재도 충분히 괜찮은데 있으면 더더더더 좋은 어떤 것들. 대부분의 비즈니스모델이 이쪽에 속하는 것 같아요. 당신의 서비스가 생기기 전에도 사람들은 잘 지냈거든요. 하지만 생겨서 더 편리해진 경우죠.y축의 -방향은 '현재의 문제를 해결하는 것' 이예요. 상담서비스, 치유, 명상, 저소득층을 위한 복지정보 서비스 라던가 사회적기업이 추구하는 사회문제 해결에 관련한 서비스 일체를 의미해요. 현재 고객들의 상황이 0보다 아래여서 그걸 정상화시키기 위해 만든 것들이죠.y축의 +,- 구분이 좀 애매하긴 해요. 기준은 '소비자가 불편을 인지하고 있었는가?'  '그 불편이 생활이나 건강 전반에 해로운 영향을 끼치고 있었는가?'로 구분하는 편이예요. YES면 마이너스영역, NO면 플러스 영역이예요.2. 운동/방향성을 파악해볼 차례예요.사업은 사업자와 소비자가 있어야 가능해요. 누가 누군가에게 무언갈 주고받는 행위죠. 때문에 방향성과 운동성이라는게 있어요. 방향성은 이런거죠.짐캐리(부산역에 있는 짐보관서비스 스타트업) 처럼 소비자에게서 무언갈 받아서 저장하는 형태일수도 있고, 대부분의 커머스처럼 상품이나 서비스를 직접 제공하는 방향일수도 있어요. 가치를 달성하기 위해 누가 누구에게 다가가야 하는가? 가 이슈가 되요.운동성은 이런거예요.가치를 달성하기 위해 땀과 노력과 오랜시간 지속성이 필요한 것인가? 아니면 그냥 가만히 놔두기만 하면 되는건가? 라는 거죠. 이를테면 영어공부 앱은 운동성이 겁나 높은 서비스예요. 지속적으로 꾸준히 말하고 듣고 누르고 해야 소비자가 제 가치를 받을 수 있죠.하지만 물품보관서비스는 한번의 맡김만 있으면 돼요. 나머지는 사업자의 몫이죠. 때문에 운동성은 소비자, 사업자 각각의 양으로 판단할 수 있어요.3. 관계를 파악해요.우리와 소비자는 어떤 관계인지 파악해봐요. 아빠? 엄마? 형? 동생? 친구? 지인? 전문가? 해결사? 운동장? 땅과 잔디? 햇빛과 식물? 엔진과 엔진오일? 악어와 악어새? 등등... 특정한 관계가 잡혀야 그 관계 특유의 말투가 잡히고 성격이 부여되거든요.4. 문장으로 만들어요.애프터모멘트는 지금까지 당신이 쌓아놓은 생각과 어지러운 것들을 챡챡 정리해요. 하지만 제가 없다고 해서 사업체가 망하진 않아요. 잘 살아왔어요. 저는 더 큰 도움을 드리는 거예요. 그러니 저는 2사분면에 위치하고 있어요.방향성은 '제가 당신께 가는' 방향이예요. 제가 제안하고 직접 제작하고 제공하는 형태죠. 운동성은 둘 다 큰 편이예요. 소비자도 이것저것 많은 고민을 해야하죠. 물론 제가 좀 더 크긴 하겠지만요.저는 치우는 사람이예요....(!!!?) 집요하게 옆에서 잔소리를 하기도 하고 샤라랑해서 뭔갈 바꿔놓거나 치우기도 해요. 엄마가 늘 그러셨어요. 어지르는 사람 따로있고 치우는 사람 따로있다고. 네 저는 그 후자를 담당하고 있어요. 그래서 클라이언트님에게 발 좀 들어봐, 저기 비켜보라고 하기도 하고 등짝스매싱이나 이노무자식! 이노무자식!!.. 을 하기도....(그러진 않아요.) 5. 단어를 뽑아요.정리, 활발함, 다가감, 치우기, 보여주기, 드러내기, 따뜻함, 대화, 인정, 격려, 도전, 새로운 시도 등등... 치우는 사람이 지닌 여러개의 단어들이 있어요. 이 중 가장 맘에 드는 것을 몇 개 추려서 정리해요.6. 색을 정해요.제 로고색인 자색고구마 오사쯔 색깔은 노란색과 보라색으로 이루어져 있어요. 노란색이 뜻하는건 치유고 보라색은 매력이예요. 널브러진 걸 잘 정리해서 매력적으로 만들어요! 라는 뜻이예요. 물론 아무도 몰라요. 저만 알고있죠. 그럼 된 거 아닐까요. 사실 이런 과정은 누가 알아주길 바라서가 아니고 내 생각정리를 위해 필요한 과정이니까요.7. 매너를 정해요.초기엔 이렇게 가려고 했었죠.원랜 되게 가늘고 날카로운 로고로 가려고 했었어요. 그런데 그런 식이 되다보니 이제 사람들이 저랑 안어울린다는 말을 많이 하더라구요. 사실 저도 그렇게 전문성있게 막 정장입고 차키를 책상 옆에 두는 그런 스타일이 아닌지라 좀 어색하기도 했구요. 게다가 브런치엔 이렇게 아무말을 지껄이는데 막상 만나면 세상 진지해봐요. 물론 매력터지기도 하겠지만 한편으론 이질감이 장난 아닐거예요. 그래서 바꾸었어요.그래서 그냥 둥글고 두껍두껍하게 제 성격대로 모양새를 살렸어요. 전체적인 패턴도 '물들다'의 의미를 지닌 곡선과 잉크방울 모양이 주를 이루고 있어요.너무 스압이 길어지니 줄이도록 할께요. 줄이기 전에 3가지 중요한 사항을 말씀드리고 떠나도록 하겠습니다. ㅎㅎㅎ 이번이 마지막 위클리라서 많은 걸 얘기하고 싶었나봐요. 1. 문장이 구성되야 디자인이 나오는 거예요.디자인의 시작은 논리예요. 사고의 과정은 명쾌하고 정확해야 해요. 군더더기나 순환오류 없이 깔끔하게 정리된 문장이 있어야 제대로 된 디자인이 나오는 법이예요. 2. 디자인이 나와야 문장이 다시 보여요.그러나 어느 누구도 한 번에 완벽한 문장을 만들 수 없어요. 디자인이 나와서 눈으로 직접봐야 '아....이게 글러먹은 거였구나...' 라는 몸소 느낄 수 있어요. 그러니 완벽한 걸 만들어서 한번에 끝내려고 하지말고 계속 반복하고 수정하면서 다듬어 나가세요.3. 문장이든 디자인이든 혼자만 박수치지말고 공유하세요.이 과정은 강압적이면 안되요. 디자이너와 기획자, 마케터, 인턴까지 모두가 알고 있어야 하고 서로의 의견을 낼 수 있어야 해요. 물론 내가 꽂힌 디자인에 누가 반박하는게 유쾌하진 않지만 그럴거면 1인사업체를 하셔야겠죠?그동안 기이이이인 글을 읽어주셔서 매우 감사했습니다 :) 이번 위클리는 '디자이너 사용설명서' 라는 제 첫 책이 나와서 그 내용을 바탕으로 적은 것이긴 하지만, 책에 나온 내용이 똑같이 들어가있진 않아요. 브런치에선 브런치의 말투와 내용이 있으니까요. 책 못지 않게 이번 위클리도 작은 도움이 되었다면 오히려 제가 감사하고 뿌듯할 일입니다.애정해주셔서 감사하고, 못다한 이야기와 나머지 주저리는 '삶분의일' 매거진에서 또 계에에속 하도록 하겠습니다!!!~~ 빠이.안녕히들.
조회수 184

[모집]진짜 하고싶은 일을 찾고 싶다면

그동안 분노캔들 워크숍을 하면서 굉장히 다양한 사람들의 스트레스를 들을 수 있었는데요. 그 많은 스트레스들 중 가장 의외였던 스트레스는 바로 생각보다 많은 사람들이 자신이 하고 싶은 것을 모르고 있으며 그런 자신을 자책하고 있다는 것이었습니다.위의 스트레스를 적은 분들은 모두 직장인들이었습니다. 이미 자신의 일을 갖고 있었지만, 그럼에도 불구하고 자신의 일에 만족하지 못하고 미래를 불안해하고 있었습니다.  사람들은 같은 일에 종사하면서도 일에 대한 의미를 형성하고 일을 보는 방식이 다르다고 합니다. 이는 일을 바라보는 틀이 다르기 때문인데, 이와 관련해서 심리학자인 벨라와 동료들(Bellah et al., 1985)은 개인이 일과 관계 맺는 방식을 직업(job), 경력(career), 소명(calling)으로 구분했는데요. 자신의 일을 직업으로 보는 사람은 일을 통한 물질적 보상에만 관심을 가지며, 자신의 일을 경력으로 보는 사람은 일에 개인적인 투자를 많이 하며 조직 내에서 승진을 중요시합니다. 그러나 자신의 일을 소명으로 인식하는 사람은 일을 자신의 삶과 구별할 수 없는 것으로 생각하며, 소명을 지닌 사람에게 일의 목적은 금전적 보상이나 승진이 아니라 일을 통해 깊은 성취감을 얻는 것이라고 합니다. 여러분은일과 어떤 관계를 맺고 싶으신가요?그런데 소명이란 건 어느 날 갑자기 계시처럼 내려오는 것일까요? 현재 나의 상태를 제대로 파악하고 더 나은 나를 위해 노력하는 과정에서 발견할 수 있는 것일까요?  얼마 전 대학생들을 만나 깊은 이야기를 나눌 기회가 있었는데요. 한 친구가 꿈을 찾아준다는 프로그램을 다 들어봤는데, 들을 때는 정말 좋았고, 끝나고 나면 꿈을 찾을 수 있을 거라는 기대에 부풀었었지만, 결국 지금도 자신이 뭘 하고 싶은지 모르겠다는 이야기를 털어놓더군요. 그 이야기를 들으며 많은 생각이 들었습니다. 저의 대학시절은 방황 그 자체였으며, 직장인 디자이너로 일했던 20대의 저 또한, 디자인이 제가 진짜 원하는 일이라고 생각해서 그 일을 시작했던 것은 아니었기 때문입니다.조형예술을 전공한 그것도 사진으로 졸업한 저는 왜 그래픽 디자이너라는 직업을 택했던 걸까요? 그때 제가 디자이너를 선택했던 이유는 아주 간단했습니다. 지금은 내가 하고 싶은 것이 없지만, 디자인을 배워두면 내가 하고 싶은 것이 생겼을 때 도움이 될 거라고 생각했기 때문입니다. 그리고 그 생각은 아주 현명했습니다. 제가 스트레스컴퍼니를 만들고 지속적인 생산자로서 살아가는 데 있어서, 디자인을 할 수 있다는 것은 정말 큰 도움이 되었고 앞으로도 그럴 것이기 때문입니다.20대에자신이 원하는 것을 명확히 알고그 꿈을 향해 달려갈 수 있다면굉장히 운이 좋은 것입니다. 그렇지만 저 또한 그랬듯, 아직 모른다고 해도 저는 그것 또한 괜찮다고 생각합니다. 왜냐하면 20대는 충분히 방황해야 하는 시기이기 때문입니다. 그렇지만, 제가 말하는 방황은 술 먹고 노는 것이나 아무것도 하지 않고 하릴없이 시간을 보내는 것을 뜻하는 것이 아닙니다. 손톱만큼이라도 관심 가는 것이 생겼다면, 충분히 경험해보고 실패하는 과정을 통해서 자신의 진짜 경험을 쌓는 방황을 뜻 하는 것입니다. 그래야 30대의 내가 그 힘을 바탕으로 세상을 딛고 일어설 수 있습니다.   다른 누구도 아닌 내가 원하는 삶을 살기 위해서는, 진짜 내가 원하는 것이 무엇인지 알아야 합니다. 그러기 위해서는 내가 좋아하는 것, 내가 잘하는 것만이 아닌 내가 싫어하는 것, 내가 못하는 것, 나를 화나게 하는 것들도 알아야 합니다. 그것들도 진짜 내 모습이니까요. 알아야 피할 수 있고, 인정할 수 있어야 바꿀 수 있습니다.여러분들이 마음속 감정을 이해하고 받아들여 누가 뭐라고 해도 자신을 믿을 수 있는 용기를 갖고 자신의 미래를 스스로 선택할 수 있도록, 스트레스컴퍼니에서 마이 콜링 프로그램을 시작합니다.이런 분 오세요최대 8명 정원(그럴리는 없겠지만, 정원을 넘을 경우, 신청 동기에 따라 선정합니다)  - 학교를 다니고 있어도 내가 원하는 공부가 아닌 것 같은 사람- 직장을 다니고 있어도 내 일이 아닌 것 같은 사람- 일을 통해서 성취감을 얻고 싶은 사람  - 매주 과제를 충실히 수행할 수 있는 사람- 무엇이든 시도해 볼 용기가 있는 사람이어야 함 프로그램은 이렇습니다 마이 콜링 프로그램 8주 (시작 단계)1. 나는 이런 사람 / 마음을 녹이다      /  1주 차  분노캔들을 태우며 나를 힘들게 하는 것들을 모조리 꺼내놓습니다. 2. 나를 바라보기 / 마음을 터트리다    /  2주 차  지난주에 작성했던 감정카드와, 워크지, 스트레스 시트를 통해자신을 발견하는 시간을 갖습니다.  3. 내가 되고 싶은 나 / 마음을 먹다     /  3주 차  / 6주 차  새롭게 발견한 내 모습을 통해 내가 사소하게 실행해보고 싶은 프로젝트를 설정합니다.  4. 나를 만들기 / 마음을 다잡다           /  4주 차  / 7주 차  생각만 하는 꿈은 이뤄지지 않습니다. 사소한 프로젝트를 현실로 실행할 수 있도록 서로 돕습니다.5. 나를 공유하기 / 마음을 나누다        / 5주 차  / 8주 차 최종 발표   실행한 프로젝트를 공유하고 피드백을 받습니다.* 8명이 서로 피드백을 해줄 수 있도록 짝꿍을 정해드립니다.충분히 경험하고 또 실패하고 성공하는 과정 속에서 자신을 깨달을 수 있도록 프로그램을 진행합니다.일정은 이렇습니다3월 22일(목)부터 5월 10일까지 8주간 매주 목요일 저녁 7:30 ~ 11:00까지 만납니다.(평일반)3월 31일(토)부터 5월 19일까지 8주간 매주 토요일 오후 2:00 ~ 06:00까지 만납니다.(주말반)매 단계별로 분노캔들과 감정 다이어리, 감정 카드 등을 활용해서 수업이 진행될 예정입니다.참가를 원하시는 분은 아래 링크를 누르세요.https://goo.gl/jfQENG어떤 분들을 만날 수 있을 지 벌써부터 두근거리네요. 그동안 해왔던 진로 강의 경험과 코칭 경험을 바탕으로 여러분들의 고민과 끝까지 함께 하겠습니다.#스트레스컴퍼니 #심리스타트업 #스트레스관리 #서비스소개 #제품소개 #마이콜링프로그램
조회수 823

쉑쉑버거 강남에서 진행된 맛있는 인터뷰 – 잔디 홍보 담당 Harry를 만나다

쉑쉑버거 강남에서 진행된 맛있는 인터뷰– 잔디 홍보 담당 Harry를 만나다편집자 주: 잔디와 함께 하고 있는 멤버는 총 50여 명. 국적, 학력, 경험이 모두 다른 이들이 어떤 스토리를 갖고 잔디에 합류했는지, 무슨 일을 하고 있는지 궁금해하는 분들이 많습니다. 잔디 블로그에서는 이 궁금증을 해결해 드리고자 ‘맛있는 인터뷰’를 통해 잔디 멤버들의 이야기를 다루고 있습니다. ▲ 쉑쉑버거는 오픈한지 1개월이 넘었지만 아직도 문전성시!오늘 맛있는 인터뷰 장소가 정말 특별하다Harry(이하 ‘H’): 그렇다. 요즘 강남에서 카카오프렌즈 샵과 함께 가장 핫하다는 ‘쉑쉑버거’를 먹으려 한다. 인터뷰를 위해 이곳으로 직출했다. 주문까지 무려 2시간이나 걸렸다. 장소 선정에 공들인 만큼 오늘 인터뷰가 잘 나왔으면 좋겠다. ▲ 쉑쉑버거 치즈버거(더블)와 햄버거(더블)의 아름다운 자태무려 2시간을 기다려 주문한 ‘쉑쉑버거’의 맛을 묻지 않을 수 없다H: 맛은… 미국에서 먹었던 맛 그대로다! 기름진 이 맛! 정말 그리웠다. 다만 좀 짜다. 한국인이 평소 나트륨 섭취가 많은 걸 고려한 건지 모르겠지만 조금 짠듯하다. 짠 음식을 싫어한다면 저염 메뉴를 주문할 수 있다. 주문 시 소금을 조금만 넣어 달라고 하면 들어준다. 나트륨에 민감한 분이라면 이 방법을 추천한다. 쉑쉑버거 홍보대사 같다. 굳이 ‘쉑쉑버거’를 선정한 이유가 무엇인가?H: 쉑쉑버거 강남점 오픈 이래 ‘쉑쉑버거’ 키워드 쿼리가 네이버에서 높게 나오고 있다. 잔디 블로그가 워드프레스 기반이나 네이버 검색 결과에도 노출되고 있기에 ‘쉑쉑버거’ 키워드에 맛있는 인터뷰 콘텐츠를 얹어보고 싶었다. 너무 속보이나? 하지만 나는 마케터다. 키워드를 고려하지 않을 수 없었다. 실제 먹어보고 싶기도 했고. ▲ 콘텐츠 속에서 그를 만나기란 쉽지 않다.직업 정신이 투철하다. 이제 ‘쉑쉑버거’가 아닌 Harry의 자기소개를 부탁한다H: 잔디에서 홍보와 콘텐츠 마케팅을 담당하고 있는 Harry라고 한다. 맛있는 인터뷰는 내가 기획했기 때문에 인터뷰이가 되는 참극(?)을 피해갈 수 있을 거로 생각했다. 하지만 막상 인터뷰 대상이 되니 쑥스럽다. 잘 부탁한다. (라고 말하며 Harry는 감자튀김을 인터뷰어에게 상냥하게 건넸다. 글을 잘 써달라는 청탁의 느낌이 강했다. – 편집자) 외근이 많은 것 같던데?H: 그렇다. 업무 특성상 콘텐츠 작업을 위한 인터뷰라든지, 홍보 업무차 기자분들을 만나기 위한 외근이 잦은 편이다. 외근이 잦으면 힘들 것 같다H: 체력적 부담은 있다. 특히 올해처럼 상상을 초월하는 무더위가 이어질 때 외근은 은근 힘이 든다. 하지만 어쩔 수 없다. 홍보 업무 자체가 사람과의 관계를 구축하고 그 관계를 바탕으로 결과물이 나오는 일이 대부분이기에 외근은 필수불가결한 요소다. 몸은 힘들어도 마음은 가벼운 게 외근의 매력이다. 기자분들과의 만남을 통해 밖에서 바라보는 잔디에 대해 알 수 있고, 업계에 대해 그리고 다른 분야에 대해 모르는 점을 알 수 있고 공부할 수 있다. 만나는 분마다 주 관심 분야가 달라 많은 점을 배우고 있다. 어떤 점을 배울 수 있나?H: 기자는 본인이 다루는 분야의 최신 소식에 가장 빠르며, 때로는 해당 분야의 전문가이기도 하다. 그러다 보니 대화를 나누다 보면 자연스레 홍보 관련 혹은 콘텐츠 마케팅 관련 인사이트를 얻는 기회가 왕왕 있다. 맛있는 인터뷰를 최초 기획했다. 이 코너의 의도에 관해 설명해달라H: 잔디를 만들고 있는 사람들이 누구인지 보여주고 싶었다. 잔디도 결국 사람이 만드는 소프트웨어인데 만드는 사람에 대한 이야기가 나오면 자연스레 잔디가 추구하는 철학과 비전을 사람들과 공유할 수 있을 것으로 내다봤다. 인터뷰 기획부터 발행까지 넘나 많은 이슈가 있으나 현재까지는 잘 진행되고 있는 것으로 보인다. 실제 잔디에 입사 지원하는 이들이나 잔디 서비스를 모르는 분들이 맛있는 인터뷰를 보고 서비스와 멤버들을 이해하는 데 큰 도움이 됐다는 피드백을 듣고 있다. “6만 개의 기업과 팀이 쓰고 있는 업무용 메신저 잔디를 지금 무료로 사용해보세요!” 마치 이 질문을 기다린 것 같다?H: (웃음) 그런가? 하지만 본디 의도가 그러했다. 부수적인 이유를 들자면 잔디 인터뷰를 통해 잔디 멤버들끼리 가까워졌으면 했다. 사실 함께 일하고 있지만 서로에 대해 잘 모른다. 인터뷰를 읽고 서로 몰랐던 점을 알아가는 멤버들의 모습을 보면 뿌듯하다. 이슈가 만들어지는 것도 재미가 쏠쏠하고. ▲ 투철한 직업 정신을 바탕으로 뭐든지 사진을 찍는다. 아이폰 용량이 꽤 큰 걸로 추측된다.그런데 왜 굳이 ‘맛있는’ 인터뷰인가?H: 직원을 인터뷰하는 기업 케이스가 많다. 하지만 자세히 들여다보면 포맷이 지루하거나 딱딱해 읽는 재미가 없는 경우가 많다. 잔디의 직원 인터뷰는 어떻게 하면 재미있게 만들 수 있을까 고민하다 맛있는 인터뷰라는 틀을 잡았다. 모든 사람이 좋아하는 아이템이기도 하고, 맛있는 음식도 소개하면 일정 부분 재미가 있을 거라 판단했다. 또 식사를 하다 보면 인터뷰어와 인터뷰이 모두 긴장을 내려놓고 더 허심탄회한 대화를 나눌 수 있어 인터뷰 내용도 좋을 거로 생각했다. 주제를 바꿔보자. 쉬는 날엔 주로 무얼 하나?H: 로드 자전거를 타거나 사진을 찍는다. 또 예술가인 어머니와 동생이 작업하고 있는 양평 스튜디오에 내려가 고구마 농사를 짓기도 한다. 매년 호박 고구마 농사를 하고 있다. 볕이 잘 들고 유기농으로 재배해서 그런지 고구마 품질이 기가 막히다. 풍년이 들어 양이 많으면 판매를 하기도 한다. 취미가 다양하다H: 직장인에게 취미 생활은 필수라고 생각한다. 자신의 삶을 잘 즐겨야 일을 할 때도 쉽게 지치지 않는 것 같다. 적당한 취미 생활은 삶에 활력소를 가져다준다. 강력하게 추천하고 싶다. 그나저나 사진은 부자들의 취미 아닌가?H: 하하, 나도 예전에는 사진을 잘 찍기 위해선 꼭 좋은 장비가 있어야 한다고 믿었다. 비싼 DSLR 카메라와 비싼 렌즈.. 하지만 꼭 그렇진 않더라. 지금 들고 있는 아이폰으로도 충분히 좋은 사진을 찍어낼 수 있다. 물론, 비싼 카메라와 렌즈가 있으면 좋긴 하다.A photo posted by Harry Yeo (@harryyeo) on Jul 14, 2016 at 4:26am PDTA photo posted by Harry Yeo (@harryyeo) on Feb 2, 2016 at 4:49pm PST그러면 본인은 주로 어떤 장비를 이용해 사진을 찍는지?H: 캐논 100D라는 보급형 DSLR과 18-55mm 번들 렌즈를 쓰고 있다. DSLR 치곤 가격도 저렴한 편이다. 파나소닉 루믹스도 써보고 기타 브랜드 카메라를 써봤지만, 캐논의 색감이 내가 찍고 싶은 사진과 잘 맞는다. 지난 인터뷰이 Sean이 던진 질문 ‘잔디 직원 중 가장 부유해 보이는 직원?’에 대한 Harry의 생각은?H: DL(잔디 디자이너)! 질문을 듣자마자 바로 DL이 떠올랐다. 맛있는 인터뷰를 1년 넘게 다뤄왔다. 그간 여러 잔디 멤버 사진을 편집했지만, DL의 인터뷰 글은 유독 #부유부유 느낌이 물씬 풍겨 인상적이었다. 그의 아우라는 타의 추종을 불허한다. 훌륭한 사람이다. 꼭 친해지고 싶다. 맙소사.. #부유부유 느낌이라니! 마지막 질문이다. 다음 인터뷰이에게 묻고 싶은 질문이 있다면?H: 잔디 멤버 중 남들 몰래 연애를 잘할 것 같은 사람은?#토스랩 #잔디 #JANDI #마케터 #마케팅 #마케팅팀 #팀원 #팀원소개 #팀원인터뷰 #인터뷰 #조직문화 #기업문화 #사내문화
조회수 683

고객이 먼저 다가오게 만드는 개입 전략은 무엇일까?

이미지 출처 : 구글 이미지    1. 고객이 먼저 다가오게 만드는 개입 전략은 무엇일까?      구매 전, 고객이 고민하는 두 가지  마트에서 저녁 찬 거리를 고르는 상황을 생각해보자. 무슨 반찬을 고를지, 돌아다니다가 어느 한 시식코너 앞에 멈춰 섰다. 시식코너에서  소시지를 건네받아먹고, 결국 그 상품을 사게 된다. 물론, 사지 않고 늘 구매하던 소시지를 살 수 있다. 하지만 시식을 통해 전혀 경험하지 못했던 브랜드의 소시지 맛을 볼 수 있었다. 이번에는 택시를 잡는 상황을 생각해보자. 늦은 저녁, 이태원에서 친구들과 한 잔 하고 일산의 집까지 택시를 타려고 한다. 택시가 쉽게 잡히지 않는다. 이때 우리가 꺼내 드는 카드는 바로 ‘카카오 택시’. 카카오 택시에서 기사와 운행 거래, 운임, 시간 등을 확인 후, 호출 버튼을 눌러 택시 서비스를 이용한다. 위 두 가지 이야기는 우리가 일상에서 아주 쉽게 겪을 수 있는 일들이다. 바로 이 일상에 개입 전략이 잘 녹아 있다. 일반적인 구매 과정 중에서 고객은 두 가지를 늘 고민한다. 첫 째, 이 상품이나 서비스를 통해 정말 자신이 원하던 ‘이익’을 얻을 수 있느냐이다. 두 번째, 자신이 처한 문제를 해결하는 과정에서 이런 서비스와 상품을 통해 발생하게 될 또 다른 위험이나 위협은 없느냐이다. 이미지 출처 : 구글 이미지가령, ‘카카오 택시’의 경우, 우린 이 서비스를 사용하는 이유가 명확하다. 사실, 바로 길 앞에서 택시를 잡을 수 있다면, 카카오 택시를 사용하지 않을 것이다. ‘카카오 택시’를 사용하는 순간은 바로, 택시가 잘 잡히지 않는 경우가 될 것이다. 즉, 택시의 배차시간을 앞당기기 위해 사용하게 된다. 이 부분에서 택시의 배차시간을 명확하게 앞당길 수 있으니, 내가 이 서비스를 이용함에 얻을 수 있는 이익은 명확하다. 그리고 택시 서비스를 이용함에 일반적인 고객이 우려하는 것들이 있다. 불친절한 서비스, 초과 운임, 배차 여부 등이다. 카카오 택시를 이용하게 되면, 이러한 우려는 사라지게 된다. 서비스가 친절해지거나 운임이 저렴해진다는 것이 아니다. 다만, 비대칭적읜 정보 환경에서 우리는 사전에 해당 서비스의 가치를 미리 확인해볼 수 있다. 기사의 서비스 평가, 요금, 운행 거리, 도착 시간 등을 말이다. 이런 경험을 통해 사전에 우리가 생각할 수 있는 위험과 위협에서 벗어 날 수 있는 것이다. 즉, 고객이 생각하는 이 두 가지를 통해 마케터는 미리 설정해두어야 하는 메시지가 명확해진다. 바로, 먼저 주기와 헷지(hedge)하기이다. 먼저 주기는 본래 제공하는 서비스나 상품을 가장 작은 단위로 쪼개어 잠재고객에게 제공하는 방식이다. 소시지 시식코너와 같을 수 있고, 화장품의 샘플이나 테스터가 이에 해당한다. 앱의 경우에도 라이트 버전의 무료 서비스를 먼저 사용할 수 있게 하고, 유료 버전으로 앱 내 구매를 유도한다. IT 서비스의 경우, 2주간 미리 서비스를 풀버전으로 사용 가능하게 하여, 락인 효과를 노리기도 한다. 이 모든 것이 먼저 주기에 해당한다. 헷지(hedge)하기는 잠재고객이 생각할 수 있는 위험과 걱정을 미리 해소해주는 것이다. 위의 카카오 택시가 아주 좋은 사례였다. 가령, 새로운 화장품을 구매하기 전, 테스터를 사용해보는 것도 좋지만 제품의 특성상, 그 효과라 어느 정도의 시간이 필요하기에 일정한 시일 이내 환불조건을 제공하는 것도 하나의 헷지 하기에 해당한다. 위 두 가지 전략에 기초하여, 당신의 제품과 서비스는 먼저 주기와 헷지 하기 전략이 있는가. 만약, 준비되어 있지 않다면, 고객의 의사결정 여정 속에서 당신의 서비스나 제품은 외면받기 쉬울 수 있다. 먼저 주기를 통해 고객의 사용경험을 유도하고 헷지 하기를 통해 고객의 걱정을 미리 해소해주자. 당신의 제품과 서비스가 시장에서 도드라질 수 있는 간단한 방법이다.     개입 전략의 선두주자  최근 페이스북이나 인스타그램 타임라인을 보게 되면, 젊은 남녀 모델이 나와 코믹한 상황 속에서 다양한 화장품을 체험하는 영상을 종종 볼 수 있다. 민감성 피부를 가지고 있는 이가 며칠 후 피부가 몰라보게 달라졌다며, 이리 비추고 저리 비춰보는 영상을 통해 나도 모르게 샘플 신청 클릭 버튼을 누르게 된다. 최근 저가 화장품 브랜드가 샘플 신청이라는 개입 전략을 넘어 화장품을 이미 사용한 것처럼 느낄 수 있는 경험을 제공하는 영상 마케팅에 열을 올리고 있다. 이 영상을 보며, 이 자극적인 영상이 과연 잠재고객의 호응을 얻을 수 있을까?라는 의문이 들긴 하지만, 실제로 샘플을 신청하거나 보 제품으로 구매를 시도하는 여성들을 보면 그 의아함은 금방 해소된다. 앞서서 설명드린 두 가지 관점에서 고객이 구매 전 가질 수 있는 의문점을 충분히 해소할 수 있는 포인트다. 실제 해소는 아닐 수 있어도 고객이 이 상품을 써야 하기 위해 스스로를 설득할 수 있는 명분이 될 수도 있는 것이다. 화장품의 본 제품을 바로 구매하는 고객들은 생각보다 많지 않다. 테스터나 샘플을 이용하길 원한다. 즉, 이런 습관이 고착화된 구매 환경에서 바로 본 제품을 사라고 설득하는 것은 무리가 있다. 하지만 샘플을 제공하는 것도 비용적인 부담과 샘플만을 사용하고 본 제품을 구매하지 않을 판매자의 두려움이 상존한다. 이럴 땐, 마치 샘플이나 테스터를 사용하여 판매자가 말하고 싶은 것을 체험한 것과 같은 간접 경험이 필요하다. 그중에 하나가 바로 영상이다. 간단한 스낵 영상에서 브랜드가 말하고자 하는 것만 명확하게 전달할 수 있다. 민감성 피부 개선, 탄력, 미백 등, 그것에 맡게 고객의 후기나 사용 전후의 비교 콘텐츠를 충분히 영상으로 담아 설득하는 것이다. 이런 메시지가 구매자로 하여금 쉽게 행동할 수 있게 만든다. 이런 행동을 유발하는 개입 전략은 IT기술을 활용하게 되면 그 사용범위가 대단히 넓어진다. 경험 구현에 한계가 사라지는 것이다. 여행 상품을 생각해보자. 예전에 여행지의 이미지를 보여주는 식이라면, 현재는 여행지에서 체험할 수 있는 에피소드를 정리하여 영상으로 보여주기도 한다. 이에 한 발 더 앞서 나간다면, 가고 싶은 여행지를 미리 탐험해볼 수 있는 기술을 활용하는 것이다. VR, AR 등을 활용하여, 직접 가지 않았지만 마치 여행지를 미리 답사할 수 있는 경험을 할 수 있다. 외국어 공부는 어떤가? 우리 세대만 하더라도 외국어는 책, 바로 종이 위에만 존재했다. 조금 더 적극적인 친구들은 해외 서적이나 영화를 보며 회화 실력을 늘리기도 했다. 더 나아가 외국인 친구를 사귀거나 해외 연수를 가기도 한다. 이런 행동에는 물론 비용이 든다. 적거나 많거나 상관없이 비용이 수반된다. 장소와 시간적인 제약이 생기기도 한다. 이런 모든 것들을 IT기술을 통해 저렴한 비용으로 미리 경험할 수 있다면 어떨까? 해외연수를 가지 않아도 미리 다니고 싶은 학교의 수업을 경험하고 그곳 친구들과도 이야기를 나눠 볼 수 있다면 말이다. 제공되는 서비스나 제품이 단순히 눈속임으로 고객을 상대하는 것이 아니라 본질적으로 좋은 제품과 서비스를 제공하고 있다면 선경험을 통해 대부분의 잠재고객이 본 제품과 서비스로 이어질 수 있을 것이다. 특히, 이러한 선경험은 교육 사업에서 더욱 활발하다. 집단교육의 형태가 익숙한 우리의 경우, 수능이나 다른 자격증 시험을 준비하며 인강(인터넷 영상 강의)이라는 것을 겪었다. 물론, 인강의 편의성은 오프라인의 집단 교육과 비교했을 때, 더욱 분명해진다. 시간과 공간의 제약이 사라지며, 다수가 아닌 1:1 교육을 받는 집중도가 생긴다. 질의응답 게시판을 통해 실시간 문의도 가능하다. 물론, 온라인 강의는 오프라인의 시장을 잠식하지 않는다. 이 둘은 서로 보완의 관계를 가지며, 온라인 강의를 통해 오프라인 강의 사업 확장이 가능하며, 이는 다시 온라인 수요 확장으로 긍정적인 영향을 준다. 비즈니스 모델 관점에서 볼 때, 온라인 강의는 오프라인 강의의 맛보기 역할을 하기도 한다. 10분이나 20분 내외의 짧은 온라인 강의를 통해 진성 유저는 오프라인 강의로 유도하고 니즈가 없는 유저는 강의로 유도되지 않아 불필요한 소통이나 업무가 발생되지 않는다. 자, 어떤가?. 당신의 비즈니스의 서비스도 이처럼 개입 전략을 구사할 기회가 존재하는가? 두 가지 관점으로 살펴보면 된다. 작은 단위로 미리 줄 것이 있는가. 그리고 고객이 불안해하는 요소를 미리 헷지 할 수 있는가.     몸통을 흔드는 꼬리, 전략의 비즈니스화  최근 빙그레 바나나맛 우유가 흥미로운 빨대를 출시하면서 큰 인기를 끌었다. 여러 개의 우유를 연결하여 한 번에 마실 수 있는 빨대, 링거를 연결하여 호스로 우유를 빨아먹을 수 있는 빨대 등, 호기심을 자극하는 빨대들을 활용한 영상이 바로 그 이야기다. 영상에서만 그치는 것이 아니라 실제로 고객이 구매하여 직접 사용할 수 있도록 빨대를 한정판으로 출시까지 했다. 그 인기는 실로 대단했다. 빨대 출시와 함께 바로 품절 사태가 발생할 정도였다. 더불어, 이 빨대의 인기만큼이나 빙그레 바나나맛 우유의 매출도 늘어났으며, 오래된 브랜드에 새로운 활력을 일으켰다는 평가도 받았다. 우리가 평소 마케팅을 진행하게 되는 경우, 판매하고자 하는 제품과 서비스에 집중하곤 한다. 물론, 최종 목표를 이루고자 하는 노력의 결과다. 다만, 그 전의 행동 혹은 그 주변의 행동에 초점을 맞춤으로써 최종 행동을 하게 유도하고 결국, 최종 목표를 달성하게 하는 방식이 더 다양한 설루션을 만들 수 있게 한다. 바나나맛 우유가 맛있다, 신선하다, 저렴해졌다, 양이 많아졌다 등의 내용이 아니라 필수적으로 사용했던 빨대를 더 재밌게 만들었으니 이용을 권하는 방식인 것이다. 마치, 쇼핑몰의 경우, 매출을 더 올리는 것에 집중하는 것이 아니라 구매 과정 중, 바로 그 전 단계인 장바구니 버튼 클릭 수를 늘려 보는 식인 것이다. 트라이 닷컴(Try.com)이라는 쇼핑앱을 생각해보자. 여성분들이라면 쇼핑 중에 이 불편함은 모두 공감할 것이다. 바로 직접 입어 볼 수 없으니, 실제 배송 이후에 사이즈가 맞지 않을 경우, 그 절차가 불편하거나 귀찮다는 것이다. 그럼, 미리 입어 볼 수는 없을까? 물론, 주변에 동일 브랜드의 매장이 있다면 매장 방문 후에 결정해도 되지만 수많은 온라인 쇼핑몰이 매장을 가지고 있진 않을 것이다. 그렇다면, 이 구매 결정의 부담은 모두 소비자에게 넘겨지게 된다. 트라이 닷컴은 이 부분에 사업의 기회가 있음을 발견했다. 바로, ‘미리 입어보기’다. 여성들이 구매 전, 아무런 비용 부담 없이 원하는 브랜드의 옷을 7일간 입어보는 것이다. 미리 입어 볼 수 있게 옷의 물류비용 역시 제로다. 즉, 말 그대로 고객은 옷을 입어보고 살 수 있게 된 것이다. 이 사업의 본질은 그저 의류 쇼핑몰인 것이다. 더 좋은 옷, 더 나은 고객관리로 차별화를 두는 것이 아니라 고객이 옷을 온라인에서 구매하느 과정에서 공통적으로 하게 되는 걱정을 헷지 한 것에서 시작된 것이다. 출처 : 구글 이미지생각해보자. 고객이 옷을 미리 입어 불 수 있게 이 시스템을 관리하는 비용보다 한 번이라도 옷을 입어 본 고객을 통해 늘어난 수익이 더 크다면, 이 헷지 모델은 아주 강력한 세일즈, 마케팅이 되는 것이다. 입소문은 또 어떻겠는가. 자연스럽게 강력한 입소문을 탈 수밖에 없을 것이다. 우리나라에 비슷한 사례가 있다. 바로 스트라입스다. 스트라입스는 최초 론칭 시, 남성 맞춤 셔츠라는 작은 시장에서 시작했다. 그리고 그들은 자신들이 더 품질 좋고, 디자인이 우수하며, 더 저렴한 셔츠를 판매한다고 전면에 이야기하지 않았다. 그것보다 더 강조했던 것은 바로 코디네이터 무료 출장 서비스다. 웹을 통해 스트라입스의 코디네이터 방문을 신청하게 되면 위치가 어디더라도 방문하게 된다. 저자는 예전에 직접 코디네이터 방문을 신청하였고 만나게 된 장소는 카페였다. 놀랍게도 나에게 커피를 사주기까지 했다. 이런, 놀라운 경험은 그들의 말에 경청하게 하고 결국, 셔츠 구매로까지 연결시키게 만들었다. 물론, 커피를 사줘서가 아니다. 맞춤 셔츠 구매 과정은 복잡하고 귀찮기 짝이 없다. 미리 디자인을 볼 수도 없으며, 스튜디오에 직접 방문하여 치수를 재야 한다. 그런데 이 모든 과정에 나의 노력이 필요 없게 된 것이다. 이 부분도 위와 동일하게 생각해보자. 코디네이터 출장 서비스를 운영하는 비용보다 코디네이터를 통해 셔츠를 더 잘 구매하게 됨으로써 늘어난 수익이 더 많다면 이 역시, 훌륭한 세일즈, 마케팅이 되는 것이다. 우리는 무엇을 먼저 줄 수 있으며, 무엇을 헷지 할 수 있을까? 오늘 하루, 이 두 개의 질문에서만 답을 찾는다면, 당신의 마케팅 방향은 50% 이상 잡은 것이다. Q1. 당신의 서비스를 가장 작은 단위로 나눠, 미리 제공할 수 있는가?Q2. 당신은 고객이 구매 과정에서 갖는 걱정과 고민을 어떻게 미리 해소시켜 줄 수 있는가?오피노 자세히 보러 가기

기업문화 엿볼 때, 더팀스

로그인

/