스토리 홈

인터뷰

피드

뉴스

조회수 853

콘텐츠와 미디어에 대한 3분 고찰

Overview콘텐츠와 미디어가 중요해지면서 그에 따른 관심도 커졌습니다. 그런데 말입니다. 디지털 문화시대, 초연결시대에서 말하는 ‘콘텐츠’와 ‘미디어’는 과연 어떤 의미를 갖고 있을까요? 무엇인지는 알고 있지만 막상 말하려면 ‘엌!..’ 하고 막히기 마련입니다. 이번 글에선 콘텐츠와 미디어의 명확한 의미를 짧은 글로 되짚고자 합니다.Content VS Contents누군가의 얼굴을 종이에 그렸다고 생각해봅시다. 그렇다면 그 그림은 Content일까요, Contents일까요? 정확하게는 단수형인 Content입니다. 하지만 그림을 사진으로 촬영하거나, 영상으로 녹화하거나, 스캔해서 온라인에 올리면 Contents라고 말합니다. 어떤 차이인지 감이 잡히나요? (느낌 아니까~)당신이 그린 그림을 다른 종이에 다시 그려보라고 한다면 똑같이 그릴 수는 없을 겁니다. 비슷하게 그릴지라도 선의 굵기나 그림의 위치가 미세하게 바뀔 겁니다. 다시 지웠다 그려도 지운 흔적이 남고요. 하지만 그림을 사진으로 촬영하거나, 영상으로 녹화하거나, 스캔해서 온라인에 올리면 1,000명이 보든, 10,000명이 보든 똑같은 품질로 제공될 겁니다. 게다가 PC, 모바일, 태블릿PC 등 가리지 않고 어느 디바이스(Device)에서나 볼 수 있습니다.그렇습니다. Content는 미디어 하나에 딱 한 번만 쓸 수 있습니다. 반면 Contents는 다양한 미디어에서 ‘똑같은’ 품질로 만날 수 있습니다. 심지어 닳아 없어지지도 않고요. 크리에이터가 온라인에 올린 이야기가 Contents라고 불리는 이유입니다.Content와 Contents는 ‘어떤 미디어에 속해있는가’에 따라 결정됩니다. 영화의 대본, 배경음악은 그 영화에서만 쓸 수 있습니다. 다른 영화에서 쓰였다간 큰일납니다. 그러나 상위 미디어로 이동하면 얘기는 달라집니다. 영화가 컴퓨터 파일(File)이 되었다고 생각해보세요. 컴퓨터 안에는 영화도 있고, 게임도 있고, 문서도 있고, 그것도 있…ㅎ~ ‘컴퓨터’라는 미디어 안에는 파일이 엄청 많습니다. 무엇을 볼지 선택할 수도 있습니다. 아무리 많이 봐도 늘 똑같습니다. 이때 영화는 Contents가 되는 것이지요.Media콘텐츠만큼이나 자주 언급되는 게 바로 미디어입니다. 마샬 맥루한(Herbert Marshall McLuhan)은 ‘인간의 오감은 최초의 미디어였고, 미디어의 확장이 곧 감각의 확장’이란 이론을 내세웠습니다. 아주 먼 옛날, 적이 침입했을 때 봉수대에 불을 지폈던 걸 생각하면 고개를 절로 끄덕이게 됩니다. 소리를 꽥꽥 질러도 먼 지역에서 들을 수 없기 때문에 불을 크게 지핀 겁니다. 봉수대는 위험한 상황을 알리는 최고의 미디어였습니다. 그의 이론에 따르면 달리는 말과 굴러가는 바퀴도 인간의 다리를 확장한 것이니 미디어가 됩니다. 말도 미디어라니, 뭔가 웃음이 나오지만 여기엔 중요한 사실이 하나 있습니다. 바로 미디어가 메시지 그 자체가 된다는 것이지요. 봉수대는 ‘위험한 상황’을 알리기 위해 만들어졌습니다. 만들어진 목적과 전하려는 메시지가 일치합니다. 봉수대에 불만 지펴도 누군가 침입했다는 걸 알 수 있었습니다.그렇습니다. 미디어는 표현과 전달을 동시에 합니다. 결국 ‘무엇인가를 담아 전달하는 도구’인 셈입니다. 우리 주변에서 쉽게 찾을 수 있는 책, 달력, 컵, 포스트잇은 사실 모~두 미디어입니다. 앞서 미디어가 메시지 그 자체가 된다고 했는데요, 그렇다면 미디어가 달라졌을 때, 메시지도 달라질까요?봉수대의 불과 가스레인지의 불은 다른 의미를 가지고 있습니다. 이뿐만이 아닙니다. 소설 ⌈해리포터⌋는 상상과 사고의 연속이지만 영화 <해리포터>는 시각과 청각을 열어두는 콘텐츠의 파노라마입니다. 두 예시만 봐도 ‘미디어가 달라지면 메시지도 달라진다’는 걸 알 수 있습니다. 이제 콘텐츠와 미디어의 의미를 정확하게 알았으니 우리 주변의 모든 것들이 콘텐츠와 미디어로 보이게 될 겁니다.Conclusion유럽의 미래학자 피터 힌센(Peter Hinssen)은 그의 저서 ⌈뉴 노멀(New Normal)⌋에서 “콘텐츠는 더 이상 왕이 아니다”라고 말했습니다. 이는 다양한 미디어에서 콘텐츠가 쏟아져 그 가치가 저하됐다고 봤기 때문입니다.그러나 새로운 기술의 등장은 한 사회의 근간인 문화의 틀까지 바꿉니다. 스마트폰이 등장한 이후 오늘날의 모습은 어떤가요. 이모티콘으로 감정을 전하고, 인스타그램의 사진들은 따로 설명이 필요 없을 정도입니다. 콘텐츠와 미디어로 인해 세계공용어가 없어지는 중이라 해도 과언이 아닙니다. 콘텐츠와 미디어의 중요성을 비교할 수는 있어도 ‘결국 둘 다 중요하다’는 의견에는 모두 동의할 겁니다. 그만큼 둘의 본질을 꿰뚫는 건 크레에이터가 꼭 짚고 넘어가야할 일이기도 하지요. 이제 누군가 콘텐츠와 미디어를 설명해달라고 한다면 자신 있게 말할 수 있겠쬬? (도장 쾅쾅)글장근우 대리 | People&Relations [email protected]브랜디, 오직 예쁜 옷만#브랜디 #마케팅문화 #마케팅팀 #업무환경 #인사이트 #경험공유 #콘텐츠
조회수 2922

채널 iOS에 Redux를 적용하게 된 7가지 이유.

친숙한 MVC 패턴개발자라면 누구에게나 친숙한 MVC (모델 - 뷰 - 컨트롤러) 패턴은 꽤 오랜 시간 동안 사용됐고 아직까지 많은 개발자들에게 사랑받고 있는 패턴이다. 그 이유로는 이 패턴이 일단 진입장벽이 낮기도 하지만 코드 재사용성, 동시 개발의 용이성 때문이다. 만약 당신이 초보 iOS 개발자라면 높은 확률로 MVC 패턴을 쓰게될 것인데 그 이유는대부분의 예제 및 튜토리얼이 MVC 패턴을 쓰고 있고iOS의 IDE인 Xcode에서 (Swift 는 예외지만) 클래스를 생성할때 기본으로 이름에 ViewController라고 들어간다.위와 같은 이유로 많은 iOS 개발자에 영향을 주리라 생각된다. (2011년도부터 iOS 세계에 빠진 저자도 사실 iOS에서는 software architectural design pattern으로는 MVC가 넘사벽이라고 생가하고 있었기에) 문제는 상대적으로 복잡도가 높아지거나 코드의 양이 많은 제품의 개발에서는 생산성이나 가독성에 그다지 도움을 주지 못하는 데 있다고 생각한다. 예를 들어, 한 페이지의 복잡도가 높아지면 ViewController 파일 한 개의 코드 라인이 기하급수적으로 증가한다. 또 (코드 관리에 매우 신경을 쓰지 않는 이상) 객체 간의 통신 및 데이터의 통일성이 없어져서 가독성이 떨어지기 쉽고, 기능을 추가할 때 생산성이 점점 떨어지게 된다.왜 MVC 패턴은 이렇게 문제가 생기는걸까라는 질문에서부터 시작해보자.MVC 패턴, 도대체 뭐가 문제인가?!그림 1. 보편적인 MVC 패턴의 구조보편적으로, MVC 패턴의 구조는 위의 그림과 같다. 그림을 간단히 설명하자면:뷰에서 이벤트가 발생하면 컨트롤러에 알린다컨트롤러는 그것을 처리하고 모델에 업데이트를 하라고 전달한다.모델은 업데이트를 하고 컨트롤러에 다시 알린다컨트롤러는 모델이 업데이트되었다는 것을 뷰에 알린다뷰는 모델의 업데이트된 값에 따라 다시 뷰를 그린다그림 1과 위의 설명만 놓고 보면 각각의 역할이 명확하다고 생각한다. 구조가 복잡하지 않기 때문에 초보자들도 쉽게 이해하고 적용 가능하다는 것이 장점이다. 하지만 MVC 패턴은 객체 간에 어떤 방향으로 커뮤니케이션 해야 하는지에 대해서는 강제하지 않기 때문에 파생된 패턴들이 많이 있다. 실제로 구글에서 “MVC pattern”이라고 검색을 하면 위 그림과 다른 MVC 패턴 이미지들을 볼 수 있다. 그 한 가지 예가 밑에 그림 2이다.그림 2. 또 다른 MVC 패턴의 구조그림 2를 보면 그림 1과는 다른 커뮤니케이션 방향을 나타내고 있다. 바꿔 말하면 개발자가 원하면 언제든지 세 가지 구조 안에서 방향을 유동적으로 바꿔 써도 무방하다는 것이 된다 (그것이 원하는 MVC 패턴이든 아니든지 간에). MVC의 변형으로써는 여러 가지가 있지만, 대표적인 것들은 아래의 그림과 같이 MVP, MVVM 같은 것들이 있다.그림 3. MVC, MVP, MVVM 패턴의 비교실제 저자도 MVC 패턴이 커뮤니케이션 방향을 강제하지 않는 것과 관련해 문제를 겪은 경험이 여러 번 있었던 것을 기억한다. 한가지 예를 들어보자.ViewA.swift (뷰)protocol ViewADelegate {       func updateA() }   class ViewA : UIView {        var delegate: ViewADelegate?       //update through protocol      func didClickOnA() {          self.delegate?.updateA()     }      //update through notification     //maybe same kind of update can happen in other views      func didClickOnAA() {         NotificationCenter.default.post(             name: NSNotification.Name(rawValue: “updateFromA”),              object: nil         )     }      func render(_ model: product) {         //update based on model      }  } ViewController.swift (컨트롤러)class ViewController : UIViewController, ViewADelegate {       Var viewA: ViewA?     Var product = Product()     func viewDidLoad() {         self.viewA = ViewA()         self.viewA.delegate = self         // ...         self.view.addSubview(self.viewA)     }      func updateA() {         self.product.update(name: “aa”, version: “123”)         self.viewA.update(self.product)         //re-render viewA     }  } Product.swift (모델)class Product {       var name = “”     var version = “”     init() {         NotificationCenter.default.addObserver(             self,             selector: #selector(self.doSomething),             name: “updateFromA”, object: nil)     }      deinit {         NotificationCenter.default.removeObserver(self)     }      func update(name: String, version: String) {         self.name = name         self.version = version     }      func doSomething() {          //do something…          //notify viewA or any objects through notification     }  } 조금 극단적인 예처럼 보이긴 하지만 실제 개발을 하다 보면 충분히 일어날 수 있는 상황이다. 코드에 대해 간략하게 설명하자면:ViewA에서는 delegate와 notification으로 각각 ViewController와 Product에 이벤트를 날리고 있고ViewController에서는 delegate method를 구현해서 Product를 업데이트 후, 다시 ViewA를 그리라는 로직을 가지고 있다.Product 에서는 객체를 업데이트 할 수 있는 메소드가 있고 notification을 통한 업데이트를 하고 있다.이건 아주 간단한 예이지만 프로젝트가 커진다면 특정 이벤트에 대해 데이터가 업데이트되는 경로가 달라질 수 있다. ViewA -> Product -> SubProduct -> Product -> ViewA 의 경로라던가, ViewA -> Controller -> Product -> SubProduct -> Controller -> ViewA 의 경로 등이 가능하다. 이처럼 특정 이벤트에 대해 여러 가지 체인형식으로 업데이트가 이루어질 경우 그 경로를 일일이 추적하는데 시간이 걸릴 수밖에 없는 구조를 가지고 있는 것을 볼 수 있다.(프로젝트의 크기가 어느정도 커지게 된다면 이렇게 될지도 ㅎㅎ)이런 케이스가 발생하는 근본적인 이유는 결국 MVC 패턴의 장점이라고도 말할 수 있는 유연성과 양방향 커뮤니케이션 때문이다. 이 패턴 자체가 문제가 있는 것은 아니지만 결국 코드는 사람이 작성하는 것이기에 생산성과 가독성을 떨어뜨리는 결과를 초래할 가능성이 높다. 여기에서 우리는 기존 웹 개발에서 쓰이고 있던 Redux 도입을 생각하게 된 것이다.Redux는 무엇인가?Redux 로고Redux는 Facebook의 Flux 를 모태로 삼고 있고 예측 가능한 상태를 자바스크립트 프로그램에서 구현하기 위한 애플리케이션 아키텍쳐이다. Redux는 본래 자바스크립트에서 시작한 오픈소스 프로젝트이지만 다른 개발자들에게 영감을 주었고 2015년 말쯤 iOS 플랫폼에서는 ReSwift(Redux + Swift)가 생겨났다. ReSwift는 결국 Redux랑 크게 다르지 않고 Redux의 세 가지 법칙을 따른다.Single source of truth — 애플리케이션의 전체 상태(State, 또는 데이터)는 트리 형태의 하나의 저장소(Store)로 저장된다.Changes with pure functions — 상태 트리를 변경하는 리듀서(Reducer)는 순수 함수(pure function)이어야한다.Read-only states — 상태는 오직 액션(Action, 어떤 일이 일어날 것인지 설명할 수 있는 객체)으로만 변화가 가능하다.쉽게 말하자면 “Redux는 한 개의 상태 저장소를 가지고 있고 그 안에 있는 데이터만이 신뢰할 수 있으며 저장소의 상태는 오직 순수 함수인 리듀서를 통해서만 변화가 가능하다” 라고 축약 할 수 있다.그림 4 Redux 패턴의 구조위의 그림 4을 보면 충분히 프로그램의 흐름이 어떤 식으로 흐르는지 감이 왔으리라 생각한다.이벤트가 뷰에서 생성되면 그에 해당이 되는 액션을 통해 알린다.액션은 특정 리듀서에서 처리한다.리듀서는 액션에 따라 저장소를 업데이트한다.저장소에 변화가 오면 구독(Subscribe)을 하고 있는 모든 객체에 알린다.이것이 Redux의 커뮤니케이션 사이클이다. Redux만으로도 충분히 여러가지 블로그 주제가 나올 정도로 할 이야기가 많지만 여기까지만 하고, 좀 더 자세한 디테일을 알기 원한다면 옆의 링크를 클릭하시면 된다. :) -> 리덕스 공식 링크Redux vs. MVCMVC와 Redux에 대해 소개를 했으니 간단히 비교해 보자.The Flow — Redux는 데이터 및 애플리케이션의 흐름을 강제한다. 저장소의 변화는 오직 액션을 통해서만 가능하기 때문이다. 이와 다르게 MVC는 강제성이 없기 때문에 여러가지 파생 패턴이 생길 수 있다.Unidirectional flow — Redux에서 흐름은 액션으로만 변화가 일어나기 때문에 오직 한쪽으로만 흐른다. MVC에서는 양방향이 될 수도 있고 한 방향이 될 수도 있지만 보통 양방향이다.Stores — Redux에서는 상태 및 데이터가 하나의 저장소에 있기 때문에 관리하기가 쉬운 반면, MVC에서는 여러 군데에 상태가 분리되어 있기 때문에 동기화에 신경을 써야 한다. (로컬 데이터 스토리지를 쓴다면 문제가 해결되기는 하지만 패턴 이외에 추가적인 노력이 필요함)그 이외에 여러가지 다른 점이 있겠지만, 위의 3가지가 가장 다른 점이라고 저자는 생각한다.채널 데스크 iOS에 Redux를 적용하게 된 이유이제 MVC와 Redux의 차이점을 알게 되셨으리라 생각한다. 우리 팀이 채널 데스크 iOS에 Redux를 적용한 이유를 소개하려고 한다. 아직 모든 부분에 완벽히 적용한 상태는 아니지만 (부분적으로 Notification, Delegate 그리고 Reactive를 쓰고 있다) 그럼에도 Redux를 적용함으로써 얻는 이점이 많다고 느끼고 있다.Explicit data flow — 새로운 개발자가 왔을 때나 여러 명이 작업을 할때 애플리케이션의 전체 흐름을 파악하고 이해하기 쉽다.Unidirectional flow — 데이터 관련 부분을 전부 Redux로 대체하니 모든 데이터 흐름이 한 방향으로 강제되었다. 덕분에 데이터가 어디에서 왔고 어디로 가는지를 파악하기 매우 쉽다.Single storage — 한 곳에서만 데이터를 관리하기 때문에 데이터에 관한 부분은 리듀서만 잘 짜 놓으면 관리하기 쉬워진 점이 있다. Redux를 적용하기 전에 CoreData를 데이터 저장소로 쓰고 있었는데, 어느 시점에 어떻게 저장되는지 눈에 들어오지 않아 불편한 점을 Redux를 사용함으로써 해결할 수 있었다.Immutability and data consistency — 변경 가능한(Mutable) 객체는 보통 iOS 개발에서나 다른 플랫폼 개발에서 장점일수도 있다. 하지만 데이터의 일관성이 깨지기 쉽다. 만약 A에서의 데이터와 B에서의 데이터가 다르면 어떤 것을 신뢰해야 하는지의 문제도 생길 수 있다. 우리는 Redux의 저장소에 있는 데이터를 모두 변경 불가능한 객체(Immutable, Swift에서는 Struct을 쓴다)로 구현하여 이 문제를 해결하였다. 이 부분은 코딩할 때 불편한 점이 조금 있지만, 그 불편함을 감수할만한 가치가 있다고 생각한다.Predictability — 저장소는 오직 액션을 통해서만 변경할 수 있다는 점이 무엇보다 장점인 것 같다. MVC와 같이 데이터를 어디서든 변경할 수 있다면 데이터와 관련된 버그를 찾는 데 소비하는 시간이 길어지곤 한다. Redux는 어떤 액션이 어디에서 불리는지 아는 것만으로도 그 시간을 비약적으로 단축할 수 있다.Maintainability — 저장소, 상태, 액션 그리고 리듀서로 역할과 레이어를 분리하게 되니 보통 코드 라인이 100줄을 넘지 않는다. 그만큼 유지보수 비용이 적어졌다.Organized Code — MVC 패턴에서는 비지니스 로직이 뷰에 들어가는 경우가 있기도 했었는데 Redux의 가이드라인을 따름으로써 자연스럽게 대부분의 뷰는 그저 데이터를 받고 시각화하는 dummy 뷰의 형태가 되었다. 비즈니스 로직이 완전히 뷰와 분리됨으로써 뷰의 복잡도와 코드를 관리하기가 쉬웠다.ReSwift 도입 시 주의할 점ReSwift 도입을 고려하는 분들을 위해 몇 가지 주의할 점을 소개하겠다.Performance — ReSwift에서는 저장소가 변경될 때마다 newState: 메소드가 호출이 되어 화면을 업데이트할 수 있게 되어있다. 채널 데스크 같은 경우는 실시간 애플리케이션(Real-time application)이라서 API 이벤트와 Socket 이벤트가 자주 발생해서 저장소가 변경되는데, 도입 초기 단계에 이 부분을 간과해서 화면이 거의 멈출 정도로 퍼포먼스가 나오지 않았었다. 만약 ReSwift를 적용했는데 퍼포먼스가 나오지 않는다면 newState: 함수 부분을 최적화하거나 미들웨어(middleware)를 만들어서 batch 형식으로 액션을 처리하는 방식을 고려해봐야 한다.Not thread safe — ReSwift는 thread-safe 하지 않아서 초반에 알 수 없는 crash들이 자주 발생했었다. 저자 같은 경우는 ActionWrapper를 만들어서 액션은 항상 메인스레드에서 처리되도록 강제했다.글을 마무리하며..Redux는 이미 자바스크립트 개발에서는 React와 함께 많이 쓰이고 있지만 iOS에서는 아직도 생소한 아키텍쳐이다. ReSwift는 아직 2년도 되지 않은 프로젝트이고 자바스크립트에서 처럼 유용한 Redux 미들웨어도 많지 않다. 또한 인지도도 MVC, MVVM, MVP에 아직 미비한 편이다. 프로덕션에 참고할 만한 예제도 찾기 어려웠기에 초기 러닝 커브는 조금 있었던 것으로 회상한다. 그럼에도 불구하고 우리 팀은 ReSwift를 적용해 보다 깨끗하고 유지보수하기 쉬운 프로그램을 만들 수 있었고 만족하며 사용하고 있다. 기존 MVC의 불편함을 아시는 분들은 충분히 도입할 가치가 있다고 생각한다.#조이코퍼레이션 #개발자 #개발팀 #인사이트 #경험공유 #일지 #Redux
조회수 1996

비트윈의 멀티티어 아키텍처를 위한 프레젠터 이야기 - VCNC Engineering Blog

블로그 첫 글에서 비트윈의 시스템 아키텍처에 대해 다룬 적이 있습니다. 시스템 구성의 미래에 대한 계획으로 멀티티어 아키텍처에 대해 언급했었는데, 이는 프로토콜을 단순화시키고 배포 자동화를 가능하게 하기 위해서 클라이언트와 비즈니스 로직을 담당하는 서버 사이에 일종의 게이트웨이를 두는 것이었습니다. 그 외에도 여러 가지 필요성이 생겨 해당 역할을 담당하는 프레젠터라는 것을 만들게 되었고 비트윈의 채팅 시스템에 적용하게 되었습니다. 만드는 과정 중에 여러 기술적인 문제들이 있었고 이를 해결하기 위한 노력을 하였습니다. 이 글에서는 비트윈 시스템에서의 프레젠터에 대해 이야기 하고자 합니다.프레젠터프레젠터는 일종의 게이트웨이 입니다. 기존의 시스템에서는 클라이언트들이 ELB를 통해 채팅 서버에 직접 TCP 연결을 하였습니다. 하지만 비트윈 PC버전과 자체 푸시 서버를 만들면서 ELB로는 해결할 수 없는 부족한 점들이 생겼고, ELB의 부족한 점을 채워줄 수 있는 시스템이 필요하게 되었습니다. ELB를 대체하는 역할 외에도 다른 여러 필요했던 기능들을 제공하는 프레젠터를 만들기로 하였습니다.프레젠터는 ELB의 역할을 할 뿐만 아니라 여러 다른 기능들도 제공합니다.프레젠터의 기능패킷을 적절한 샤드로 중계비트윈에서는 커플 단위로 샤딩하여 같은 커플의 채팅 요청에 대해서는 같은 채팅 서버에서 처리하고 있습니다. Consistent Hash를 통해 커플을 여러 채팅 서버로 샤딩하고 ZooKeeper를 이용하여 이 정보를 여러 채팅 서버 간 공유합니다. 프레젠터 또한 ZooKeeper와 연결을 하여 어떤 채팅 서버가 어떤 커플을 담당하는지에 대한 정보를 알고 있도록 설계되어 있습니다. 따라서 프레젠터는 첫 연결 시 보내는 인증 패킷을 보고 해당 채팅 연결에서 오는 요청들을 어떤 채팅 서버로 보내야 할지 판단할 수 있습니다. 어떤 채팅 서버로 보낼지 판단하는 과정은 처음 한 번만 일어나며, 이후 패킷부터는 자동으로 해당 채팅 서버로 중계합니다.프레젠터의 이런 기능 덕분에 클라이언트는 더 이상 어떤 채팅 서버로 붙어야 하는지 알아내는 과정 없이 아무 프레젠터와 연결만 맺으면 채팅을 할 수 있게 되었습니다. 기존에는 클라이언트들이 여러 채팅 서버 중 어떤 서버에 붙어야 하는지 확인하는 작업을 한 후에 할당된 채팅 서버로 연결 맺어야 했습니다. 그래서 클라이언트가 채팅 서버와 연결을 맺기 위해 다소 복잡한 과정을 거쳐야 했지만, 이제는 클라이언트가 프레젠터의 주소로 연결 요청만 하면 DNS Round Robin 통해 아무 프레젠터와 연결하는 방식으로 프로토콜을 단순화할 수 있었습니다. 덕분에 새로운 채팅 서버를 띄울 때마다 ELB를 Warm-Up 시켜야 했던 기존 시스템의 문제가 없어졌습니다. 그래서 비트윈 개발팀의 오랜 염원이었던 채팅 서버 오토스케일의 가능성도 열렸습니다.많은 수의 연결을 안정적으로 유지PC버전과 푸시 서버를 만들면서 기존의 채팅 연결과 다르게 많은 수의 연결이 장시간 동안 유지 되는 경우를 처리할 수 있어야 했습니다. 기존에는 TCP 릴레이를 하도록 설정된 ELB가 연결들을 받아주었습니다. 한 머신당 6만 개 정도의 Outbound TCP 연결을 맺을 수 있는데, ELB도 트래픽에 따라 여러 대의 머신에서 돌아가는 일종의 프로그램이므로 이 제한에 걸린다고 생각할 수 있습니다. 따라서 많은 수의 연결을 맺어놓고 있어야 하는 경우 ELB에 문제가 생길 수 있다고 판단했습니다. (과거 ELB가 연결 개수가 많아지는 경우 스케일아웃이 안되는 버그 때문에 문제가 된 적이 있기도 했습니다) 또한 클라이어트 연결당 내부 연결도 하나씩 생겨야 하면 클라이언트가 연결을 끊거나 맺을 때마다 서버 내부 연결도 매번 끊거나 연결해야 하는 오버헤드가 발생합니다.이를 해결하기 위해 프레젠터에서는 TCP 연결을 Multiplexing하는 프로토콜을 구현하여 적은 수의 내부 연결로 많은 수의 클라이언트 연결을 처리할 수 있도록 하였습니다. 서버 내부에서는 고정된 개수의 몇 개의 연결만 맺어 놓고 이 연결들만으로 수많은 클라이언트 연결을 처리할 수 있습니다. 이처럼 TCP Multiplexing을 하는 것은 Finagle과 같은 다른 RPC 프로젝트에서도 지원하는 기능입니다.TCP Multiplexing 프로토콜을 통해 많은 수의 클라이언트 연결을 소수의 서버 내부 연결로 처리합니다.또한, 프레젠터는 많은 수의 SSL 연결을 처리해야 하므로 암복호화 로직을 실행하는데 퍼포먼스가 매우 중요하게 됩니다. 채팅 서버 한 대를 제거하거나 하는 경우 많은 연결이 한꺼번에 끊어지고 연이어 한꺼번에 연결을 시도하게 되는 경우가 있을 수 있는데, 이 때 대량의 SSL Handshaking을 하게 됩니다. 기존 서버들로 대량의 SSL Handshaking을 빠른 시간안에 처리하기 위해서는 높은 퍼포먼스가 필요합니다. Java로 작성된 프로그램만으로 이런 퍼포먼스 요구사항을 달성하기 어려우므로, 클라이언트와의 연결을 담당하는 부분은 OpenSSL, libevent를 이용한 C++로 코드로 작성하였습니다. 인증 패킷을 파싱하거나 패킷들을 릴레이 하는 등의 로직을 담당하는 부분은 Alfred라는 Netty를 이용하여 만든 인하우스 RPC 라이브러리를 이용해 작성되었습니다. 연결을 담당하는 부분은 TCP 연결을 유지하는 역할과 들어온 패킷들을 Netty로 작성된 모듈로 릴레이 하는 역할만 담당하므로 매우 간단한 형태의 프로그램입니다. 짧은 시간 안에 어럽지 않게 구현할 수 있었습니다.클라이언트의 연결을 받아주는 역할을 하는 부분은 C++, 실제 로직이 필요한 부분은 Java로 작성하였습니다.여러 네트워크 최적화 기술의 지원ELB에는 여러 네트워크 최적화 기술들을 아직 제공하지 않는 경우가 있습니다. 대표적으로 HTTP/2 혹은 SPDY, QUIC, TCP Fast Open 등이 있습니다. 특히 모바일 환경에서는 SSL Handshaking 등 부가적인 RTT로 인한 지연을 무시할 수 없으므로 이런 기술들을 이용한 초기 연결 시간 최적화는 서비스 퀄리티에 중요한 부분 중 하나입니다. ELB는 AWS에서 관리하는 서비스이므로 AWS에서 이런 기능들을 ELB에 적용하기 전에는 이용할 수 없지만, 프레젠터는 직접 운영하는 서버이므로 필요한 기능을 바로바로 적용하여 서비스 품질을 높일 수 있습니다. ELB에서 이미 제공하는 최적화 기술인 SSL Session Ticket이나 다른 몇몇 기술은 이미 적용되어 있고 아직 적용하지 않은 기술들도 필요에 따라 차차 적용할 예정입니다.프레젠터의 구현C++ 연결 유지 모듈프레젠터는 퍼포먼스를 위해 C++로 작성되었습니다. 이는 Pure Java를 이용한 암복호화는 프레젠터에서 원하는 정도의 퍼포먼스를 낼 수 없기 때문입니다. 처음에는 OpenSSL과 libevent를 이용해 작성된 코드를 JNI를 통해 Netty 인터페이스에 붙인 event4j라는 인하우스 라이브러리를 이용하려고 했으나, 코드가 복잡하고 유지보수가 어렵다는 점 때문에 포기하였습니다. 그 후에는 netty-tcnative를 이용해보고자 했으나 테스트 결과 연결당 메모리 사용량이 큰 문제가 있었고, 이를 수정하기에는 시간이 오래 걸릴 것 같아 포기하였습니다. 결국, 페이스북에서 오픈소스로 공개한 C++ 라이브러리인 folly를 활용하여 프레젠터를 작성하게 되었습니다. folly의 네트워크 API들이 OpenSSL과 libevent를 이용해 구현되어 있습니다.릴레이 로직프레젠터는 첫 인증 패킷을 파싱하여 릴레이할 채팅 서버를 판단하며, 이후의 패킷부터는 실제 패킷을 까보지 않고 단순 릴레이 하도록 설계하였습니다. 처음의 Netty 파이프라인에는 Alfred 프로토콜을 처리할 수 있는 핸들러들이 설정되어 있어 인증 패킷을 파싱 할 수 있으며 인증 패킷에 있는 정보를 바탕으로 어떤 채팅 서버로 패킷을 릴레이 할지 결정합니다. 그 이후 파이프라인에 있던 핸들러를 모두 제거 한 후, 읽은 byte 스트림을 Multiplexing Protocol 프레임으로 감싸서 그대로 릴레이 하는 매우 간단한 로직을 담당하는 핸들러 하나를 추가합니다. 덕분에 로직 부분의 구현도 매우 간단해질 수 있었으며, 채팅 서버에 API가 추가되거나 변경되어도 프레젠터는 업데이트할 필요가 없다는 운영상 이점도 있었습니다.Multiplexing Protocol프레젠터의 Multiplexing Protocol은 Thrift를 이용하여 직접 정의 하였으며, 비트윈 개발팀 내부적으로 사용 중인 RPC 라이브러리인 Alfred에 이 프로토콜을 구현하였습니다. Thrift를 통해 C++과 Java로 컴파일된 소스코드를 각각 프레젠터의 연결 처리 부분과 로직 처리 부분에서 이용하여 통신합니다. 프레젠터에서는 Multiplexing된 TCP 연결들을 Stream이라고 명명하였으며 이는 SPDY나 HTTP/2에서의 호칭 방법과 유사합니다. SPDY나 HTTP/2도 일종의 Multiplexing 기능을 제공하고 있으며, 프레젠터의 Multiplexing Protocol도 SPDY 프레임을 많이 참고하여 작성되었습니다.수 많은 클라이언트와의 TCP연결을 Stream으로 만들어 하나의 내부 TCP연결을 통해 처리합니다.Alfred에서는 Multiplexing 된 TCP 연결을 Netty의 Channel 인터페이스로 추상화하였습니다. Netty에서 TCP 연결 하나는 Channel 하나로 만들어지는데, 실제 Stream도 Channel 인터페이스로 데이터를 읽거나 쓸 수 있도록 하였습니다. 이 추상화 덕분에 비트윈 비즈니스 로직을 담당하는 코드에서는 Stream으로 Multiplexing 된 TCP 연결을 마치 기존의 TCP 연결과 똑같이 Channel을 이용해 사용할 수 있었습니다. 그래서 실제 비즈니스 로직 코드는 전혀 건드리지 않고 프레젠터를 쉽게 붙일 수 있었습니다.로드 밸런싱클라이언트는 Route53에서 제공하는 DNS Round Robin 기능을 이용하여 아무 프레젠터에 연결하여 채팅 요청을 날리게 됩니다. 하지만 무조건 동등하게 Round Robin 하게 되면 새로 켜지거나 하여 연결을 거의 맺지 않고 놀고 있는 프레젠터가 있는데도 연결을 많이 맺고 있는 기존 프레젠터에에 연결이 할당되는 문제가 생길 수 있습니다. 충분한 시간이 흐르면 결국에는 연결 개수는 동등하게 되겠지만, 처음부터 놀고 있는 프레젠터에 새로운 연결을 가중치를 주어 할당하면 로드를 분산되는 데 큰 도움이 될 것입니다. 그래서 Route53의 Weighted Routing Policy 기능을 이용하기로 하였습니다. 현재 연결 개수와 CPU 사용량 등을 종합적으로 고려하여 Weight를 결정하고 이를 주기적으로 Route53의 레코드에 업데이트합니다. 이런 방법으로 현재 로드가 많이 걸리는 서버로는 적은 수의 새로운 연결을 맺게 하고 자원이 많이 남는 프레젠터로 더 많은 새로운 연결이 맺어지도록 하고 있습니다.스케일 인/아웃AWS에서는 트래픽에 따라 서버 개수를 늘리기도 하고 줄이기도 하는 AutoScaling 이라는 기능이 있습니다. 프레젠터가 스케일 아웃될때에는 프레젠터가 스스로 Route53에 레코드를 추가하는 식으로 새로운 연결을 맺도록 할 수 있습니다. 하지만 스케일 인으로 프레젠터가 제거될 때에는 Route53에서 레코드를 삭제하더라도 함부로 프레젠터 서버를 종료시킬 수 없습니다. 종종 클라이언트의 DNS 캐싱 로직에 문제가 있어, Route53에서 레코드를 삭제되었는데도 불구하고 이를 업데이트하지 못해 기존 프레젠터로 연결을 시도하는 경우가 있을 수 있기 때문입니다. 따라서 프레젠터 클러스터가 스케일 인 될 때에는 기존의 모든 연결이 끊어지고 충분한 시간 동안 새로운 연결이 생기지 않은 경우에만 서버를 종료시켜야 합니다. AutoScaling Group의 LifeCycleHook을 이용하여 위와 같은 조건을 만족 시켰을 때에만 프레젠터 서버를 완전히 종료시키도록 하였습니다.못다 한 이야기프레젠터라는 이름이 이상하다고 생각하시는 분들이 있을 것으로 생각합니다. 멀티티어 아키텍처를 이야기할 때 프레젠테이션 티어, 어플리케이션 티어, 데이터베이스 티어로 구분하곤 하는데 이 프레젠테이션 티어에서 나온 이름입니다. 지금은 실제 프레젠터가 하는 역할과 프레젠테이션 티어가 보통 맡게 되는 역할에는 많은 차이가 있지만, 어쩌다 보니 이름은 그대로 가져가게 되었습니다.프레젠터에서 AutoScaling을 하기 위해 LifeCycleHook을 이용합니다. 이때 프레젠터를 위해 LifeCycleHook 이벤트를 처리하는 프로그램을 직접 짠 것이 아니라 비트윈 개발팀이 내부적으로 만든 Kharon이라는 프로그램을 이용하였습니다. Kharon은 인스턴스가 시작되거나 종료될 때 실행할 스크립트를 작성하고 인스턴스의 특정 위치에 놓는 것만으로 LifeCycleHook을 쉽게 이용할 수 있게 하는 프로그램입니다. Kharon 덕분에 비트윈 내 다양한 시스템에서 별다른 추가 개발 없이 LifeCycleHook을 쉽게 활용하고 있습니다. 후에 Kharon에 대해 자세히 다뤄보도록 하겠습니다.정리비트윈 개발팀에서는 오랫동안 유지되는 수많은 채팅 서버 연결들을 처리하고 클라이언트와 서버 간 프로토콜을 단순화시키는 등 여러 이점을 얻고자 ELB의 역할을 대신하는 프레젠터를 만들었습니다. 프레젠터를 만드는 과정에서 여러 기술적 문제가 있었습니다. 이를 해결하기 위해 C++로 연결 유지 모듈을 따로 작성하였고 Multiplexing Protocol을 따로 정의하였으며 그 외 여러 가지 기술적인 결정들을 하였습니다. 이런 과정에서 시행착오들이 있었지만 이를 발판 삼아 더 좋은 기술적 결정을 내리기 위해 고민하여 결국 기존 시스템에 쉽게 적용할 수 있고 쉽게 동작하는 프레젠터를 만들어 이용하고 있습니다.
조회수 943

스푼 Mena팀의 Maryem을 만나보세요!

메나팀은 원래 다들 알던 사이예요?원래 알던 사이라고 해도 믿을 만큼, 서로의 대한 신뢰로 똘똘 뭉친 스푼 최고의 팀! 그리고 그 팀을 이끌고 있는 Mena팀 리더 Maryem을 소개합니다!Mena 팀원들MENA팀이 궁금해요!"MENA 지역은, 아랍어를 사용하는 중동과 북아프리카 국가를 칭하는 말이에요. 사우디아라비아, 이집트, UAE 등이 속한 나라를 뜻해요. 현재 스푼 Mena 팀은 사우디아라비아, UAE, 바레인, 쿠웨이트, 카타르 총 5개 국가에 서비스를 제공하고 있어요. 저희 팀은 이집트, 사우디아라비아, 모로코 등 각국 다른 아랍 국가에서 온 친구들로 이루어져 있어요! 저희는 모두 국가는 다르지만 아랍어를 구사할 줄 안다는 공통점이 있어요. 그리고 모든 친구들이 한국어를 구사한답니다!"제 한국 이름은 '조미연'입니다.왜 이렇게 이름이 잘 어울리는 거예요? 근데 왜 조 씨예요?"미연이라는 이름은 저의 아는 지인분께서 지어주신 이름이에요. 원래 '수연'이라는 이름을 하고 싶었는데, 미연이라는 이름이 저랑 더 맞는 느낌이 들더라고요. 한국어를 배우면 배울수록 느껴졌어요. 아! 그리고 제 남편 성씨가 '조'씨거든요! 그래서 조미연이 되었어요."라마단 장식 중인 Mena team듣고 싶은 당신의 스푼 라이프Mena팀의 리더가 되기까지"모로코에서 석사과정 중 한국에 교환학생으로 오게 되었어요. 사실 제가 이렇게 한국에 오래 있을 거라곤 생각도 못했어요. 살다 보니, 한국어도 재미있고 한국도 너무 좋은 거예요. 그러다가 인생을 함께 할 동반자를 만나게 되면서 한국에 살게 되었고 직장을 알아보던 중 마이쿤(스푼 라디오)을 알게 되었어요. 솔직히 말해서 큰 기대를 하지 않았는데, 인터뷰를 보고 나니.. 세상에! 너무나도 좋은 거예요. 왜 좋았냐고요?먼저, 인터뷰가 너무 재미있고 인상 깊었어요. 흔히 질문하고 답하는 형식의 인터뷰가 아니라 함께 서로 대화를 하는 형식에 놀라기도 하고 신선했어요. 보통 면접 볼 때 스트레스받는데 그런 분위기가 아닌 것에 대해서 여기는 좀 다르다!라는 생각했죠. 그리고 무엇보다 제가 성장할 수 있는 가능성이 있는 곳이라는 게 느껴지더라고요. 기사도 많이 찾아보았고, 무엇보다 함께 경영진들을 보고 결정했죠!"아! 이곳이다. 나와 함께 성장할 곳"요즘 많이 바쁘시죠?"네 맞아요~요즘 다들 진짜 바쁘시죠? 저도 진짜 바빠요. 팀원들이 많이 늘어나니 좋기도 하지만 어려운 점도 참 많은 것 같아요. 좋은 리더가 되려고 노력하다 보니 정말 바빠지더라고요. 어떻게 팀원들을 조금 더 좋은 방향으로 이끌어줄 수 있을지에 대한 고민도 정말 많이 하는 요즘이에요. 하지만 저희 팀원들 모두가 긍정적이고, 모두 같은 마음으로 팀 KPI를 위하여 열심히 해줘서 늘 감사해요. 어떻게 보면 저희 모두 다 외국에 살고 있는 이방인으로서 함께 일하며 서로 의지하고 가족같이 지내는 것 같아요"스푼에서 일해보니 어떤가요?"이미 회사에서 문화적 차이를 많이 존중해주시고 배려해주셔서 늘 정말 감사할 따름이에요. 그래서 가끔은 죄송한 마음 들 때도 있어요. 저희가 너무 많은 배려를 받는 것 같아서요."어떤 사람과 일하고 싶어요?저는 저희 팀에 새로운 멤버가 들어온다면, 지금 팀원 같은 분이 들어오셨으면 좋겠어요. 팀워크를 위해 노력하고 하나의 목표를 가지고 함께 달려갈 수 있는 그런 사람이요!휴가 가는 마리엠!알고 싶은 Maryem의 이야기솔직히 한국인 아니세요?(굉장히 진부한 질문일지라도, 마리엠은 정말 한국인처럼 한국어를 구사하고 언어뿐만 아니라 행동 그리고 태도마저 한국인 같아서 깜짝깜짝 놀란다)"하하.. 제가 겉으로 그래 보이지만, 저 모로코 사람 맞아요! 많은 한국 분들이 제가 한국어를 완벽하게 구사한다고 생각하시는데 사실 아니에요. 뉘앙스를 잘 이해하지 못할 때도 많거든요. 저는 한국어를 정식으로 배워본 적은 없어요. 드라마, 예능 보고 많이 배웠던 것 같은데 무엇보다 한국인 친구들 만나면서 빨리 배우게 된 것 같아요.제가 한국에 오게 된 계기, 궁금하시죠? 저는 학교에서 대학 수업 중에 한국이라는 나라를 처음 알게 되었어요. 한국은 어떻게 경제적으로 발전하였는지를 배우는데 너무나 대단한 나라더라고요. 궁금했어요. 이 나라는 대체 어떤 나라인지, 그래서 석사 중 교환학생으로 한국에 오려고 했는데 저희 학교랑 체결이 되어있지 않더라고요. 그래서 학교 측에 요청을 했어요. 한국에 가고 싶다고! 그렇게 오게 되었어요. 처음엔 교환학생만 하고 돌아가려고 했지만, 한국이 좋아서 한국에서 박사과정을 밟고 현재 5년 차 생활을 이어가고 있네요."나를 한마디로 표현한다면?카멜레온 - 상황에 따라 달라지고, 환경에 적응을 잘해서요!마케팅 박사가 되기까지"저는 고등학교 때부터 경영을 공부하기 시작했고, 그 안에서도 마케팅 쪽으로 진로를 선택하게 되었어요. 사실 저는 원래 공부 자체를 너무 좋아해요. 공부할 때 가장 행복하더라고요 하하.. 박사과정 끝내도 또다시 공부 시작하고 싶어요! 공부하는 게 좋은 이유요? 그냥 제 머리에 새로운 지식이 쌓이는 그 느낌이 좋더라고요. 배우면서 제 스스로가 성장하는 걸 느껴요. 박사 과정을 마치고 교수직을 맡지 않고 회사를 다니게 된 이유도 누군가를 가르치려면 제 스스로 많은 경험이 필요하다고 느꼈기 때문이에요. 학교에서 공부하는 것뿐만 아니라 사회경험도 하나의 공부라고 생각했거든요."앞으로의 목표가 있다면?"제 스스로의 한계를 매번 뛰어넘는 사람이 되고 싶어요. 항상 지금보다 더 성장하고 더 나은 사람이 되고 싶어요. 그리고 스푼 라디오가 Mena에서 Apple 회사 (애플)처럼, 스푼을 들었을 때 숟가락이 아닌 스푼 라디오가 먼저 생각날 수 있는 브랜드가 되었으면 좋겠어요!"출처: 조선일보멤버들에게 추천해주고 싶은 모로코 음식은?"대표적으로 모로코 음식으로 유명한 건 '쿠스쿠스' 가 있어요. 아! 그리고 '타진' 이라는 음식도 정말 맛있어요. 맛이 한국의 갈비찜과 비슷해요. 그래서 한국 사람들이 좋아하시더라고요! 서울에 모로코 레스토랑이 있으니 나중에 꼭 기회가 되신다면 드셔 보세요!"Maryem은,1. 무려 6개의 언어를 구사합니다!(프랑스어, 영어, 아랍어, 한국어, 모로코어, 벨벨어)2. 족발과 순대를 제외한 찜닭, 갈비, 회 등 한국 음식을 잘 먹습니다!팀원들이 Maryem을 한마디로 표현한다면?(Mena팀원들에게 한 마디로 표현해달라고 요청을 하니, 다들 애정이 넘쳐서 한 마디가 아닌 장문으로 표현해주었습니다)Deena: 마리엠은 일할 땐 카리스마 넘치지만, 평상시엔 쿨하고 귀여운 면이 많은 친언니 같은 사람이에요!Sindi: 똑똑하고, 착하기까지 한 매려심 많은 리더입니다.Huda: 저에게 마리엠은 두 매력으로 다가와요. 하나는 저에게 영감을 주는 리더이자, 한 편으로는 큰 언니 같은 사람이에요. 팀을 위해 항상 노력하고 배울 점이 많은 리더예요.Asmaa: 마음 따뜻한, 책임감 넘치는 존경심이 들게 만드는 리더예요!
조회수 724

제대로 물 마시는 법

나에겐 일년에 한번 꼭 치러야 하는 거사가 있다.바로 환절기 감기로 병원을 찾는 일이다.올해도 가을로 넘어가는 문턱에 걸려 병원을 찾아 진찰을 받았다."몸이 많이 무리를 했네요. 당분간은 쉬시면서 무리하지 마시고, 스트레스 많이 받지 마세요. 따뜻한 물 많이 드시구요"매 해 다른 병원에 가서 새로운 의사선생님을 만나지만 처방내용은 거의 비슷하다. 무리하지 말것 그리고 물 많이 마실 것. 물 많이 마시라는 처방은 나도하겠선생님 앞에서는 시키는 것은 뭐든 다하겠노라 약속하지만, 집에 돌아와서는 약먹는 것 마저도 거를 때가 많다. 하물며 물을 많이 마시라니. 하지만 올해는 병원을 나오며 나도 이참에 물을 한번 마셔볼까 하는 생각을 했는데, 그 계기는 올 여름 결혼한 동생 덕분이다.올 초, 결혼을 3개월 앞둔 동생이 다이어트를 하겠다고 호들갑을 떨며 물을 마시기 시작했다.평소 한방울의 물로 하루를 버텨내던 선인장같은 동생이 어느 순간부터 물을 찾았다. 아마도 다이어트 클리닉을 다녀온 다음이었던 것 같은데, 운동을 하지 않고도 살을 빼는 방법이라며 물을 마시기 시작한 것이다. 내심 얼마나 가겠냐고 생각했지만, 동생은 물통을 끼고 살았다. 도대체 물을 마시면 뭐가 좋은걸까. 동생은 두말 않고 나에게 링크 하나를 던져줬다."우리 몸은 진짜 배고픔과 가짜 배고픔을 구별하지 못한다"사람은 밥을 먹은 직후에도 갑자기 허기가 지는 느낌을 받는다. 단맛이나 자극적인 음식을 먹고 싶은 것이 가짜 배고픔의 예다. 가짜 배고픔은 영양분이 부족해 나타나는 진짜 배고픔과 달리 스트레스를 받을 때 세로토닌 수치가 떨어지기 때문에 나타난다. 이 세로토닌 분비를 다시 늘리기 위해 뇌가 몸에게 당을 더 섭취 하도록 만드는 것이다. 결국 '스트레스를 받았어' 라는 신호를 '난 배고파' 라는 신호로 해석하는 것이 가짜 배고픔의 골자다.이런 실수에서 벗어나는 좋은 판별법이 물마시기라고 한다. 물을 마시고 20분이 지나도 식사를 하고 싶다면 음식을 적정량 섭취해주면 되고, 그렇지 않다면 가짜 배고픔이었으니 물로 넘기면 된다는 것이다. 과연 그 이론적인 내용만큼 효과도 있을까? 나는 이후 여동생을 유심히 살펴봤다. 동생에게 나타난 첫번째 변화는 간식먹는 양의 감소였다. 주말이면 집에 있는 과자나 빵을 누가 다 먹었느냐며 서로를 의심했는데, 올 초에는 집안에 늘 간식이 풍족한 상태가 유지되었다. 이것도 일종의 가짜 배고픔이었는지, 간식이 풍족해지니 나도 평소보다 오히려 과자를 찾는 양이 줄었다. (물마시기의 간적적 수혜를 입은 셈이다) 대신 집 냉장고에 몇통씩 자리를 차지하던 물들이 점점 줄어갔는데, 심할 때는 어머니께서 하루에 한번 보리차를 끓이기도 하셨다. 물 마시기를 하고 2-3주가 지난 시점부터는 동생의 체형도 조금씩 변하는 것 같았다. 매주 몇킬로씩 빠졌다며 자랑처럼 이야기를 하던데, 숫자도 숫자지만 한 눈에도 팔이나 다리 살이 많이 빠진 것이 눈에 들어왔다. 누가 알겠냐마는 3개월 동안 6kg 을 빼서 지금은 50kg 초반이라고 한다.하지만 동생이 진짜 입이 마르게 자랑하는 물마시기의 장점이 있었으니, 그것은 바로 화장이 잘 먹는다는 것이었다. 자기는 여름에도 수분크림을 한통씩 써야하는 건성피부인데, 물마시기 하고 나서는 피부가 촉촉하고, 당기는 느낌도 예전보다 덜하다고 했다. 동생은 피부과 열심히 다닐 때보다도 피부 상태가 훨씬 좋아졌다며 이것만큼은 물마시기 효과가 분명하다고 만나는 사람마다 이야기를 하고 다녔다. 결혼 준비를 하면서 다이어트 클리닉은 빠지지 않고 가던데, 피부과 가겠다는 이야기는 안했던 것을 보면 확실히 효과가 있긴 있었지 싶다. 동생이 물마시기로 톡톡한 효과를 보는 것을 바로 옆에서 봤기에, 매년 흘려들었던 의사선생님의 '물마시라'는 조언이 이번에는 마음에 걸렸다. 그래서 병원을 다녀온 날 (9/21 금) 부터 하루 2L 물마시기를 시작했다. 의식적으로 물을 마시기 시작했다물마시기를 하니 확실히 간식을 줄일 수 있었다. 입이 심심할 때면 으레 쵸콜렛이나 과자를 찾았는데, 지금은 배가 불러서 음식이 땡기지 않는다. 그래서인가 확실히 컨디션도 좋아지는 것 같고 덜 피곤한 것 같은 느낌을 받았다. 그런데 문제는 물마시기를 자꾸 까먹는다는 것이었다. 처음 3일은 250ml 컵으로 하루 6잔을 즐거운 마음으로 마셨는데, 그 다음주는 하루 평균 2-3잔을 마시게 되었다. 어떻게 하면 물을 꾸준히 마실 수 있을까?동생이 나름의 노하우 두가지를 알려줬는데, 첫째는 밥먹고 잠자는 행동과 연결해서 규칙적으로 물을 마시는 방법이다. 먹는 약도 사실 '식후 30분이내' 에 먹어야 할 이유가 별로 없다고 한다. 다만 사람들의 약 복용률이 너무 낮아서 이를 개선할 의도로 '밥먹는 행동' 과 연결을 시킨 것이다. 밥먹는 것만큼 하루에 규칙적으로 까먹지 않고 하는 행동이 없으니 그야말로 창의력 넘치는 해결방법인 것이다. 어쨋든 동생의 이야기는 '밥먹기', '잠자기' 와 연결을 시켜서 물을 마시면 하루 5잔은 꼭 마실 수 있다고 했다. 잠에서 깨서 한잔, 자기 전에 한잔. 그리고 매 끼 식사전 30분-1시간 전에 한잔씩. 그리고 추가적으로 생각날 때 한두잔을 더 마시면 2L 를 빼놓지 않고 먹을 수 있다.물마시기 알람을 설정해두는 것도 방법이다또 한가지 방법은 아침 출근했을 때 책상에 2L 물을 준비해놓고 퇴근하기 전까지 물을 다 마시는 것이다. 나는 물 마시러 캔틴으로 가며 움직이기 위해 이 방법대신 알람을 선택했다. 하지만 같은 사무실에 근무하는 동료들 중에 아침 출근할 때 물을 떠오고 하루 종일 떠온 물을 나눠 마시는 것이 이제는 눈에 들어오기 시작했다. 어쨋든 해야 하는 일이 눈에 보이면 목표를 까먹을 일이 없다. 끝으로 물마시기와 관련해서 한가지 팁이 있다.우리가 보통 2L 의 물을 하루에 마셔야 하는 이유는 하루동안 몸에서 배출되는 2.5L 의 수분중 0.5L 를 음식 등을 통해서 얻고 있기 때문이다. 즉, 빠져 나가는 만큼 채우는 공식인데, 흔히 맥주와 차 그리고 커피를 마시면서 수분 보충을 했다고 생각들을 많이 한다. 하지만, 술이나 커피는 마시는 양보다 더 많은 양을 체내에서 빼내는 효과가 있다고 하니 사실상 마실수록 손해인 것이다. 그러니 잊지 말자. 물은 그냥 물이다. 바라건대 올 해 물마시기 습관을 꾸준히 이어가서, 내년 환절기에는 굳이 병원을 찾지 않아도 되면 좋겠다. by 건강에 관심많은 20대 직장인챌린저스, 확실한 목표달성 꾸준한 습관형성 앱www.chlngers.com
조회수 743

KBS 분야별 업무소개 - 기자

역사의 현장, 그 현장으로 당신을 초대합니다! ′우리의 1년은 세계의 10년′이란 말이 있습니다.격동의 근대사를 숨가쁘게 달려온 우리는 지금 이 순간에도 하루 하루 사회 전 분야에서 일어나는 역동적인 변화를 온 몸으로 느끼며 살아가고 있습니다. 그 가슴 벅찬 변화의 숨결을 현장에서 생생하게 느껴보시지 않겠습니까?.백두에서 한라까지, 그리고 오대양 육대주 구석구석까지 역사적인 사건의 현장에는 어김없이 KBS의 기자들이 있습니다. 그 현장의 주인공으로 여러분을 초대합니다. KBS 뉴스는 언제나 어디서나 국민들이 가장 많이 시청하고 있는 명실상부한 한국 최고의 뉴스입니다. 최고의 시청률, 최고의 영향력으로 타 방송사는 물론 타 언론사를 압도하고 있습니다.4천3백만 국민들은 KBS의 뉴스광장과 함께 하루를 열고, 9시 뉴스에서 가장 알차고 신뢰할 수 있는 품격 높은 정보를 얻으며, 뉴스라인으로 하루를 마감하고 있습니다. 24시간 깨어있는 KBS 뉴스야말로 우리 국민들이 호흡하며 살아가는 산소와 같은 존재로 자리매김 했습니다. 가장 영향력 있는 KBS 뉴스 뒤에는 지금 이 시간에도 전국 취재 현장을 누비고 있는 600여명의 기자들이 있습니다. 또 언론사 가운데 가장 많은 20여명의 특파원이 세계의 소식을 시시각각 전해오고 있습니다.한국사회를 이끌어간다는 자부심으로 24시간 뛰고 있는 KBS의 기자들은 땀과 정열 그리고 사명감으로 역사의 현장을 취재하고 제작하고 또 방송하고 있습니다. 내가 쓴 기사, 내가 제작한 리포트가 가져다 주는 부듯한 성취감, 그리고 타 매체에서는 느낄 수 없는 선후배 동료 간의 끈끈한 유대, 신명나는 판에서만 느낄 수 있는 땀방울의 환희가 보도본부에는 있습니다.디지털 시대의 번뜩이는 감성과 지성, 그리고 영상감각으로 무장한 여러분들을 KBS 뉴스의 주인공으로 초대합니다. 이미 미디어의 주도권은 활자매체에서 영상매체로 넘어온 지 오랩니다. 그리고 그 격차는 더욱 벌어질 것입니다. 니이체는 세상에 두 부류의 사람이 있다고 했습니다. ′역사를 만들어 가는 사람과 평가하는 사람′ KBS 기자는 ′역사를 만들어 가는 동시에 평가하는 사람′ 들입니다. 지금 당신과 함께 우리의 역사를 함께 이끌어가고 또 평가해가고 싶습니다.일하는 즐거움과 감동을 KBS 뉴스에서 느껴보시기 바랍니다. KBS 보도본부로 오십시오.여기가 바로 여러분이 춤 출 이상의 섬 ′로도스′입니다.#한국방송공사 #KBS #KBS공채 #직무정보 #직무소개
조회수 938

국내 IT 산업을 주무르는 첫눈 마피아

업계에서 페이팔 마피아(PayPal mafia)에 대한 이야기를 듣는 건 어렵지 않다. 전세계 IT 산업의 핵심인 실리콘밸리를 장악하고 있는 페이팔 마피아를 탄생시킨 회사는 컨피니티(Confinity)라는 회사다. 이 회사의 이름은 낯설지 몰라도 이 회사가 개발한 페이팔(PayPal)이라는 전자 송금 서비스의 이름은 낯설지 않을 것이다. 1998년 시작된 컨피니티는 페이팔을 만들어 2002년 상장한 뒤 얼마 지나지 않아 이베이(eBay)에 매각된 닷컴 버블 폭풍의 몇 안되는 생존자 중 하나였다. 페이팔 마피아란 페이팔의 초기 임직원들을 일컫는 말로, 이들은 이후에 또 다른 혁신적인 회사들(Tesla Motors, LinkedIn, Palantir Technologies, SpaceX, YouTube, Yelp, Yammer 외 다수)을 계속 만들어 내고 있다. 이들의 모습이 마치 사회 모든 곳에 얽혀 있는 마피아 조직을 연상시킨다는 것에 비유해, 이들을 페이팔 마피아라고 부르기 시작했다. 심지어 포춘지(Fortune)에서는 2007년 이들을 한데 모아 마피아 같은 옷을 입히고 재미있는 사진을 남기기도 했다. 출처 : Fortune Magazine, 2007년 11월페이팔 마피아들의 성공은 절대 우연이 아니라고 생각한다. 이들이 닷컴 버블의 위기를 이겨낼 수 있었던 밑바닥에는 페이팔이라는 회사가 가진 확고한 고유의 문화(culture)가 존재했다. 자신들이 만들어 낸 본연의 문화가 몸에 배인 초기 구성원들이 새로운 회사를 시작하고, 또 다시 새로운 그들만의 확고한 문화를 만들어 가면서 또 다른 페이팔이 만들어 질 가능성이 높아졌다고 할 수 있다. 또한 각자가 가진 강력한 인적 네트워크를 통해 서로 도움을 주고 받으며 새로운 회사를 만들고 함께 성장할 수 있도록 하는 노력을 아끼지 않았다. 실리콘밸리에 또 다른 닷컴 버블이 터진다 하더라도 이들 페이팔 마피아의 생존 가능성은 의심할 여지가 없을 것이다. 정부 시스템이 무너져도 마피아 조직의 견고함은 무너지지 않는 영화 같은 이야기가 실리콘밸리에서 실제로 일어나고 있는 것이다.출처 : jamesaltucher.com한국에서는 이런 사례가 없는지 늘 궁금했다. 얼마 전 알토스벤처스의 한킴 대표님 페이스북에서 ‘네오위즈 마피아'에 대한 이야기를 본적이 있다. 그런데 나는 이 이야기를 읽으면서 네오위즈보다 주목해야 할 회사는 첫눈이 아닌가 하는 생각이 들었다. 네오위즈, 넥슨, NHN 같은 회사보다 훨씬 더 마피아의 밀집도가 높은, 미국의 페이팔을 연상시킬만한 작은 조직이었기 때문이다.첫눈은 2005년 6월 네오위즈에서 분사하며 설립되었던 검색 회사다. 가장 큰 특징은 자사의 내부 DB를 통해 검색 결과를 제공하는 경쟁사들과 차별화하여 인터넷 전체를 검색 대상으로 삼는다는 점이었다. 이후 설립 1년 만에 NHN에 350억원 규모로 매각되었고, NHN의 당시 보도자료에 따르면 임직원은 총 55명이었다. ‘첫눈 마피아’에 대해 정리하려고 마음 먹고 그간 나왔던 첫눈에 대한 기사들을 많이 읽어 봤다. 간간이 첫눈을 페이팔 마피아에 비유했던 기사들도 있었다. 또 마침 우리 회사 렌딧의 홍보 담당인 꼬날이 첫눈의 홍보 담당이었던 덕분에 생생한 이야기를 직접 들을 수 있었다. 정리해 본 첫눈 마피아들은 아래와 같다 (존칭 생략):장병규 : 지난 9월 25일 4차산업혁명위원장에 임명되어 국가적 화제의 인물로 떠오른 장병규 블루홀스튜디오 의장이 첫눈의 창업자. 2005년 6월 네오위즈에서 검색엔진 개발팀 인력들을 이끌고 분사해 첫눈을 창업했다. 2006년 6월 첫눈 설립 1년 만에 NHN 과 350억원 규모로 매각. 이렇게 NHN에 들어간 첫눈의 인재들이 주축이 되어 개발한 서비스가 라인(LINE)이다. 장병규 대표는 첫눈의 NHN 인수 후 초기 기업에 전문적으로 투자하는 벤처캐피털 본엔젤스벤처파트너스를 설립해 우수한 창업자와 스타트업을 발굴하고 지원하는 일에 힘써왔다. 2007년에는 게임개발사인 블루홀스튜디오를 창업해 현재까지 의장직을 맡고 있다.신중호 : 신중호 라인 CGO(Chief Global Officer)는 첫눈의 CTO였다. 2005년에 첫눈 창업 시 장병규 대표와 함께 네오위즈에서 나왔다. 2006년 NHN 인수합병 시 NHN에 합류, NHN 재팬의 검색서비스를 책임지고 일본에 건너가 있던 중 라인을 개발했다. 일본과 동남아시아 여러나라에서 현지화에 성공, 2016년 7월 라인의 나스닥 상장을 견인했다. 최근에는 WAVE, Clova 등 네이버의 AI 사업을 총괄하며 미래를 이끌어 가고 있다.이상호 : SK텔레콤 AI사업단장 역시 첫눈 출신이다. 자연언어처리와 음성합성, 음성검색 분야의 국내 최고 권위자로 알려졌다. 첫눈에 합류하기 전에는 LG전자 연구원을 거쳐 서울산업기술대학 교수를 지냈다. 당시 이상호 교수를 첫눈에 영입하기 위해 장병규 대표가 오랜 시간 공을 들인 것으로 알려졌다. 이상호 단장 역시 첫눈의 NHN 인수합병으로 NHN에 합류한 후 음성 검색 서비스 등 검색 개발에 집중하다, 2011년 다이알로이드라는 음성 인식 개발사를 창업했다. 국내 최고의 음성 검색 전문가 4인으로 구성되었던 다이알로이드는 2012년 9월 국내 최초로 음성으로 문자를 전송하는 앱 ‘다이알로이드'를 선보였다 (관련 내용 : http://limwonki.com/536). 이상호 대표는 2012년 말 다음이 다이알로이드를 인수하며 다음을 거쳐 카카오에서 음성 검색 연구를 지속했으며, 이후 SK플래닛에 입사, CTO 로 기술을 책임지다 2017년 4월부터 SKT AI 사업단장을 맡아 누구 (NUGU) 등 AI 부문 사업을 총괄하고 있다.노정석 : 잘 알려지지 않은 사실이지만 노정석 리얼리티 리플렉션 대표 역시 첫눈 출신이다. 첫눈 창업 초기 약 4개월 간 글로벌 사업 담당으로 일하다, 2005년 9월에 블로그 개발사인 태터앤컴퍼니를 창업했다. 노정석 대표는 1996년 카이스트-포항공대 해킹 전쟁의 주인공으로 유명하다. 이후 1997년 선배들과 창업한 보안회사 인젠이 2002년 코스닥 상장에 성공. 2005년에 설립한 태터앤컴퍼니는 2007년 9월 구글이 인수하며 국내 스타트업으로는 드물은 글로벌 M&A 성공 사례로 기록 되었다. 이후 구글에서 2년여 간 프로덕트 매니저로 일하다 2010년에 설립한 파이브락스(설립 시 사명은 아블라컴퍼니)가 2014년 8월 다시 미국의 모바일 광고 플랫폼 회사인 탭조이에 매각되며, 국내 스타트업에서 드물은 글로벌 M&A 성공 사례를 다시 남긴 주인공이 되었다. 2015년 5번째 회사인 리얼리티 리플렉션을 창업해 국내 대표적인 ‘연쇄 창업가'로 불리운다. 창업과 더불어 엔젤투자자로서 좋은 창업가들을 발굴하고 후배 창업가들과 함께 호흡하는 것을 좋아한다. 티몬, 비트파인더, 미미박스, 다이알로이드, 다노, 다이알로이드(다음이 인수), 파프리카랩(일본 그리 인수), 울트라캡숑(카카오 인수) 등에 투자했다. 나 역시 2011년 미국에서 창업했던 두번째 회사인 스타일세즈 창업 때 노정석 대표의 엔젤투자를 받았다.그 외 2011년 모바일 메신저 ‘틱톡'을 개발해 카카오톡의 강력한 경쟁자로 부상했던 매드스마트의 김창하 대표 역시 첫눈 개발자 출신이다. 김창하 대표는 2012년 매드스마트를 SK플래닛에 매각하며 SK플래닛에서 일하다, 현재는 라인에 합류해 신중호 CGO와 함께 일하고 있는 것으로 알려져 있다. 라인의 박의빈 CTO 역시 첫눈 출신으로 오랜 기간 신중호 CGO 와 함께 하고 있는 핵심 인물이다. 천재 개발자로 유명한 보이저엑스 남세동 대표 역시 장병규 대표와 오랫동안 함께 한 개발자다. 19살에 네오위즈 인턴으로 시작해서 세계 최초의 웹기반 채팅 서비스인 ‘세이클럽 채팅' 개발을 주도하였고, 이후 첫눈을 거쳐 라인에서 일했다. 카카오의 AI 사업을 총괄하고 있는 김병학 부사장 역시 첫눈 출신이다.    대기업과 스타트업을 오가며 활약 중인 첫눈의 인재들도 있다. 이은정 라인플러스 이사는 베인앤컴퍼니 등에서 컨설턴트로 일하던 중 장병규 대표에게 스카우트되어 첫눈에 입사. 첫눈이 NHN에 인수된 후 현대카드, GS홈쇼핑, 삼성카드 등 대기업에서 승승장구 하던 중 2014년 라인플러스에 입사해 글로벌 사업의 중추 역할을 하며 다시 신중호 CGO와 일하고 있다. 엘지생활건강에서 모바일 플랫폼 혁신을 주도하고 있는 권도혁 상무 역시 첫눈 출신이다. 첫눈 합류 전 베인앤컴퍼니와 NHN에서 경력을 쌓았던 권도혁 상무는, 첫눈이 NHN에 인수된 후 다시 전직장 NHN에 합류하지 않고 스타트업인 큐박스에 합류했다. 이후 2011년 ‘울트라캡숑' 이라는 재미있는 이름의 스타트업을 창업, 대학생들의 익명 커뮤니티인 ‘클래스메이트', 소셜미디어 서비스 ‘너 말고 니 친구', ‘마티니', 다이어트 앱 ‘다이어터' 등을 개발해 서비스 하던 중 2014년 카카오에 매각하고 엘지생활건강에 합류했다.   스타트업 홍보를 열심히 하고 있는 우리 회사 꼬날도 첫눈 출신이다. 첫눈 (NHN 매각) - 태터앤컴퍼니 (구글 매각) - 엔써즈 (KT 매각, 이후 닐슨에 재매각됨) - 파이브락스 (탭조이 매각) 등 성공적인 엑시트로 평가되는 스타트업에 연이어 렌딧에 합류. 스타트업 홍보의 미다스 손으로 불리는 국내 유일무이한 이력의 홍보전문가다.첫눈이 NHN에 인수되면서 첫눈의 새로운 검색 정책과 혁신적인 서비스에 기대를 많이 했던 초기 사용자들이 '첫눈이 녹아 버렸다'며 아쉬워했었다고 한다. 하지만 첫눈은 매각 당시 보도했던대로 NHN과 함께 글로벌 서비스 개발에 힘썼고, 메신저 서비스 라인을 만들어 글로벌 시장 진출에 성공했다. 또한 다양한 첫눈 마피아들이 여전히 창업 전선에서 맹활약 중이다. 내가 창업에 뛰어든지 이제 만 12년이 되었고 세번째 회사인 P2P금융 렌딧을 시작한지 2년 반이 지났다. 렌딧은 기술 혁신을 통한 금융 서비스의 효율화라는 미션을 갖고 시작되었다. 혁신적인 서비스를 통해 우리 삶에 긍정적인 영향을 주는 것만큼이나 내게 강한 동기가 되는 것은 함께 일하는 사람들과의 동반 성장이다. 렌딧의 성장 뿐만 아니라 우리 고유의 문화가 몸에 배인 렌딧맨들이 미래에 또 다른 곳에서 새로운 혁신을 만들어 낼 수 있는 강력한 렌딧 마피아가 형성되기를 기대해본다.지난 5월27일, 렌딧의 SeriesB 투자가 확정되던 날 모든 렌딧맨과 함께
조회수 802

Android 와 iOS에서 모바일 앱 삭제수 분석하기

앱 삭제수 분석이 중요한 이유모든 비즈니스에서 사용자 획득만큼 중요한 있다면, 기존의 고객들이 지속적으로 서비스/상품을 찾고 사용하도록 만드는 것입니다.특히, 모바일 앱 서비스의 경우 사용자가 손가락을 한번 움직이는 것만으로 스마트폰에서 앱을 삭제할 수 있기 때문에, 사용자 유지에 더욱 신경 써야 할 수 밖에 없습니다. 실제로 다수의 조사에서, 앱 설치 후 30일 내 90%가 넘는 사용자가 앱을 삭제하거나 사용하지 않는 것으로 나타났습니다. 만약 수백, 수천만원의 광고비를 들여 앱 설치수를 증가시켰는데, 대다수의 사용자가 한 달 뒤에 앱을 삭제한다면 앱 비즈니스 입장에서 큰 시간과 비용 낭비일 것입니다. (관련 포스팅: 앱재사용율(Retention)이 앱 설치수보다 중요한 이유)이 때문에 사용자가 지속적으로 앱을 사용하고 있는지 체크하고, 더 나아가 사용자가 우리 앱을 삭제하는 비율이 얼마나 되는지 파악해 해결방법을 찾는 것이 중요합니다.앱 삭제수를 분석하는 방법그렇다면 앱 삭제수는 어떻게 분석할 수 있을까요? 앱 삭제수 분석은 크게 Daily Ping Service 혹은 Silent Push Notification 방법으로 이루어집니다.와이즈트래커 분석 서비스의 경우, Android 는 Daily Ping Service 를 통해, iOS는 Silent Push Notification 방법으로 앱 삭제수 분석 데이터를 제공하고 있습니다. 아래 내용을 통해 와이즈트래커가 앱 삭제수를 분석하는 방법에 대해 자세하게 알아보도록 하겠습니다.ANDROID 앱 삭제수 분석 – DAILY PING SERVICEDaily Ping Service는 하루에 한번 앱에서 서버로 신호를 보내, 앱이 설치 되어있는지 삭제되었는지 분석하는 방법입니다. 각각의 사용자 앱은 고유의 식별코드를 가지고 있기 때문에, 특정 앱에서 신호가 오지 않는다면 해당 사용자는 앱을 삭제한 것으로 판단합니다.이러한 방법으로 앱 내 설치된 와이즈트래커 SDK는 하루에 한번 특정 시간에 서버로 알림을 보내고 서버에서는 알림이 오지 않은 사용자 앱들을 파악해, 앱 삭제수 데이터를 웹 대시보드로 보여줍니다. IOS 앱 삭제수 분석 – SILENT PUSH NOTIFICATIONSilent Push Notification이란 각 플랫폼의 푸시 메시지 전송 서버에 앱 사용자들에게 내용이 없는 (Silent) 푸시 메시지 전송을 요청해, 해당 서버로부터 앱을 삭제한 사용자에 대한 피드백을 받는 방식입니다.구체적으로, 와이즈트래커는 하루에 한번 Apple의 푸시메시지 전송 서버인 APNs (Apple Push Notification Service) 에게 앱 사용자들에게 Silent 푸시메시지를 전송하도록 요청합니다. 이 메시지는 내용이 없기 때문에 실제 사용자들에게는 팝업으로 나타나거나 보여지지 않습니다. Apple은 해당 메시지 전송 시, 앱을 삭제해 푸시 메시지를 받지 못한 디바이스들의 식별코드를 모아 와이즈트래커에 전달해줍니다. 이러한 정보를 바탕으로 와이즈트래커는 앱 삭제수 데이터를 파악해 보여줍니다. 앱 삭제수 분석의 정확성앱 삭제수 분석의 경우, 분석 방식의 특수성으로 인해 사용자가 앱을 삭제하지 않아도, 앱을 삭제한 것으로 처리되는 경우가 있습니다. 예를 들어, 와이즈트래커 SDK가 서버로 신호를 보내거나 APNs에 푸시메시지 전송을 요청한 시간에 해당 앱 사용자의 디바이스가 꺼져있거나, 네트워크 연결이 안되어 있다면 해당 사용자는 앱 삭제수에 포함됩니다.와이즈트래커는 앱 삭제수 분석의 정확성을 높이기 위해, 앱을 삭제한 것으로 간주된 사용자가 추후 지속적으로 사용하고 있는 것으로 파악될 경우, 기존 삭제수 데이터에 소급 적용해 업데이트 하고 있습니다.와이즈트래커 대시보드에서 앱 삭제수 파악하기실제 와이즈트래커 서비스에서 앱 삭제수는 다음과 같이 Retention 리포트에서 확인 가능합니다.각 날짜별로 앱을 설치한 사용자 그룹을 대상으로, 1일, 7일, 15일, 30일 뒤 앱 재사용수와 앱 삭제수를 Retention 리포트를 통해 한 눈에 파악할 수 있습니다. 위 서비스의 경우 앱 설치 하루 뒤에는 평균 47%, 30일 후에는 평균 67%의 앱 삭제율을 기록하고 있습니다.더 나아가 세그먼트 기능을 이용해 플랫폼, 성별, 연령대, 광고 채널 별로 나누어 앱 삭제수를 볼 수 있기 때문에, 어떤 특성의 그룹이 앱 삭제율이 높은지 파악할 수 있습니다.(페이스북 채널을 통해 앱을 설치한 사용자들의 앱 재사용/삭제수 리포트)또한 와이즈트래커는 앱 삭제 데이터를 더욱 가치 있게 활용할 수 있도록, 앱을 삭제한 사용자들을 타겟팅해 Re-acquisition 을 가능하게 하는 기능을 출시할 예정입니다.와이즈트래커의 앱 삭제수 분석 방법이나 앱 삭제수 리포트에 대해 더 궁금하신 분들은 [email protected]로 언제든 연락주세요! 앞으로도 와이즈트래커는 단순한 분석 데이터 제공을 넘어, 고객사가 데이터를 통해 인사이트를 얻고 지속적으로 성장하는데 도움이 되도록 노력하겠습니다. * WISETRACKER는 모바일 광고 성과 측정부터 In-app 이용자/컨텐츠 분석, 푸시메시지 최적화까지 지원하는 모바일 통합 분석/타겟팅 솔루션입니다. 와이즈트래커 솔루션의 무료체험을 원하실 경우 여기를 클릭해주세요.* WISETRACKER가 제공하는 무료 데이터 분석 컨설팅를 원하신다면 여기를 클릭해주세요.#와이즈트래커 #앱마케팅 #마케터 #인사이트 #성과분석 
조회수 1085

[인터뷰] Humans of MEME, 그 여섯 번째 주인공을 만나다. - 일도 놀기도, 알차게 사는 유라의 이야기

안녕하세용!미미박서의 소소하지만 듣고 싶은 이야기를 담아오는 모뜨입니다!벌써 8월이 2주 정도 밖에 안남았네요세월이~~~~~야속훼~~~~~~~~~~~.. 쥬륵여러분미미박스의  PB 브랜드인 아임미미 를 알고 계신가용?1.2.3 작은 얼굴 메이크업의 필템인 아임 멀티스틱 과클릭해서 쓰는 편리한 버튼 타입의 매끄러운 촉감의 아임 틱톡 틴트 등바로 아임미미 제품인데용!(좌) 아임 멀티스틱 (우) 아임 틱톡 틴트이러한 화장품들은 바로 BM 분들의 손을 거쳐서 탄생하게 되는데요!그렇다면 BM 이란 무엇일까용?Brand Manager 의 약자로 브랜드 매니저는 제품의 생산에서부터 판매까지의  브랜드와 관련된 모든 과정을 관리하는 사람을 뜻합니다.화장품의 세세한 한 곳 한 곳 까지 바로 BM의 숨결이 들어갔다고 생각하시면 될 것 같아요 ~저는 이번 주에 바로 이 제품들이 탄생하는 곳인아임미미 브랜드 팀의 BM인 YURA를 만나보았습니다 !YURA의 이야기를 한 번 구경가볼까요 ?레고레고 레츠고~Q. 유라님에게 멋진 기억으로 자리잡은 곳이 있나요?A. 제가 21살~22살때 쯤 유럽여행을 다녀왔었는데 그 많은 곳 중에서 제일 여운이 남고 좋아했던 나라가 이탈리아였어요. 그렇게 다시 한국에 돌아와서 다시 이탈리아에 6개월정도 교환학생을 다녀왔어요. 대학교 1학년 때 영어 연극으로 ‘로미오와 줄리엣’ 에 참여한 적이 있었어요. 제가 줄리엣 역할을 했구요(웃음). 혹시 ‘레터스 투 줄리엣’ 이라는 영화 아세요? 그 영화를 보고 ‘베로나’라는 도시에 반했었어요. 아쉽게도 유럽 여행 중 그 도시를 일정상 가지 못했고, 그렇게 아쉬움을 간직한 채 다시 한국으로 돌아왔는데 대학교 교환학생 공고에 딱 베로나 대학이 있는 거예요. 그래서 바로 지원을 했고 결국 베로나를 갈 수 있었어요! 베로나에 있는 ‘줄리엣의 집(Casa di Giulietta)’ 에서 사람들이 사랑에 대한 편지를 적어 벽에 붙이고 가는데요. 정말 줄리엣의 집에 가면 벽면 가득 포스트잇이 붙어있어요. 마지막으로 베로나를 떠나오면서 남겼던 그 짧은 편지를 보면, 그 때의 기억이 아직도 생생한 것 같아요. 제 삶에 있어서 이탈리아에서 지냈던 것, 그리고 지내면서 다녔던 여행들. 그 경험들과 기억들이 주는 영향은 크고 긍정적인 것 같아요.베로나를 떠나기 전, 마지막 편지유라님이 처음 베로나에 도착했을 때 찍은 사진Q. 미미박스에 어떻게 합류하게되셨나요?A. 서브 스크립션 박스 시절의 미미박스부터 알았어요. 제가 20살~21살쯤 서브 스크립션을 구독했었고 상품도 만족스러웠어요. 그런데 점점 이제 사고 싶어하는 화장품을 사야겠다고 생각하며 구독을 끊고 미미박스를 잊어버리고 있었던 것 같아요. 그렇게 시간이 지나고 취업을 준비하면서 채용 사이트에서 실시간 검색순위 기업에 미미박스가 딱 눈에 들어오더라구요. 그러고 제가 찾아보니 예전에 서브 스크립션 박스로 구독했을 때보다 최근 몇 년 사이에 엄청나게 성장했더라구요. 저는 대학생 때부터 원래 화장품을 좋아했어요. 용돈이 생기기만 하면 화장품 사는데 쓰곤 했던 것 같아요. 제 전공이 완전히 뷰티 관련 일이랑은 전혀 상관이 없는 일이기도 하거든요. 그래서 막연하게 ‘뷰티업계가 나랑 잘 맞겠다’ 혹은 ‘나중에 뷰티업계로 직업을 가지면 좋겠다’ 라고 생각하기만 했었거든요. 근데 미미박스를 통해서 직무를 굳힌 것 같아요. 막연하게 추상적으로 생각했던 저의 꿈에서 미미박스를 통해 뷰티업계, 그리고 BM이라는 제가 완전히 원하는 직무를 찾게 되었어요. 그렇게 틀이 잡히며 열심히 찾아보고 면접 준비도 열심히 하고 다행이 잘 되어서 미미박스에 오게 되었어요. 전 정말 운이 좋았다라는 생각밖에 안들어요(웃음). 그렇게 제가 하고 싶은 일을 시작하게 되었고 앞으로도 더 잘할 수 있는 일들을 하고 싶어요.이렇게 일할 땐 열심히 개미처럼 일하고,  또 놀 때는 확실하게 베짱이처럼 놀면서 지내고 있어요. 지인들이 저보고 '진짜 알차게 산다'라고 하더라구요(웃음).이탈리아를 떠나오기 전, '좋은 곳 취직했으면 좋겠어' 라는 바람대로 이루어진 소망 Q.  항상 웃고 계신 유라님 덕분에 저도 덩달아 에너지를 받아요! 혹시 일을 하시면서 힘드신 적은 있으셨나요?A. 제품을 개발할 때부터 제품이 출시되기까지 정말 많은 공수가 들어가요. 처음 이 직무를 시작하기 전에는 잘 모르실 거에요. 화장품이 생산되는 모든 과정에 참여하게 되어요. 그 중에서 CT 테스트 라고 하여 제품 자체 기준, 감량 테스트도 진행해요. 예를 들면 아이라이너 같은 경우 휘발이 되면 빨리 마르거든요, 그럼 발색이 잘 안되어요. 그런 것들을 검사하며 낙하 테스트나 누수 테스트 등 고객분들이 제품을 받았을 때 최고의 경험을 하시도록 만들어나가는 일종의 과정인 것이에요.제품에 대한 컨셉 보드나 품평회 등 다 열심히 개발했더라도 CT에서 부적합 판정이나 기준에 미달되면 화장품이 아예 드랍 되어버려요. 일을 하는 데 있어서 제가 컨트롤할 수 있거나 열심히 하면 되는 부분에서는 스스로 마음을 잡고 열심히하면 되는데, 이렇게 기준이 미달 되어 드랍되면 제가 어쩔 수 없이 아무리 열심히 한 들 어떻게 할 수 없는 것이라 제 노력과 의지 밖의 일이라서 힘든 것 같아요.저는 입사한지 1년 정도 되어서 아직 경험이 많지는 않지만, 다른 BM 선임분들이 디자인 까지 다 나온 상태에서 드롭을 겪는 것을 보면서 정말 힘들것 같다는 생각이 들더라구요. 그래도 다시 새로운 제품을 만들기 위해 노력하는 과정을 반복하는 것을 보면 BM 은 정말 화장품을 좋아하는 사람이 일해야 하는 직무 같아요. 애정이 없으면 못할 것 같아요.Q. 유라님이 가진 특별한 것이 있으시면 소개해주세요!A. 저는 버킷리스트가 있어요. 20살 때 버킷리스트를 50개정도 세워서 지금까지 하나 하나 지워가고 있어요. 제가 이뤘던 것들로 교환학생 다녀오기, 해외에서 6개월 이상 살아보기, 스카이다이빙하기, 혼자 클럽가기, 혼자 여행해보기, 성적 All A+맞기, 수석해서 장학금 받기 등 있었어요. 하나 하나 버킷리스트를 지워가면서 다시 삶을 돌아보고 목표를 가지게끔 하는 것 같아요. 앞으로 남아있는 목록 중에 하나는, 제가 지금 I’M MEME BM 을 하고 있는데요. 언제가 되었든, 아임미미 히어로 제품을 무조건 만들고 싶어요. 지금 아임미미의 멀티스틱처럼 미미박스의 시그니처 제품을 꼭 개발하고 싶어요. 개발할 때까지 저 여기에 있을거에요(웃음). 지금은 전세계 어디 여성 파우치에 들어가 있는 ‘쿠션’이라는 카테고리가 2008년 이전에만 해도 없었는데 이제는 국내에 있는 브랜드들은 물론이며 글로벌 명품 브랜드에서도 앞다퉈 제품을 출시하고 있잖아요. 지금 화장품 시장이 포화 상태여서 특별한 무엇인가를 찾는 것이 어려운 일이지만 저의 원대한 꿈으로는 모든 고객들의 파우치에 들어갈 제품 혹은 카테고리를 꼭 만들고 싶어요.'간절히 원하면 이루어 진다' 라는 말이 있듯이,자신의 미래도 스스로 만들어갈 수 있는 것 같아요!시행착오를 겪지 않기 위해 하향 조정된 목표와 수준에서 안주하려는 마음보다는내가 원하는 것 혹은 간절히 바라는 것에 대해 도전적으로 생각해보는 것은 어떨까요?성장하고자 하는 미미박스에서성장하고자 하는 미미박서들과 이야기를 나누는 Humans of MEME이번 주의 이야기는 어떠셨나요? 새로운 이야기를 가지고 찾아오도록 하겠습니다아다음 미미박서의 이야기도 기대해주세요 !안녕히 계세용 꾸벅
조회수 790

중소기업을 위한 비대면 서비스 바우처 사용처 Best 4

요즘 일 잘하는 중소기업에서는 빠른 성과 달성과 업무 효율을 위해 여러 서비스를 이용하는데요. 오늘은 중소기업에서 사용하면 좋은 서비스를 추천해 드릴게요. 비대면 서비스 바우처 사용처를 아직도 고민하고 계신다면, 이 글을 주목해주세요!1. 플로우플로우는 PC와 모바일의 동기화를 통해 프로젝트 중심으로 협업 및 커뮤니케이션을 할 수 있는 올인원 플랫폼이에요. 내부 직원을 물론 협력사 파트너와도 프로젝트별로 쉽게 초대해서 협업이 가능합니다. 메신저는 물론 프로젝트 일정관리, 작업관리, 파일공유 등의 기능을 사용할 수 있고, 클라우드 방식의 월 임대형 서비스와 중견/대기업을 위한 사내 서버 설치형 서비스를 모두 제공하고 있어요. 최근에는 비대면 서비스 바우처 우수사례로 뽑혀 바우처로 플로우를 많이 이용하고 계세요.클릭 시 비대면 바우처 우수 사례집으로 연결됩니다.2. 채널톡웹채팅, 카카오톡, 네이버 톡톡 등 모든 상담 관련 서비스를 한 곳에서 관리할 수 있는 올인원 서비스에요. 전화가 아닌 채팅 기능을 통해 물리적인 공간과 시간의 제약을 받지 않고, 제품 및 서비스에 대한 상담이 가능해요. 실시간 마케팅을 실시할 수도 있어요.3. 경리나라중소기업의 번거로운 경리업무를 금융과 연동해 불필요한 업무를 획기적으로 줄여주는 서비스에요. 수기 혹은 엑셀로 증빙을 하거나 관리하던 모든 경리 업무들을 한 곳에서 자동화로 처리할 수 있는 서비스입니다. 세금계산서, 영수증, 은행/카드 거래내역 등의 모든 증빙 및 영수증을 클릭 한번으로 자동 수집 후 바로 세무사에게 전달할 수도 있고, 월/분기/년간 단위별 관리가 가능해요.4. 모두싸인아직 종이 계약서를 우편으로, 퀵으로 주고 받으시면서 계약서를 작성하시나요? 모두싸인은 번거로운 종이 계약을 대신할 수 있는 온라인 계약 서비스입니다. 비대면 시대에 계약도 이제는 온라인으로 진행할 수 있어요. 종이계약과 법적효력이 동일하다고 하니 안심하고 사용해도 될 것 같습니다. 최근에는 과학기술정보통신부에서 디지털 뉴딜 우수사례로 선정되었어요.중소기업이 알아야 할 비대면 서비스 바우처 주의사항1. 한 기업당 최대 200만원 까지비대면 서비스 바우처의 수요기업으로 선정된 기업들은 사용처를 선택할 수가 있는데요. 한 기업당 최대 200만 원까지만 결제가 가능해요. 즉 최소 2개 이상 서로 다른 공급기업의 서비스를 선택해야하죠. 최대 400만원까지 가능하니 2개 이상의 기업을 선택할 수 있어요! (서비스 이용금액의 90% 지원, 10%는 자기부담금)예를 들어 플로우에서 200만원을 결제하고, 경리나라에서 100만원, 채널톡 100만원 결제를 하실 수 있어요.2. 선정된 날로부터 60일 이내 결제K비대면 바우처 플랫폼에서 ≪기업정보관리≫ 메뉴로 들어가면 심사결과를 확인할 수 있는데요. 승인이 되었다면 바우처 신청 탭에서 바우처를 신청하실 수 있습니다. 주의 하실 점은 선정된 날로부터 60일 이내 1회 이상 결제가 되어야 하고, 90일 이내에 전액을 사용해야 수요기업 선정이 취소되지 않아요!비대면 서비스 바우처로 플로우 사용하기플로우 바우처 관련 상담하기
조회수 1100

일 잘하는 메모 정리법

어느덧 회사 생활을 시작한 지 5년차다. 대리라는 직함도 달게됐다. 이제는 좀 회사에 적응했나 싶지만, 입사 초반은 매사가 좌충우돌의 연속이었다. 새로운 업무를 배우랴, 시키는 일들을 해가랴, 가끔있는 회식까지. 그래도 신입 첫해는 그럴 수 있다는 방패막이 있었지만, 연차가 쌓일수록 빠뜨린 업무가 하나 발생하는 건 이미지에 큰 타격을 입혔다. 처음에는 성격좋은 덜렁이로 생각할 수 있을지언정, 한 두번 실수가 쌓이면 구멍으로 인식하게 되는 것은 순식간이다. 더 큰 문제는 나에게 있었다. 외부에서 나를 바라보는 불안감 어린 시선보다도, 스스로가 업무를 제대로 처리하지 못한다는 불안감을 갖게 되면서 오히려 업무에 집중할 수 없는 게 문제였다.뾰족한 해결책이 필요했다. 처음 떠올린 건 메모였다.필요한 일은 메모지에 써서 붙여 두기. 하지만 사실 업무가 좀 많은가. 못한 일만 가득 적힌 메모지로 벽이 도배가 돼서 어느 메모가 중요한지 알아볼 수 없게 됐다. 보는 것만 해도 스트레스였다. 결국 너저분한 벽으로 팀장님께 한번 제대로 혼나고 이 방법은 접게됐다. 다음은 다이어리였다. 다이어리도 초반에는 열심히 적었다. 할 일이 빼곡히 적힌 메모지가 여기저기 날라다니는 것 보다는 한 공간에 할 일들을 적어가니 훨씬 정리정돈도 잘됐다. 하지만 안 써 버릇하던 걸 신경 써서 쓰자니 쉽지 않았다. 게다가 다이어리는 왜이렇게 무거운지. 불편함에 한 두 번 다이어리 없이 회의에 참석했다가 할 일을 다른 노트에 적고 나서부터는 결국 이노트 저노트를 쓰다가 다이어리도 치우게 됐다.그나마 변화가 생기기 시작한 것은 팀장님이 팀원 전체에 내일 할 일 목록을 적고 퇴근하도록 지시했을 때부터였다. 솔직히 처음에는 반발심도 있었다. 초등학생도 아니고 매일 내일 할 일을 적고 퇴근하라니. 당연히 그 속내를 드러내지는 않았다. 직장인이니까. 팀장님은 이 프로젝트에 ‘내일 3줄’이라는 이름까지 붙였다. 이런 이름이 없었다면 나는 아마도 끝도 없이 해야할 일들을 나열하고 있었을 것이다. 다행히 팀장의 꼼꼼한(사실은 빡빡한) 성격 덕분에 ‘내일 3줄’을 효과적으로 활용할 수 있게됐다. 처음에는 그저 기억에 잘 남게 할 광고 카피 정도의 역할로 생각했던 ‘내일' 과 '3줄’이라는 이름에 사실은 심오한 뜻이 담겨 있었다. 사실 (나도 그랬지만) 사람들은 어딘가에 해야할 일들을 열심히 적지만, 열심히 적어나가기만 할 뿐 리뷰를 한다거나 우선순위를 정하는 일에는 소홀하다. 나 역시 해야하는 일이 생기면 메모장에 할일 목록을 열심히 적기에만 바빴지 무엇이 중요한 지, 어떤 것부터 해야하는지와 같은 일을 챙기는 데에는 무심했다. 그러다보니 잊어먹어서 일을 못한다기 보다는 다른 일을 처리하다가 중요한 일을 놓치는 경우가 있었다. 그것도 중요하고 시급한 일들을. 나의 내일 3줄 할일들할 일을 적을 때의 포인트는 중요한 일을 적은 개수로 적는 것이다. 사람의 인지능력에는 한계가 있어서 너무 많은 항목을 적으면 오히려 집중력이 흐트러진다고 한다. 3개 정도가 적당하고, 많아도 5개를 넘기지 않는 것이 좋다고 한다. '내일 3줄' 프로젝트에서는 할 일을 3개로 적도록 개수를 제한하니, 오늘 하려고 적어놨던 많은 일들 중에 내일 꼭 해야할 일 3개를 퇴근 전에 추려보게 됐다. 자연스럽게 우선순위에 기반해서 중요하거나 시급한 일이 목록에 들어오게 됐고, 퇴근 후에도 적어놓은 일들을 위주로 어떻게 처리할까에 대해 생각해보게 됐다. 예전처럼 20개 이상의 할 일들이 너저분히 적혀 있었더라면 사실 노트를 들춰보고 싶은 마음조차 안생겼을 것이다.두 번째로 강조할 부분은 현실적인 목표를 적어야 한다는 것이다. to-do list 의 숨겨진 효과 중 하나는 목표를 달성했을 때 항목을 하나씩 지워가면서 성취감을 쌓는 것이다. 터무니 없는 목표를 적으면 내일도 모레도 그 목표를 달성하지 못한 채 목록에 써야 한다. 예를 들면, 이직을 한다고 하면, 이직을 1번 목표라고 적을 것이 아니라, 이력서 쓰기나 관련분야 사람만나기 같이 바로 실행으로 옮길 수 있는 일들을 적어야 한다. 하루만에 끝낼 요량이라면 월간 보고서라고 써도 좋지만 그렇지 않다면, 월간 보고서 주제잡기나 팀장님과 보고서 주제 논의하기 정도가 적당하다. 며칠 째 to-do list 상단에 묵혀놓은 할 일이 남아있다면, 어느 순간 우리 뇌는 그 목록은 안 지워지는 일로 자연스럽게 인식하게 된다. 그래서 가능하면 목록은 하루 이틀내에 지울 수 있을 정도의 태스크 수준으로 적어두는 것이 좋다.그런데 3줄 요약 쓰는 것 자체를 잊어버리면? 실제로 몇 번 이런 일도 있었다. 이럴 때는 자신이 퇴근 전 꼭 하는 행동과 3줄 요약 쓰기를 연계하면 좋다. 내 경우 퇴근 전 머그잔을 씻는 습관이 있어서, 머그잔 근처에 3줄 요약을 쓸 포스트 잇을 붙여두었다. 사실 노하우라고 하기에는 너무 소소한 방법이지만 아무튼 그 이후로는 3줄 요약 없이 퇴근했던 기억은 없다.사실 나는 아직도 일정 관리를 더 잘할 수 있는 방법을 찾고 있다. 언젠가는 다시 다이어리를 효과적으로 활용할 수 있게 될지도 모른다. '내일 3줄' 도 쓰다보니 가끔 지겨워지고 변화를 주고 싶다는 생각이 드는 게 사실이다. 아직은 그 생각이 강하지 않아서 '내일 3줄' 쓰는 일을 계속 하고 있지만, 언젠가는 새로운 방법으로 내일의 할 일을 적게될지도 모르겠다. 중요한 것은 업무의 홍수 속에서 중요한 일을 놓치지 않고 성과를 내는 것이지 3줄 요약이라는 방법에 집착하는 것이 아니다.by 직장 에이스를 꿈꾸는 5년차 직장인챌린저스, 확실한 목표달성 꾸준한 습관형성 앱www.chlngers.com

기업문화 엿볼 때, 더팀스

로그인

/