스토리 홈

인터뷰

피드

뉴스

조회수 194

당신이 상처를 던진다 해도 나는 받지 않겠다

지금까지 썼던 다섯 개의 글은 2016년에 스토리 펀딩에 연재했던 글을 약간 수정한 것입니다. 2년 전에 썼던 글을 다시 읽고 다시 쓰며 그때의 나보다 지금의 나는 얼마나 성장했을까 생각해봤습니다.  [스토리펀딩] 스트레스 속에 지친 그대에게왜 NO STRESS가 아니고 STRESS COMPANY냐는 질문을 가끔 받곤 합니다만, 스트레스는 나쁜 말이 아닙니다. 스트레스는 우리 몸에서 없앨 수도, 없어서도 안 되는 시스템이기 때문입니다. 누구도 피할 수 없는 스트레스, 당신 삶의 에너지로 만들어 드리겠습니다storyfunding.daum.net 스토리펀딩의 글 리스트처음 스토리 펀딩의 문을 두드리게 된 건, 그동안의 삽질을 기록하고 싶은 의미가 더 컸습니다. 그런데 5화쯤 쓰고 나니 더 이상 쓸 말이 없구나라는 걸 깨달았고, 조금 더 나를 쌓아야겠구나 하는 생각이 들더군요. 그 생각은 첫 번째 글에 달린 댓글을 읽으면서 더더욱 강하게 들었습니다.저거 태운다고 화가 풀리나?처음 이런 댓글을 받고 얼마나 당황했는지 모릅니다. 그 후론 댓글 창을 열어보는 것조차 겁이 나고 두려웠습니다. 그러다 마음을 가라앉히고 생각을 해보기로 했죠. 내가 저런 말을 들은 것이 한두 번인가. 그거 태운다고 뭐 달라지냐, 왜 회사 이름은 스트레스컴퍼니냐, 스트레스 만드는 회사냐, 너나 잘해라... 등등등.  사실 그때마다 웃으며 넘어갔지만, 물론 저는 하나하나 다 마음에 담아두었습니다..  그리고 그것들은 이따금씩 제 맘을 치고 올라와서 저를 괴롭게 만들었습니다. 그렇게 한참을 괴로워하다가 도저히 안 되겠다 생각하고 제가 시도했던 방법은 바로 이것입니다. 그들이 하는 말 하나하나에 반응하지 않고, 그들의 입장이라면 그럴 수 있다고 생각하자. 그리곤 익명의 그들에게 답장을 보냈습니다. 한 명도 빠짐없이.물론! 안 풀릴 수도 있어요.그들이 던진 악플을 회피하지 않고, 무턱대고 분노하지 않고, 상황에 직면해서 상담하듯 그들에게 답장을 쓰다 보니, 제 마음이 가라앉는 것이 느껴졌습니다. 제가 그들을 모르듯, 그들도 제가 어떤 사람인지 모릅니다. 저의 글을 한번 읽었다고 해서 저라는 사람을 다 알 수는 없습니다. 그런 그들이 내게 상처를 던졌다고 해서, 그걸 모두 제가 받아 들고 아파해야 할 이유는 전혀 없으니까요. 그렇게 하나둘씩 제 마음속을 정리하고 나니, 다행히 제 답글을 읽은 분들이 조금씩 제 마음을 이해해주기 시작했습니다.이렇게 모두가 행복하게 잘 살았습니다! 였다면 참 좋았겠지만, 2화에도 3화에도... 역시 악플은 달렸고요. 저는 그때마다 생각했습니다. 이 사람들은 대체 어떤 상처가 있길래, 내 작은 글에 이렇게까지 반응을 하게 되었을까.. 분명 내 글의 어떤 부분이 그들에게 방아쇠가 되어 상처를 건드렸겠지라고 생각하니 마음이 아팠습니다. 그래서 또 저는 마음을 담아서 답장을 썼습니다. 그랬더니 정말 제 마음을 이해해주더라고요. 제게 마음을 다루는 일을 한다는 사람이 이렇게 쉽게 말을 해도 되냐면서 저주의 말을 쏟아내셨던 분이 저의 답글을 보고, 원 글을 삭제하고 제게 사과를 하셨습니다. 이때가 제일 뿌듯했던 순간입니다. 누군가 던진 상처를 내가 상처로 받아들이지만 않는다면, 상처가 되지 않을 수도 있구나!라는 걸 깨달았기 때문입니다.그렇게 저는 보살이 되었습니다. 는 거짓말이고요. 이후로는 누가 내 인생에 악플을 달면, 대체 나에 대해서 뭘 안다고 저런 말을 저렇게 함부로 뱉지!@#$@%%^$^$%$%@$@&*(((**000!!!!라고 생각하기보다 눈을 감고 하나, 둘, 셋을 세면서 마음을 가라앉히고 저 사람도 상처가 있겠지 하고 생각해보게 되었습니다. 모든 감정에는 이유가 있으니까요.그리고 그건내 마음도 똑같습니다. 내 마음에도 이유가 있습니다. 너무나 바보 같은 실수를 해서 나에게 너무나 화가 날 때도, 그때도 그렇게 해야 합니다. 저는 얼마 전에 병원에 가던 길에 배가 고파서 바나나를 사야겠다는 생각이 들었습니다. 그리고 병원 옆에 있던 식료품 가게를 떠올렸죠. 그래서 가게 앞에 닿자마자 저는 주차를 하고 얼른 바나나를 사러 뛰어갔습니다. 제 차 바로 뒤에 주정차 위반 차량 단속이라는 전광판을 달고 있는 차가 빵빵대고 있었는데도 말입니다. 그 때는 그냥 얼른 사 갖고 나오면 되지라고 생각했습니다. 왜냐고요? 그때 제 머릿속에는 바나나밖에 없었으니까요..   그렇게 3,000원짜리 바나나를 사고 굉장히 뿌듯하게 가게를 나서는데, 주정차 위반 단속 차량이 다시 돌아서 제게로 다가오고 있더군요. 제 앞에 빽빽하게 서있던 차들은 어느새 모두 빠져있고, 제 차만 덩그러니 서있었습니다. 아... 그제서야 내가 무슨 짓을 했는지 깨달았고, 갑자기 불안이 엄습해왔습니다. 차를 빼고 병원으로 올라가서 대기하는 동안 저는 미친 듯이 검색을 했습니다. 주정차 위반 단속 차량, 주정차 위반 과태료, 주정차 위반 조회,,,, 를 검색하는 동안 마음속은 타들어갔고, 나는 왜 그 차를 보고도 아무 생각을 하지 못했는가, 왜 나는 그때 바나나를 사야만 했나, 바나나를 안 먹고 그냥 지나쳤다면 이런 일이 없었을 텐데, 과태료가 나오면 어떡하나, 정말 찍힌 건가, 40,000원이면 맛있는 초밥을 신나게 먹을 수 있었는데, 나는 바보인가의 늪에 빠져서 한참을 허우적대다가 눈을 감고 하나 둘 셋을 세며 현실을 인정하기로 했습니다.나는 43,000원짜리바나나를 샀다는 것을...그러고 나니 거짓말처럼 마음이 편해졌습니다. 이미 벌어진 일, 더 이상 그건 내가 어쩔 수 없는 일이니까요. 어쩔 수 없는 일은 그냥 내려놓는 것이 정답입니다. 그렇게 저는 아주 비싼 바나나를 맛있게 먹었습니다.I llike banana.그래서지금은 스트레스를 안 받나요?스트레스컴퍼니를 시작하고서 제일 많이 들었던 질문이 그래서 지금은 스트레스를 안 받냐는 것이었습니다. 그러나 저는 지금도 여전히 스트레스를 많이 받고 있습니다. 그렇지만, 이전에 저는 스트레스를 받을 때마다 가장 가까운 사람들에게 짜증을 내며 내 감정을 정당화시키려고 했다면, 지금의 저는 힘든 감정에 휩쓸리기보다 다시 편안해지기 위해 노력합니다. 화가 나면 누구도 아닌 나 자신이 제일 괴롭다는 것을 알기 때문이죠. 그렇게 기분을 전환시킨 후에 천천히 곱씹으며 나를 화나게 한 것은 무엇인지, 왜 내가 화가 난 것인지를 생각해보곤 합니다. 그렇게 나 자신에 대해서 한 발짝씩 다가가다 보면 내가 중요하게 생각하는 것들이 보입니다. 내가 왜 바나나를 그때 그 시간에 먹을 수밖에 없었는지에 대한 이유 같은 것들 말이죠. 저는 병원을 갔다가 바로 운동하러 가야 했고, 그런데 배가 고팠고, 그래서 운동을 가기 전에 배를 채워야 했고, 그리고 그러기엔 바나나가 제격이었기 때문입니다.그리고 전 스트레스를 받을 때마다 상품을 만듭니다. 스트레스가 주는 에너지를 건설적으로 발휘할 수 있는 대상이 필요하거든요. 그래서 스트레스컴퍼니 상품이 벌써 30개가 넘었습니다. 하하. 그리고 2월에도 또 신상품이 나옵니다. 감정카드 50개. 뚜둔!2017년 스트레스컴퍼니의 상품들, 지금은 더 늘어났습니다.스트레스라는 건 없앨 수도 없고, 또 없어서도 안 되는 우리 몸을 다스려주는 시스템입니다. 누구는 피할 수 없다면, 즐기라고 하지만, 그건 도인들이나 할 수 있는 경지가 아닌가 싶습니다. 저는 아직 도인이 아니기에, 피할 수 없으면 받아들여보기로 했습니다. 그렇게 스트레스를 온몸으로 받아들이며 내가 느끼는 감정들이 내게 말하고자 하는 것들을 천천히 곱씹어 보려 합니다. 모든 감정에는 이유가 있으니까요. 저는 시련이 주는 가르침을 믿습니다.스트레스컴퍼니의 제품들은 스트레스컴퍼니샵에서 구매 가능합니다.ⓒ스트레스컴퍼니 - 무단 전재-재배포 금지#스트레스컴퍼니 #심리스타트업 #스트레스관리 #서비스소개 #제품소개
조회수 2669

커뮤니티 데이터로 만드는 커머스, 스타일쉐어 MD 인터뷰

안녕하세요. 스타일쉐어의 장선향입니다.스타일쉐어를 여전히 패션 사진 공유 플랫폼으로 생각하는 분들이 많지만, 작년 4월부터 스토어1를 론칭해 SNS를 기반으로 한 커머스를 함께 운영하고 있습니다. SNS를 기반으로 한 커머스. 감이 잘 안 오신다구요? 맨 처음 앱이 출시되었을 때 많은 유저들은 SNS로서 스타일쉐어를 이용했습니다. 페이스북이나 인스타그램처럼 일상의 패션 사진을 올리고 공유하는 플랫폼처럼 말이죠. 유저들은 제품에 대한 정보를 궁금해하기 시작하고, 지난해 4월 커머스가 런칭한 후에는 사진 속 상품을 클릭 한 번으로 구매를 할 수 있게 되었습니다. SNS적 성격이 강한 기능인 스타일피드를 시작으로 스토어가 결합되어 유저들에게 정보 공유와 구매를 한 번에 할 수 있게 된 것입니다.뛰어난 콘텐츠 생산자이자 다양한 미디어를 활용하며 콘텐츠를 소비하는 소위 밀레니얼 세대들이 사용하는 스타일쉐어는 일반 커머스와는 확연히 다릅니다. 유저들은 스타일쉐어에서 정보를 얻고 적극적으로 쇼핑에 참여하며, 제품에 대해 평가하고 후기를 공유합니다. 그러다 보니 기존 쇼핑커머스에서 흔치 않은 이야기들을 만들어 냅니다. 작은 브랜드가 굉장히 성장한다던가 새로운 유행을 만들어 낸다거나 하는 식으로 말이죠.이런 재미있는 스토리들을 들려주실 커머스 MD분들께 스토어에 대해 들어보는 시간을 가졌습니다. 단 6명으로 올해 4월, 누적 거래액 100억을 달성하며 매달 새로운 기록을 세우고 있습니다. MD(MerchanDiser) 란 상품을 기획하는 직군을 말합니다. 스타일쉐어에서 판매하는 상품을 소싱하고, 기획하는 일을 하며 고객의 반응을 파악하여 매출 관리, 재고관리, 사후관리까지 담당하고 있습니다. 지난 1년간 무에서 유를 만들고 있는 스타일쉐어 스토어의 숨은 주인공, 스쉐 MD분들 — 커머스팀 리더 신희정님, 패션MD 김미리님, 뷰티MD 김민희님- 을 소개합니다.스타일쉐어의 스토어 규모에 대해서 소개해 주세요.희정: 600여개 패션, 300여개 뷰티, 300여개 슈즈/잡화 브랜드들이 입점해 있습니다. 처음 스토어를 론칭할때는 100여개 브랜드로 시작했는데 지금은 1,100여 개 브랜드, 4만 개가 넘는 제품을 판매하고 있습니다.스타일쉐어의 스토어는 다른 커머스 플랫폼과 어떻게 다른가요?미리, 민희: 대부분의 커머스들은 탑 셀러가 정해져 있고 주로 빅 브랜드가 상위 매출의 대부분인데요. 유저 연령대가 젊은 스타일쉐어의 특성상 새로운 브랜드와 제품에 관심이 많습니다. 스타일피드에서의 바이럴과 마케팅으로 브랜드파워가 높지 않아도 매출이 빠르게 성장하는 것을 볼 수 있습니다. 그러다보니 저희는 탑 셀러/빅 브랜드에 의존하지 않고 새로운 브랜드를 발굴하고 성장하는데 관심이 많습니다. 실제로 매월 MD의 기획과 마케팅에 따라 베스트셀러가 바뀝니다. 입점사들에게는 기회가 많은 채널이라고 생각합니다.SNS 컨텐츠를 기반으로하는 스쉐스토어 특성이 상품판매에 영향을 준 대표적인 사례를 소개해 주시겠어요?미리: 대표적인 브랜드 중 하나는 휠라인데요. 휠라는 최근 젊은 느낌을 주기 위해 브랜드 리뉴얼을 했습니다. 최근 스타일쉐어에서 10–20 타겟의 운동화 디스럽터2를 선 발매하고, 유저들의 초기 반응을 바탕으로 추후 리오더해야할 물량을 예측했습니다. 바이럴 마케팅뿐만 아니라 상품 계획을 하는데 스타일쉐어를 활용한 것입니다. 디스럽터의 성공적인 론칭 이후 휠라가 인기 검색어로 오랫동안 상위를 차지했고 선발매 제품의 초기 물량 역시 완판되었습니다.민희 : 뷰티의 경우 바이럴이 정말 중요한데요. 마스크팩/뽀샵픽서라는 제품을 판매하는 파이스해빗2은 인지도가 낮은 브랜드였는데, 스타일쉐어에서의 바이럴과 매출 증가를 기반으로 최근 왓슨스 등 오프라인 매장에 입점했습니다. 바디미스트 브랜드 라르끄3는 단독 입점 후 첫월 매출 1200% 성장을 기록하며 이후 해외 수출까지 진행하는 기반을 마련했습니다. 타 커머스에서는 스테디셀러가 매출의 상위를 꾸준히 유지한다면, 스타일쉐어는 다른 커머스들에 비해 신규 브랜드들도 스타일쉐어 플랫폼내 다양한 컨텐츠들을 통해 베스트셀러가 되고 있습니다.특히 입점사들의 매출 성장을 위해 MD분들은 어떤 점에 신경쓰나요?미리, 민희: 패션과 뷰티업체 중 40% 정도를 신규 브랜드가 차지하고 있습니다. 신규 브랜드 성장을 위해 MD로서 브랜드와 상품 판매 초반에 많은 협의를 가집니다. 뷰티 브랜드의 경우 제품의 기능적인 부분을 잘 나타낼 수 있도록 하고, 스타일쉐어 마케팅 채널과 광고 채널을 써서 판매촉진을 시도합니다. 덕분에 입점사들간의 입소문으로 입점문의가 많이들어오고 있습니다.최근 단독 판매, 선 발매등 브랜드와의 협업이 늘어나고 있습니다. 입점사들의 반응이 어떤가요?미리, 민희: 보통 선발매를 많이 진행합니다. 판매와 동시에 유저들이 올리는 후기를 통해 상품에 대한 반응을 즉시 볼 수 있고, 자연스럽게 바이럴을 일으킬 수 있다는 점이 입점사들에게는 매력적인 것 같습니다. 특히 디자이너 브랜드가 많은 패션 카테고리의 경우 소량 생산하는 경우가 많은데요. 유저의 반응을 바탕으로 추가 생산하거나 제품을 보완합니다. 최근 숄더체크4라는 브랜드는 기획 단계에서부터 스타일피드를 보고 유저들이 좋아할 만한 제품을 생산해 인기를 얻고 있는 중입니다. 뷰티 카테고리에서는 러비더비의 컬러 트리트먼트가 성공적인 사례입니다. 업체와 제품 디자인에서 가격, 색상까지 협의를 통해 1020대가 좋아할 만한 제품을 생산합니다. 러비더비의 경우 한 달만에 초도 물량이 품절되기도 했습니다.희정: 최근 소비력이 커지고 있는 10–20대 타겟으로 대기업에서도 관심이 큽니다. LG생활건강과 함께 플라잉 애플을 공동기획해 선 발매한 사례와 퍼퓸 향수라인 “찬란”을 선발매한 사례가 대표적입니다. 최근 빅브랜드에서 1020 타겟의 제품라인에 관심이 많아지면서 스타일쉐어의 트랜드를 참고해 상품기획을 제안합니다. 특정 연령과 성별을 확보한 스타일쉐어는 아직도 잠재력이 크다고 생각합니다.스타일쉐어의 입점 기준은 무엇입니까? 입점 후 어떻게 관리하나요?희정: 입점 기준은 명확합니다. 오직 유저들이 좋아하는 것, 좋아할 만한 것입니다. 스타일쉐어는 빅 브랜드를 입점시키기 보다, 스타일피드에 뜨는 브랜드 또는 상품을 참고해서 입점을 제안하고 있습니다. 몇몇 업체의 경우에는 스타일쉐어에 많은 컨텐츠가 올라와야 하는 젊은 브랜드임에도 불구하고 컨텐츠가 많지 않은 경우도 있습니다. 이 경우 스타일쉐어가 좋은 플랫폼이 될 수 있습니다.입점사 관리도 유저 데이터에 기반합니다. 스타일피드에서의 반응을 통해 제품의 인기가 떨어지는 것을 빠르게 감지할 수 있습니다. 제품의 라이프사이클에 따라 수명이 다하면 새로운 제품을 개발해야 합니다. 디자이너 브랜드는 많은 경우 저희와 단독 상품을 기획합니다. 스타일쉐어에서 인기있는 키워드 “벨크로”, “플리스” 등 그때그때 유행하는 키워드를 공략해 업체별로 단독상품을 만들 때 반영합니다. 이렇게 기획한 상품은 인기가 좋을 수밖에 없습니다.스토어를 만들면서 가장 기억에 남는 순간은 언제인가요?미리, 민희: 무엇보다 기획했던 상품이 인기가 좋을 때 인 것 같습니다. 또 타 커머스에서 판매와 성장이 어려운 중소 브랜드가 스타일쉐어에서 성장하는 모습을 볼 때 보람을 느낍니다. 업체에서도 고맙다는 말씀을 많이 합니다. 스타일쉐어의 열혈 유저들도 빠트릴 수 없습니다. “스쉐 덕분에 정말 잘 샀어요”, “스쉐 사랑해요” 등 피드백을 줄 때 고맙고 보람을 느낍니다.희정 : 작년 봄부터 여름까지 입점사들을 설득하러 다닐 때가 얼마 지나지 않은 것 같은데, 이제는 MD들이 땡볕에 나가 고생하는일이 적어졌습니다. 지난 1년간의 고생이 조금씩 결실을 맺어가는 것을 보면서 보람을 느낍니다.앞으로 스타일쉐어를 어떤 커머스로 만들고 싶나요?희정 : 처음부터 지금까지 스타일쉐어는 업체들과 동반 성장하고 있습니다. 특히 중소브랜드가 국내에서 주목받기는 쉽지 않은데 이런 파트너들과 좋은 기회를 만들고 있습니다. 앞으로도 신진 디자이너 브랜드가 적극적으로 참여하는 채널이 되고 싶습니다. 한편 아직까지 빅 브랜드, 미입점된 브랜드가 많습니다. 무수한 브랜드와 제품들 사이에서 주목받기 어려워지는 빅 브랜드들의 고민도 풀 수 있는 플랫폼. 유저들과 소통하며 함께 성장하는 스토어가 되었으면 합니다. 스타일쉐어 유저들이 더 나은 쇼핑 경험을 할 수 있도록 앞으로도 노력할 것입니다.#스타일쉐어 #팀원소개 #팀원인터뷰 #기업문화 #조직문화 #팀원자랑#스
조회수 1377

AWS CodeCommit. 배포 자동화 환경 만들기(브랜치별 Pipeline 구성)

편집자 주: 함께 보면 좋아요!애플리케이션 개발부터 배포까지, AWS CodeStarCodeStar + Lambda + SAM으로 테스트 환경 구축하기AWS Lambda + API Gateway로 API 만들어보자목차1. CodeStar 프로젝트 생성2. 템플릿 선택3. 프로젝트 정보 입력4. 프로젝트 생성 및 자동 배포 확인5. CodeCommit 접속6. staging 브랜치 생성7. index.py 수정 및 Commit8. 람다 실행 권한 변경9. 스택 생성 및 템플릿 소스 복사10. 템플릿 소스 붙여넣기 및 S3 버킷 URL 생성11. staging 브랜치용 CloudFormation 스택 생성(1)12. staging 브랜치용 CloudFormation 스택 생성(2)13. 파이프라인 설정14. AWS CodeCommit 연결15. CodeBuild16. CodeDeploy17. staging 브랜치용 파이프라인 생성 및 자동 릴리즈18. 작업 그룹 추가19. 파이프라인 실행 및 배포20. API Gateway 접속 및 엔드포인트 확인21. index.py 배포 확인OverviewAWS는 유용한 서비스를 많이 제공하지만, 이것들을 조합하고 사용하는 건 꽤나 번거롭습니다. CodeStar는 이런 고충을 해결해주고자 등장한 서비스입니다. 버전 관리(CodeCommit)부터 빌드(CodeBuild)와 배포(CodeDeploy), 모니터링(CloudWatch)까지 한 번에 프로젝트를 구성해줍니다. 여기서 한 발 더 나아가 브랜치(master, staging)마다 자동으로 빌드, 배포되도록 구성했습니다. 이 포스팅에서는 AWS CodeCommit과 AWS Lambda(Python)을 사용했습니다. 물론 다른 스택을 사용해도 괜찮습니다.Practice1.CodeStar 프로젝트를 생성하겠습니다. CodeStar로 접속해 프로젝트를 생성합니다. CodeStar를 처음 사용한다면 서비스 역할을 생성하라는 창부터 나옵니다. 역할을 생성하고 진행합니다.2.왼쪽 필터에서 웹 서비스, Python, AWS Lambda를 클릭하고 프로젝트 템플릿을 선택합니다.3.프로젝트 정보를 입력하고 AWS CodeCommit을 선택, 프로젝트를 생성합니다. 코드편집 도구설정은 건너뜁니다. 나중에 다시 설정할 수 있습니다.4.조금 기다리면 프로젝트가 생성됩니다. 오른쪽 아래의 엔드포인트로 접속하면 자동으로 생성되는 예제 프로젝트가 잘 배포된 것을 볼 수 있습니다. 클릭 몇 번으로 자동 빌드, 배포에 모니터링까지 가능한 프로젝트가 구성되었으니 이제 staging 브랜치를 생성하여 똑같이 구성하겠습니다.5.먼저 브랜치를 생성하겠습니다. CodeCommit에 접속해 왼쪽의 브랜치 메뉴를 클릭하면 아래와 같이 master 브랜치가 생성된 것을 볼 수 있습니다.6.브랜치 생성을 클릭해 브랜치 이름은 staging, 다음으로부터의 브랜치는 master를 선택합니다.7.생성된 staging 브랜치를 클릭하면 파일 리스트가 보입니다. master 브랜치와 결과 페이지를 구별하기 위해 index.py 파일을 임의로 수정하겠습니다. index.py > 편집을 클릭해 output 문자열을 수정하고 Commit합니다.8.CodeStar는 CloudFormation 서비스로 인프라 리소스를 관리합니다. CloudFormation은 ‘스택’이라는 개념을 사용해 설정을 구성하고 있습니다. 지금은 master 브랜치의 template.yml 파일을 사용해 master 브랜치용 스택이 생성되어 있는 상태입니다.문제는 여기에 기본적으로 람다(lambda) 실행 역할이 구성되어 있는데, 이 역할의 리소스 접근 권한은 master 브랜치 람다로 한정되어 있다는 것입니다.1)이 글에서는 staging용 람다 실행 권한을 별도로 생성하는 방법으로 문제를 해결했습니다. staging 브랜치의 template.yml 파일을 열어 Resources: LambdaExecutionRole: Properties: RoleName을 임의의 값으로 수정합니다. 저는 뒤에 ‘-staging’을 붙였습니다.9.CloudFormation 스택도 따로 생성합니다. AWS CloudFormation에 접속하면 기본적으로 생성된 스택을 볼 수 있습니다. 기존의 스택 템플릿에서 조금만 수정해 스택을 생성하면 되니 템플릿을 복사해오겠습니다.awscodestar-testproject-lambda를 클릭해 오른쪽의 ‘Designer에서 템플릿 보기/편집’을 클릭하면 템플릿 소스를 볼 수 있습니다. 가장 아래의 템플릿 탭이 클릭되어 있는지 확인하고 그대로 복사합니다.10.다시 CloudFormation으로 돌아와 템플릿 디자인 버튼을 클릭하고 복사한 소스를 붙여 넣습니다. 여기서 마찬가지로 Resources: LambdaExecutionRole: Properties: RoleName을 조금 전의 이름과 같게 수정하고 저장합니다. 템플릿 언어를 YAML로 바꾸고 수정하면 보기 편합니다.Amazon S3 버킷에 저장하면 템플릿 파일이 S3 버킷에 저장되며 S3 버킷 URL이 생성됩니다. 잘 복사해둡니다. 템플릿 디자이너는 이제 닫아도 됩니다11.CloudFormation 창에서 스택 생성을 클릭해 Amazon S3 템플릿 URL에 복사한 URL을 입력합니다. 이후의 내용은 스택 이름만 다르게 하고, 나머지는 기본적으로 생성된 스택 정보와 동일하게 입력합니다. 기존에 생성한 스택 정보는 스택 상세 페이지 오른쪽의 스택 업데이트를 클릭하면 볼 수 있습니다.생성 페이지 마지막의 ‘AWS CloudFormation에서 사용자 지정 이름을 갖는 IAM 리소스를 생성할 수 있음을 승인합니다’를 체크하고 생성을 클릭합니다.12.staging 브랜치용 CloudFormation 스택이 생성되었습니다. 이 스택을 사용해 staging 브랜치용 파이프라인을 생성하겠습니다.13.CodePipeline으로 접속해 파이프라인 생성을 클릭하면 설정창으로 이동하는데, 아래 이미지와 같이 입력합니다.CodeStar프로젝트가 생성되며 IAM 역할과 S3 버킷이 자동 생성되는데, 동일한 역할과 버킷으로 설정하면 됩니다. 파이프라인 이름만 임의로 다르게 넣어줍니다.14.AWS CodeCommit을 연결해야 합니다. 아래와 같이 자동 생성된 리포지토리를 선택하고 미리 생성한 staging 브랜치를 연결합니다.15.CodeBuild를 알아보겠습니다. 기본 파이프라인에서 자동 생성된 프로젝트를 선택하고 다음을 클릭합니다.16.새 창을 열어 기존에 생성된 파이프라인 상세 페이지로 접속합니다. 편집을 클릭하고 Deploy 스테이지 편집을 클릭, GenerateChangeSet 편집 버튼을 클릭하면 설정값이 보입니다. 이 값을 참고해 다음 스텝을 아래와 같이 진행하면 됩니다.앞서 생성했던 staging 브랜치 파이프라인용 스택을 연결하고, 세트 이름을 임의로 다르게 넣습니다. ‘템플릿’과 ‘템플릿 구성 - 선택 사항’ 설정값도 다르니 주의합니다.17.다음으로 진행하면 staging 브랜치용 파이프라인이 생성되어 자동으로 릴리즈되고 있는 것을 볼 수 있습니다.18.여기서 master 파이프라인과 동일하게 Deploy 스테이지의 GenerateChangeSet 아래에 작업 그룹을 하나 추가해야 합니다. 마찬가지로 master 파이프라인을 참고해 작성힙니다. 작업이름, 새로 생성한 스택, staging용으로 임의 작성했던 세트 이름을 넣습니다.19.저장 후, 변경사항 릴리스를 클릭하면 파이프라인이 실행됩니다. 잠시 기다리면 완료와 함께 배포작업까지 이뤄집니다.20.모든 작업이 끝났습니다! 제대로 구성되었는지 엔드포인트로 접속해 확인해보겠습니다. AWS API Gateway로 접속해 staging 브랜치용 API Gateway를 클릭합니다.21.왼쪽의 스테이지 메뉴를 클릭하면 엔드포인트 URL을 볼 수 있습니다. 이 URL로 접속하면 위에서 편집한 staging 브랜치의 index.py가 배포된 것을 볼 수 있습니다. master 브랜치의 엔드포인트로도 접속해서 비교해보세요.ConclusionAWS의 서비스들은 강력하고 다양합니다. 그 수가 많아져 이제는 전부 다루기는커녕 나열하기도 어려울 정도입니다. 아마존에서도 이런 고충을 알기 때문에 여러 서비스를 묶어 간편하게 세팅하는 CodeStar를 제공하는 게 아닌가 싶습니다. 수가 많은 만큼 각각의 서비스를 정확히 이해하고 적절히 이용해 오버엔지니어링을 피하는 게 중요하겠습니다.참고1) IAM - 역할 - Permission boundary에서 확인 가능합니다글양정훈 사원 | R&D 개발3팀[email protected]브랜디, 오직 예쁜 옷만
조회수 4138

[H2W@NL] 이런 문화를 만들고 이런 사람을 찾습니다, People팀

네이버랩스에서 가장 즐거운 팀은 People팀이라는 소문이 있습니다. 인사, 채용, 조직 문화 등을 담당하는 이들이 먼저 즐겁게 회사를 다니고 있습니다. People팀 이두성 리더는 네이버랩스에 관심을 갖고 있거나, 채용 지원을 고려하는 이들에게 전하고 싶은 이야기도 많습니다. 가감없이 솔직한 1문1답을 해보았습니다.Q. 네이버랩스는 박사급 인력만 채용한다는 이야기가 있습니다. 그런가요?채용 활동 중에 정말 자주 받는 질문이에요. 가장 해소하고 싶은 오해이기도 하죠. 결론부터 말하자면, 채용 과정과 결과 모두 학력은 고르게 분포되어 있습니다.왜 그런지를 말씀드릴게요. 채용을 진행하는 팀들이 함께 일을 잘 할 수 있는 사람이라는 본질 외에는 크게 관심을 두지 않기 때문입니다. 어느 팀이든 비슷해요. 핏(fit)이 잘 맞는 분을 찾는 것이 학위보다 더 희소하고 귀합니다. 학력은 참고 자료이지 필수 요소가 아닙니다.Q. (그 핏(fit)이라는 것이 무엇인지는 잠시 후 질문하고) 처우는 어떤가요?실제로 채용 인터뷰를 하는 과정에서 상세하게 말씀을 드릴 수 있다는 걸 전제로 이야기하자면, 고수하고자 하는 원칙은 '우수한 인재는 놓치지 않는다'입니다. 우리의 기술 목표를 어디에 설정하고 있느냐를 생각해보면, 당연한 이야기입니다.Q. 채용 인터뷰 과정 중엔 어떤 이야기를 나누시나요?우리 회사의 단단한 토대와 성장의 방향성을 잘 확인하시라고 합니다. 일에 있어서도, 실제로 그 역량을 잘 펼칠 수 있는 합리적 조직 문화가 뒷받침된 회사인지가 중요할 수 있습니다. 정말 자신에게 괜찮은 회사인지 종합적으로 꼼꼼하게 따져 보길 권합니다.Q. 그런 면에서 네이버랩스는 지원할만한 회사인가요?굳이 이런 말씀을 드렸던 건, 자신이 있기 때문이죠.Q. 좀 더 구체적으로 말씀해주세요.얼마 전, 입사자 한 분이 제게 해주신 말인데요.“네이버랩스에서는, 미팅에서 이견이 있으면 누구든 스스럼없이 말해요. 그러면서 건전한 회의가 이어지는 것이 인상적이에요.”수평적 조직 문화가 일종의 트렌드죠. 그런데 실제로 정착시킨 곳이 많진 않습니다. 애초에 의지가 없었거나, 시행착오 비용을 소모하지 않으니까요. 우리는 그 과정이 이미 끝난 상태입니다. 네이버랩스에 오시는 분들은, 미팅이나 협력 상황에서 좋은 경험을 하게 됩니다. 의견을 자유롭게 개진하더라도, 상대방이 그것을 자신의 권위에 대한 챌린지로 받아들이지 않기 때문이죠. 호칭도 서로 ‘~님’으로 부릅니다. 그래서 네이버랩스 대표는 ‘대표님’이 아니라 ‘상옥님’입니다. 이런 문화가 그저 형식적인 것이 아니기 때문에 아주 자연스럽죠. 각자가 전문가라는 존중, 스스로에 대한 자신감, 더 나은 결과물을 위한 경계없는 협력이 네이버랩스의 조직 문화입니다.Q. 그게 다인가요?계속 고민하고 노력하죠. 제가 속한 People팀의 기본적인 방향성은 단순합니다. 지금 다니는 회사가, 지금 일하는 환경이 만족스럽나? 이 질문에 동료들이 'No'라고 할 것들이 있다면, 'Yes'로 변화시키는 것입니다.복리후생을 예로 들어보겠습니다. 현재 대한민국을 대표할만한 회사들은 대체로 상향평준화 되었습니다. 본인 및 가족 상해보험, 리프레시 휴가, 대출이자지원, 교육/문화 지원, 어학/운동 지원, 종합검진, 어린이집, 휴양시설, 심리상담지원 등등, 다른 곳과 비교해도 비슷합니다. 정해진 출퇴근 시간이 없는 자율적 근무 제도 역시 지금은 많은 회사에 정착되어 있죠. 그런데 정말로 느껴지는 만족감은 디테일에 있습니다. 동료들을 진심으로 신경을 쓰고 있는지에 대한 것입니다.일례로 우리는 실제 일하는 공간에 많은 신경을 기울였습니다. 집 다음으로 가장 많은 시간을 보내는 장소입니다. 편하면서도 마음껏 일에 몰입할 수 있도록 설계와 인테리어, 동선과 시설을 꼼꼼하게 만들었습니다. 혼자 있을 때 집중이 더 잘되는 분들을 위한 Holo방(1인룸)이나 심신을 릴렉스하는 Yolo방(안마의자), 쉐프님의 훌륭한 레시피를 매일 맛볼 수 있는 키친, 최고의 원두로 바리스타님이 커피를 내려주시는 사내 카페테리아, 전문 트레이너님이 상주하며 세심하게 건강을 관리해주는 GYM과 운동 프로그램, 원어민 강사님들의 1:1 영어 클래스 등은 동료들 뿐 아니라 당장 저부터 정말 좋다고 느끼는 것들입니다.공유와 성장도 네이버랩스에서 아주 중요하게 생각하는 가치입니다. 특히 내부 커뮤니케이션에 더 신경을 씁니다. 우리는 매주 금요일 네이버랩스 전직원이 모여서 회사의 아젠다를 공유하는 all-hands meeting을 합니다. 이 자리에서 각 프로젝트 경과나 회사의 중요 이슈를 공유합니다. 단순한 공지가 아닌 설명회 방식으로 진행하죠.또한, 사내 세미나도 활발합니다. 뛰어난 외부 전문가를 선별해 모시고 최신의 트렌드나 연구 결과 등을 공유하는 SLED가 연중 끊임없이 진행됩니다. 참고로 SLED는 공유(share), 배움(learn), 토론(discuss)의 약자입니다.Q. 네이버랩스와 핏(fit)이 맞는 인재는 어떤 사람일까요?지금까지 말씀드린 네이버랩스의 조직 문화는 뭔가 이상적인 것 같죠? 실제로 모두에게 좋은 환경일까요? 아닙니다. 자유롭고 편할 것 같지만, 실제로는 스스로 방향을 잡지 못하거나 헤맬 수도 있는 환경이라고 생각합니다. 그만큼 스스로 주도할 수 있어야 합니다. 게다가 팀이 없는 것처럼 협업하기 위한 유연함도 필수입니다. 경계없이 서로의 분야를 이해하며, 시너지를 높이기 위해서입니다. 우리가 인재상으로 규정하고 있는 ‘self-motivated team player’가 바로 이런 의미입니다. 이를 위해 신규 입사자의 온보딩 프로그램에도 당연히 많은 신경을 쓰고 있습니다.Q. 채용 절차와 방법은 어떤가요?홈페이지의 Career 페이지에서 현재 모집 현황을 확인하거나 채용 문의를 하고, 지원도 할 수 있습니다. 일반적인 절차는 서류 검토, 전화 면접 (필요시 코딩 테스트 진행), 1차 면접, 2차 면접, 처우 협의와 채용 검진, 채용 순으로 진행됩니다. 지원 직무를 잘 수행할 수 있는지를 확인하기 위해 경험 및 경력을 검증하는 기술 인터뷰 위주로 진행하고, 이때 우리의 조직 문화와 잘 맞는지도 면밀하게 파악합니다. 지원자 역시 네이버랩스가 어떤 곳인지 파악할 수 있는 기회이기도 하고요.Q. 마지막으로 외부의 우수한 인재들에게 전하고 싶은 이야기가 있다면?우리는 각자가 온전히 일에 몰입할 수 있도록 모든 지원을 집중하고 있습니다. 좋은 문화를 만들어 왔습니다. 그보다 좋은 건, 여전히 계속 변화하려 노력한다는 점입니다. 네이버랩스가 모든 이에게 최고의 선택은 아닐 것입니다. 다만 치열함과 열정을 잃지 않으면서도 수평적이고 자율적인 분위기에서 새로운 도전에 몰입할 수 있는 회사를 찾는 분이라면, 그곳이 네이버랩스입니다.네이버랩스의 인재상은 passionate self-motivated team player입니다. 어쩌면 '자기주도적 팀플레이어'라는 말은 형용모순(形容矛盾)일 지도 모릅니다. 하지만 우린 계속 시도했고, 문화는 계속 쌓여갑니다. 다양한 분야의 전문가들이 경계없이 협력하고 스스로 결정하며 함께 도전하는 곳의 이야기를 전합니다. How to work at NAVER LABSH2W@NL 시리즈 전체보기
조회수 1264

스타트업들끼리는 어떻게 시너지를 발휘할 수 있나?

쉐어링 이후 맛있는 베트남스타일 샌드위치를 먹었습니다.스타트업 팀들은 모이면 무슨 이야기를 할까요? 오늘 오전 바쁜 시간을 쪼개 디캠프 GoD 프로그램에 선발된 팀들이 한자리에 모였습니다. 더팀스도 디캠프에 입주해 있어 참여하게 됐습니다. 이번 시간은 디캠프에 입주한 GoD 팀들이 서로의 인사이트와 이슈에 대해 공유하는 자리였습니다.  네 가지 주제로 1시간가량의 발표를 진행했는데 무척 알차서 짧게 요약해 공유합니다 :)오늘의 주제는... 1. 스타트업 간의 인수합병 비하인드 스토리 2. 프라이머 투자유치 경험 공유 3. 디지털 광고 인사이트: 곧 성공할 스타트업을 위한 마케팅 지식  4. 창업자에게 필요한 심리적 기술들데이터스톰 안강민 대표님 (사진 제공: 디캠프)1. 스타트업간의 인수합병 과정 공유 (발표자: 데이터스톰 안강민 대표): 최근 8억 원을 투자 받은 자비스 김범섭 대표의 제안으로 카이스트 출신 개발자 3명으로 이뤄진 데이터스톰(디캠프 GoD 입주팀)과의 인수합병이 진행됐는데요. 데이터스톰 안강민 대표가 인수합병 계기와 과정에 대한 이야기를 공유했습니다. "입주 전부터 자비스 김범섭 대표님과 개인적으로 연락을 했어요. 데이터스톰은 경력단절 구직자들에게 온라인으로 일자리를 연결해주는 서비스를 구상하고 있었고, 자비스는 고객이 촬영한 영수증을 업로드하면 재택근무자들이 영수증을 작성해서 업로드하는 업무를 처리해줬어요. 처음에는 저희를 통해 모바일에서도 영수증 타이핑 업무를 공유하자는 영업 제안을 드리려고 연락을 했어요. 결과적으로 그 제안은 잘 안됐죠". (데이터스톰 안강민 대표)데이터스톰 안강민 대표가 제안했던 협업은 무산됐지만 얼마 후 자비스 김범섭 대표가 역으로 인수합병 제안을 해왔습니다. “김범섭 대표님이 한 번 보자고 하셔서 티타임을 가졌는데 창업을 왜 했냐, 돈과 하고 싶은 일 중 무엇을 선택할 것이냐 등의 생각을 물어보시면서 자비스가 궁극적으로 하려는 일에 대한 미션을 공유하시더라고요.” 안강민 대표는 그 전 스타트업에서도 좋은 조건으로 잡 오퍼를 받았지만, 궁극적으로 하고 싶은 그림이 아니기에 거절하고 학교로 다시 돌아갔습니다. 그랬던 그가 이번 자비스 인수합병을 결정했던 이유는...  서로 비슷한 그림을 바라봤고 서로 어려워하는 포인트와 서로 가진 역량이 달랐기 때문   자비스 이슈: 업력 있는 1인 CTO가 안드로이드, 웹, iOS 개발 총괄을 하느라 일정 이슈 자비스 강점: 서비스 기획 및 영업, 서비스 진행 능력 데이터스톰 이슈: 서비스 관련 일거리 정의 방식, 클라이언트 확보 이슈 데이터스톰 강점: 3명의 스마트한 개발 인력  발표를 통해 얻은 인사이트: 서로가 봉착했던 이슈를 서로 가진 강점으로 상호 보안을 통해 앞으로 나아갈 수 있다고 판단 인수합병 결정오누이 고예진 대표님 (사진 제공: 디캠프)2. 프라이머 인큐베이팅 프로그램 선발 및 투자유치 경험 공유 (오누이 고예진 대표)오누이는 월 4만 원으로 모르는 수학 문제를 물어볼 수 있는 앱 서비스를 운영하는 팀인데요.  프라이머 투자유치를 진행하면서 봉착했던 문제와 과정을 공유해줬습니다. 프라이머 인큐베이팅 프로그램: 프라이머는 모바일/인터넷 서비스, 소프트웨어, 헬스케어, HW&SW 융합 등의 분야의 창업팀에게 초기 창업자금을 투자하고, 멘토링을 통해 성공을 돕는 인큐베이팅 프로그램을 운영합니다.  프라이머 엔턴십 프로그램: 엔턴십 프로그램은 1년에 1-2회 개최되는 스타트업 멘토링 및 교육 프로그램입니다. 엔턴십 프로그램을 졸업한 팀 가운데 우수한 팀들은 프라이머가 투자하고 인큐베이팅 팀으로 선정합니다.  고예진 대표가 생각하는 프라이머 엔턴십 장점은?  :참가한 50개 팀에 대한 BM 서로 평가/피드백(온라인으로 진행)을 할 수 있어 서비스 개선에 필요한 알찬 리뷰를 받을 수 있다. 프라이머 인큐베이팅 프로그램 선발 및 투자 과정은? “처음부터 프라이머 투자 유치를 성공한 게 아니라 권도균 대표님께 페이스북을 통해 저희를 소개했고, 이후 화상 채팅을 하면서 저희 서비스와 관련해 틈날 때마다 성장하고 있는 수치나 데이터를 증명했어요.” 오누이가 봉착했던 문제 (1) 실시간 질의응답이라고 했는데 진짜 10분 안에 답이 와? -> 론칭하고 5개월 고생 (2) 이걸 누가 돈 주고 써?-> 론칭 6개월 후 의미 있는 매출로 증명(3) 이거 돈 얼마나 될까, 스케일업 가능, 후속 투자 가능성에 대한 증명-> 투자 후 3개월 안에 매출 3배 목표 설정 발표를 통한 인사이트: “저희는 프라이머 9기에 선발됐는데, 보통 프라이머에 2000명/500여 개 팀 가량이 지원해 7개 팀을 선발하더라고요. 저희는 한 번에 된 게 아니라 작년부터 컨택을 해서 올해 선발된 거예요. 저희가 봉착했던 문제를 정의해 해결하는 과정과 의미 있는 데이터를 보여주려고 노력했던 거 같아요.” (오누이 고예진 대표)코인덱스 이한상 CXO (사진 제공: 디캠프) 3. 곧 성공할 스타트업을 위한 마케팅 지식 (코인덱스 이한상 CXO)이한상(Han Lee) CXO는 디자인, 브랜드 전문가로서 Brand New School 아트 디렉터를 역임(1) 광고인에게는 보편적이나 일반인에게는 생소한 용어: - USP(Unique Selling Proposition)당신의 제품이 팔리는 독특한 이유를 제시해야 한다.  * 다른 것이 USP가 아니고 더 좋은 것이 USP다.- BIG IDEA: USP를 한 방에 설명하는 이미지, 카피, 슬로건, 그림예시: TOP AD Slogans(자체 검색한 예시 참고 사이트: http://www.fbml.co.kr/2014/06/25/good-advertising-headlines/)   - 케이스 스터디코인덱스 빅아이디어 사례: 국내 최초 디지털 화폐 선물 거래소 (슬로건 도출):국내 선물 거래에 대한 진입 장벽이 높은 상황에서 프로페셔널 투자자들이 신뢰할 수 있는 거래소 이미지를 전달하려고 했으나 한국 사람들에게는 인지도가 떨어져-> 최초의 선물 거래라는 개념으로 先 접근 코인덱스 브랜딩 전략: 30-50대 선호도에 따른 브랜딩 반영- 아기자기하면서 촌스럽게 웹사이트 구성시 센터를 중심으로 사이드 메뉴 배치 (반찬 이론) -> 주식시장의 상승 의미 빨간색 강조  텐시티 문현철 대표님 (사진 제공: 디캠프)4. 창업자에게 필요한 심리적 기술들(텐시티 문현철 대표)(1) 사람들의 편향사람들의 편향은 뱅뱅 이론을 통해 쉽게 발견할 수 있다.뱅뱅 이론은:  주위에선 ‘뱅뱅’ 브랜드의 청바지를 입은 사람을 보지 못했지만 여전히 국내 청바지업계 매출 1위를 굳건히 지키고 있음 (머니 위크 기사 발췌)인간의 인지 방식은.. 경험을 바탕으로 필터가 쌓이면 그 바탕으로 판단을 하게 된다. 이에 따른 문제는.. 나의 견해에 대해서만 이야기를 나눠요. ->나는 맞고 상대방은 틀리다며 논쟁  문현철 대표가 팀원과 일하면서 제기했던 문제: 회의를 길게 한다고 해서 완벽한 결론을 낼 수 있나?발표를 통한 인사이트: 문현철 대표는 스타트업을 하면서 가장 필요했지만 힘들었던 순간을 “나의 사고방식이 틀렸다고 인정하는 과정”으로 꼽았습니다.     (2) 누군가를 미워하는 것은 열렬히 사랑하는 것과 같다사례: 문혈철 대표가 출전했던 토론대회에서 우승자한테 패했던 결정적 이유(준우승)-> 논리에 대한 반박에만 집중했다는 것-> 아무리 반박해봤자 배심원들이 보기에는 상대편에 대한 논거에 대한 이야기일 뿐 결과적으로 상대방에 대한 유리한 논조를 강조한 것스타트업에 적용할 수 있는 인사이트* 상대 서비스에 대한 단점으로 접근하기보다 우리 서비스에 대한 순수한 장점에 대해 집중해야 한다.-> 어떤 서비스가 잘못됐다는 것에 대한 논리를 펼치는 경우가 많은데 우리 팀 서비스의 장점을 순수하게 드러내는 경우에 대한 작업이 필요 * GoD 쉐어링데이: 디캠프 GoD (Game of Dcamp)프로그램에 선발된 팀들이 디캠프에 입주해 코워킹 스페이스에서 함께 교류하며 시너지를 내고 있습니다. 이번 쉐어링 데이는 강의보다는 서로의 인사이트에 대한 공유에 더 가깝습니다.  빨리 정리해 공유하느라 글이 조금 부산한 점 너그럽게 양해 부탁드립니다. #더팀스 #THETEAMS #스타트업 #마인드셋 #인사이트 #이벤트참여 #이벤트후기 #인사이트 #경험공유
조회수 7230

클라우드 서비스 이해하기 IaaS, PaaS, SaaS

클라우드 컴퓨팅은 인터넷으로 가상화 된 IT 리소스를 서비스로 제공하는 것을 의미합니다. 그리고 클라우드 컴퓨팅에서 가상화 하여 서비스로 제공하는 대상은 인프라스트럭쳐, 플랫폼, 소프트웨어입니다. AWS와 Azure가 대중화되면서 클라우드를 인프라스트럭쳐의 가상화 개념으로만 이해하기도 하지만 클라우드는 인프라스트럭쳐 뿐만이 아니라 플랫폼과 소프트까지 포함하는 온라인의 모든 영역을 다루는 꽤 광범위한 개념입니다. 그렇기 때문에 클라우드는 분야별 특성별로 나누어서 이해하는 것이 좋습니다. 클라우드 서비스의 종류는 아래와 같이 크게 3가지로 나눌 수 있습니다. Infrastructure as a Service (IaaS, 아이아스, 이에스)서비스로 제공되는 인프라스트럭처입니다. 개발사에 제공되는 물리적 자원을 가상화합니다. Platform as a Service (PaaS, 파스)서비스로 제공되는 플랫폼입니다. 개발사에 제공되는 플랫폼을 가상화합니다.Software as a Service (SaaS, 사스)서비스로 제공되는 소프트웨어입니다. 고객에게 제공되는 소프트웨어를 가상화합니다.클라우드 구분하여 알아보자IaaS: 서비스로 제공하는 인프라스트럭쳐클라우드 인프라스트럭처 서비스는 확장성이 높고 자동화된 컴퓨팅 리소스를 가상화하여 제공하는 것입니다. IaaS는 컴퓨팅, 네트워킹, 스토리지 및 기타 인프라스트럭쳐를 사용하기 위한 서비스이며 사용자는 필요할 때 마다 서비스를 통해 리소스를 구입할 수 있습니다.(IaaS는 한국에서 이아스 또는 아이아스로 부르며 영미권에서는 이에:스 또는 아이아스로 발음합니다.)PaaS: 서비스로 제공하는 플랫폼클라우드 플랫폼 서비스는 주로 응용 프로그램을 개발 할 때 필요한 플렛폼을 제공하는 것입니다. PaaS는 사용자 정의 응용 프로그램을 개발하고 사용할 수있는 개발자를위한 프레임워크를 제공합니다. 개발사는 미들웨어를 설치하지 않고도 미들웨어에서 제공하는 API를 사용하여 소프트웨어를 개발할 수 있습니다. SaaS : 서비스로 제공하는 소프트웨어클라우드 애플리케이션(소프트웨어) 서비스는 사용자에게 제공되는 소프트웨어를 가상화하여 제공하는 것입니다. SaaS는 타사 공급 업체가 관리하는 사용자에게 응용 프로그램을 제공하기 위해 인터넷을 사용합니다. 대부분의 SaaS 애플리케이션은 웹 브라우저를 통해 직접 실행되므로 클라이언트 측에서 다운로드 나 설치가 필요하지 않습니다.무엇을 제공하는가클라우드는 온라인의 광범위한 영역을 모두 다루는 광범위한 영역입니다. 클라우드 서비스들은 제공하는 범위에 따라 IaaS, PaaS, SaaS로 나뉘고 있으므로 각각의 클라우드 서비스가 제공하는 내역을 살펴보는 것은 클라우드를 이해하는 데 많은 도움이 됩니다.  IaaS: 물리적 자원 제공IaaS는 고객에게 서버, 네트웍, OS, 스토리지를 가상화하여 제공하고 관리합니다. IaaS는 가상화 된 물리적인 자산을 UI형태의 대시보드 또는 API로 제공합니다. IaaS의 고객들은 서버와 스토리지를 접근할 수 있지만 사실상 클라우드에 있는 가상 데이터 센터를 통해 리소스를 전달받는 형태입니다. IaaS는 기존의 데이터센터에서 제공받던 물리적인 자산을 완벽하게 가상화하여 제공하기 때문에 서버 사양의 변경 등 물리적 자산의 수정이 필요한 경우 기존의 방식에 비해 훨씬 빠른 대응이 가능합니다.IaaS의 제공업체는 서버, 하드 드라이브, 네트워킹, 가상화 및 스토리지를 관리하며 고객은 OS, 미들웨어, 애플리케이션 및 데이터와 같은 자원들을 관리해야 합니다. PaaS: 소프트웨어 개발을 돕는 플랫폼 제공PaaS는 고객에게 OS, 미들웨어, 런타임과 같은 소프트웨어 작성을위한 플랫폼을 가상화하여 제공하고 관리합니다. 이 가상화 된 플랫폼은 웹을 통해 제공되며 개발자는 운영 체제, 소프트웨어 업데이트, 저장소 또는 인프라에 대한 관리 없이 소프트웨어 개발에 집중할 수 있습니다.PaaS를 사용하면 기업에서는 특수 소프트웨어 구성 요소를 사용하여 PaaS에 내장 된 응용 프로그램을 설계하고 만들 수 있습니다. 이러한 응용 프로그램 또는 미들웨어는 특정 클라우드 특성을 채택 할 때 확장 가능하고 가용성이 높습니다.SaaS: 고객이 사용하는 소프트웨어 제공SaaS는 고객을 대신하여 소프트웨어와 데이터를 제공하고 관리합니다. 패키지 또는 On-Prems 방식이라고 하는 기존의 소프트웨어 전달 방식과 다르게 SaaS는 개별 컴퓨터에 응용 프로그램을 다운로드하고 설치할 필요가 없습니다. SaaS를 통해 서비스를 공급하는 업체는 데이터, 미들웨어, 서버 및 스토리지와 같은 모든 잠재적 인 기술적 문제를 관리하기 때문에 고객은 유지 보수 및 지원을 간소화 하면서 비지니스에 집중 할 수 있습니다.클라우드의 장점과 단점클라우드 인프라 서비스를 사용할 때의 장점과 클라우드 소프트웨어 서비스를 사용할 때의 장점은 다를 수 밖에 없습니다. 이에 3가지 클라우드 서비스의 장점과 단점을 각각 설명합니다. IaaS: 장점비용물리적 자원을 소비 형태로 사용하기 때문에 고정비가 들지 않습니다.속도물리적 자원을 즉시 소비할 수 있습니다.관리물리적  자원에 대한 관리를 논리적인 영역으로 대체할 수 있습니다.물리적 자원에 대한 자동화 된 배포가 가능합니다.물리적 자원에 대한 안정적인 운영을 벤더에 맞길 수 있습니다.물리적 자원에 대한 규모의 확장 또는 축소가 자유롭습니다.  PaaS: 장점비용필요한 플랫폼만 소비 형태로 사용하기 때문에 비용 부담을 덜 수 있습니다. 속도개발 및 배포 프로세스를 빠르게 확보할 수 있습니다.관리소프트웨어 유지 관리가 쉬워집니다.가상화 기술을 기반으로 구축되어 비즈니스가 변함에 따라 리소스를 쉽게 확장 또는 축소 할 수 있습니다.응용 프로그램의 개발, 테스트 및 배포를 지원하는 다양한 서비스를 제공합니다.수많은 사용자가 동일한 개발 응용 프로그램에 액세스 할 수 있습니다.PaaS: 단점특정 플랫폼 서비스에 종속될 수 있습니다.SaaS: 장점SaaS는 소프트웨어 설치, 관리 및 업그레이드와 같은 지루한 작업에 소요되는 시간과 비용을 크게 줄임으로써 직원과 회사에 많은 이점을 제공합니다. 따라서 기술 직원이 조직 내에서 보다 긴급하고 중요한 문제에 집중할 수 있습니다. 비용소프트웨어를 소비 형태로 사용하기 때문에 비용 부담을 덜 수 있습니다.속도즉시 사용이 가능합니다. 관리소프트웨어를 설치할 물리적 자원이 필요하지 않습니다.언제 어디서든 접근가능합니다.SaaS: 단점커스터마이징이 어렵습니다. 클라우드 언제 적용해야 하는가IaaS: 빠른 변화를 원한다면스타트업이나 중소기업에게 IaaS는 훌륭한 옵션이므로 하드웨어나 소프트웨어를 설치하는데 시간과 돈을 낭비 할 필요가 없습니다. IaaS는 응용 프로그램과 인프라를 완벽하게 제어하고자하는 대규모 조직에 유용하지만 실제로 소비되거나 필요로하는 것을 구매하려는 경우에만 유용합니다. 빠르게 성장하는 기업의 경우, IaaS는 요구 사항이 변화하고 발전함에 따라 특정 하드웨어 나 소프트웨어에 전념 할 필요가 없으므로 좋은 선택이 될 수 있습니다. 또한 필요에 따라 확장 또는 축소 할 수있는 많은 유연성이 있으므로 새로운 응용 프로그램에 어떤 요구가 필요한지 확실하지 않은 경우 도움이됩니다.PaaS: 신속한 개발을 원한다면PaaS를 이용하는 것이 유익하거나 필요한 경우가 많이 있습니다. 동일한 개발 프로젝트를 수행하는 여러 개발자가 있거나 다른 공급 업체도 포함해야하는 경우 PaaS는 전체 프로세스에 뛰어난 속도와 유연성을 제공 할 수 있습니다. PaaS는 사용자 정의 된 응용 프로그램을 만들려는 경우에도 유용합니다. 또한이 클라우드 서비스는 비용을 크게 절감 할 수 있으며 앱을 신속하게 개발하거나 배포하는 경우 발생하는 몇 가지 문제를 단순화 할 수 있습니다.SaaS: 비지니스에 집중하고 싶다면보안상 민감한 사항이 아니라면 모든 기업에게 SaaS는 훌륭한 옵션입니다. 또한 협업이 필요한 단기 프로젝트라면 SaaS 를 도입하는 것이 훨씬 유리합니다. 일반적으로 On-Prems 솔루션은 모바일 액세스를 지원하지 않기 때문에 모바일 액세스가 필요한 경우에도 SaaS를 사용하면 비용가 시간을 절약할 수 있습니다.클라우드 서비스 예클라우드는 적용된 분야별로 이해해야 합니다. 아래는 분야별 서비스 예입니다. IaaSAmazon Web Services (AWS), Microsoft Azure, DigitalOcean, Google Compute Engine (GCE)PaaSAWS Elastic Beanstalk, Windows Azure, Heroku, Google App EngineSaaSGoogle Apps, Dropbox, Salesforce, WhaTap마무리지금도 많은 기업의 임원분들이 클라우드의 적용 여부에 대해 고민을 하고 있으며 많은 스타트업들이 클라우드 기반의 서비스를 만들어 가고 있습니다. 회사에 클라우드를 도입해야 한다면 IaaS를 도입할 지, PaaS를 도입할 지 아니면 SaaS를 도입해야 하는지 알고 있어야 합니다. 그리고 자사의 서비스가 클라우드 기반의 서비스라면 고객에게 왜 도입해야 하는지 쉽게 설명할 수 있어야 합니다. 제가 다니는 와탭랩스(whatap.io)는 국내에서 드물게 SaaS 모니터링 서비스를 제공하고 있습니다. 2015년 1월에 시작한 서비스는 이제 만 4년을 달려가고 있습니다. 앞으로 한국에서 더 많은 클라우드 서비스들이 나왔으면 합니다. #와탭랩스 #개발자 #개발팀 #클라우드서비스 #서비스소개
조회수 254

컴공생의 AI 스쿨 필기 노트 ③ K-평균 군집화

AI 스쿨 3주차에서는 K-means clustering(K 평균 군집화)에 대해 배웠어요. 이에 대해서 간략하게 정리해볼게요.K-means clustering클러스터링이란 군집화를 의미하는데요, K-means clustering은 비슷한 데이터끼리 묶어주는 머신 러닝 기법이에요. K-means clustering은 비지도학습(Unsupervised learning)의 일종이에요. 비지도 학습이란 데이터와 각각의 데이터가 무엇인지를 설명해주는 라벨이 없는 학습을 말해요. 따라서 우리는 주어진 데이터들을 가장 잘 설명하는 클러스터를 찾아 데이터를 분류할 수 있어요. 아래는 데이터를 2개의 클래스로 군집화한 것을 잘 나타내주는 그래프에요.K-means는 클러스터 내부에 속한 데이터들이 서로 가깝다고 정의해요. 그렇다면 같은 클러스터에 속한 데이터들은 서로 가까이 근접해 있겠죠? K-means는 클러스터의 중심으로부터 가까운 데이터들을 찾아서 묶어주는 알고리즘이에요. 데이터들은 가장 가까운 내부 거리를 가지는 클러스터를 고르게 되는데, 이를 위해서 각각의 클러스터는 중심(프로토타입)이 존재하고 각각의 데이터가 그 중심과 얼마나 가까운지를 Cost로 정의해요.위의 식은 같은 클러스터에 속하는 각각의 점들로부터 그 클러스터의 평균(프로토타입)과의 거리의 합을 제곱한 함수에요. - N : 데이터의 개수- K : 클러스터의 개수- uk : k 번째 클러스터의 중심(프로토타입)- rnk : n 번째 데이터가 k 번째 클러스터에 속하면 1, 속하지 않는다면 0을 가지는 이진 변수우리는 위 식에서 rnk, uk를 구해야 해요. 이때 반드시 잊지 말아야 하는 조건은 각 데이터가 한 개의 클러스터에 할당이 되어야 한다는 것이에요.K-means 알고리즘K-means algorithm을 구하는 방법은 아래와 같이 크게 2단계로 나누어져요. 먼저 uk에 랜덤 값을 사용하여 임의의 초깃값을 설정해요.1. Expectationuk를 고정시키면서 J를 최소화하는  rnk값을 지정해야 하는데,  rnk은 모든 데이터 n에 대해 각각 모든 클러스터 중에서 xn- uk가 가장 작은 클러스터에 할당해요.2. Maximization새롭게 얻어진 rnk를 고정하고 uk는 k 번째 클러스터의 mean을 계산해요. 두 값이 적당한 범위 내로 수렴할 때까지 계산을 반복해요, 위의 두 단계를 각각 E(expectation) 단계와 M(maximization) 단계라 하고, 이 두 단계를 합쳐서 EM 알고리즘이라고 해요.알고리즘 코드로 나타내기그럼 K-means algorithm을 코드로 어떻게 나타내는지 살펴볼게요!Step1. 데이터 만들기np.random.seed(42)digits = load_digits()  data = scale(digits.data)n_samples, n_features = data.shapen_digits = len(np.unique(digits.target))labels = digits.targetx_train, x_test, y_train, y_test = train_test_split(data, labels, test_size=0.25, random_state=42) - digits = load_digits(): load_digits 함수를 사용하면 data와 target이 반환되는데 이 데이터를 scale 함수를 사용하여 전처리해요.- data.shape을 사용하면 n_samples에는 1797, n_feature에는 64가 할당돼요.- n_digits에는 digits의 target의 중복된 값을 제외한 개수를 할당해요.- train_test_split() 함수를 이용하여 train_set과 test_set을 랜덤 시드를 42를 가지는 75:25의 비율로 나눠요.Step2. KMeans model 만들기sklearn 라이브러리를 사용하면 KMeans model을 아주 쉽게 구현할 수 있어요.kmeans = KMeans(init='k-means++', n_clusters=10, random_state=42)clusters = kmeans.fit_predict(x_train)- KMeans 함수를 이용하여 모형은 k-means++를 가지고, cluster는 10개를 가지며 랜덤 시드는 42를 가지는 K-means clustering을 만들어요.- x_train 데이터 셋을 중심으로 클러스터의 중심을 계산하고 각 샘플에 대한 클러스터의 인덱스를 예측할 수 있도록 fit_predict()를 사용해요.Step3. K-means clustering 결과 출력print('Clusters: ', clusters)위와 같이 출력하면 아래와 같은 결과가 나와요.Clusters: [1 3 2 ... 6 6 0]]그래프를 출력하면 아래와 같은 결과를 볼 수 있어요!이번 수업에 배운 K-means clustering의 개념은 1주차와 2주차 수업의 개념에 비해 어렵지 않았던 것 같아요. 이해하기에 큰 문제는 없었지만 코드로 직접 짜려고 하니 막히는 부분이 있어서 고생을 좀 했어요. 저는 과제를 하다가 에러가 나면 구글링을 통해서 에러를 해결하거나 도저히 못하겠다 싶으면 도움 요청을 해요. 목요일에는 조교분들께서 Multiple Regression에 대해 숙명여대에서 수업을 진행해주셨는데요. 1, 2주차에 배운 내용을 복습하고 3주차 수업에서 짧게 살펴본 Multiclassification을 더 자세히 알려주셔서 본 수업 때 이해가 되지 않았던 부분이 해결이 되었습니다! 목요일 수업은 정식 수업이 아닌 보충수업이었기 때문에 소수의 사람들이 강의에 참여했는데요. 시간이 된다면 참석을 꼭 해주시면 굉장히 큰 도움이 될 것 같아요. * 이 글은 AI스쿨 - 인공지능 R&D 실무자 양성과정 3주차 수업에 대해 수강생 최유진님이 작성하신 수업 후기입니다.
조회수 8898

내가 창업을 선택한 3가지 진짜 이유 (동기)

내가 창업을 선택한 3가지 진짜 이유"왜 창업을 하셨나요?"스타트업 대표들이 가장 많이 듣는 질문 중에 하나이다. "남들 밑에서 일하기 싫었다."라는 대표부터, "세상을 바꾸고 싶다"라는 거창한 이야기를 하는 대표까지 각각의 창업자마다 창업이란 길을 선택한 수많은 동기와 이유들이 있다.  나 역시도 같은 질문을 받았을 때마다 상황에 맞는 그저 평범한 수많은 모법 답안을 대답했지만 말하지 않았던 내가 창업을 선택한 3가지 진짜 이유들에 대한 이야기이다.1. 돈으로 살 수 있는 것들 (여태껏 살아온 세상)마이클 센델의 책들을 개인적으로 정말 좋아한다. 하지만 작년 베스트셀러인 "돈으로 살 수 없는 것들"은 내가 경험한 현실과는 거리가 있어 보인다. 교수라는 사회적 위치와 어느 정도의 경제 수준과 상황에 올라갔기 때문에 나올 수 있는 책이 아닐까? 세상 대부분의 사람들은 돈으로 살 수 없는 것보다 돈으로 살 수 있는 것, 즉 현실에 매달려 살아가고 있다.돈이 인생의 전부는 아니라는데 동의한다. 하지만 돈이라는 것이 행복을 위한 여러 조건 중에 가장 기본적이고 도 많은 부분을 차지한다는 것을 나는 경험했다.우리 집은 어렸을 때부터 가난했다. 옥탑 단칸방에서 네 식구가 살기도 했었고, 이사를 정말 많이도 다녔던 기억이 있다. 경제적으로 부족한 아버지 때문에 평범한 가정주부 대신 어머니는 일터를 선택해야만 했고 정말 많은 고생을 하시는 모습을 지켜보며 자라왔다. 흔히 드라마에 나오는 것처럼 여유롭게 가족들이 여행을 다녀왔던가 하는 행복한 추억들은 그리 많지 않다.시간이 흘러 성인이 되었고 사회로 나와 열심히 노력하며, 좋은 직장을 들어가기 위해 치열하게 경쟁하고 살아남았다. 하지만 한창 젊었던 시절 사랑하던 여자 친구와 경제적인 문제로 헤어지는 상처를 받기도 했다. 유복한 가정의 여자 친구 부모님에게는 직장생활 급여라는 경제력만을 가지고 있던 나는 턱없이 부족했고 결국 우리는 이별이라는 현실을 선택해야만 했다. 어머니가 살아오신 삶 때문 일까? 어머니는 항상  "네가 능력이 안된다면 귀한 집 딸을 데리고 와서 고생시키지 말아라."라고 하셨었다. 나도 동의한다. 사랑하는 여자를 어머니처럼 고생시키고 싶지 않기 때문이다. 그런데 뭐 결혼 안 한다고 큰일 나는 거 아니지 않은가? 그리고 내 있는 그대로의 모습을 인정하고 받아들이는 여자를 만나면 되지 않는가?그래! 가난했던 집안 환경, 사랑 그리고 결혼 이런 것들은 이겨냈고 앞으로도 없이 살 수 있다고 생각한다. 나도 좋은 집에 살고 비싼 차를 몰고 싶지만 주어진 현실에 만족하면서 열심히 일하고 실력을 쌓고 나 스스로의 삶을 개척하고 살아가고 있다고 자부하며 지난 30대 초반을 지내왔다.어머니는 나와 동생의 대학교 등록금을 벌기 위해 10년 넘게 식당을 하셨었다. 두 아들이 대학교도 무사히 마치고 자리를 잡아가기 시작했지만 자식들한테 나중에 신세 지고 손 벌리기 싫다고 하시면서 계속 열심히 일만 하셨다.2012년 가을하늘도 정말 무심하시지. 그렇게 평생 고생만 하고 사셨던 어머니에게 정말 큰 아픔이 다가왔다.식당일로 인해 보건증을 끊으러 병원을 가셨다가 암 4기 말 판정을 받으셨다. 가족들에게 알리지도 않고 몇 주를 고민하시다가 털어놓으셨고 온 가족이 그때 받은 충격은 이루 말할 수 없었다. 큰 대학병원으로 옮겨 검사가 시작되었고 의사로부터 길어야 6개월이라는 시한부 선고를 받게 된다. 그렇게 힘든 인생을 사시고 자식들을 위해 고생만 하신 어머니가... 힘들게 살면서도 더 여러운 이웃에게 항상 베풀기만 하셨던 분이 도대체 왜.수술을 하면 어머니가 조금이라도 더 사실 수 있다는 의사의 의견에 우리 가족은 수술을 하기고 결정했다. 시한부 판정을 받았더라도 수술 날짜는 바로 잡을 수가 없었다. 수많은 암환자들이 있는 대학병원에서 가능한 수술 날짜와 입원날짜는 아직도 하늘에 별따기이다. 서울의 유명하다는 모든 대학병원을 수소문해서 수술과 입원이 가능한 곳을 알아봤지만 짧게는 한 달에서 길게는 세 달의 시간을 기다리라는 답변만을 받았다. 주변의 지인들을 통해 아는 의사나 교수님 모든 인맥을 동원해서도 노력해봤지만 대답은 같았다. 보호자가 힘든 내색을 하면 안 좋기 때문에 속으로 정말이지 수백 번을 울면서도 어머니 앞에서는 괜찮다고 웃어 보이며 금방 찾을 수 있다고 안심을 시켜 드렸었다. 하지만 현실에서 하루가 다르게 상태가 악화되는 어머니를 보면서 내가 할 수 있는 것은 아무것도 없었다. 어머니 본인 스스로의 충격과 현실은 그보다 더 잔인했다. 그렇게 온 가족이 모든 수단을 동원했지만 유명한 의사가 있고 가장 믿을만한 병원에서 두 달 정도 뒤에 가능하다는 최종 통보를 받았다. 아니 남아있는 6개월 중에 2달을 그럼 그냥 시간을 보내고 기다리라는 말인가!시간은 계속 빠르게 흘러갔고 살려야만 했고 방법을 찾아야만 했다. 그러던 중 어머니 친구분이 떠올랐다. 그 어머니 친구분은 재산이 몇백,몇천억이 아닌 "조"단위 정도 되는 큰 부자이신데 그분이라면 병원의 높은 사람을 아시지 않을까? 지푸라기라도 잡는 심정으로 전화를 걸었다."아이고 혁재야 그런 일 있으면 말하지 아줌마가 전화 한 통 넣을게"돌아오는 대답은 그냥 평범했고 형식적이었다. 하지만 정확히 하루 만에 두 달을 기다리라고 했던 바로 그 대학병원의 원무과장에게 직접 전화가 왔다."OOO님 되시죠. 내일 바로 입원하시고요. 최대한 빠르게 수술 진행하도록 돕겠습니다."정말 그렇게 말도 안 되는 일이 벌어졌고, 어머니는 다음날 바로 입원을 할 수 있었다. 흔히 말하는 각과의 과장들이 직접 내려와서 어머니를 캐어하기 시작했고 그것도 모자라 다른과의 과장들과 협진을 통해 수술 준비를 이어갔다. 병원에서의 모든 직원들의 역시 대우가 틀려졌다. 입원을 하자마자 정말 빠르게 모든 검사가 완료됐고 바로 수술 날짜가 잡혔다. 그분의 전화 한 통 후 그렇게 대한민국 최고 권위의 의사들과 좋은 시설의 병원에서 며칠 만에 모든 검사와 수술이 이루어졌다. 수술 이후에도 지속적으로 수많은 치료가 이루어졌다.수술은커녕 입원조차 안된다고 하던 바로 그 병원에서...그렇게 6개월 시한부 판정을 받으신 어머니는 병원에서 기적같이 살아나셨다. 나중에 모든 사실을 알게 되었다. 부탁을 하신 그 부자라는 어머니 친구와 남편분의 가족은 병원에서 흔히 말하는 VIP, 아니 VVIP 중에서도 최고의 VVIP였다. 가장 높은 사람인 병원장과 형, 동생 하면서 골프를 치는 사이이고 병원에 기부도 수십억 하고 그런 부류의 사람들. 병원장부터 내려온 오더는 어머니의 수술과 치료에 총동원이 되었던 것이다.수술이 끝나고 어머니 친구분께 고맙다는 인사를 드리고 나서 혼자 병원 벤치에 앉아 엉엉 울었다. 정말이지 고맙고 서럽고 만감이 교차했다. 사랑하는 사람조차 살리지 못하는 부족한 내 모습이 싫었고 돈이 사람 생명을 결정하는 현실이 너무나도 싫었다. 하지만 한편으로는 그래도 이렇게 어머니를 살린데 어디인가 스스로를 위안했다. 병원은 사람을 치료한다고 살려야 한다고 하지만 이익을 내야만 하는 영리 조직이고, 그 조직은 돈의 의해서 움직인다라는 것을. 사랑하는 사람을 경제적인 이유로 제대로 된 치료를 못 받게 하고 잃을 수 있는 현실을 머리로는 받아들였지만 가슴속으로는 받아 들 일 수 없었다.< 드라마 낭만닥터에서 주인공의 아버지는 VIP 환자에게 수술순서에 밀려서 죽는다. >-진짜 복수 같은 걸 하고 싶다면 그들보다 나은 인간이 되거라. 분노 말고 실력으로 되갚아줘. 알았니? 네가 바뀌지 않으면 아무것도 바뀌지 않는다. <낭만 닥터 중에서>그렇게 난 피눈물을 흘리며 다짐했다. 꼭 성공할 거라고. 그래서 다시는 이런 일을 겪지 않을 거라고 무기력하고 능력 없는 오늘까지의 내가 앞으로의 나에게 다짐한 채찍질이자 복수였다. 그건 내 가족, 형제, 그리고 미래에 있을 내 아내와 아이들에게 부족한 아버지로 남기 싫음이었다. 내가 사랑하는 사람들이 적어도 돈이라는 이유 때문에 죽어가는 일은 다시는 만들지 않을 수 있는 실력(경제력)을 가질 거라 결정했다. 안 좋은 길(불법적인 프로그램을 개발하는 일)로 들어서는 것도 고민했지만 떳떳하지 못할 거라 생각해고 내가 생각한 최선을 방법은 직장생활이 아닌 정정당당하게 창업을 도전해서 성공하면 경제적으로도 풍족해질 수 있는 합법적인 테두리 안에서의 선택이었다.암환자의 보호자 역할을 하면서 알게 된 사실인데 통계적으로도 경제적으로 부족한 사람들이 더 많이 암에 걸린다고 한다. 힘든 삶에서 건강을 챙길 시간 와 돈이 없고 일만 하면서 살아가기 때문이다. 그 어머니의 부자 친구분은 온 가족이 정기적으로 수백, 수천만 원이 넘는 건강검진을 받고 있고, 아프다면 최고의 의료진과 의료시설로부터 혜택을 받고 있다.수술은 잘 되었고 어머니는 빠르게 회복하셨다. 어머니는 평소 "짝" 애청자이셨다. 두 달여간의 입원기간 동안 어머니는 병원에서도 그 프로를 보시면서 "너는 밖에서 여자도 못 만나지?", "빨리 장가가라" 잔소리를 하시곤 했다. 정말 재미있게도 그날 낮에 짝 섭외 요청이 왔었고 어머니의 깜짝 선물 겸 가족 특집이라는 이유로 출연을 결정했다. "니 주제에 무슨 짝을 나가?" 하고 웃으시면 어머니는 방송 출연 전날까지 날 믿지 않으셨다. 어머니는 병원에서 외출 허가를 받고 같이 방송 촬영지에 오셨고 온 가족이 출연하는 즐거운 추억도 그때 만들게 된다. 방송 이후 자식 자랑에 어머니는 병원에서 일약? 스타덤에 오르셨고 다시 미소를 찾으셨다.기쁨도 잠시 그 뒤로 신체의 다른 부위로 전이가 되어 치매나 다리 마비 같은 위기가 해마다 찾아왔다. 하지만 어머니는 버티고 또 버텨내셨다. 4기 말 암환자로 6개월 시한부 판정을 받았던 어머니는 그렇게 암과 싸우며 아직도 살아가고 계시다."내가 너 장가가는 건 보고 죽어야 하는데.""내가 너 성공하는 건 보고 죽어야 하는데."아직도 입버릇처럼 말씀하시는면 난 이렇게 대답하고 한다."장가도 갈 거고 성공도 할 거야. 근데 한다고는 하는데 조금 더 걸릴 거 같아."그리니 더 살아서 꼭 큰아들 장가가고 성공하는 거 보고 눈감으라고.이게 내가 항상 "입에 칼 물고 열심히 해야 한다."라고 말하는 진짜 이유이다.2. 일하고 싶은 회사? (경험한 현실)10년... 그러고 보면 직장생활을 꽤 한 것 같다. 벤처기업, 중소기업, 대기업까지 10년이란 시간은 나에게 정말 많은 경험들을 주었다. 하지만 일하고 싶은 회사, 매일 출근하고 싶은 회사와는 거리가 멀었다. 흔히들 말하는 꿈의 직장을 다니고 싶었고, 그렇기 위해서는 실력을 쌓아야만 한다는 것을 알게 되었다. 기사나 책에서 꿈의 직장을 하면 나오는 여러 회사들 말이다. 높은 연봉과 쾌적한 근무환경과 복지들을 부러워한다.<구글이 꿈의 직장이라고 들어가고 싶다는데 나는 꿈의 직장에 들어갈 실력이 되는가?>사회생활을 하면서 흔히 말하는 꿈의 직장들인  마이크로소프트 본사, 구글 본사와 같은 가 본 경험을 가질 수 있었다. 특히나 LG전자에서 첫 해외 출장지였던 시애틀에서 짬을 내서 혼자 마이스로 소프트 본사를 쳐들어 간 경험은 신선한 충격으로 다가왔다. 그들이 어떻게 일하는지, 세계 최고라는 친구들은 어떤 모습을 하고 있는지 궁금해서였다. 지도를 펼치고 방문객을 위한 센터를 쳐들어갔는데 그걸로 만족하지를 못했다. 사무실이 가보고 싶었다. 안 되는 영어로 미친척하고 XBOX를 하고 있는 MS 직원에게 사진을 찍어 달라고 부탁하고 사진을 찍어준 그 친구에게 말을 건넸다. (참고로 내 영어실력은 초등학생 수준이다.)나 한국에서 온 누구누구인고 어느 회사 다니는 최혁재라고 한다. 너 개발자냐? 나도 개발자인데 반갑다. 사무실 좀 구경시켜줄 수 있니? 그 친구는 시원하게 허락을 했고 MS의 역사와 문화, 자기 사무실 구경에 심지어 식당에서의 점심식사까지 대접해줬다. (자기가 개발자로서 MS를 선택한 이유와 백그라운드 설명하는데 MIT 박사였다. )<  XBOX 를 열심히 하고 있던 MS 직원 아니 MIT 박사님  >< XBOX><  MS의 창업멤버들 >그 뒤로도 시애틀로 출장 갔었고 내가 짬날 때마다 찾아간 곳은 마이크로소프트 본사, 스타벅스 본사, 보잉사 본사였다. (그러고 보면 나도 정상은 아니다.) 그러면서 많은 것들을 느끼고 간접적으로다가 좋은 회사라는 기준을 잡아가기 시작했다. 그 친구들의 이야기는 한결같았다. 정말 좋은 회사에서 내게 배움을 줄 수 있는 인재들과 함께 일한 하는 것이 나의  행복이라고. 그래서 스스로가 항상  실력을 쌓기 위해 노력을 게을리하지 않는다 였다.내 주변에서 역시도 실력 있는 친구들이 있었고, 이 친구들과 함께 선의의 경쟁을 하며 일한다면 정말 좋을 것 같다는 생각을 했었다. 한국의 회사들에 만연한 학연, 지연 그리고 흔히 말하는 정치질이 싫었고 실력으로 인정받고 정정당당하게 승부하고 결과를 인정하는 그런 합리적인 조직생활을 꿈에 그렸었다. 지금 내가 속한 조직에서는 내가 그럴 수 없다는 것을 알게 되는데 10년이라는 시간이 걸렸다. 꿈의 직장은 가보지 못했지만 나부터 시작해보면 어떨까? 였고 그렇게 창업을 결정했다. 그 시작은 힘들겠지만 개개인들이 실력을 쌓고 동료들과 함께 노력한다면 흔히들 말하는 꿈의 직장을 만들어 볼 수 있지 않을까?"꿈의 직장은 꿈에서나 나올 거 같은 훌륭한 실력이 있는 사람들한테만 주어지는 곳이다."3. 이끌던가 따르던가 비키던가 (미래)<  3가지 삶 중에 내가 마지막으로 선택한 삶은 이끄는 삶이였다. >나의 20대는 게임에 미쳐 PC방에서 2년간 숙식을 했었고, 스노보드에 빠져 12년 동안 매해 겨울마다 보드를 탔었다. 명품으로 꾸미며 된장질도 해봤고, 여자들도 만나볼 만큼 만났고, 강남 클럽, 나이트 죽돌이였던 나는 사회에서 바라는 삶이 아닌 허황되고, 한심하며, 노력하지 않는 비주류, 흔히들 말하는 바닥을 깔아주는 그런 비주류의 사람, 게다가 주어진 환경이나 사회에 불만을 가지기만 하고 노력하지 않는 사람. 당장의 쉬운 것, 좋은 것, 재미있는 것, 편한 것만을 추구하며 보낸 비키는 삶을 살았었다.직장 생활을 하면서 조금씩 철이 들어갔고 10년, 20년 뒤 내 미래에 대한 고민을 하기 시작했다. 조금은 나아졌지만 내 현실은 비키는 비주류의 삶에서 조금 나아진 따르는 삶이었다. 불합리한 부분에 수긍했으며, 아닌 것을 아니다 라고 말하지 못했다. 갑을병정이라는 우리 사회의 만연된 계급 아닌 계급을 맛보기도 했다. 노력하지 않고 평범하게 현실에만 안주하다가 시작된 나의 첫 사회생활은 흔히들 말하는 "을"로써 시작되었다. 첫회사가 LG전자의 외주 개발업무를 했었기 때문에 LG전자 사무실을 들어가서 개발 일을 하기도 했다. 그때 내 목에는 LG전자 사원증 대신 주황색의 외주업체 사원증이 걸려 있었다. 중요한 회의는 참석하지 못했고 그저 개발, 딱 개발일만 했다. 똑같이 일을 해도 나보다 높은 급여를 받고 좋은 대우를 받는 그 친구들을 보면서 나 스스로에 대한 현실에 불평, 불만을 늘여놓기만 했다. 내가 참여하고 고생한 프로젝트가 마무리되고 제품이 출시되어도 내가 다니는 회사의 제품은 아니었다. 그리고 다짐했다. 불평, 불만이 아니라 내가 그곳으로 올라가는 실력을 쌓아보자고.그렇게 시간이 흘러 중소기업을 거쳐 LG전자까지 들어갔다. 사람들은 내가 그냥? 운이 좋아서 이직을 잘했고 마지막에는 대기업에 들어간 줄 알지만 난 10년 동안 약 500번의 이력서를 썼고 100여 번의 면접을 봤다. 이력서를 고치고 다듬고, 경력을 쌓고 그만큼 노력했고 올라가고 싶었다. 대기업에 가고 많은 것들이 현실적으로 변했다. 높은 급여, 복리후생 사회적인 지위와 주변의 인정, 하물며 만나는 여자의 급 또한 달라졌다. 노력에 대한 보상은 그렇게 피부로 느껴졌다. 그렇게 대기업에서 4년이란 시간을 지내면서 많은 것들을 배웠다. 조직관리와 글로벌 프로젝트 그리고 훌륭한 동료들을 만나게 되었다. 들어오기 전에 불평불만을 했던 나 자신 스스로가 너무 초라했었구나 역시 그때 느꼈다. 내가 만난 동료들은 나와 비슷한 개발 실력만 가지고 있지 않았다. 개발도 잘하고 영어도 잘하고 조직관리 등 개발 외적인 부분인 조직에서 필요한 다른 부분의 실력 역시 뛰어났으며 내 회사 내제품이라는 애사심과 자부심까지 가지고 있었다.아직도 주변에 대기업 다니는 사람들을 보고 일도 못하는 게 연봉만 높다고 불평. 불만들 늘여 놓는 친구들이 많이 있다. 내가 경험한 그들은 실력 있고 그만한 대우를 받을만한 동료들이었다. 살인적인 업무강도와 성과를 내야만 하는 스트레스를 직접 겪어보지 않고 말하는 사람들을 보면 화가 나기까지 한다. 세상에 공짜는 없다. 그만큼 일을 하고 성과를 내기 때문에 그런 대우를 받는 것 아닐까?"나는 대기업은 체질에 안 맞아"라고 이야기를 하면서 다니는 회사의 연봉에 불만을 같은 건 합리적이지 않다. 높은 연봉을 받고 싶으면 대기업을 가면 되지 않는가. 그런데 대기업을 갈 노력과 실력이 되는지 정말 냉정하게 생각해보자. 그리고 창업을 준비한다면 바로 창업하지 말고 나는 꼭 대기업을 들어 가보라고 추천한다. 대기업을 들어가기 위해서 노력하는 모든 것들은 자산으로 남는다. 그리고 들어가서는 정말 많은 것들을 배우고 느낄 수 있고 훌륭한 동료들을 만날 수 있다. 나 역시도 창업 후 가장 도움이 되는 경험은 바로 대기업에서 경험했던 것들이었다.10년간의 직장 생활. 많은 것을 배운 경험은 소중한 자산이 되었지만 아직도 내 모습은 이끄는 삶이었다. 10년 뒤 20년 뒤 조직 내에서의 내 모습은 내가 원하는 모습이 아니었다. 누리고 있던 모든 것을 내려놓는 것은 쉽지 않았다. 하지만 내가 선택한 창업이란 길은 내가 원하는 이끄는 삶으로 가기 위한 가장 올바른 방법이라 생각했고 아직도 그때의 결정을 후회하지 않는다.#스푼 #Spoon #창업자 #스타트업 #스타트업창업 #초기창업 #고민 #스타트업문화 #인사이트
조회수 1991

Docker, NodeJS, Nginx! 너로 정했다!

편집자 주아래와 같이 용어를 표기하기로 저자와 협의함Docker, NodeJS, NginxOverview안녕하세요. 칼 같은 들여쓰기에 희열을 느끼는 브랜디 개발자 강원우입니다! 서버를 운영해본 개발자라면 Fatal 에러, 아웃오브메모리 에러, 또는 전날 흡수한 알코올로 인해 손을 떨다가 한 번쯤 서버를 요단강 너머로 보내봤을 겁니다. 만약 테스트 서버였다면 잠시 마음을 가다듬으면 되지만, 현재 상용 서비스 중인 서버라면 얘기는 달라집니다.님아, 그 강을 건너지 마오!이런 간담이 서늘해지는 경험은 저 하나로 족합니다. 그래서 고군분투했던 지난 날을 되돌아보면서 빠르고 안정적이며, 죽어도 죽지 않는 좀비 같은 서버 구축 방법을 쓰려고 합니다.준비물서비스를 운영할 때 가장 중요하게 여겨야 하는 건 역시 안정성입니다. 이번 글에서는 오래 전부터 개발 세계의 뜨거운 감자였던 Docker와, 단일 스레드와 이벤트 루프로 태생적으로 심플하고 민첩한 NodeJS, 마지막으로 고성능을 목표로 개발된 Nginx를 활용하겠습니다.1. DockerDocker는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 대표적으로 LXC(Linux Container)가 있습니다. 화물 컨테이너처럼 어떠한 일련의 기능을 완전히 격리된 소프트웨어 환경에서 작동하게 만드는 기술을 말합니다.OS 가상화와 별반 다를 게 없는 것 같지만 소프트웨어적으로 작동한다는 차이가 있습니다. 다시 말해, 현재 OS의 자원을 그대로 사용하기 때문에 하이퍼 바이저가 가상환경을 위해 가상의 커널을 만드는 오버헤드가 거의 없다는 것이죠.이미지와 속도도 차이를 보입니다. 완벽하게 구성한 세팅을 그대로 이미지화할 수 있고, 해당 이미지는 Docker 위에서 완벽히 동일하게 동작하는 걸 보장합니다. 해당 이미지로 컨테이너를 제작할 땐 1~2초면 새로운 컨테이너가 생겨날 정도로 엄청나게 빠른 속도도 자랑합니다. 1)또한 Docker는 자주 사용되는 다양한 이미지를 퍼블릭 레포지토리에 공유해 사용할 수 있기도 합니다. 양파도 아닌데 특징이 계속 나오죠? 다음 글에서 Docker의 특징을 더 자세히 다루겠습니다.Docker는 리눅스만 지원했었지만, 요즘은 Docker for Windows와 Docker for Mac으로 거의 모든 OS에서 사용할 수 있습니다. 2) Docker 설치 링크는 윈도우와 맥으로 나뉘어져 있습니다. 리눅스는 아래를 참고하세요.curl -fsSL https://get.docker.com/ | sudo sh 2. NodeJSNodeJS는 구글이 구글 크롬에 사용하려고 제작한 V8 오픈소스 자바스크립트 엔진을 기반으로 제작된 자바스크립트 런타임입니다. NodeJS에는 몇 가지 특징이 있습니다.단일 스레드입니다.비동기 방식입니다.이벤트 루프를 사용합니다NPM이라는 끝내주는 동반자가 있습니다.비유하자면 예전엔 낡은 곡괭이로 큰 돌을 캐내려고 수십 명의 인부가 달라 붙었는데, 지금은 육중한 포크래인으로 거대한 돌을 쑥! 뽑아버리는 것과 비슷합니다. 굉장히 효율적이죠. NodeJS는 단일 스레드의 장점을 극대화하려고 이벤트 루프를 통해 모든 처리를 비동기로 수행합니다. 서버 사이드의 묵직한 CPU들이 빠르게 일을 처리하고 이벤트 루프에 등록된 일을 감지해 다음 작업을 빠르게 수행하는 방식입니다.마지막으로 NPM(Node Package Manager)은 NodeJS에서 사용할 수 있는 다양한 모듈을 관리해주는 프로그램입니다. 도커와 상당히 유사합니다. NodeJS에서는 무언가 기능을 만들기 전에 NPM을 먼저 뒤져보라는 말이 있을 정도로 풍부한 모듈 생태계가 구성되어 있습니다. 이는 로깅이나 날짜 계산 등 생각보다 까다로운 것들을 가져다 사용할 수 있게 도와주기 때문에 개발이 빨라집니다. NodeJS 설치링크는 여기를 클릭하세요. 이 글의 예제에서는 NodeJS의 현재시점 LTS인 codename Carbon버젼을 사용합니다!8.x 버젼이 Active LTS 상태입니다.LTS은 Long Term Support의 약자로 가장 오랜기간 지원하는 버전입니다.우선 서비스 구성을 위해 간단한 NodeJS 어플리케이션을 작성해보겠습니다.첫째, packge.json를 작성합시다.{   "name": "nodejs_tutorial_server",   "version": "0.0.0",  "private": true,   "scripts": {     "start": "node nodejs_tutorial_server.js"   },   "description": "NodeJS Tutorial Server",   "author": {     "name": "WonwooKang"   },   "dependencies": {     "express": "^4.16.3",     "uuid": "^3.2.1"   } } nodejs_tutorial_server.js 파일을 메인으로 실행합니다. HTTP Request를 처리하려면 express를 사용해야 하며, 서버를 구분하려면 uuid모듈이 필요합니다.둘째, package.json의 의존 파일들을 설치합시다.npm install npm install 전npm install 후셋째, 간단한 웹 어플리케이션을 작성합시다.var express = require('express'); var app = express(); const port = 3000;  var server = app.listen(port, function () {     console.log("Express server has started on port : "+port);  });  app.get('/', function (req, res) {     res.send('Hello?');  }); 넷째, package.json의 script start 구문을 실행하여 서버를 로드합시다.npm start 3000번 포트로 서버가 시작되었습니다!접속해볼까요?잘 접속됩니다.그런데 수정할 때마다 서버를 매번 다시 띄우면 귀찮을 겁니다. 이럴 땐 nodemon 모듈을 사용합시다. nodemon은 Nodejs의 파일이 수정되는 걸 감지해 자동으로 리로드해주는 편리한 도구입니다.nodemon설치npm install nodemon -g package.json script 변경"scripts": {     "start": "nodemon nodejs_tutorial_server.js"   }, nodemon 실행확인을 위해 약갼의 수정//nodejs_tutorial_server.js 수정 app.get('/', function(req, res) {     res.send('Hello Nodemon');  }); nodemon을 통해 어플리케이션이 실행된 모습파일수정 후 저장했을 때 자동 감지한 모습서버 잘 떴습니다!성공적으로 단 하나의 GET 요청을 처리할 수 있는 심플한 NodeJS 기반 웹 어플리케이션을 완성했습니다. 이제 웹 어플리케이션을 Docker Container위에서 구동해봅시다!3. Docker로 NodeJS Express 서버 구동하기이제 Docker Container위에서 NodeJS서버를 구동할 건데요. 그러려면 우선 Dockerfile을 작성해야 합니다. 물론 Docker의 이미지를 당겨 받고, 컨테이너를 생성하고, 또 컨테이너를 실행해서 Attach하고, 필요한 파일들을 밀어넣는 등 귀찮은 방법도 있습니다. 하지만 개발자에게 이것은 힘든 작업이므로 Dockerfile을 적극 활용합시다. (Dockerfile의 D는 대문자여야 합니다! 꼭이요)Node 도커 이미지에 어플리케이션 파일을 추가해 실행하는 Dockerfile 작성하기FROM node:carbon MAINTAINER Wonwoo Kang [email protected] #app 폴더 만들기 - NodeJS 어플리케이션 폴더 RUN mkdir -p /app #winston 등을 사용할떄엔 log 폴더도 생성 #어플리케이션 폴더를 Workdir로 지정 - 서버가동용 WORKDIR /app #서버 파일 복사 ADD [어플리케이션파일 위치] [컨테이너내부의 어플리케이션 파일위치] #저는 Dockerfile과 서버파일이 같은위치에 있어서 ./입니다 ADD ./ /app #패키지파일들 받기 RUN npm install #배포버젼으로 설정 - 이 설정으로 환경을 나눌 수 있습니다. ENV NODE_ENV=production #서버실행 CMD node nodejs_tutorial_server.js Dockerfile 내용은 node:carbon에서 :carbon이 NodeJS의 이미지 버전 Tag 입니다.Dockerfile을 통해 docker image 빌드하기docker build –tag 레포지토리명: 태그 Dockerfile 경로docker build --tag node_server:0.0.1 [Dockerfile이 위치하는 경로] 호오... 게이지가 마구마구 차오르는군요?build가 완료된 화면입니다. Dockerfile의 내용 순서가 각 Step별로 진행된 것을 알 수 있습니다.빌드 결과 생성된 이미지 확인하기docker images 빌드 명령어에서 입력했던 버전 태그까지 잘 입력된 것을 알 수 있습니다.NodeJS Carbon 이미지를 기반으로 한 node_server 이미지를 제작했습니다. 사이즈는 둘이 합쳐 1Gb가 넘을 것 같지만 실제로는 변경된 부분만 저장됩니다. 그러므로 node_server 이미지의 크기는 6~10Mb 정도입니다.생성된 이미지로 컨테이너 만들기컨테이너 생성 명령어는 아래와 같습니다.docker create --name [서버명] -p [외부 포트:컨테이너 내부포트] [이미지명:버전태그] 주의할 점이 있습니다. 포트번호 바인딩 중 왼쪽은 우리가 접속할 실제 포트이고, 오른쪽은 컨테이너 내부의 NodeJS서버 할당 포트가 된다는 것입니다. 공유기의 포트포워딩 설정과 같습니다.docker create --name NODE_SERVER_0 -p 3000:3000 node_server:0.0.1 알 수 없는 코드가 생성되었습니다. 응?컨테이너 확인하기생성한 컨테이너를 확인해볼까요?docker ps 어.. 없잖아?옵션을 추가합니다.docker ps -a 나타났다!docker ps 명령어는 현재 실행 중(STATUS:Up)인 컨테이너의 목록을 보여줍니다. -a 옵션은 실행하지 않는 모든 컨테이너를 보여줍니다. 위의 이미지에서 node_server:0.0.1이미지로부터 NODE_SERVER_0 이라는 이름으로 2분 전에 생성되었다는 걸 알 수 있습니다. 3)컨테이너 실행하기docker start NODE_SERVER_0 다시 확인하기docker ps 19초 전에 Up상태가 되었다는 걸 알 수 있다.외부 3000번 포트 -> 내부 3000번 포트로 연결되었습니다. 서버도 실행되었고요! 이제 접속해볼까요?내용도 안 바꾸고 새로고침도 빨라서 뜬 건지 잘 모르겠군요. 내용을 수정해서 다시 확인하겠습니다.//nodejs_tutorial_server.js 수정 app.get('/', function (req, res) {     res.send('Hello I\'m In Docker Container Now!');  }); 파일 변경해서 다시 확인하기//버전 태그도 0.0.2로 업해주고 docker build --tag node_server:0.0.2 [Dockerfile위치] 잘 생성되었습니다.//이미지가 잘 생성되었는지 확인하고 docker images 0.0.2가 나타났습니다.//기존 컨테이너를 삭제합니다. -f 옵션은 실행중인 컨테이너도 강제로 삭제하겠다는 뜻입니다.  docker rm -f NODE_SERVER_0 // 잘지워졌나 확인하고  docker ps -a 잘 지워집니다.//0.0.2 버젼 이미지로 컨테이너를 다시 생성합니다.  docker create --name NODE_SERVER_0 -p 3000:3000 node_server:0.0.2   //서버를 실행합니다. docker start NODE_SERVER_0 잘 실행됩니다.이제 다시 접속해봅시다.안녕! 나 지금 Docker 안에 있어!이제 Docker로 여러 개의 서버를 띄우겠습니다. NodeJS는 싱글 스레드이기 때문에 하나의 CPU를 여럿이 나눠 갖는 건 비효율적입니다. 따라서 CPU 숫자에 맞춰서 서버를 띄워보겠습니다.제 맥북엔 CPU가 4개뿐입니다.CPU수에 맞춰 추가로 생성하기추가로 컨테이너를 생성하고, 서버를 실행합니다. 서버 목록도 확인해야겠죠.서버 생성서버 실행서버 목록 확인포트번호는 같은 포트를 쓸 수 없기 때문에 3001, 3002, 3003으로 매핑합니다. 브라우저로 접속해서 확인해보겠습니다.각 포트별 접속 화면미리 만들어둔 이미지 덕분에 서버 3대를 띄우는 데에 5분도 안 걸렸습니다. 하지만 Docker 서버를 여러 개 띄워도 결국 사람의 손이 닿아야 합니다. 따라서 이번에는 NodeJS의 Cluster를 활용해 적은 수의 Docker Container를 이용하면서도 다수의 CPU를 사용하겠습니다. 또 죽은 워커를 다시 살려 서버가 다운되는 것을 막아 안정적인 서비스도 구축해보겠습니다.4. 멀티코어대응 NodeJS Cluster 구성2컨테이너용 NodeJS Cluster서버 어플리케이션 작성하기var cluster = require('cluster'); var os = require('os'); var uuid = require('uuid'); const port = 3000; //키생성 - 서버 확인용 var instance_id = uuid.v4();  /**  * 워커 생성  */ var cpuCount = os.cpus().length; //CPU 수 var workerCount = cpuCount/2; //2개의 컨테이너에 돌릴 예정 CPU수 / 2  //마스터일 경우 if (cluster.isMaster) {     console.log('서버 ID : '+instance_id);     console.log('서버 CPU 수 : ' + cpuCount);     console.log('생성할 워커 수 : ' + workerCount);     console.log(workerCount + '개의 워커가 생성됩니다\n');        //CPU 수 만큼 워커 생성     for (var i = 0; i < workerCount>         console.log("워커 생성 [" + (i + 1) + "/" + workerCount + "]");         var worker = cluster.fork();     }        //워커가 online상태가 되었을때     cluster.on('online', function(worker) {         console.log('워커 온라인 - 워커 ID : [' + worker.process.pid + ']');     });        //워커가 죽었을 경우 다시 살림     cluster.on('exit', function(worker) {         console.log('워커 사망 - 사망한 워커 ID : [' + worker.process.pid + ']');         console.log('다른 워커를 생성합니다.');                 var worker = cluster.fork();     });  //워커일 경우 } else if(cluster.isWorker) {     var express = require('express');     var app = express();     var worker_id = cluster.worker.id;         var server = app.listen(port, function () {         console.log("Express 서버가 " + server.address().port + "번 포트에서 Listen중입니다.");     });        app.get('/', function (req, res) {         res.send('안녕하세요 저는 워커 ['+ cluster.worker.id+'] 입니다.');     });  } CPU 숫자를 받아 CPU 수(4)를 컨테이너 수(2) 로 나눠 워커를 생성하는 NodeJS 클러스터 구성입니다. 이렇게만 해도 운영에는 무리가 없지만 컨테이너 2개의 구분이 안 되서 확인할 수가 없습니다.그러므로 마스터와 워커의 통신을 이용해 마스터의 uuid를 얻겠습니다. (워커와 마스터 간의 데이터 이동은 통신 말고는 메모리DB 등의 데이터 저장소밖에 없습니다)마스터의 아이디를 알아오는 로직이 추가된 어플리케이션 작성var cluster = require('cluster'); var os = require('os'); var uuid = require('uuid'); const port = 3000; //키생성 - 서버 확인용 var instance_id = uuid.v4();  /**  * 워커 생성  */ var cpuCount = os.cpus().length; //CPU 수 var workerCount = cpuCount/2; //2개의 컨테이너에 돌릴 예정 CPU수 / 2  //마스터일 경우 if (cluster.isMaster) {     console.log('서버 ID : '+instance_id);     console.log('서버 CPU 수 : ' + cpuCount);     console.log('생성할 워커 수 : ' + workerCount);     console.log(workerCount + '개의 워커가 생성됩니다\n');         //워커 메시지 리스너     var workerMsgListener = function(msg){                    var worker_id = msg.worker_id;             //마스터 아이디 요청             if (msg.cmd === 'MASTER_ID') {                 cluster.workers[worker_id].send({cmd:'MASTER_ID',master_id: instance_id});            }      }        //CPU 수 만큼 워커 생성     for (var i = 0; i < workerCount>         console.log("워커 생성 [" + (i + 1) + "/" + workerCount + "]");         var worker = cluster.fork();                //워커의 요청메시지 리스너         worker.on('message', workerMsgListener);     }        //워커가 online상태가 되었을때     cluster.on('online', function(worker) {         console.log('워커 온라인 - 워커 ID : [' + worker.process.pid + ']');     });        //워커가 죽었을 경우 다시 살림     cluster.on('exit', function(worker) {         console.log('워커 사망 - 사망한 워커 ID : [' + worker.process.pid + ']');         console.log('다른 워커를 생성합니다.');                 var worker = cluster.fork();         //워커의 요청메시지 리스너         worker.on('message', workerMsgListener);     });  //워커일 경우 } else if(cluster.isWorker) {     var express = require('express');     var app = express();     var worker_id = cluster.worker.id;     var master_id;        var server = app.listen(port, function () {        console.log("Express 서버가 " + server.address().port + "번 포트에서 Listen중입니다.");     });        //마스터에게 master_id 요청     process.send({worker_id: worker_id, cmd:'MASTER_ID'});     process.on('message', function (msg){         if (msg.cmd === 'MASTER_ID') {             master_id = msg.master_id;         }     });        app.get('/', function (req, res) {         res.send('안녕하세요 저는 ['+master_id+']서버의 워커 ['+ cluster.worker.id+'] 입니다.');    });  } Docker Container에 올리기 전 로컬 테스트를 먼저 진행합니다. 서버 구동!두 개의 워커가 실행되었습니다.똑같은 localhost:3000번 접속이지만 워커의 번호가 다릅니다.이제 워커로 CPU 수만큼 워커를 생성할 수 있게 되었습니다. 이제 워커가 어떻게 안정적으로 서비스되는지 테스트하겠습니다. 워커 킬링 테스트하기워커 킬러 로직 작성//워커 킬링 테스트     app.get("/workerKiller", function (req, res) {         cluster.worker.kill();         res.send('워커킬러 호출됨');     }); 실험에 앞서 똑같은 상황 재연 마스터 아이디를 유심히 봐주세요. 워커 킬러를 실행하겠습니다.워커 킬러 호출아래는 호출된 결과입니다. 하나의 워커가 죽자마자 곧장 다른 워커가 태어나(?) 3000번을 Listen하기 시작했습니다. 워커 킬러가 호출된 화면이제 워커 킬러를 여러 번 호출해보겠습니다. CMD+R을 꾸욱 눌러 연속으로 킬링해봤는데 아래 화면처럼 바로 살아납니다.접속해서 현재 워커를 확인합니다.위의 화면처럼 마스터의 UUID가 그대로인데 워커만 교체되었습니다. 준비는 끝났습니다. 이제 Docker를 이용해 2명의 워커를 가진 2개의 NodeJS서버를 실행하고, 4개의 귀여운 CPU를 불살라봅시다! 5. Docker로 NodeJS Cluster 서버 실행하기docker build --tag node_server:0.0.3 /Users/kww/eclipse-workspace/nodejs-for-article docker create --name NODE_SERVER_0 -p 3000:3000 node_server:0.0.3 docker create --name NODE_SERVER_1 -p 3001:3000 node_server:0.0.3 docker start NODE_SERVER_0 docker start NODE_SERVER_1 cluster가 적용된 2개의 컨테이너 start0.0.3번 이미지로 생성된 2개의 컨테이너 서버가 무사히 로드되었습니다. 이제 접속해서 확인해볼까요?cluster가 적용된 2컨테이너 4서버 구동화면WOW! 2개의 URL, 2개의 UUID, 각 2명의 워커까지. 완벽한 2.2.2입니다. 마치 홍진호를 보는 듯한 서버 현황입니다. 이제 워커 킬러로 습격해보겠습니다.워커 킬러 습격 후위의 이미지를 보면 3000번 포트서버에서 13명, 3001번 포트서버에서 22명의 워커가 사망했습니다. UUID를 통해 2개의 서버에서 일정량의 워커가 매우 안정적으로 서버를 지키고 있는 걸 알 수 있었습니다.지금까지 2개의 컨테이너로 4개의 서버를 구성해보았습니다. CPU 숫자와 나눠지는 수에 따라 컨테이너의 수, NodeJS 클러스터 서버의 수를 유동적으로 조정할 수 있습니다. 전에 운영하던 API서버는 16코어 서버였고, 로드벨런서 및 기타 작업용 1코어의 여분을 남기고 15코어 / 3 으로 5개의 워커를 가진 3개의 NodeJS서버를 도커 컨테이너로 운영했었습니다.여기서 문제점이 생깁니다. 우리는 어떤 서비스를 할 때 하나의 도메인을 쓰는데 포트번호가 2개죠? 어떻게 해야 할까요. 여기서 바로 한참을 기다렸던 불곰국의 Nginx가 등장합니다.6. Nginx로 로드밸런싱 하기Nginx은 “더 적은 자원으로 더 빠르게”를 지향합니다. 러시아의 이고르 시쇼브(Игорь Сысоев)는 Apache에서 10,000개의 접속을 동시에 다루기 힘든 걸 해결하려고 Nginx를 개발합니다.Nginx는 NodeJS와 유사하게 싱글 스레드 방식에 이벤트 드리븐 구조 사용하는 오픈소스 HTTP서버로 최근 아파치의 점유율을 상당히 뺏고 있는 서버입니다. 다운로드 링크를 아래에 써두었습니다.Nginx 설치WindowNginx 다운로드Macbrew install nginx Linuxapt-get install nginx or yum install nginx Nginx 설치 성공Nginx 기본 접속 화면서버 조작방법서버 시작 : nginx 서버 중지 : nginx -s stop 서버 재시작 : nginx -r reload (맥에선 이건 안되는듯?) 기본 설정은 8080포트로 되어있습니다. 원하는 포트르 로드벨런싱 설정을 해보겠습니다. Nginx 로드밸런싱 설정아래는 Nginx의 로드밸런싱입니다.#http블럭 내부에 추가     #NodeJS 서버 로드밸런싱     upstream nodejs_server {         #least_conn;         #ip_hash;         server localhost:3000 weight=10 max_fails=3 fail_timeout=10s;         server localhost:3001 weight=10 max_fails=3 fail_timeout=10s;     }        #3333번 포트 NodeJS 서버로 연결     server{         listen               3333;         server_name  localhost;                location / {             proxy_pass http://nodejs_server;         }     } 로드밸런싱이 잘 적용되었는지 확인해보겠습니다. 로드밸런싱 적용 이후모든 브라우저에서 3333번으로 접속했는데 서로 다른 2개의 서버가 번갈아 접속되고, 워커가 가끔 바뀌는 걸 확인할 수 있습니다. 이번엔 로드밸런서로 워커 킬러를 호출하겠습니다.로드밸런싱 포트인 3333번 포트로 여러 번 호출결과 확인Nginx 로드밸런서가 확실하게 작동하는 걸 확인할 수 있었습니다. 위의 이미지에서 서버가 자꾸 바뀌는 모습을 볼 수 있는데, 이는 세션이 유지되지 않기 때문입니다. 실제 서비스에서는 세션의 유지를 위해 ip_hash 옵션이 꼭 필요합니다.ip_hash : 동일한 IP의 접속은 같은 서버로 접속하도록 하는 옵션입니다.  least_conn : 가장 접속이 적은 서버로 접속을 유도하는 옵션으로 ip_hash와 같이쓰입니다. Conclusion자, 고생하셨습니다. 여기까지 Docker와 NodeJS, Nginx를 이용해 관리하기 쉽고, 일부러 죽여도 죽지 않는 안정적인 서비스 환경을 구축해봤습니다. 한 가지 주의할 점이 있습니다. NodeJS의 Cluster는 죽은 워커를 바로 살리는데 싱글스레드여서 그런지 그 속도가 정말 어마어마합니다. 따라서 NodeJS Cluster를 사용할 땐 여러 핸들링에 신중하세요. 모든 promise에 반드시 catch를 달아 핸들링하고, 오류가 날 것 같은 로직엔 반드시 try - catch를 달아 핸들링을 해야 합니다. 그렇지 않으면 다시 살아나는 워커에 의해 서버의 자원이 고갈될 수 있습니다.예전에 16코어 서버를 운영할 땐 서버 자원에 비해 사용자가 적어서..(눈물) 5워커 2개의 서버만 구동하고 여유를 두었습니다. 그리고 서버 패치가 있을 때 3번째 서버를 대기시켰습니다. 앱에서 업데이트가 완료되는 시점에 Docker Container를 바꿔치기 하는 방식으로 Non-Stop서비스를 운영했죠. 혹시 코어가 빵빵한 여유 서버가 있는데 재빠르고 좀비 같은 서비스를 구성해야 한다면 위와 같은 환경 구축을 강력히 추천합니다. 지금까지 긴 글을 읽어주셔서 감사합니다.ps. 글 쓰다 보니 해가 떴네요. 하하.참고1) 가상 머신은 작은 이미지라도 기가바이트 단위의 사이즈와 Load되기까지 상당한 시간이 소요된다.2) 그러나 Windows의 경우, Hiper-v위에 리눅스를 띄워 도커를 구동한다. Mac에서도 가상 머신 위에서 구동된다. 따라서 성능적인 강점은 리눅스에만 적용된다.3) 도커에서는 NAME 속성을 지어주지 않으면 알아서 이름을 지어주는데 romantic한 단어가 많다.글강원우 과장 | R&D 개발2팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #개발팀 #개발자 #개발환경 #업무환경 #인사이트 #경험공유
조회수 1282

LG와 함께라면 언제나 Life’s Good, 지원부문장 인터뷰

지난 6월 5일 세계 환경의 날 캠페인을 진행한 LG전자 CSR(Corporate Social Responsibility, 기업의 사회적 책임)팀이 LG전자 지원부문장 이충학 부사장을 만났습니다. LG전자의 사회공헌활동에 대한 이야기를 나누기 위해서인데요. 때로는 유쾌하게 때로는 진지하게 진행된 우리들의 따뜻했던 오후를 잠시 엿보도록 할까요?CSR 팀 : 올해 진행한 LG전자 세계 환경의 날 캠페인에 대해 소개 부탁합니다.지원부문장 : LG전자는 2010년부터 노동조합과 함께 매년 세계 환경의 날인 6월 5일을 글로벌 자원봉사자의 날로 정하고 임직원 봉사 활동을 실시하고 있습니다. 일 년에 한 번 임직원들이 봉사 활동을 같이 한다는 것도 의미가 있지만, 무엇보다 노동조합과 함께 한다는 데 큰 의의가 있는 것 같습니다. 노조와 회사가 함께 사회에 보다 긍정적인 영향력을 만들어내겠다는 의지가 잘 반영된 활동인 것 같아요. 게다가 7년째 지속하고 있으니 더욱 의미가 깊다고 하겠습니다.l LG전자 지원부문장 이충학 부사장CSR 팀 : 올해는 문화유산 보존과 환경 보호를 주제로 삼았는데요. LG전자와 어떤 관련이 있을까요?지원부문장 : 처음 듣기에는 문화유산 보존과 LG전자의 환경 보호 활동이 무슨 상관이냐고 할지도 모르겠지만, 저는 듣자마자 지역 사회 곳곳에 뿌리내리고 있는 우리가 관심을 가질만한 분야라는 생각이 들었어요. LG는 전 세계에서 사업을 전개하고 있는데, 결국 그 지역 생태계의 일원이거든요. 생태계 보존에 힘쓰고 동참하는 것은 너무나 당연한 일이지요. 게다가 작년에는 올레드 TV와 함께 경복궁, 고궁박물관에서 <대한민국 문화유산 전시회>, <다시 만난 우리 문화유산전>을 진행했을 때 단순 봉사 활동을 넘어 LG 제품으로 고객들에게 보다 더 큰 가치를 전할 수 있겠다는 생각이 들었어요. 올해는 특히 세계문화유산인 창덕궁에서 문화재청과 함께 문화유산 지킴이 활동을 함께 할 수 있어서 더욱 좋았던 것 같습니다.l 2016년 2월 케냐 의수족 지원 10주년 기념식 참석 모습CSR 팀 : 글로벌 기업인 LG의 많은 법인들이 함께 동참하는 것도 무척 의미가 있는 것 같은데요.지원부문장 : 전 법인들이 참여하는 사회공헌 활동이 1년에 두번 정도 진행 중인데요. 6월 ‘세계 환경의 날 캠페인’과 9월 ‘헌혈 캠페인’이 그것인데요. ‘헌혈 캠페인’의 경우 국가적 특성에 따라 헌혈이 익숙하지 않은 곳도 있는 것이 사실입니다. ‘환경 캠페인’은 국경을 넘나드는 글로벌 이슈이니 전 법인이 참여하기에 좋은 것 같습니다. LG가 지역사회에서 사랑받고 있는 기업이라는 점을 감안해 해당 국가와 지역 주민들이 도움을 필요로 하는 문제를 해결하는 데 동참하면 참 좋을 것 같다는 생각입니다. 또 올해에는 약 35개 사업장에서 수천 명이 임직원들이 참여했고 SNS로 고객 참여를 유도하는 이벤트도 반응이 좋았던 것 같습니다.l 2016년 2월 케냐 의수족 지원 수혜자와 만남CSR 팀 : LG전자 CSR 방향에 대해 한 말씀 부탁드려요.지원부문장 : 일단 올해는 우리가 사회공헌의 전반적인 비전과 전략을 수립한 데 의의가 있다고 생각이 들고요. 3가지 실행 전략으로 선정한 ‘따뜻한 기술’, ‘신뢰의 파트너십’, ‘함께하는 나눔’을 기반으로 어떻게 LG다운 가치를 만들어낼 것인가를 고민하는 게 좋겠어요.l ‘16년 선포한 LG전자 사회공헌 Guide우리가 정말 잘 하는 역량으로 사회에 기여해야 더 커다란 임팩트를 만들어 낼 수 있으니 내/외부 전문가들이 함께 늘 고민하면 좋을 것 같아요. 그렇게 하면 여러분들이 늘 말하는 ‘LG와 함께라면 언제나 Life’s Good’이 되었으면 좋겠다는 목표가 진정성 있고 자연스럽게 전달되지 않을까 싶어요.l 2016년 5월 에티오피아 LG-KOICA 희망직업훈련학교 방문올해로 5년째 LG전자 CSR 팀이 속한 지원부문의 수장으로서 이충학 부사장의 생각은 확고했습니다. LG다운 사회공헌 그리고 진정성 있게 지속적인 활동을 묵묵히 하는 것! 임직원들과 야구 관람을 즐기고, 임직원들과 국내외 봉사에도 적극적으로 참여하는 그의 모습은 평소 이충학 부사장의 가치관이 발현된 것은 아닐까.#LG #LG그룹 #LG전자 #CSR #문화유산 #세계환경의날 #이충학부사장 #헌혈캠페인 #CSR활동 #기업문화 #조직문화 #사내문화 #구성원인터뷰
조회수 1017

반드시 아마존에 판매해야  하는 이유

안녕하세요, 대한민국 사업자들의 해외 전자상거래 진출(아마존 판매)을 도와주는 컨설팅 회사이자 업무대행사 컨택틱의 이이삭 대표입니다.이번 포스트에서는 '제조사들이나 브랜드 오너들이 반드시 아마존에서 판매해야 하는 이유'에 대해서 말씀드리고자 합니다.1. 세상의 흐름, 그리고 유통의 흐름세상은 점점 좁아지고 있습니다. 인터넷의 도래 이후로부터 그 속도는 누구도 예상하지 못할 정도로 빠르게 좁아졌으며, 이제는 유통에도 그 영향이 적극적으로 반영되고 있는 상황입니다. 인터넷 쇼핑이 발달되지 않았던 시절에는 전통 유통 방식인, '제조사 > 도매 > 소매 > 소비자' 이렇게 제품이 유통되었습니다. 하지만 21세기 이후부터는 온라인 쇼핑이라는 개념이 생기면서 더이상 제조사가 도매 상인이나 소매 상인을 거치지 않고서도 세상의 여러 고객들에게 직접 다가갈 수 있는 세상이 열리게 되었습니다. 즉, 이제는 '제조사 > 소비자'로 중간 다리가 없는 유통이 가능해졌다고 볼 수 있습니다. 인터넷이 발단하기 전의 세상에서는 고객이 제품을 구매하기 위해서는 반드시 오프라인 매장을 방문하는 등 직접 실제로 제품을 볼 수 있어야한다는 전제 조건이 있었습니다. 제조사가 아무리 좋은 제품을 만들었어도, 그 제품을 알리려면 일단 오프라인으로 매장이든지 길거리든지 어떻게든 사람들의 눈에 띄게 해야했기 때문에 도매상과 소매상들이 필요했던 것입니다. 하지만 인터넷이라는 수단이 생기면서, 고객들은 굳이 매장에 가지 않아도, 길거리에서 제품을 보지 않아도, 화면상으로 제품을 확인하고, 심지어 구매까지 할 수 있게 된 것입니다. 여기까지는 모두가 아는 내용일겁니다. 하지만 인터넷을 통한 구매가 가능해졌다고 한들 여전히 해결되어야할 문제는 (1) 인터넷 상으로도 어쨌거나 고객들의 눈에 띄게 해야한다는 점 - 온라인 마케팅 (2) 인터넷 상으로 주문한 고객들에게 배송해야한다는 점 - 물류. 크게 봐서 이 두 가지입니다. 온라인 마케팅은 공부만 한다고 해서 쉽게 되는 것도 아니고, 판매에만 집중하면 되는 소매상들이 오히려 제조사들보다 온라인 마케팅 쪽으로 빠르게 전문 지식을 키우게 되어서 전문 회사들이 생기면서 여전히 제조에 급급한 제조사들은 결국 직접 소비자들에게 판매하는 것을 포기하고 여전히 전통 유통 방식을 고수하게 되었습니다. 그렇다면 물류에 대해서는? 물류 또한 생각 외로 주문 수집, 주문 이행, CS, 사후관리, 등등 제조사들 입장에서는 너무나도 버거운 잡일들이 있었던거라 이 부분도 결국 포기하고 다시 전통 유통 방식을 고수하게 되었습니다. 만약 이 두 문제를 동시에 해결 해주는 어떠한 존재가 있었다면, 제조사들은 정말 전통 유통 방식을 포기하고 소비자에게 직접 유통하는 신세대 유통 방식을 도입할 수 있었을겁니다.2. 그것이 가능하게 한 아마존2010년 이후로부터 아마존이 말도 안되는 성장을 하게 되었습니다. 그 이유가 바로 1번에서 언급한 '세상의 흐름'의 해결책을 제공했기 때문입니다. 아마존은 전세계 고객들을 하나의 사이트로 끌어모으는 데에 성공했고 (고객 유치), 아마존 사이트에 판매자로 입점한 제조사들이 쉽게 고객들의 눈에 띌 수 있도록 플랫폼을 마련했으며 (상품의 노출), 주문이 발생하면 그것을 이행하는 것도 제조사 입장에서 전혀 부담되지 않도록 FBA 라는 배송대행 시스템을 만들어낸 것입니다 (물류 해결). 뿐만 아니라, 아마존은 그 성장을 미국으로만 국한시키지 않고 캐나다, 멕시코, 일본, 영국, 독일, 프랑스, 이태리, 스페인, 호주, 중국, 그리고 인도까지도 확장했습니다. 제가 봤을 때 이 모든 것을 통틀어서 가장 혁신적이라고 보는 것은, 최대한 '동일한 시스템'으로 운영되도록 인터페이스와 판매 절차를 일관 시켰다는 것입니다. 즉, 아마존 미국에서 판매하던 셀러는 아마존 일본에서 판매하는 것이 거의 동일할 정도로 메뉴 구성이 비슷하고 입점 및 상품 등록의 절차가 비슷합니다. 제조사들이 중간 유통을 버리지 못한 문제를 단 번에 해결하고, 심지어 더 나아가서 전세계적으로 확장까지 한 아마존 - 제조사들의 입장에서는 아마존에 판매하지 않을 이유가 없는 것이나 마찬가지입니다.3. 앞으로 다가올 제조사만의 세상이런 맥락에서, 기존의 도소매업자들은 어떻게 되는 것일까요? 답은 간단합니다: 도소매 상인들이 설 자리는 없어집니다. 가만히 생각해보면 그 이유는 매우 간단합니다. (1) 평균 소비자 가격의 저하 - 세상이 작아지면서 고객들도 판매가격에 대해 스마트해집니다. 검색 한 번만 하면 특정 제품의 퀄리티, 후기, 질문, 가격대, 등등 못알아볼 것이 없습니다. 자연스럽게 판매자들도 가격 경쟁이 심하게 일어날 수 밖에 없고, 전체적인 평균 소비자 가격이 저하될 수 밖에 없습니다 (2) 마진폭이 넓은 제조사의 유리함 - 1번과도 연관이 있지만, 전체적인 소비자 가격은 내려가는데, 안그래도 적은 수익 마진을 챙기고 있는 도소매 상인들은 결국 나가떨어지게 됩니다. 매우 당연한 얘기입니다. (3) 마케팅 지출 여유분 - 이 부분도 역시 2번 마진폭과 연관이 있습니다. 세상은 좁아지고, 온라인 소비자들은 스마트해지고, 평균 소비자가가 낮아지는 와중에 판매자들간의 경쟁은 더욱 심해집니다. 그럼 그 경쟁에서 이기려면 어떻게 해야하나요? 바로 온라인 광고입니다. 온라인 광고는 전부 돈, 돈, 돈입니다. 당연한 얘기지만 마진폭이 넓은 제조사만이 마케팅에 지출할 여유 금액이 있기 때문에 결국 살아남는 것은 제조사만입니다.혹시 이 글을 읽고 있는 제조사가 있다면, 그리고 아마존에 판매하고 있지 않다면 오늘부터라도 당장 아마존 판매에 대해 알아보시길 적극적으로 추천드립니다. 2018년 기준 아마존 시장은 제가 봤을 때 더 이상 블루오션은 아니며, 오렌지 오션 정도 됩니다. 2020년 정도 되면 아마존US는 레드 오션이 될거라고 예상합니다. 아직 아마존 유럽 시장, 호주 시장, 일본 시장 등은 포화 상태가 아니라서 조금 더 시간적 여유는 있겠지만, 시장이라는 곳 자체가 원래부터 먼저 자리 잡는 사람들이 임자인 시스템입니다. 하루라도 빨리 시장을 선점해야 됩니다. 대한민국 제조사분들 중에 아마존 진출에 도움이 필요하신 분들은 언제든지 컨택틱을 찾아주세요.
조회수 1317

[직무] 온라인 마케팅(영상컨텐츠) : 예쁜 뷰티 영상 대신, 당신다운 영상을 만들어보세요

안녕하세요미미박스 PEOPLE 팀의 Ava입니다Geek 한 아이디어와목표한 건 해내고야 말겠다는 뚝심을 가진 미미박스의 온라인마케팅-영상컨텐츠 직무를 소개해드립니다."하연수 메이크업은 어떻게 하는 거지?"메이크업 방법이 궁금할 때, 검색 한방이면 많은 뷰티 크리에이터들의 예쁜 메이크업 영상을 찾을 수 있죠.(미미박스 US 페이스북에 가도 뷰티 영상을 많이 볼 수 있어요! 클릭)  하지만 미미박스에서는 조금 다른 방식으로 영상 콘텐츠를 접근합니다. "자, 봐봐 하연수 메이크업은 이렇게 얼굴에 1, 2, 3만 그리면 완성이야"친구들에게 누구보다 화장품을 잘 추천해주고,개성 있는 메이크업에 대한 도전도 하고,처음 화장에 입문하는 친구에게 메이크업을 잘 설명해주는 바로 여러분의 목소리와 스타일로기획부터 영상을 구성해서 고객에게 전달하는 것이죠."아 이거 정말 인생템인데, 사람들에게 알리고 싶다!"벌써 떠오르는 제품들이 한두 개가 아니죠?온라인 마케팅 업무는 고객과 어떻게 연결되어있을까요?"정보의 홍수에서 고객의 시간을 구하자!"요즘은 제품 한개를 사기 위해선 블로그 리뷰도 살펴보고, 유튜브 영상도 보고, 매장도 가보고, 온라인 카페에도 가보고....여러 채널을 통해 정보를 찾아볼 수 있어요. 실제로 많은 분들이 정보를 찾는데 많은 시간을 보내고 있다고 합니다. 하지만 이런 정보의 홍수에는 불명확한 정보와 광고가 많고,시간 소비도 있기 때문에점점 사람들은 이런 패턴의 정보를 힘겨워한다고 합니다.미미박스 온라인 마케팅팀은고객들이 힘들게 돌아다니지 않고, 미미박스 채널 하나에서정보를 얻고, 구매할 수 있는 편의를 제공하자는 목표를 가지고 있죠. 그래서 영상을 통해 진정성 있고 효과적인 리뷰를 보여주려고 노력하고,점점 더 편하게 구매-리뷰로 이루어질 수 있도록 개선하고 있답니다.우리의 고객, 그리고 잠재 고객이 어떻게 하면 더 필요한 제품을 적시에 만나고, 편리하게 만나볼 수 있을까요?그리고 어떻게 삶이 더 아름다워질 수 있을까요?여러분의 아이디어가 수백만 고객의 경험을 바꿀 수 있답니다 !속이 뚫린 드라이기, 자동으로 돌아가는 고데기,충전식 헤어롤, 떼었다 붙였다 할 수 있는 섀도....듣기만 해도 신박한 뷰티 제품들 ! 온라인 마케팅팀은뷰티 얼리어답터입니다. 누구보다 빠르게 새로운 제품을고객에게 소개하고 싶어 하죠.조명받지 못 했던 신박한 뷰티 제품들이미미박스에 올라온 영상 콘텐츠를 통해빛을 못 보던 제품의 매출액이 10배가 뛰기도 하고,비슷한 영상들이 따라 올라오기도 합니다.가장 빨리, 고객들이 열광할 제품을 찾아보세요.제품을 만들고, 관리하는 BM, 뷰티 MD 들과제품에 대해 깊이 이야기해보세요.물티슈가 얼룩덜룩 할때까지 바르기도 해보고요.마음껏 찾고 바르고 토론하고그 느낌을 여러분의 언어로 고객에게 전달해보세요.미미박스에 업로드되는 영상 콘텐츠는약 20만 명이 재생합니다.하지만 이건 또 다른 시작이죠.수십만 명의 고객에게 피드백을 받고,여러 분야의 미미박서 동료들에게 조언을 받거나 협업을 할 수도 있죠.원한다면 글로벌 법인에 있는 동료들에게도 의견을 받을 수 있습니다. 강한 의지와 호기심, 열정을 가지고미미박스에서 뷰티 영상 콘텐츠의 판을 바꾸어 보세요.

기업문화 엿볼 때, 더팀스

로그인

/