FinTech UX day

일정 때문에 끝까지 듣지는 못했지만 공유할 만한 사항이라 생각해서 정리합니다.

핀테크 업체들중에서 흔히 잘 나간다고 인식되는 업체에서 발표자가 나와서 마인드셋, 사고방식 어떻게 해야 빠르게 만들어 낼 수 있는지에 관해서 설명했습니다. UX 에 관한 발표라고 알고 있었지만 실제로 들어보면 벤쳐 정신에 대한 강의에 더 가깝더군요. (적어도 토스 디자이너 분은 그랬습니다.)

토스 디자이너


  • 돈 떨어지기 전에 시장에서 통하는 제품을 빠르게 만들자.
     스타트업은 돈이 떨어지면 그냥 끝이기 때문에 길게 생각하면서 만들 여유가 없다고 합니다. 빠르게 자주 만들면서 목표에 다가가는지 항상 체크하면서 개발하자. (본인 생각으로는 린 스타트업 정신과 일맥상통합니다)
  • 빠른 실행을 위한 마인드셋 
    '그거 안 넣으면 망해? 망하면 그거 때문이야?' 정말 처절하게 핵심만 남기기 위한 사고방식이라고 생각합니다. 의사결정자들을 거치면 거칠수록 늘어나는 기능 때문에 일정이 계속 늘어나는 경우 때문에 만들어 진 사고방식이라고 봅니다.
  • 가혹하게 줄여야 MVP (Minimum viable product) 다.
     '토스 초기에는 이체를 신청하면 대표가 공인 인증서로 송금을 했다.' 라는 식의 처절한 MVP 를 말한다. 실제 이랬는지…
  • 제품 개발의 목표는 '완성'이 아니라 '가설 검증'이다. 
    스프린트의 목표를 '이러면 이러할 것이다' 라는 가설을 세우고 그것을 검증하기 위해서 일정 계획을 세워야 한다는 것이다.
  • 데이타 수집과 분석은 절대 타협하지 않습니다. 
    다른 모든 것을 희생하더라도 데이타 수집과 분석은 상당한 공을 들여야 합니다.
  • 퍼널 리포트 (Funnel reports)를 만들어야 한다. 
    토스는 이메일 인증때문에 수 많은 사람들이 빠져나갔다는 것을 데이타 기반으로 알아냄, 퍼널 분석만으로 충분하다. (깔때기 분석)


저작자 표시
신고

구글 UAC 개요

내가 있는 곳이 구글 캠퍼스인 관계로 (구글 안다님 ㅋㅋ) 구글 관련 세미나를 종종 들을 때가 있다. 2년전부터 운영하는 광고 플랫폼에 관한 세미나라서 들어봄. 그래서 정리함 

뭔가 새로운 것을 들으면 정리해보는 습관을 들여야 나중에 편하다는 것을 깨달아서


구글 UAC 앱 마케팅 오피스아워

UAC 란?

Universal App Campaign , 구글의 통합형 광고 지원시스템이라고 볼 수 있다.

기존의 광고 체계

  • 플레이스토어내의 광고
  • 구글 검색내의 광고
  • 앱 내부의 광고
  • 쥐메일(Gmail) 의 광고
  • 유튜브의 광고

UAC 광고 플랫폼

전반적으로 페북의 광고 플랫폼을 많이 카피했다는 생각을 지울 수 없다. 아니면 통합 광고 플랫폼이 보통 저런 형식이던지.

  • 광고 소재
  • 타겟 지역
  • KPI
  • 입찰 단가
  • 예산

UAC 의 특징?

  • 유니버셜 앱 캠페인 + 머신러닝이 포함 된 형태 사람이 한 행동을 분석해서 그 사람과 비슷한 사람을 찾아서 정보를 기반으로 하여 광고 캠페인은 진행함 일반적인 알고리즘이긴 하다. 대표적인 추천 알고리즘
  • 2년전에 런칭, 알게된 클라이언트들이 모두 사용하고 있다고 한다. (확인할 길은 없다)
  • 이제 UAC 만 사용할 수 있다. 다른 개별 개별의 인벤토리(쥐메일이나 유튜브 등을 이리 말하는 것 같다)용 광고는 사용 못함
  • 통합형 광고이지만 개별 개별의 인벤토리 광고 단가보다 싸다. 최대 60% 까지 쌈 (1/3 가격)
  • 기존 캠페인의 생성은 10/15 까지 가능이고, 지금 운영되는 모든 단독 캠페인은 11/14 까지만 운영 가능하다. 이제 UAC 만 가능하다.

UAC 의 종류

UAC 인스톨

  • 가격이 싸다.
  • 충성도가 높지 않은 대량의 사용자를 유입시키고 싶을때 쓰는 옵션

UAC 액션

  • 사용자의 행동 행동을 분석해서 알맞은 광고를 진행
  • 가격이 비쌈
  • 대신 광고 대상 사용자의 리텐션이 높고, 퀄리티 (진행자의 표현)가 높다.

UAC 인스톨 어드밴스

  • UAC 인스톨과 UAC 액션의 중간 포지션
  • 가격도 중간 사용자의 리텐션과 퀄리티도 중간

UAC 밸류

  • 아직 런칭 전이다.

UAC 의 유의점

테스트가 좀 까다롭다. 최적화를 위해서는 사용자들도 '노력'을 많이 해야 하고, 구글의 베스트 프랙티스를 꼭 따라줘야 한다. (강하게 권고함)

사용자가 해야 할일

  • 본인들의 앱 환경을 데이타 기반으로 이해하는게 중요함.
  • 이를 위해서 분석툴 설치가 필수
  • 3rd 파티툴인 애드브릭스 (무료), 코차바(유료) 추천
  • 자사(구글)의 파이어베이스 추천 , 구글 어날리틱스는 웹에 특화되어 있다고 함
  • 결론적으로 파이어베이스 추천하는 것임


저작자 표시
신고

간단하지만 여러가지 기술들을 조합해서 만든 사이트

일단

http://crazia.org

입니다. 별거 아니지만 누르고 들어가면 https://crazia.org 로 바뀝니다. 정말 너무 일반적인 형태의 웹사이트로 보이지만 나름 최신 기술들로 잘 버무려져 있습니다. http2 도 지원함 ㅋㅋ

1 AWS 의 Certificate Manager 를 이용해서 SSL 인증서를 발급 받았습니다.

  • 혁신적이죠. 기존에는 항상 싼 SSL 인증서를 사서 사용했는데, 여기는 클릭 몇번으로 공짜로 인증서를 받을 수 있습니다.

2 AWS 의 ELB (Elastic LoadBalancer) 를 사용하고 ELB 에 인증서를 포함시켰습니다.

  • 기존에는 NginX 에 인증서를 포함시키는 방법을 썼는데 이제는 이렇게 하는게 편하더군요. 알아서 갱신까지 해줘서 설정만 해주면 문제 없습니다.

3 Nginx 를 사용했습니다.

  • 웹서버는 Nginx 죠!! 아파치는 이제 설정하는 법도 까먹었네요 ㅎㅎ
  • SSL 인증서가 ELB 에 있기 때문에 기존에 SSL 인증서 가진 웹서버 세팅으로는 TOO_MANY_REDIRECT 가 발생할 수가 있습니다.
    server{
       listen 80;
    
       server_name crazia.org;
    
       access_log /var/log/portfolio_access.log;
       error_log /var/log/portfolio_error.log;
    
       if ($http_x_forwarded_proto != 'https') {
         rewrite ^ https://$host$request_uri? permanent;
       }
    
       server_tokens off;
       location / {
             proxy_pass http://localhost:3000/;
             proxy_set_header Host $http_host;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header X-Forwarded-Proto $scheme;
             proxy_redirect  off;
     }
    
      gzip on;
      gzip_disable "msie6";
    
      gzip_vary on;
      gzip_proxied any;
      gzip_comp_level 6;
      gzip_buffers 16 8k;
      gzip_http_version 1.1;
      gzip_types text/plain text/css application/json \
        application/x-javascript text/xml application/xml \ 
        application/xml+rss text/javascript
    }
    

    이렇게 80 포트만 신경 써주면 됩니다.

4 clojure 를 사용했습니다.

  • 무지하게 마이너 언어지만 제가 사랑하는 언어입니다.
  • 리습의 방언(dialect) 이고 JVM 기반의 프로그래밍 언어입니다.

5 Luminus 를 사용했습니다.

  • clojure 의 웹프레임워크중의 하나입니다. 그나마 자동화가 많이 되어 있고, 프레임워크 구조 설계가 좋아서 종종 애용하고는 합니다.

6 Jetty 임베디드 방식입니다.

  • WAR 를 만들고 앱엔진에 배포하는 방식이 아니라 Jetty 를 임베디드 시켜서 jar 파일 한개로 앱엔진 + WAS 의 기능을 하게 만들어 주는 것입니다.
  • 일반 스크립트 형 WAS 랑 차이가 뭔가? 바로 그 방식과 유사한 것입니다.

7 Bootstrap 을 이용해서 간단한 화면을 구성했습니다.

  • 말이 필요 없는 그 부트스트랩 입니다.
  • HTML, CSS, JS 를 한꺼번에 알맞게 제공해주죠. 저 같은 디자인 고자(?) 도 대충 이쁜 사이트를 구성하는게 가능해집니다.

8 Systemd 를 이용해서 관리합니다.

  • Ubuntu 16.04 부터 자주 이용해야 하는 관리 스크립트입니다.
  • /lib/systemd/system/myapp.service 위치에 스크립트를 만들고
    [Unit]
    Description=My Application
    After=network.target
    
    [Service]
    WorkingDirectory=/var/myapp
    EnvironmentFile=-/var/myapp/env
    Environment="DATABASE_URL=jdbc:postgresql://localhost/app?user=app_user&password=secret"
    ExecStart=/usr/bin/java -jar /var/myapp/myapp.jar
    User=deploy
    
    [Install]
    WantedBy=multi-user.target
    

    이와 같이 만들어주고 저장하고

    sudo systemctl daemon-reload
    sudo systemctl start myapp.service
    

    스크립트를 인식시키고 시작하면 됩니다. start|stop|restart 가 될 것이고요.

    sudo systemctl enable myapp.service
    

    인스턴스가 재부팅시에 자동으로 시작되게 세팅도 가능합니다. (멋진 기능!!)

저작자 표시
신고

[Python] uwsgi 로 배포하고 우분투에서 systemd 로 관리하는 방법

systemd 와 연동해서 서비스를 구현하는 버릇을 들이다 보니 없으면 피곤하게 됐습니다. 그래서 python 과 uwsgi 와 systemd 를 연결해보자고 해서 시작했습니다.

1 Anaconda 설치하기

이거저거 써봤지만 저는 이게 제일 편한 virtualenv 관리자더군요.

$ wget https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh
$ chmod +x Anaconda3-4.4.0-Linux-x86_64.sh
$ Anaconda3-4.4.0-Linux-x86_64.sh

다 설치하고 난 뒤 env 를 만들어 줍니다. app 정도 이름으로 합니다.

$ conda create -n app python=3.6
$ source activate app

2 uwsgi 용 스크립트 만들기

설명이 필요합니까? python 배포의 친구죠.

PROJECT_HOME = /home/[user-id]/[project-name] 이라고 하면 $PROJECT_HOME 에 app.ini 라고 만듭니다.

[user-id] 는 본인 아이디, [project-name] 은 파이선 프로젝트명입니다. 장고(django)를 가정합니다.

[uwsgi]
chdir=/home/[user-id]/[project-name]
module=[project-name].wsgi:application
socket=127.0.0.1:8900
buffer-size=65535
protocol=http
master=true
# daemonize=/home/[user-id]/uwsgi.log
pidfile=/home/[user-id]/uwsgi.pid
processes=1

이제 실행입니다.

$ cd $PROJECT_HOME
$ uwsgi app.ini

3 systemd 용 스크립트 만들기

  1. systemd 용 스크립트 만들기
    $ sudo emacs /lib/systemd/system/[project-name].service
    

    간단하게 프로젝트 이름으로 스크립트를 만들어줍니다. 내용은

    [Unit]
    Description=[project-name] appserver
    After=network.target
    
    [Service]
    User=[user-id]
    WorkingDirectory=/home/[user-id]/[project-name]
    Environment="MYSQL_HOST=127.0.0.1"
    Environment="MYSQL_NAME=[DB name]"
    Environment="MYSQL_USER=[DB user]"
    Environment="MYSQL_PWD=[DB password]"
    Environment="MYSQL_PORT=3306"
    Environment="REDIS_SERVER=127.0.0.1"
    Environment="LOG_LEVEL=DEBUG"
    Environment="IS_DEBUG=True"
    ExecStart=/bin/bash -c 'source /home/[user-id]/anaconda3/bin/activate \
    /home/[user-id]/anaconda3/envs/app/ \
    && /home/[user-id]/anaconda3/envs/app/bin/uwsgi \
    --ini /home/[user-id]/[project-name]/app.ini --die-on-term '
    KillSignal=SIGTERM
    Restart=on-failure
    Type=notify
    StandardError=syslog
    NotifyAccess=all
    
    [Install]
    WantedBy=multi-user.target
    

    Independent WEB 방식이라 환경 변수에 config 내용이 있으니 Environment 로 선언해줍니다. 각각에 자신의 정보를 채워넣으면 되고

    $ sudo systemctl daemon-reload
    $ sudo systemctl enable [project-name].service
    

    시작할때 자동으로 실행되게 등록하고

    $ sudo systemctl start aimserver.service
    $ sudo systemctl stop aimserver.service
    

    이제 시작하고 끄는것이 쉽게 가능해진다.

저작자 표시
신고

[scala] 스칼라 프로그래밍 도움 되는 사이트 2종

이번에 스칼라로 프로젝트를 진행하게 되서 급하게 공부하게 되었습니다. 도움이 되는 사이트 2종을 소개합니다. 



자바프로그래머를 위한 스칼라 튜토리얼


쉽게 스칼라의 기본중의 기본만 알게 해주는 훌륭한 페이지 입니다. 


스칼라 학교 


기초부터 중급까지 간단한 사이트까지 만들 수 있게 도와주는 사이트 입니다. 귀찮은 자바랑 같이 프로젝트 만드는 방법등 유용합니다. 추천 !



스칼라로 진행해본 결과는 스칼라로 사이트 만드는 건 좀.. 공부하는 건 모르는데 상용 사이트는 좀 에러가 있군요. 

저작자 표시
신고