스토리 홈

인터뷰

피드

뉴스

조회수 1120

대화의 종류를 25가지나 생각해보았다.

인류가 암반에 고래를 그리고, 옆 동네 족장에게 자신의 고래그림을 자랑하던 시절부터 커뮤니케이션은 항상 사람의 역사와 함께 해왔어요. 최초의 이모티콘(?)머리카락을 제외하곤 그닥 쓸만한 털이 없었던 인류는 겨울엔 춥고 여름엔 더웠어요. 끊임없이 생존문제와 싸워야 했고, 혼자서는 아무것도 할 수 없단 사실을 알게 되었죠. 그래서 서로 뭉치게 되었어요. 같은 뜻을 나눠야 했고, 작전을 세우고, 공동의 적을 쓰려뜨려야 했죠. 협동을 통해 인간은 나보다 수십배는 큰 맘모스를 잡거나, 수천킬로를 이동할 수 있었어요. 출처 : 마음의소리 / 네이버웹툰두개골이 확장되면서 뇌가 점점 커졌어요. 좀 더 치밀하고 효율적인 사냥전략을 짜야했거든요. 그리고 나약한 체력을 극복하기 위해선 도구와 환경을 이용해야 했어요. 좌뇌와 우뇌를 연결하는 뇌량과 언어중추가 발달하기 시작했어요. 척추는 점점 곧게 펴졌고, 손은 완전히 자유로워 졌죠.혀와 입술이 발달하면서 다양한 음성을 만들어 낼 수 있었고, 엄지손가락의 진화로 글을 쓸 수 있게 되었어요. 전전두엽의 발달은 그것들을 고도화시키고 좀 더 복잡한 표현들을 가능케 되었습니다.그리고 수천년이 흘렀어요. 지금의 우리는 문자와 말을 통해 민족과 나라를 나누고, 문화를 형성하고 생각하고 생존해가고 있어요. 심지어 우리의 언어와 문자를 우주선에 태워 태양계밖으로 날리기도 했죠. 언어가 통일되면 모두가 원활하게 대화를 할 수 있을 거라고 생각했어요. 오죽하면 모두가 하나의 언어를 쓰던 바벨탑 이전 시대를 평화와 번영의 시대로 표현하기도 하니까요.하지만 현실은 조금 달라요. 아마도 1977년 우주로 보낸 보이저1,2호의 언어를 외계의 어떤 종족들이 발견한 것 같아요. 지구로 몰래 숨어들어와서 우리 주변에 함께 살고 있는 듯 해요. 분명 인간의 언어지만 서로 커뮤니케이션의 문제가 점점 더 어려워지고, 수많은 책과 강의에서 사람끼리 소통하는 법에 대해서 알려주고 있어요. 심지어 수십만원을 주고 다시 말을 배우기도 하죠.Aㅏ....사람이 사람과 나누는 대화엔 굉장히 다양한 결이 있어요. 커뮤니케이션을 어렵게 만드는 것은 문자나 언어 자체가 아니라, 그것들이 만들어내는 '맥락'에 있어요. 상황을 서로 다르게 해석하거나, 다른 가치관에서 태어난 문장일 수도 있죠. 언어는 표현의 수단이예요. 무엇을 표현하는지가 중요해요. 우린 이것은 '언어의 고향' 이라고 부르도록 해요. 언어가 태어난 곳이죠. 이 곳의 지형과 기후에 따라 열매(=언어)의 산도와 당도가 달라져요. 어떤 말은 겁나 달아서 유기농딱지를 붙이고 1kg에 6,900원에 팔리기도 하고, 어떤 말은 너무 떫어서 쨈으로밖에 쓰일 수가 없어요. 하지만 혼잣말이 아닌 이상, 언어는 듣는 사람이 있기 마련이잖아요. 듣는 사람에 따라 어떤 사람은 달달하고 탱실한 자두같은 말을 좋아하기도 하고 어떤 사람에겐 쨈이 필요하기도 해요. 가끔 시큼한 산미강한 향을 좋아하는 사람들도 있어요.옳은 말은 없지만 옳은 대화는 있는 법이죠. 오늘은 그 사람과 나 사이의 어떤 공기를 만들어내는 그 대화의 종류를 한 번 알아보도록 하겠어요.1. 어색한 대화어색....말그대로 뭔 말을 해야할 지 모르겠는 상황이예요. 서로에 대한 정보가 너무 부족해서 그래요. 너의 신상을 털어서 사랑하는 가족을 위협하려는 것이 아니니, 대화의 소재가 될만한 단서들을 서로 나누어도 될 것 같아요. 일단 자신이 알고있는 미친 김치찌개 맛집이나 존예 카페에 대해서 얘기를 꺼내보거나, 혜리가 나온다해서 기대했지만 생각보다 엉망인 김명민 주연의 '물괴'에 대해서 함께 까보는 것도 좋을 것 같아요.2. 막히는 대화어색을 떠나서 대화가 막히는 경우가 있어요. 이건 질문과 대답이 엉망이어서그래요. 네/아니오로 끝날 질문을 던지면 상대방은 네/아니오로 대답하게 되요. 대답은 OX가 아니라 주관식으로 나와야 해요. 그래야 주관식 답을 가지고 다음 대화를 이어가죠. 만약 그럼에도 불구하고 계속 OX식 대화라면 그냥 집에 가고싶단 얘기예요. 보내주도록 해요.3. 가벼운 대화페친이나 인스타친구, 5년만에 만난 친구, 이름은 알지만 얼굴은 안봤던 지인, 그냥 모임에서 만난 사람들과 나눌 수 있는 대화예요. 가벼움은 흔히 서브컬쳐에 대한 이야기나 피상적인 일상얘기 콘텐츠를 얘기해요. 대화를 나누면서 깊게 생각할 필요가 없는 소재들이죠. 속도가 빠르고 주제가 빨리 변하는게 특징이예요. 순발력이 없거나 그닥 TV나 SNS에 관심이 없다면 이해하지 못할 요소들이 있을 수 있어요. 4. 엄청난 대화반면 특정부분에 공통관심사가 있는 두 덕후가 만나면 반경 몇 미터는 그들의 열정과 맞장구로 불타올라요. 화상을 입을 수 있으니 평범한 사람들은 함부로 다가가지 않는게 좋아요. 특히 폭탄관련 화학덕후와 전쟁덕후, 맬서스 추종자, 음모론 덕후 들이 만나면 이미 지구는 멸망한 셈이나 다름없어요.5. 진지한 대화대화를 이어가볼까?...흔히 우리가 얘기하는 진지함은 '고민'을 동반해요. 피상적인 일상얘기에서 한 단계 들어간 상태죠. 부장님 욕이나 팀장님의 바보같음을 까는 정도는 일상대화고, 그럼에도 '혹시 내가 문제가 있는건 아닐까?' 라는 이면의 생각들은 진지한 대화의 축에 들어가요. 사람은 현상을 관찰하고 판단해요. 관찰에 대해 얘기하는 대화와, 판단에 대해 얘기하는 대화는 나뉘어지기 마련이예요. 고민이란 건 현상보단 그걸 통해 발생하는 판단과 사고를 의미하죠.6. 갑분싸 대화아까 관찰과 판단은 다르다고 했잖아요. 하트시그널에 나온 어떤 남자가 기가맥히게 잘생기고 내 스타일인 것은 '관찰'에 대한 부분이예요. 하지만 그로 인해 성정체성에 대해 고민하거나 잘생김의 계급화에 대해 논하기 시작하는 건 '판단'에 대한 부분이예요. 이 결을 잘 못맞추면 갑분싸가 돼요. 세 사람이 모두 누가 잘생겼다, 누가 이쁘다 하고 있는데 갑자기 '매스미디어는 어떻게 외모지상주의를 조장하는가?' 라는 3학년2학기 조별과제같은 주제를 꺼내면 갑분싸가 되는 거예요.7. 무거운 대화무거움은 흔히 '가족' 소재를 동반해요. 개인사의 끝판왕이죠. 그 중에서도 무거움의 주제는 흔히 '병환, 이혼, 부도, 보증, 주식, 비트코인떡락, 대출막힘, 양육권분쟁...' 등 인생에 있어서 좆된 순간들에 대한 이야기가 주를 이루어요. 이러한 무거운 대화는 그걸 나누는 상대가 굉장히 제한적일 거예요. 하지만 나에게 무거운 주제는 상대방에게도 무거워요. 이러한 주제를 건넬 때는 상대방이 스트레칭이 잘 되었는지 배려해줘야 해요. 돌직구로 갑자기 이런 얘길 꺼내면 상대방은 매우 놀라버려요.8. 날카로운 대화흔히 이런 대화는 겉으론 평화로워 보이는 데 속으론 칼이 있는 경우예요. 회의실에서 평소 사이가 안좋은 권대리와 한 팀이 되었다거나 이런 상황에서 주로 발생하죠. 말에 뼈가 있는 것과 말에 칼이 있는 건 달라요. 이런 대화는 살짝살짝 상대방에게 스크래치를 주는 데, 지나고 나서 생각해보면 아리고 쓰린 게 특징이예요.9. 개아픈 대화시즈탱크위의 대화가 스크래치라면 이건 정강이나 명치, 죽빵에 가까운 대화예요. 말은 노크와 같아요. 상대방 마음의 벽을 두드리는 신호죠. 근데 이건 그냥 졸라 공성전차인거예요. 다 뿌셔버려. 멘탈을 아주 아작을 내주겠다는 신호죠. 물론 종종 이런 게 필요할 때도 있을 거예요. 하지만 모든 전쟁이 그렇듯, 성문을 뿌수는 건 상관이 없지만 민간인이 다쳐서는 안돼요. 이 점에 주의해 주세요.10. 미묘한 대화언어는 정보를 전달하는 수단이지만, 사실 그 속엔 심지가 있어요. 감정이란 심지죠. 대부분이 대화엔 적당한 호감과 적당한 경계심을 심지로 크게 감정의 색이 드러나지 않지만, 종종 호감이나 비호감 등 명확한 감정이 담기게 되면 쉽게 숨기기 어렵죠. 언어를 통해 감정을 주고받는 경우엔 굉장히 미묘해져요. 그것이 직설적이지 않은 경우엔 더더욱요. 썸탈 때 얘기예요.11. 따뜻한 대화말에 온기가 있는 경우예요. 이기주 작가님이 언어의 온도라고 제목을 붙인 건 아주 적절하다고 생각돼요. 언어엔 온도가 있어요. 그리고 그건 포장할 수 없죠. 따뜻한 대화는 애정과 이타심에서 태어나요. 그리고 신뢰를 바탕으로 하죠. 이러한 대화는 엄청난 스킬이나 화술이 없어도 본능적으로 느낄 수 있어요. 물론 카톡메시지로는 느끼기가 어렵겠죠. 그러니 사랑의 속삭임은 목소리나 눈빛으로 하세요.12. 이상한 대화이건 화술의 문제예요. 한국말인데 언어영역46번 문제같은 느낌이죠. a에 들어갈 말을 찾아야 할 것 같은 경우예요. 주어나 목적어가 빠졌거나, 어순이 자꾸 도치되거나 말이 끝나지 않고 계속 열거되는 등... 화술 자체에 문제가 있는 경우예요. 이해하기가 어렵죠. 악의가 있는 것 같진 않은데 듣고 말하기가 힘들어요. 문장은 짧고 간결하게, 호흡을 충분히 가지고 말을 해야해요.13. 지루한 대화말이 많은 게 말을 잘하는 건 아니예요.14. 아무말 이건 조건에 따라 달라져요. 두 사람 다 아무말을 하고 있으면 매우 흥미진진해요. 물론 보는 사람 입장에서요. 흔히 아주머니들이 3명이상 모이시면 이런 대잔치가 벌어지는데 옆에서 듣고있으면 새로운 언어의 신세계를 느낄 수 있어요. 물론 한 명만 아무말을 하고 있다면 상대방은 벙찌겠죠. 이건 그래서 호흡이 중요한 대화예요.15. 차분한 대화삼국지 실사를 경험한 느낌요즘 어떤 분과 대화하다가 놀라움을 느낀 적이 있어요. 제 말을 다 듣고, 그걸 정리한 후 곱씹고, 본인의 얘기를 차분히 기승전결로 풀고, 결론을 맺은 후. 다시 제 차례를 기다려주는 거예요. 마치 턴제RPG를 하는 느낌인데 아주 흥미진진해요. 상대방의 말을 다 들었으면 차분히 곱씹어 주는 게 핵심이예요. 잘라먹지 말고.16. 현명한 대화때론 언어를 언어로 맞받아치지 않는 것도 현명해요. 다양한 리액션이 있을 수 있어요. 눈빛, 끄덕임, 짠하자, 그렇구나, 한숨, 그럴 수 있지, 어흠.. 등등 다양한 요소로 호흡을 쉬어갈 수 있어요. 17. 다급한 대화성격급한 분과 대화하다보면 아웃사이더의 새 앨범을 30초 미리듣기 하는 느낌을 받을 때도 있어요. 상처를치료해줄사람어디없나가만히놔두다간끊임없이덧나사랑도사람도너무나도겁나혼자인게무서워... 18. 슬픈 대화서로 언어가 사라진 상태예요. 서로의 말문이 닫힌 상태가 제일 슬픈 것 같아요.19. 격한 대화사람은 감정의 영향을 크게 받아요. 보상중추와 운동중추는 모두 변연계와 붙어있고, 기억을 담당하는 해마도 변연계의 끄트머리에 위치하고 있죠. 언어를 담당하는 부분은 뇌의 다양한 부분에서 관장하고 있지만, 논리성을 처리하는 부분보단 감정의 영향을 더 많이 받고 있어요. 대화엔 감정이 섞이기 마련이죠. 격한 대화는 언어가 감정을 감싸지 못하는 경우예요. 오히려 감정이 언어를 감싸고 있죠. 나루토의 나선환 같아요. 밖으로 드러난 차크라예요. 보호장치가 없죠. 나의 감정이 상대방에게 토마호크 미사일처럼 직격으로 날아가요. 상대방은 이제 난리났어요.20. 호기심의 대화서로의 대한 호기심과 궁금함을 바탕으로 한 대화예요. 처음 만났지만 뭔가 잘 맞아서 편하기도 하고 특정 모임, 스터디, 동아리 등의 이유로 서로를 알아가야 하는 경우죠. 마치 고양이가 앞발로 툭툭 건드려보거나 댕댕이의 킁킁거림과 비슷한데 우린 똥꼬냄새를 맡진 않으므로 서로의 말을 통해 서로를 탐색해나가요. 사실 이런 경우엔 언어자체의 정보도 중요하지만, 그걸 전달하는 방식을 볼 때가 많죠.21. 전략적 대화말은 하고 있지만, 진위가 모두 숨겨진 상태예요. 서로 다른 목적을 지니고 각자의 이익을 쟁취하기 위해 의도적으로 말을 기획하고 활용하는 경우예요. 업무상 대화나, 전략적인 말하기가 필요한 경우에 쓰이죠. 특히 협상이나 미팅, 계약관련, 영업 등 성과와 직결되는 상황에서 많이 발생해요. 의례적인 웃음과 완충작용을 해주는 추임새, 서두문장이 많아지죠. 이런 대화는 나쁜 게 아니예요. 다만 피곤할 뿐이죠.22. 피곤한 대화그냥 뭔가 피곤해요... 오늘 저녁 뭐먹지...생각하게 되고..  요지가 없거나, 요지가 있긴 한데 그 답이 나에게 없거나, 또는 그냥 재미가 없거나, 너무 길거나, 배가 고프거나... 말을 하는 건 꽤나 힘들고 신경쓰이는 일이거든요. 상대방을 피곤함을 빨리 눈치채주는 것도 재능인 것 같아요.23. 개웃긴 대화겁나 생각없이 보는 코미디멜로영화 느낌의 대화도 있어요. 하지만 이런 대화는 너무 길면 끝나고 나서 좀 허무할 수도 있어요. 하지만 딱 1,2시간정도 그냥 맘놓고 웃을 수 있는 짱웃긴 대화라면 정말 맛깔 날 것 같아요.24. 조용한 대화언어와 문자는 직관적인 정보를 줘요. 하지만 상대방은 그 정보를 둘러싼 수많은 맥락을 파악하게 되죠. 눈빛이나 상황이나, 원샷이나 하다못해 침묵이나 입꼬리까지도요. 말이 많지 않아도 그 맥락을 서로 이해할 수 있는 상대방이라면 길지 않은 대화로도 충분한 충만감을 느낄 수 있어요. 이건 신뢰를 바탕으로 해요. 저 친구가 입을 다무는 건 할 말이 없어서가 아니라, 함부로 얘기할 문제가 아니라는 걸 알기 때문이다....라는 서로의 신의가 있을 때 가능하죠. 든든한 강아지가 옆에 아무말 없이 있을 때도 왠지 나의 마음을 알아주는 느낌같달까요.25. 몸의 대화인간은 종종 살갗으로 대화하기도 해요. 넘치는 사랑을 표현할 수도 있고, 존나 주먹으로 교훈을 얻기도 하죠. 여러분은 요즘 어떤 대화를 주로 하고 계신가요? :)
조회수 3003

코딩, 어떤 언어로 시작하지?

경영학과 학생 윤수는 요즘 주변에서 이런 말을 자주 듣는다."앞으로는 코딩을 모르면 문맹이다.""4차 산업혁명 시대에 대비해야 한다.""소프트웨어가 세상을 잡아먹고 있다."정확히 뭔 소리인지는 모르겠지만 일단 프로그래밍을 배우기로 결심한다. 그런데 '프로그래밍 언어'라는 게 또 뭐가 이렇게 많은지... 어떤 걸로 시작해야 할지 도무지 감이 안 잡힌다.그래서 공대생 친구들에게 물어본다. 친구 1: "일단 가장 기본인 C부터 배워."친구 2: "한국에서 제일 많이 쓰는 자바부터 배워."친구 3: "파이썬이 배우기 쉬워."친구 4: "요즘은 자바스크립트가 대세지."누가 정답일까? 사실 이 중에 "틀린" 사람은 없다. 각자 관심 분야와 목적이 다르기 때문이다. 만약 다음 달에 아이폰 어플을 개발해야 한다면 어쩔 수 없이 곧장 스위프트를 배워야 한다. 내일모레까지 사이트 레이아웃을 완성해야 한다면 더 물을 것도 없이 그냥 HTML과 CSS를 시작하면 된다. 그러나 일반적으로 첫 프로그래밍 언어를 추천하라면 내 톱 초이스는 단연 파이썬, 그다음은 HTML/CSS + 자바스크립트일 것이다. 이 3개의 기준으로 평가하였다:1. 배우기에 얼마나 어려운 언어인가?2. 이 언어에 대한 수요가 얼마나 있는가?3. 나는 프로그래밍으로 뭘 하고 싶은가?*우연히 보게 된 CSDojo라는 유튜브 채널에서 너무 훌륭하게 정리해줘서 참고하였다.1. 배우기에 얼마나 어려운 언어인가?나는 고등학교 때 C를 독학하는 것으로 프로그래밍에 입문했다가 금방 질려서 그만두었다. 창업에 관심이 생겨 다시 시작했는데 이번에는 파이썬으로 배워보았다. 그제야 흥미를 느꼈고, 프로그래밍이 마냥 어렵기만 한 게 아니라는 걸 깨달았다.어떤 차이가 있는 걸까?파이썬은 C보다 쓰기 쉽다. C로 수백 줄을 써야 하는 프로그램을 파이썬 몇십 줄로 쓸 수 있다. 파이썬 코드 몇 줄이면 쓸모 있고 흥미로운 결과물을 만들어낼 수 있다는 뜻이다. "Life is short, use Python"이라는 말이 있을 정도다. 물론 파이썬이 무조건적으로 C보다 좋은 건 아니다. 파이썬 프로그램은 C 프로그램보다 느리기 때문에 특정 업무에는 적합하지 않다. 하지만 그런 건 지금 신경 쓸 필요가 없다. 첫 프로그래밍 언어로 "컴퓨터적인 사고력"을 익히고 나면 새로운 언어를 배우는 것은 어렵지 않기 때문에, 일단은 배우기 쉬운 언어로 시작해라.비교적 배우기 쉬운 언어:    - Python    - Ruby    - JavaScript2. 이 언어에 대한 수요가 얼마나 있는가?시장에서 필요로 하는 언어를 배우는 게 좋다. 세계에서 가장 큰 웹사이트들은 어떤 기술을 사용하는지 살펴보자:출저: 위키피디아위 테이블에는 미국의 웹 서비스들만 정리되어 있다. 지역과 직군에 따라 요구하는 언어가 다르기 때문에 로켓펀치, 더팀스, 위시켓, 링크드인, 인디드, 사람인, 잡코리아 등의 구인/구직 사이트에서 직접 살펴보는 걸 추천한다.인기가 많은 언어일수록 커뮤니티가 크기 때문에, 도움을 받을 수 있는 자료들이 많고 가져다 쓸 수 있는 코드가 많다는 장점도 있다. 세계 최대 규모의 프로그래밍 커뮤니티인 스택오버플로우의 언어 점유율을 참고해보자.출저: 스택오버플로우이 중에서 HTML/CSS(웹 레이아웃), SQL(데이터베이스), Bash/Shell(Unix)은 아주 특수한 경우에 쓰이는 언어이기 때문에 제외하고 보자. 수요가 높은 언어:    - JavaScript    - Java    - Python3. 나는 프로그래밍으로 뭘 하고 싶은가?분야별로 자주 사용되는 언어가 있다. 간단하게 정리하자면:1. 데이터 과학, 공학 => Python, R, MATLAB2. 웹 프런트엔드 => HTML/CSS + JavaScript3. 웹 백엔드 (서버) => Python, Ruby, JavaScript, Java, Go, C, C++, PHP 등4. 아이폰 어플 => Objective-C, Swift (이제는 거의 Swift로 넘어갔다)5. 안드로이드 어플 => Java, Kotlin (슬슬 Kotlin으로 넘어가고 있다)6. 게임 개발 => C#, C++7. 임베디드 시스템 => C, C++결론: 왜 파이썬, 자바스크립트인가?앞서 이야기했듯 당장 급히 배워야 하는 언어가 있으면 그 언어를 배우면 된다. 교수님이 연구실에서 다음 주부터 C언어를 쓴다고 하면, 뭐 어쩌겠나? 그냥 당장 C를 배우는 수밖에. 하지만 조금 더 여유롭게, 제대로 프로그래밍을 배우고 싶다면 이 포스트에 나와 있는 세 가지 기준을 고려해서 결정하는 걸 추천한다. 배우기 쉬운 언어로는 파이썬, 루비, 자바스크립트를 선정했고, 수요가 높은 언어로는 자바스크립트, 자바, 파이썬을 선정했다. 두 기준에 모두 부합하는 언어는 파이썬과 자바스크립트이다. 이 중 무엇을 택할지는 3번 기준으로 결정하면 된다. 데이터 분석에 관심 있으면 파이썬부터, 웹 개발에 관심 있으면 자바스크립트부터 시작하면 된다. 참고로 자바스크립트를 하기 위해서는 기본적으로 HTML과 CSS를 알아야 한다!데이터 과학과 웹 개발 둘 다 관심 없으면 자바스크립트보다는 파이썬으로 시작하는 걸 추천한다. 개인적인 의견이지만 초보자 입장에서 파이썬 언어가 자바스크립트보다 깔끔하다고 생각하기 때문이다. 또한 HTML과 CSS를 미리 배워야 하는 수고를 덜 수 있다.어디서 배우지?온라인으로 프로그래밍을 가르치는 사이트가 굉장히 많다. 해외에는 Codecademy, Treehouse, Coursera, MIT OpenCourseWare 등이 있고 한국에는 인프런, 엘리스, 코드잇, 생활코딩 등이 있다. 국내외 서비스를 통틀어서 가장 추천하는 곳은 코드잇이다. 영어로 된 수업이 당연히 더 좋을 것이라 생각한다면 큰 오산이다. Codecademy나 Treehouse는 쉽고 재미있지만 막상 수업을 다 들어도 직접 무언가를 할 수 있겠다는 생각이 들지 않는다. 반면 Coursera나 MIT OpenCourseWare는 대학 수업과 흡사하기 때문에 지루하고 어려워서 이수율이 5% 정도밖에 되지 않는다. 코드잇은 내용의 깊이와 재미를 모두 잡았다. 심도 있는 내용을 난해하지 않고 간결하게 풀어내어 졸업률이 60%나 된다. 코드잇 수업 안 들은 사람은 있어도 하나만 들은 사람은 없다는 말이 있을 정도인데, 수강 후기를 보면 정말 수강생들의 애정이 드러난다. 무료로 샘플을 들어볼 수 있으니 일단 한 번 해보도록.Python으로 배우는 프로그래밍 기초 수업, HTML/CSS로 배우는 웹 퍼블리싱 수업, JavaScript로 배우는 인터랙티브 웹 수업을 모두 들으면 자신감을 갖고 프로그래밍 커뮤니티에 입문할 수 있을 것이다.이제 어떤 프로그래밍 언어를 어디서 배워야 하는지 알았으니, 주저 말고 시작해보길 바란다!#코드잇#코딩교육 #개발자양성 #교육기업 #인사이트 #경험공유
조회수 1010

마침내 완전히 새로워진 이메일마케팅, 스티비가 선보입니다

2015년 12월에 시작한 베타 테스트를 마치고 드디어 오늘, 스티비 정식버전을 출시합니다.기획부터 대량 발송 후 성과 측정까지, 이메일마케팅의 모든 과정을 담았습니다.정식버전 출시를 기념하여 라이트 요금제를 11월 30일까지 무료로 제공합니다.마케팅 성과를 한 눈에 확인할 수 있는 대시보드마케팅 성과를 지난 주와 비교해 보고 얼마나 개선됐는지 바로 확인할 수 있습니다. 모바일과 데스크톱 중 어떤 디바이스에서 더 많은 반응이 일어났는지 쉽게 알 수 있습니다. 조만간 스티비 사용자 평균 데이터와의 비교 기능도 선보일 예정입니다.국내에서 가장 간편한 A/B 테스트이메일 제목, 발신자 이름, 발송 스케줄로 A/B 테스트를 할 수 있습니다. 간편한 비율 설정으로 빠르게 성과를 개선하세요.프레젠테이션을 만드는 것처럼 쉬운 콘텐츠 에디터베타 버전에 비해 콘텐츠 저장 방식을 개선했습니다. 많은 인기를 끌었던 지도 상자에는 한국 실정에 맞게 다음 지도 API를 적용했습니다. 대량 발송 기능의 필수 요소인 푸터 상자가 추가되었습니다.월 4회까지 무료로 발송할 수 있는 요금 체계스티비 조사* 결과, 국내에서는 마케팅 이메일을 월 평균 3.25회 발송하고 있습니다. 이에 따라, 구독자 5,000명 기준으로 월 4회까지 발송할 수 있는 스타터 요금제를 무료로 제공합니다. 이메일마케팅을 적극 활용해 성과를 극대화하려는 분들을 위해서는 월 8회 발송이 가능한 라이트 요금제와 무제한 발송이 가능한 스탠다드 요금제를 제공합니다. 정식버전 출시 기념으로 라이트 요금제를 11월 30일까지 무료로 사용할 수 있습니다.이 밖에도 쉽고 즐겁게 이메일마케팅을 실행할 수 있도록 저희 스티비 팀이 개발한 다양한 기능을 정식버전에 담았습니다.#슬로워크 #스티비 #마케팅 #마케팅툴 #서비스소개
조회수 1773

프론트엔드 개발자라면!

Angular의 A마크를 알아본 프론트엔드 개발자님!이 글은 새로운 플랫폼을 개발하고 있는 타운컴퍼니 개발팀으로 당신을 모셔보려는 글이에요.이들이 당신과 함께 일하고 싶은 동료입니다..타운컴퍼니팀은 알고 있습니다.잘 만들어진 편리한 앱과 고객의 이탈률이 얼마나 밀접한 관계가 있는가를요.1%의 스타트업에는 1% 개발자가 필요하며 그들이 1%의 플랫폼을 만든다는 것을요.자율적이며 열정이 넘치는 팀으로 즐겁게 높은 수준의 개발을 할 수 있는 환경이죠!당신에게 즐거운 회사, 좋은 동료가 되어 줄 수 있습니다.급여는 협의 후 결정이니 원하는걸 말해봐요!좋은 동료를 얻을 수 있다면 그정도가 어렵겠어요 ; )우리는 현재 플랫폼(townus.co.kr)이 많이 부족하다는걸 알고 있어요.그래서 완전 멋있게 새롭게 만들고 있는 중입니다 :)일단 우리는 협업툴 JIRA와 Confluence, Slack을 사용하고 있어요.우리팀은 Agile 칸반을 바탕으로 테스트 주도 개발, 코드 리뷰, 페어프로그래밍으로 프로젝트를 진행하고 있죠.도메인이 잘 분석된 명세서가 Confluence에 정리되어 있고 사용자를 위한 깊은 고민이 녹아있는 디자인이 Zeplin에 올라가고 있어요.- Back-End는 Django(DRF) 기반으로 개발되고 있고, AWS, Vagrant, Docker같은 기술을 사용해요.- Front-End는 Angular 5를 사용해서 개발하고 있고, Less, RxJS, Webpack 등의 기술을 사용하고 있어요.Angular 상용 프로젝트 개발 경험이 있다면 격하게 환영하며 모십니다. 리엑티브 프로그래밍, Ionic 경험이 있다면 더 좋구요!엥 이거 완전 나 아니냐!? 라는 생각이 들었다구요? 그렇다면 얼른 지원해야지 뭐해요!무엇보다 개발을 즐기고 오픈소스활동을 좋아하는 사람이라면,종종 맛있는것도 먹으면서 많은 대화를 나눌수 있지 않을까요? :>우리 개발자는 맥주제조도 할 줄 알거든요 (겁나 맛이 좋더라구요)물론 당신에 대해 알 수 있는 Github 주소와 이력서를 보내준다면 우리가 연락하기 더 쉬울거에요!아! 참고로 보충역 산업기능요원 편입도 가능하니 문의가 필요하다면 언제든 환영이에요!타운컴퍼니팀에게 연락하고 싶다면 02–561–0950 잊지말아요,[email protected]로 메일 보내준다면 언제든 답변줄게요 :D#타운컴퍼니 #개발자 #채용 #팀빌딩 #조직문화
조회수 3600

jekyll을 이용한 Github 블로그 만들기

Overview“githubPage로 기술 블로그를 만들자!” “jekyll로 만들면 한두 시간이면 가능할 거야!” 지난 1월, 브랜디 기술 블로그 제작 작업을 시작했습니다. 다양한 삽질과 험난한 여정의 결과물인 기술 블로그의 제작 및 커스터마이징 과정을 소개하겠습니다.GithubPage는 Github에서 공식적으로 운영하는 블로그 서비스입니다. 이곳엔 개발자들의 경험이나, 코드가 업로드되어 있습니다. 저장 공간도 무료로 제공되고, 도메인 연결도 편리하게 할 수 있지만, 무엇보다 GithubPage 혹은 GithubIO라고 하면 개발자 스멜이 풀풀 나기 때문에 선택의 이유가 되는거 같습니다.GitgubPage 제작 프로그램은 jekyll, HEXO가 가장 많이 쓰입니다. 브랜디의 기술 블로그는 템플릿의 종류도 많고, 더 어울리는 jekyll을 선택했습니다. jekyll 공식 사이트는 여기를 클릭하세요. 한국어도 지원하니 아주 멋집니다. 변역된 문서가 2015년 11월 23일 문서인 게 함정이지만 기능의 거의 유사하기 때문에 문제될 것은 없습니다. 1. 준비물을 챙기자!$ gem install jekyll $ jekyll new my-awesome-site $ cd my-awesome-site /my-awesome-site $ jekyll serve ▲ jekyll 설치 스크립트이제 브라우저로 http://localhost:4000 에 접속합니다.메인에 내거는 것처럼 설치와 실행이 쉽지만 몇 초 만에 되진 않습니다. 설치가 몇 분 정도 걸리고 ruby나 bundler같은 선행 조건이 갖춰져야 하기 때문입니다.ruby는 있는데 bundler가 없다면 아래와 같이 설치하면 됩니다.gem install bundler 설치가 잘 되고, 사이트 생성 후 실행을 했다면 브라우저와 함께 기본 페이지가 뜹니다. 설치가 성공했다!2. 1차 멘붕, 이제 무엇을?설치는 제법 쉽게 했지만 ‘이제 무엇을 해야 하나’ 막막하기만 합니다. 블로그 작성에 대한 아무런 가이드도 없고, 페이지나 이미지 추가 확인 등의 작업을 커멘드로만 하려니 힘들고 아찔하기만 합니다.커멘드 지옥..jekyll admin을 검색했더니 이런저런 아이들이 나옵니다. 그중에 jekyll 공식 플로그인을 선택했습니다. jekyll-admin 공식 사이트 이미지그런데 사이트 메뉴얼만 보고 설치하기 쉽지 않습니다. 이제 막 jekyll 띄웠을 뿐인데 플로그인은 어떻게 추가하는지 알 길이 없습니다. 이런저런 삽질을 거듭하고 안 되는 영어를 해석하다 보니 얼떨결에 성공했습니다.추가한 프로젝트 root에 보시면 Gemfile이 존재합니다.아마도 사이트 제너레이트 시 실행되는 스크립트인 것 같습니다. 파일을 열고 아래와 같이 추가합니다.# 아래와 같이 한줄 추가해주세요 gem 'jekyll-admin', group: :jekyll_plugins 프로젝트 root로 이동해 설치를 요청합시다.bundle install 달라진 게 없어 보여도 http://localhost:4000/admin 으로 접속하니 아뉫! 관리자가 설치되었습니다. 이제 한시름 놓입니다.3. 마크다운, 넌 누구?마크다운을 잘 안다면 넘어가도 됩니다.관리자를 설치하고 나면 그나마 좀 할만하지만 막상 글을 쓰려고 보니 무언가 다릅니다. HTML이나 위지윅 에디터도 아니고 Textarea만 덩그러니 있기 때문입니다....마크다운은 위키나 Github페이지 설명 작성 등에 쓰이는 언어입니다.1) HTML을 어느정도 한다면 문법만 읽어도 금방 이해할 수 있습니다. 생각보다 어렵지 않아서 간단한 문서 작성은 수월하게 가능합니다. 무엇보다 코드를 붙여넣을 때 아주 좋습니다. ``` PHP 코드 내용 ```위의 그림처럼 작성하면 자동적으로 신텍스 하이트라이트가 적용되니 개발 코드를 전달하기 편리합니다.4. Posts? Pages? Static Files? Data Files?확실히 jekyll은 그동안 봤던 블로그나 워드프레스 등 유명한 블로그와는 많이 다릅니다. 일단 개념부터 짚어보겠습니다. PostsPost는 한 개의 글을 지칭합니다. 블로그의 글 하나입니다. 어느 정도 구축이 되면 Post에서 글만 작성해도 쉽게 운영할 수 있습니다.PagesPost처럼 계속 추가되는 형태가 아닌 고정 페이지를 작성할 때 씁니다. About이나, 채용, 회사소개 등 Post와 분리가 필요한 글을 작성할 때 유용합니다.Static Files정적 리소스를 올리는 기능입니다. 생각보다 버그가 많아서 사용하기 쉽지 않습니다. 저는 이 기능을 커스터마이징해서 약간 쓰기 쉽게 바꾸었지만 쉽지는 않았습니다. 자세한 관리자 커스터마이징은 나중에 다루겠습니다.Data Files정적 데이터를 다루는 기능입니다. 저자 관리나 공통 변수를 담아두면 편리하게 쓸 수 있는 기능입니다. 역시나 버그가 넘쳐납니다. 당분간은 그냥 파일을 직접 수정하는 게 나을 겁니다.5. 블로그 제목 등 설정을 바꾸고 싶다면관리자의 configuration 메뉴를 이용하거나, 프로젝트 루트에서 _config.yml 을 열고 수정해도 됩니다. 사이트에서 사용할 전역 변수나, 플로그인, 기본값 등을 관리해주기 때문에 자주 수정하는 파일입니다. 제목을 변경하려면 title을 찾아서 변경하면 됩니다. 그외의 하단 문구는 buttomtitle을 변경하면 됩니다. 아래 보이는 각종 정보들은 맞게 수정하면 되고, social: 밑에 있는 정보들은 나중에 페이스북 공유나, 트위터 공유 등으로 사용할 수 있습니다. 해당 정보가 없거나 공유를 원치 않는다면 share를 false로 변경합니다. _config.yml은 수정 후 재시작을 해야만 반영되므로 jekyll를 다시 실행하면 됩니다.6. 테마를 적용하자테마 기능은 jekyll를 선택한 가장 중요한 이유였습니다. 멋진 디자인과 추가로 구현된 특수한 기능들은 jekyll이 가지고 있는 큰 메리트입니다. 테마를 사용하려면 소스를 다운로드 받고 압축을 해제해 사용하거나 git checkout 하면 됩니다. 해당 폴더로 이동해 실행하면 테마를 쉽게 사용할 수 있습니다.jekyll serve jekyll은 테마가 완성된 프로젝트 개념이기 때문에 바로 사용이 가능하지만 마이그레이션 이슈가 있습니다. 마이그레이션은 _post의 있는 파일과 _page에 있는 파일을 그저 테마 프로젝트 폴더에 덮어쓰기하면 됩니다.아쉽게도 _config.yml파일은 다시 세팅하는 게 빠릅니다. 어드민 설정 부분도 다시 하면 됩니다. 테마마다 약간씩 기능이 달라 마이그레이션이 안 되는 경우도 있으니 테마는 초기에 선택하는 게 좋습니다. 브랜디 랩스는 Centrarium 테마를 적용했습니다.테마가 적용된 화면7. 글에 이미지를 어떻게 넣을까?글을 쓰면 참고자료로 쓸 이미지도 필요합니다. static file에 업로드 기능이 있지만 업로드를 하면 프로젝트 루트 폴더에 업로드되어 관리상 좋지 않습니다. 앞서 공유한 것처럼 해당 기능 개선에 대해서는 다루지 않을 것이기 때문에 수기로 이미지를 관리하는 방법을 소개하겠습니다.로컬 프로젝트 기준에서 _site는 제너레이트된 최종결과라고 할 수 있습니다. 그래서 _site 폴더에 assets와 같은 폴더가 있으나 그 폴더에 올리면 덮어쓰기와 동시에 초기화 되므로 반드시 프로젝트 루트의 assets에 파일을 올려주시면 됩니다. 폴더를 생성하는 것도 문제 없으므로 포스팅마다 이미지를 나누길 권장합니다. 이미지가 폴더에 복사가 되었다면 이제 글에 넣어봅시다.마크다운 위지윅을 이용해도 좋고 이미지 부분을 HTML코드롤 사용해도 좋습니다. 마크다운으로 이미지를 추가할려면 아래처럼 사용하면 됩니다. ![이내용은 alt속성으로 치환됨](/assest/20180118/test.jpg "이 내용은 타이틀로 치환 됨") assets/test.jpg적용된 이미지이미지의 사이즈나 정렬을 변경하는 건 다음에 다루겠습니다.8. Gnav 변경은 어떻게 할까?커스터마이징한 Gnav영역테마도 적용했고, 글도 쓸 수 있지만 안 쓰는 기능 삭제를 비롯해 손볼 곳은 아직 많습니다. (분명 한두 시간이면 된다고 했던 일이 2주째 수정 중입니다…) 화면 구성을 고치려면 프로젝트에 포함되어 있는 템플릿 파일을 고쳐야 합니다.템플릿은 Liquid 라는 언어로 구성되어 있으며, 문법이 좀 난해하지만 충분히 헤쳐 나갈 수 있습니다. 다만 어디서부터 어떻게 고쳐야 하는지를 파악하는 게 어렵죠. 문법은 공식 사이트를 참고하고, 사용 가능한 변수는 여기를 참고하면 됩니다.사용 가능한 변수는 site와 page로 나눌 수 있습니다. site는 _config.yml 설정한 내용과 jekyll이 지원하는 전역 변수들입니다. page는 해당 페이지에 지정된 세부 변수들입니다. 글의 제목이나 경로 내용들은 기본적으로 세팅되어 있습니다. 추가적인 값을 다루려면 post를 작성하면서 meta정보를 추가하면 됩니다.템플릿의 시작파일은 index.html이고, 페이지에 layout이 지정되었다면 _layouts 안에 있는 [layout].html이 됩니다. 기본적 틀은 _layout/default.html에서 파생됩니다. 그외 파츠로 사용되는 HTML파일은 _includes에 넣고 `{% include header.html %} 같은 방식으로 추가하면 됩니다. 우리 변경하려는 파츠는 header.html에 있습니다. site.pages에는 모든 페이지가 들어있기 때문에 그중에 gnav가 지정된 글만 상단에 노출되게 했습니다. 그리고 상단 글에 대한 정렬이 없기 때문에 좋은 방식은 아니지만 1~10까지 숫자를 기입하면 순서대로 나오게 코드를 구성했습니다. (site.pages에는 posts와 pages가 같이 나옵니다.){% for i in (1..10) %}   {% for page in site.pages %}     {% if page.title and page.gnav == i %}     {{ page.title }}     {% endif %}   {% endfor %}  {% endfor %} 글에 옵션을 지정한 화면이제 pages에서 상단에 노출하고 싶은 글만 gnav를 숫자로 부여해 노출할 수 있게 변경했습니다.9. 스타일 변경은 어떻게 할까?sass로 구성된 스타일의 변경은 심도있게 다루지 않으려고 합니다. sass를 처음 사용한 것도 있지만 내용이 너무 깊어지기 때문입니다. 스타일변경은 _sass 밑에있는 scss 파일을 변경하면 되고, 템플릿마다 구조가 다르기 때문에 열심히 찾는 수밖에 없습니다.10. 저자 기능을 추가해보자 (1)최고의 난이도를 자랑하는 신규 기능 추가입니다. 브랜디의 기술 블로그에서는 작성자를 클릭하면 작성자의 글만 따로 모아서 볼 수있습니다. 하지만 이 기능은 공식적으로 지원되는 것이 아니기 때문에 처음부터 만들어야 했습니다. 완성된 작성자 기능위의 이미지와 같은 기능을 구축하려고 collection을 사용했습니다. collection은 posts나 pages와 같이 그룹핑된 글 목록을 이야기 합니다. posts나 pages는 기본 세팅되어 있고, 약간(?)의 설정 변경으로 collection을 추가할 수 있습니다. 작성자의 메인 페이지가 필요하니 authors라는 collection을 추가해보겠습니다.# _config.yml collections:   authors:     title: Authors     output: true jekyll을 재시작하면 아래와 같이 Authors가 관리자에 추가된 것을 볼 수 있습니다.authors는 작성자 메인 페이지만 생성하면 되므로, 내용에는 작성자에 대한 소개글만 간략히 쓰면 됩니다. jekyll admin에 한글 버그가 있기 때문에 우선 영어로 작성하고, 제목을 다시 한글로 수정하면 됩니다.포스팅마다 저자의 정보가 공통적으로 나와야 하기 때문애 위의 전역변수에 authors를 추가해 따로 관리하게 했습니다.# data/authors.yml # authors 공용 변수   - name: chunbs     koname: 천보성 팀장     email: [email protected]     position: R&D 개발2팀     img: /assets/profile/chunbs.jpg   - name: kangww     koname: 강원우 과장     email: [email protected]     position: R&D 개발2팀     img: /assets/profile/kangww.jpg 그리고 작성자의 포스팅을 엮어주려고 작성자의 아이디가 같을 때, 포스팅으로 나오게 구성합니다.{% if post.author %} {% for author in site.data.authors %}   {% if post.author == author.name %}   {{author.koname}}   {% endif %}  {% endfor %}  {% endif %} 11. 저자 기능을 추가해보자 (2)데이터가 준비되었다면 저자 레이아웃을 추가해야 합니다.(이거 도대체 언제 끝날까요) 저자가 작성한 글만 노출되어야 하는 게 어려울 수도 있지만 jekyll의 구동 원리를 이해하면 손쉽게 할 수 있습니다.jekyll은 내용 수정이 발생되면 전체를 다시 컴파일하는 구조입니다. 다시 말해 일부 파일이 변경되면 노출되는 모든 html파일을 다시 랜더링해서 write하는 것입니다. author의 각 작성자 페이지는 컬렉션에 포함되어 있기 때문에 랜더링이 발생하고 site.posts엔 작성된 모든 페이지 정보가 있습니다. site.posts를 foreach를 돌리고, 저자가 일치하는 페이지만 리스트로 보여줍시다.{% for post in site.posts %} <!-- author 정보가 저자와 같은 경우만 리스트로 출력한다. --> {% if post.author == page.author %}       {{ post.title }}         {{ post.content | strip_html | truncatewords: 25 }}         {{ post.date | date: "%Y-%m-%d" }}           {% if post.author %}         {% for author in site.data.authors %}           {% if post.author == author.name %}           {{author.koname}}           {% endif %}         {% endfor %}       {% endif %}       {% if forloop.last == false %} {% endif %}   {% endif %} {% endfor %} Conclusionjekyll admin은 은근히 버그가 많습니다. 그래도 ‘md파일을 메모장으로 작성하세요’라고 하는 것보단 편하죠. 다양한 기술을 사용하기 때문에 어려울 수도 있겠습니다. 글에서 소개할 수 없거나, 너무 깊어지는 내용은 소개에서 제외했습니다. 양해를 부탁드립니다. 대신에 브랜디 랩스는 저의 피땀 눈물로 만들어졌다는 걸 기억해주세요… 기타jekyll의 기본값 설정을 이용하면 layout과 같은 공통적인 부분을 쉽게 설정할 수 있다.# _config.yml defaults:  - scope:     path: ''     type: posts   values:     #permalink: "/blog/:title/"     layout: post     cover: /assets/default.jpg     author:  - scope:     path: ''     type: authors   values:     layout: author     cover: /assets/author.jpg     subtitle: ~담당하고 있습니다.     author: 영문이름 jekyll admin이 버그가 많아서 업로드 기능은 커스터마이징 했다. 루비와 UI코드를 고쳐서 다시 빌드하는 어지러운 작업을 했다.만약 버그를 고치기 어렵다면 IDE로 파일을 직접 수정하는 게 안전하다. 참고 1)마크다운 작성법은 여기를 참고하세요.글천보성 팀장 | R&D 개발2팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #개발문화 #개발팀 #업무환경 #인사이트 #경험공유
조회수 1269

★워라벨★ 살아 숨시는 프리윌린을 소개합니다 :)

안녕하세요. 매쓰플랫이에요.그동안 매쓰플랫을 만드는 회사는 어떤 회사일까궁금해 하시는 분들이 계실거 같아요~!쾌적한 근무 환경에서,좋은 서비스가 나오는 거 다들 아시죠?지금부터 '프리윌린'을 소개해드릴게요 :)1. 프리윌린 소개저희는 수학 교육에 필수적인 모바일 솔루션,매쓰플랫(mathFLAT)을 만들어 나가고 있습니다.2016년 8월 정식으로 서비스를 런칭하였고,2017년 3월에는 국내 최고의 엑셀러레이터 '프라이머'로부터가능성을 인정받아 시드 투자를 유치하였습니다!열려있는 사고의 젊은 직원들로 구성되어 있으며,각자의 역량을 충분히 발휘 할 수 있는 환경을 조성해줍니다.우리 IT 기술을 이용한 따뜻한 혁신, 같이 만들어요.- 근무 형태 : AM 10 - PM 07 (주5일제, 주말근무 절대 no no!!!!)- 보험,의료 : 4대 보험 - 개인 장비 : 듀얼 모니터, 사무용품 등등- 회식 참여는 자유~! 강요하지 않아요 :)아침 출근 길 2호선....정말 출근대란이거 아시죠?프리윌린에 다니면 출근 시간이 10시!지하철 앉아서도 올 수 있어요 ♥모든 직원은 '00쌤'으로 통일! (대표님도 열외 없습니다!)그외 필요한 사항에 관하여 최대한 지원해 드립니다.사무실  모습 중 일부!!!  ▼ 자세한 내용은 '사무실 투어'에서 보여드릴게요 :) ▼소회의실 & 휴게실사무실 전경- 식사 : 중식제공, 석식제공- 간식 : 고급 캡슐 커피 제공, 간식 무한 제공, 먹을 거 빼면 시체 프리윌린!식대 제한 없는 점심식사...시간 ♥회사 근처가 샤로수길, 핫한 맛집 천국!요즘 유명한 샤로수길 맛집은 모두 가봤어요~!▼ 실제 먹었던 점심 식사 메뉴중 극히 일부!!!!! ▼- 연차/월차 : 월차 제공현재 프리윌린에서는 반차/월차를 사용 할 수가 있어요.또한 휴가 희망 시에는,최대 평일 5일까지 사용이 가능하답니다 :)주말 포함을 한다면....무려 9일동안 휴가가 가능~! 실화냐???본인 할 일만 열심히 한다면, 적절한 휴식도 ok!방탈출카페, 코인노래방, 영화감상, 헬스, 보드게임 등등좋아하는 취미가 있다면, 칼퇴하고 함께해요 ^__^매쓰플랫 만드는 회사 '프리윌린'에 대한 궁금증이 좀 풀리셨나요?최적의 근무 환경에서, 최고의 서비스를 만들기 위해서모든 팀이 항상 노력하고 있습니다.프리윌린은 항상 열려있는 마음으로함께 성장 할 분을 언제나 환영합니다 :)
조회수 10059

파이썬의 시간대에 대해 알아보기(datetime.timezone)

안녕하세요. 스포카 크리에이터 김두리입니다.  스포카는 많은 프로덕트에서 국제화 서비스를 제공하고 있습니다. 그래서 시간대와 시간을 제대로 정확하게 처리하는 것은 중요합니다. 하지만 파이썬의 datetime.datetime은 날짜(datetime.date)와 시각(datetime.time)의 정보를 담고 있고, 시간대(datetime.timezone)의 정보는 담거나 담지 않을 수도 있으므로 헷갈리는 부분이 존재합니다.     시간을 처리할 때 시간대는 왜 중요할까요? 시간대가 명시되지 않은 시각은 충분한 정보를 내포하고 있지 않습니다. 저는 얼마 전, Google Calendar API를 이용하여 작업할 때 골치 아픈 일을 겪었습니다. 오늘의 일정을 불러오고 싶어서 오늘 0시~24시로 데이터를 요청했지만, 계속해서 결괏값에 다음 날의 일정도 포함되어서 반환되었습니다.   왜 다음날 일정도 포함되었던 걸까요? 아래와 같은 코드를 작성하여 Google Calendar API에 요청했습니다.   today = datetime.date.today() from_ = datetime.datetime(today.year, today.month, today.day, 0, 0, 0) to = datetime.datetime(today.year, today.month, today.day, 23, 59, 59) events = get_events_from_google_calendar(from_, to)   몇 시간 동안 머리를 싸매고 코드를 한 줄 한 줄 따져가며 고민을 했습니다. 결국, 제가 요청한 시각에 시간대가 지정되어 있지 않아 get_events_from_google_calendar() 함수 내부에서 from_과 to가 의도하지 않은 시간대의 시각으로 인식되어서 발생했던 문제라는 것을 알게 되었습니다.  # 원래 의도했던 시간대: 대한민국 시간대(KST)에서 오늘 0시 0분 0초 KST = datetime.timezone(datetime.timedelta(hours=9)) from1 = datetime.datetime(today.year, today.month, today.day, 0, 0, 0, tzinfo=KST) # get_events_from_google_calendar()가 받아들인 시간대: UTC 시간대에서 오늘 0시 0분 0초 from2 = datetime.datetime(today.year, today.month, today.day, 0, 0, 0, tzinfo=datetime.timezone.utc)   위 예제에서 from2 - from1를 하게 되면 timedelta(hours=9)가 계산됩니다. 우리가 원했던 것은 KST 기준 오늘 0시부터의 일정이었지만, Google Calendar API에서는 시간대를 UTC로 취급하여 KST 기준 오늘 9시부터 다음날 9시까지의 일정을 불러왔던 것입니다.  이렇듯 시간 관련 작업을 할 때 시간대에 대해 제대로 알고 있지 않으면 의도치 않게 많은 시간을 소모하게 될 수도 있습니다.  오늘은 제가 파이썬으로 시간대 관련 처리를 하며 모았던 정보를 정리하여 공유하고자 글을 작성하게 되었습니다.  시간대  나라 또는 지역마다 살아가는 시각이 다르기 때문에 시간대에 따른 편차가 존재합니다. 이 차이가 피부로 잘 와닿지 않은 채 살아가더라도 캘린더 API나 국제화 서비스 준비 등등 시간과 관련된 작업을 진행하다 보면 시간대 문제에 직면하게 됩니다.  시간대는 영국의 그리니치 천문대(본초 자오선, 경도 0도)를 기준으로 지역에 따른 시간의 차이, 다시 말해 지구의 자전에 따른 지역 사이에 생기는 낮과 밤의 차이를 인위적으로 조정하기 위해 고안된 시간의 구분 선을 일컫는다. 시간대는 협정 세계시(UTC)를 기준으로 한 상대적인 차이로 나타낸다.     UTC에 대한 더 자세한 내용은 여기를 참고해주세요.   시간대에 대한 더 자세한 내용은 여기를 참고해주세요.   파이썬의 datetime.datetime.now()는 실행 환경의 시간대에 따라서 시각을 표시합니다.  2019-01-01 00:00:00 +09:00에 시간대가 Asia/Seoul로 설정된 제 랩탑에서 현재 시각을 가지고 오면, 아래와 같은 시각이 표시됩니다.  >>> print(datetime.datetime.now()) 2019-01-01 00:00:00.000000   그런데, 같은 시각에 Asia/Taipei로 설정된 랩탑에서는 현재 시각이 아래와 같이 표시됩니다.  >>> print(datetime.datetime.now()) 2018-12-31 23:00:00.000000  위의 예제처럼 시간대에 따라 시각이 다를 수 있다는 것을 알 수 있습니다.  나라별 시간대 비교해보기  UTC를 기준으로 시간이 빠르면 +시차, 시간이 느리면 -시차로 표시합니다.                                                                                                                                시간대나라코드UTC-5미국(동부)ESTUTC영국GMTUTC+8대만TWUTC+9대한민국KSTUTC+9일본JSTUTC+10오스트레일리아(동부)AEST     나라별 시간대 차이에 대한 더 자세한 내용은 여기를 참고해주세요.   시간대를 명확히 표시하지 않은 시각은 혼동을 일으킬 수 있습니다. 예를 들어서, 서울에 살고 있는 점주가 2019년 1월 1일 0시 0분에 방문한 고객을 알고 싶어 한다고 가정해봅시다. 이 데이터를 파이썬으로 표현하면 아래와 같이 적을 수 있습니다.  KST = datetime.timezone(datetime.timedelta(hours=9)) korea_1_1 = datetime.datetime(2019, 1, 1, 0, 0, 0, tzinfo=KST)   만약, 대만에 사는 점주가 이를 요청했다면 아래와 같이 적을 수 있습니다.  TW = datetime.timezone(datetime.timedelta(hours=8)) taipei_1_1 = datetime.datetime(2019, 1, 1, 0, 0, 0, tzinfo=TW)   위 예제에서 보이는 것 같이 대한민국과 대만에 있는 점주가 같은 시각을 요청했더라도, 시간대(KST/TW)에 따라서 별도로 처리해야 합니다.  assert korea_1_1 != taipei_1_1 assert taipei_1_1 - korea_1_1 == datetime.timedelta(hours=1) # 같은 시각이지만 시간대에 따라서 시간차가 있습니다.   그렇기 때문에 시간대가 표시되어 있지 않은 2019년 1월 1일이라는 정보만으로는 정확한 시각을 알 수 없습니다.  naive_1_1 = datetime.datetime(2019, 1, 1, 0, 0, 0) assert korea_1_1 != naive_1_1 assert taipei_1_1 != naive_1_1   이런 상황을 해결하기 위해 시각은 어떤 한 시각을 기준으로 하여 그 차이가 표시되어야 합니다. 그 기준으로 정한 것이 UTC입니다. 대한민국은 UTC를 기준으로 아홉시간 빠르기 때문에 korea_1_1의 시각을 UTC 시간대로 표현하면 2018-12-31 15:00:00+00:00입니다. 대만은 UTC를 기준으로 여덟시간 빠르기 때문에 taipei_1_1의 시각을 UTC 시간대로 표현하면 2018-12-31 16:00:00+00:00입니다. 위의 시각은 각각 대한민국(2019-01-01 00:00:00+09:00), 대만(2019-01-01 00:00:00+08:00)으로 표시할 수 있습니다. 이렇게 시간대와 같이 표시하면 혼란 없이 정상적으로 처리할 수 있습니다.  datetime  datetime은 파이썬에서 기본으로 제공하는 표준 라이브러리로, 간단하거나 복잡한 방식으로 날짜와 시각을 조작하기 위한 클래스를 제공합니다.  The datetime module supplies classes for manipulating dates and times in both simple and complex ways.  datetime은 시간대 포함 여부에 따라서 naive datetime, aware datetime 두 가지로 나눕니다.  naive datetime / aware datetime  datetime의 타입을 알아봅시다. 파이썬에서 시간 관련 연산을 하다 보면 종종 아래와 같은 에러 문구를 만날 수 있습니다.  >>> a = datetime.datetime.now() >>> b = datetime.datetime.now(datetime.timezone.utc) >>> a - b Traceback (most recent call last): File "", line 1, in TypeError: can't subtract offset-naive and offset-aware datetimes      naive datetime : naive datetime 객체는 그 자체만으로 시간대를 찾을 수 있는 충분한 정보를 포함하지 않습니다. (e.g. datetime.datetime(2019, 2, 15, 4, 58, 4, 114979))   aware datetime(timezone-aware) : 시간대를 포함합니다. (e.g.datetime.datetime(2019, 2, 15, 4, 58, 4, 114979, tzinfo=)) aware datetime 객체는 자신의 시각 정보를 다른 aware datetime 객체와 상대적인 값으로 조정할 수 있도록 시간대나 일광 절약 시간 정책 혹은 적용 가능한 알고리즘 정보를 담고 있습니다.   tzinfo는 UTC, 시간대 이름 및 DST 오프셋에서 로컬 시간의 오프셋을 나타내는 방법을 담고 있습니다. 더 자세한 내용은 공식 문서를 확인해주세요.  naive datetime은 어느 시간대를 기준으로 하는 시각인지 모호하므로 aware datetime을 이용하는 것을 권장합니다.  직접 확인해보기  준비한 몇 가지 코드를 보며 확인해봅시다. naive datetime과 aware datetime의 차이를 확인하고, 시간대 지정 방법에 대한 내용을 다룹니다.  개발환경     Python 3.7   pytz   여기서는 datetime을 쉽게 다루기 위해 pytz 라이브러리를 사용합니다. pytz는 아래와 같은 장점이 있습니다.    시간대를 시간차가 아닌 사람이 알아보기 쉬운 지역 이름으로 비교적 쉽게 설정할 수 있습니다.   원하는 시간대의 aware datetime으로 변경해주는 localize() 메소드를 제공합니다.   pytz 사용에 앞서, pytz가 제공하는 시간대 식별자를 확인하시려면 다음을 따라 해주세요. import pytz for tz in pytz.all_timezones: print(tz)  혹은 여기를 참고하셔도 좋습니다.  naive datetime  naive datetime은 날짜와 시각만을 갖습니다.  import datetime datetime.datetime.utcnow() # UTC 기준 naive datetime : datetime.datetime(2019, 2, 15, 4, 54, 29, 281594) datetime.datetime.now() # 실행 환경 시간대 기준 naive datetime : datetime.datetime(2019, 2, 15, 13, 54, 32, 939155)   aware datetime naive datetime과 달리 aware datetime은 시간대 정보(tzinfo) 도 갖습니다. import datetime from pytz import utc utc.localize(datetime.datetime.utcnow()) # UTC 기준 aware datetime : datetime.datetime(2019, 2, 15, 4, 55, 3, 310474, tzinfo=)   now는 UTC를 기준으로 현재 시각을 생성합니다. 하지만, naive한 시각입니다.  now = datetime.datetime.utcnow()   이 시각은 naive한 시각이므로 pytz.timezone.localize를 통해 timezone-aware한 시각으로 변환된 시각과 동일하지 않습니다.  assert now != utc.localize(now)   시간대 제대로 지정하기  시간대가 무엇이고, 명시하는 것이 왜 중요한지 알게 되셨다면 시간대를 원하는 의도에 맞게 지정하는 방법에 대해 알아봅시다.  import datetime from pytz import timezone, utc KST = timezone('Asia/Seoul') now = datetime.datetime.utcnow() # UTC 기준 naive datetime : datetime.datetime(2019, 2, 15, 4, 18, 28, 805879) utc.localize(now) # UTC 기준 aware datetime : datetime.datetime(2019, 2, 15, 4, 18, 28, 805879, tzinfo=) KST.localize(now) # UTC 시각, 시간대만 KST : datetime.datetime(2019, 2, 15, 4, 18, 28, 805879, tzinfo=) utc.localize(now).astimezone(KST) # KST 기준 aware datetime : datetime.datetime(2019, 2, 15, 13, 18, 28, 805879, tzinfo=)   replace() 메소드로 날짜나 시간대를 변경할 수 있습니다.  KST = timezone('Asia/Seoul') TW = timezone('Asia/Taipei') date = datetime.datetime.now() # datetime.datetime(2019, 2, 15, 13, 59, 44, 872224) date.replace(hour=10) # hour만 변경 # datetime.datetime(2019, 2, 15, 10, 59, 44, 872224) date.replace(tzinfo=KST) # tzinfo만 변경 # datetime.datetime(2019, 2, 15, 13, 59, 44, 872224, tzinfo=) date.replace(tzinfo=TW) # tzinfo만 변경 # datetime.datetime(2019, 2, 15, 13, 59, 44, 872224, tzinfo=)   하지만 replace는 그 속성 자체만을 바꿔버리는 것이기 때문에 사용에 주의할 필요가 있습니다.  now = datetime.datetime.utcnow() assert utc.localize(now) == now.replace(tzinfo=utc) assert KST.localize(now) != now.replace(tzinfo=KST) assert TW.localize(now) != now.replace(tzinfo=TW)  그뿐만 아니라 replace()를 이용할 경우 의도하지 않은 시간대로 설정될 수도 있으므로 유의해야 합니다. 그 이유는 아래와 같습니다.     시간대는 생각보다 자주 바뀝니다(더 자세한 내용은 스포카의 규칙 2번을 참고해주세요). 이렇게 변경되는 사항들은 tz database에 기록되는데, pytz는 이에 기반합니다. pytz의 버전이 2018.9와 같은 날짜로 되어있는데 2018.9 버전은 2018년 9월 기준 시간대 테이블을 기준으로 시간대를 만들어주는 버전입니다. 이 버전에선 Asia/Seoul의 시간대는 UTC+9입니다.   pytz는 무슨 이유에서 인지 datetime.replace()나 datetime.astimezone()에서 호출될 때 이 tz database 타임 테이블의 맨 첫 번째(가장 오래된) 기록을 가지고 변환을 시도합니다. 서울의 경우 초기에 UTC+8:28이었기 때문에 이 정보를 기반으로 변환합니다.   그래서 pytz를 사용할 때는 pytz.timezone.localize()를 항상 써야 하고, .astimezone()같은 파이썬의 표준 메서드들을 사용하고 싶다면 datetime.timezone을 사용해야 합니다.  스포카의 규칙 스포카에서 datetime을 다룰 때 흔히 따르는 두 가지 큰 원칙이 있습니다.  1. naive datetime은 절대 사용하지 않습니다. 가장 큰 이유는 naive datetime과 aware datetime을 서로 섞어서 쓰지 못한다는 것입니다.  >>> from datetime import datetime, timezone >>> datetime.utcnow() + datetime.now(tz=timezone.utc) Traceback (most recent call last): File "", line 1, in TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'datetime.datetime'   동적 타입 언어에서 쓸 수 있는 가장 간단한 타입 검사 수단인 isinstance() 체크로도 이 둘을 구별할 수가 없으므로, 코드의 어느 지점에서 naive datetime이 섞이기 시작하면 예기치 않은 지점에서 버그 발생 가능성이 급격히 올라갑니다. Python 2에서 str과 unicode를 섞으면 안 되는 것과 비슷한 이유라고 생각하시면 됩니다.  2. 장기적으로 보존해야 하는 datetime은 항상 UTC를 기준으로 저장합니다. 지역 시간대는 지정학적 또는 정치적인 이유로 생각보다 자주 바뀝니다. 예컨대 1961년 이전까지 한국은 UTC+08:30을 지역 시간대로 사용했었고, 1988년 올림픽 즈음에는 일광 절약 시간대를 시행하고 있었습니다. 시간대 데이터베이스(tz database)는 이런 변경 내역을 담고 있고, pytz가 제공하는 시간대 객체의 동작에도 반영되어 있습니다. 그 때문에 시간대 데이터베이스가 제때 업데이트되지 않거나, 갑작스러운 시간대 변경으로 데이터베이스에 반영이 늦어지거나 하면, 시간 계산에서 오차가 발생할 여지가 있습니다. 또한 같은 aware datetime 이어도 서로 다른 시간대를 가진 datetime끼리 연산하거나 하는 상황도 문제를 복잡하게 만들고, DB나 다른 서비스의 API를 사용할 때, 그 서비스가 시간대를 제대로 다루는 데에 필요한 복잡도를 감수하는 대신 단순히 UTC 기준의 고정 오프셋 시간대만 사용하는 등의 이유로 서로 지원 범위가 맞지 않아 곤란을 겪을 수도 있습니다.  혼선을 줄일 수 있는 좋은 규칙 중 하나는, str과 unicode를 다루던 것과 비슷하게 모든 내부적인 계산에서 UTC 기준의 aware datetime만 사용하고, 사용자에게 보여줘야 할 때만 필요한 시간대로 변환해서 보여 주는 것입니다.  스포카에서는 메인 서버의 dodo.datetime 유틸리티 모듈도 이런 규칙을 따르고 있으며, 대부분의 SQLAlchemy DB 모델 객체의 DateTime 컬럼에서 timezone=True 옵션을 켜서 사용하고 있습니다.  정리  시간 관련 작업을 하신다면 아래 사항을 꼭 기억해주세요.시간대를 명시합시다.시각을 애플리케이션 로직이나 데이터베이스에서 저장할 때는 UTC로 사용하고, 유저에게 표시할 때만 유저의 시간대로 변환하여 보여주도록 합시다.    백엔드 서버끼리 통신할 때도 항상 UTC를 사용한다는 가정을 하면, 시간대가 없더라도 robust하게 처리할 수 있습니다.
조회수 2216

ZOYIFUL TALK (1) 사무실이 마음에 들어 왔다가 개발에 재미 들렸죠

유저 반응을 볼 때가 즐겁다는 프론트엔드 엔지니어 인턴 Mino조이에서 소프트웨어 엔지니어 인턴으로 살아간다는 것이 어떤지 궁금해 하시는 분들이 많아 4개월차 소프트웨어 엔지니어 인턴 미노(본명 천민호)를 Zoyiful Talk 첫 번째 주자로 모셨습니다.ZOYI: 미노 안녕하세요! 인턴으로 조인하신지 벌써 4개월이 지나셨다면서요. 우선 간단한 소개부터 해주세요. 회사에서 무슨 일을 하고 있나요?MINO: 안녕하세요, 채널(Channel)이라는 조이 신규 서비스를 개발하고 있는 엔지니어 미노입니다. 채널은 소비자와 커머스 기업을 연결해주는 소통 창구 같은 서비스인데요, 저는 그 중에 웹 프론트엔드를 개발하고 있습니다.ZOYI: 프론트엔드가 뭔가요? 좀 더 설명해 주세요.MINO: 프론트엔드는 흔히 ‘웹 개발자’라 하는데요, 웹이나 앱에서 서비스 이용자가 경험하는 부분을 개발합니다. 이용자에게 더 좋은 시각적 효과를 주고, 더 편리한 경험을 제공하기 위해 기술을 이용하죠. 이를 구현하기 위해 자바스크립트라는 언어를 사용하고, react.js를 프레임워크로 사용하고 있습니다.ZOYI: 원래부터 프론트 개발을 많이 하셨었나요?MINO: 프론트엔드는 HTML 작성할 수 있는 정도? 아니면 레일즈로 간단한 홈페이지 게시판 만드는 정도였어요. 자바스크립트는 조이에서 처음 배워봤고요.사실 개발 시작한 것 자체가 작년 9–10월이니 이제 반 년 좀 넘었네요. 코딩은 2년 전부터 시작했었는데 거의 알고리즘 공부가 위주였고 최근에야 제대로 개발을 한 것 같아요ZOYI: 조이에는 어떻게 조인하게 되신 거예요?MINO: 대학 개발 동아리 회장을 할 당시 대회 후원사가 필요해서 레드(CEO)한테 컨택한 적이 있거든요. 후원을 받고 나서 레드의 권유로 회사에 한 번 놀러왔는데, 사무실이 생각보다 좋더라고요. (웃음)스타트업 하면 좁은 공간에 다닥다닥 붙어있는 모습을 생각했었는데… 깔끔한 공간이 인상깊었어요.높은 천장과 통유리 채광을 자랑하는 조이 사무실에 반했다고 합니다.ZOYI: ㅎㅎㅎ 직접 일해보니 어때요? 실제로도 깨끗하던가요?MINO: 레드의 책상이 좀 더럽긴 하지만…은 농담이고요, 실제로 일해보니 더 좋은 것 같아요. 책상도 넓고… 제가 이렇게 하얀 느낌을 좋아하거든요.ZOYI: 조이에서의 4개월을 지내보니 어때요?MINO: 음… 4개월 지나고 나니, 이제야 내가 뭘 모르고 뭐가 부족한지를 알 수 있게 된 것 같아요. 잘한다고 말하긴 아직 부끄럽지만, 적어도 구글링으로 뭘 찾아야 할지는 알 수 있게 됐어요.ZOYI: 안해본 것들을 했잖아요, 주로 어떻게 습득을 했어요?MINO: 사람마다 좀 다를 수 있는데 저는 그냥 시간 날때마다 조이 오픈소스 프로젝트들을 하나하나 열어보면서 이게 어떻게 동작하나를 봤어요. 그래도 모르면 물어보면서 Follow up 받고… 동료들한테 부담없이 물어볼 수 있어서 좋았어요. 촉진제같은 역할을 해 준 것 같아요.한 번은, 전혀 새로운 분야이고 처음 접해보는 언어를 다루는 거라 익숙치 못해 하루종일 구글링을 한 적이 있어요. 그런데도 오늘 커밋 했냐, 뭐했냐 이런 얘기가 없고… 당신의 성장을 그냥 지켜보겠다는 태도인 거예요. 처음엔 익숙하지가 않았는데, 그런 분위기 덕분에 결과적으로 리서치를 잘 하고 일을 성공적으로 마무리 할 수 있었어요.ZOYI: 동료들과 교류가 많은 편인가요?저는 프론트엔드를 하다보니 주로 개발팀 멤버들과 많은 시간을 보내는데요, 업무 외적으로도 되게 재미있어서 친하게 지낼 수 도 있고 그래요. 꾸준히 소통하려 하는 게 느껴져요. 나를 막연히 6개월 후 나가는 인턴이 아니라, 함께 성장해 가는 동료로 생각하고 있구나. 하는 기분이 들죠.ZOYI: 푸스볼 중독이라는데?MINO: 푸스볼도 ZOYI에서 처음 배웠는데, 이건 정말, 최고의 레져인 것 같습니다 (목소리 톤 올라감). 가격 대비 효율이 최고예요. 하루 한 번 이상 꼭 하고 있습니다.10분만 해도 맥박이 빨라진다는 엄연한 스포츠, 푸스볼ZOYI: 본인의 푸스볼 랭킹은?MINO: 글쎄요, 디케이(하드웨어 디자이너)보단 잘하지 않을까요? ㅎㅎZOYI: 인턴 끝나면 생각나겠어요, 그러고 보니 인턴도 이제 두 달 남았네요. 돌아가면 하고싶은 일이 있나요?MINO: 아직 고민중이예요. 사실 조이 들어오기 전에는 프론트, 웹 개발자는 정말 안하겠다고 생각했었는데 지금은 이게 재미있다는 생각이 들어요.초반에 누가 “잘 하게 되면 점점 재미있어 질거다”라고 말해준 적이 있는데, 그 말이 공감이 돼요. 점점 배워가면서 지금은 어느정도 의도한 대로 구현이 되니까…이젠 재미있는 거예요. 새로운 분야를 알게 된 느낌? 그래서 앞으로 프론트엔드 개발자로 일해도 좋고, 뭐든 최대한 많은 경험을 하고 많은 지식을 습득해 보고 싶어요.ZOYI: 좋은 계기가 되었네요, 인턴 생활은 만족스러워요?MINO: 네, 생각하던 것 이상으로 좋았어요. 주도적으로 일을 해 나갈 수 있다는 점과, 하나하나 해 나갈 때마다 내가 성장하고 있는 느낌이 좋아요. 사실 처음 입사할 땐 단순히 반복작업만 할 줄 알았거든요. ZOYI엔 뭔가 ‘네 꿈을 펼쳐봐라~’하는 태도가 있는데, 저는 거기에 잘 맞았던 것 같아요.ZOYI: 그렇다면 향후 ZOYI 지원을 고민하시는 분께 어떤 조언 한마디 해주시겠어요?MINO: 주변에 많은 친구들이 ‘난 안될거야’라고 생각하고 지원조차 안하는 경우가 많은데, 저는 일단 지원해 보라고 말해주고 싶어요. 저도 지원할 당시 굉장히 걱정을 했었거든요. 나는 알고리즘 공부밖에 못해봤고, 서버도 용어 하나도 모르는데 내가 잘 할 수 있을까?하는 생각.막상 회사에 들어오고 난 지금은 생각이 많이 달라졌어요. 인턴에게 중요한 자질은 완벽함보다 가능성인 것 같아요. 그 가능성이란 게 대단한 스펙이 아니라, 기초를 탄탄히 가지고 있는 거예요. 그리고 나면 회사에 와서 충분히 성장할 수 있어요.그 좋은 사례가 션(CTO)인 것 같아요. 함께 일하면서 CTO가 되어가는 모습을 곁에서 보는 게 참 좋았어요. 내부에서 우리가 성장해 더 큰 역할을 맡을 수 있는 조직이란 게 참 좋아요.ZOYI: 조언 감사합니다. 남은 기간 ZOYI에서 기대하는 점이 있다면?MINO: 이번 주부터 시작될 개발팀 위클리 세션이 기대돼요. 각자가 알고 있는 기술을 다른 멤버들과 공유하는 시간인데요, 조이가 워낙 다양한 기술을 다루다 보니 제가 담당하지 않는 분야에 대해서는 잘 모르는 게 많거든요. 같이 일하는 사람들은 어떤 분야에 대해 일하고 있는지 기술적으로 알아보고 싶어요.ZOYI: 좋은 시도네요. 마지막으로 글 읽으시는 분들께 한마디 하시겠어요?MINO: ZOYI는 잘하는 사람들이 와서 더 잘하게 되는 곳이 아니라 가능성 있는 사람들이 와서 잘하게 되는 곳이라고 생각해요. 누구에게나 열려 있으니 편히 찾아와 주셨으면 좋겠어요 ^^#조이코퍼레이션 #개발팀 #개발자 #개발환경 #업무환경 #팀원인터뷰 #팀원소개 #팀원자랑
조회수 724

[Buzzvil People] Roy Kim, Head of Finance

 Buzzvil People에서는 다양한 배경과 성격 그리고 생각을 지닌 버즈빌리언들을 한 분 한 분 소개하는 시간을 갖습니다. 어떻게 버즈빌에 최고의 동료들이 모여 최고의 팀을 만들어가고 있는 지 궁금하시다면, 색색깔 다양한 버즈빌리언들 한분 한분의 이야기가 궁금하시다면, Buzzvil People을 주목해주세요.1. 간단한 자기 소개 부탁드립니다. 안녕하세요. 버즈빌의 BM(Business Management)팀에서 Head of Finance Role을 맡고 있는 Roy  Kim (김현우)입니다. 버즈빌에 조인한 건 2016년 8월 29일로, 이제 1년 6개월정도 지났습니다. 저는 4대문 안쪽의 현-마이크로소프트 한국 지사 건물이 있는 곳의 산부인과에서 태어났습니다. 가끔씩 저에게 지방출신이 아니냐고 물으시는 분들이 계신데.. 조선시대였으면 사대부들만이 가능하다는 4대문 안쪽에서 태어난 진정한 성골 서울사람입니다 🙂 태어난 후부터 중간에 잠깐 1.5년을 제외하고는 서울에서 초-중-고등학교를 졸업했고, 2001년부터 2009년까지 약 8년간 미국에서 생활했습니다. 사실 처음에는 1년간 어학연수를 하고 군대를 갈 생각이었으나..어찌저찌 하다보니 대학을 졸업하고 2년간 업무 경험도 쌓을 수 있었네요. 대학에서는 Economic를 전공했기 때문에, 졸업 후 관련 업종을 찾는데 집중했고, 운이 좋게 외교통상부의 해외공관의 경제담당관으로 근무했습니다. 제가 있던곳은 샌프란시스코 총 영사관이 었는데요, 주요 업무는 실리콘밸리 및 샌프란시스코의 비즈니스 네트워크를 만들고 관리하는 업무, 주요 경제 동향 파악 및 리포트 작성, 우리 기업의 현지 진출 지원 등의 업무였습니다. 이후, 좀더 액티브한 업무를 하고 싶어 영사관을 나와 현지 게임회사에서 근무하면서 Local Publishing을 담당했습니다. 해당 업무는 한국에서 미국 진출을 원하는 게임을 가져와서, 현지화 하는 작업을 진행하는 업체로 2~3개의 게임을 실제로 미국에서 런칭하는 등의 경험도 해보았네요.  이후에는 사실 살~짝 권태기가 왔습니다. 졸업과 동시에 일을 시작하기는 했지만, 아직도 제가 무엇을 좋아하고 무엇을 하고싶은지 모르고 있는 건 아닌가라는 고민도 들었구요. 해서 머리도 식힐 겸 영어강사를 시작했고 이 역시 나름 재미있게 하긴했으나, 장기적인 관점에선 재무/회계 역량을 더 발전시키고자 다시 인더스트리로 돌아오게 되었습니다.  버즈빌 입사 바로전까지 일하던 지오시스는 이베이지마켓의 Founder인 구영배사장님이 글로벌 오픈마켓을 지향하면서 런칭한 회사로, 저도 2012년까지는 지마켓의 일원으로 일하다가 지오시스에서 본격적으로 재무시스템기획을 맡으면서 업무를 시작했습니다. 주로 회사의 재무/회계 전반적인 시스템을 구축하는 업무를 맡았고, 업무에 대한 성과 등을 인정받아 팀장으로 팀원들과 함께 회사의 주요 시스템을 기획했습니다. 이때 제가 만든 어드민내 기능만 30가지가 넘었고, Finance를 위한 별도의 어드민을 개발하여 SAP와 연동하는 업무도 진행했습니다. 해당 업무는 정확히 재무회계로 볼수는 없지만, 해당 업무의 지식이 매우 필수적인 업무였기 때문에, 저는 이곳에서 재무회계 관련 업무의 기초지식을 쌓을 수 있었을 뿐만아니라 한국 외 싱가폴, 미국, 일본, 중국, 말레이시아, 홍콩, 인도네시아 법인을 모두 시스템으로 연동하여 관리하는 Role도 맡게 되었습니다.  3.5년쯤 해당업무를 진행하다, 회사의 본격적인 IPO 준비에 앞장서고자 세무 및 회계의 업무로 보직을 전환했고 이 과정에서 1,000억원 증자 및 국세청 세무조사 응대 등의 업무를 진행했습니다. 돌아보면 저에게 엄청난 경험과 성장을 할 수 있게 해 준 회사였지만, 지지부진한 성장과 스스로의 내적 어려움이 있었기 때문에, 회사를 떠나게 되었습니다. 2. 어떻게 버즈빌에 오시게 되셨나요? 이전 직장을 그만두고 이직을 알아보던 중 헤드헌터분이 강하게 추천을 해 주셨습니다. 사실…이직이 확정된 & 면접을 보러다닌 다른 기업들에 비해서는 버즈빌은 저에게 상당히 미지의 존재였기 때문에, 사실 처음에는 전혀 고려대상은 아니었습니다.  그럼에도 불구하고 이곳에 오게 된 계기에는 주변분들의 추천이 있었습니다. 이름을 직접 말씀 드릴 수는 없지만, John의 지인과 버즈빌의 파트너사 및 협력사 분들이 회사에 대해서 발전 가능성이 높고 제가 기여할 부분도 많다고 말씀해 주셨습니다.  사실.. 이전의 회사에서 100명부터 650명이 되는 과정에서 5년이 넘게 회사의 기초 Finance System을 설계했었습니다. 가깝게는 판매자의 정산 및 결제부터 멀게는 회사내의 보상체계까지 다양한 부분의 시스템을 기획하면서, 제 스스로 주어졌지만 사용하지 못한 휴가가 49일이나 됐습니다. 이렇게 일이 많은 회사보다는 그냥 제게 주어진 Task에 집중하면서, 다른 여러가지 사업구상을 할 수 있는 회사를 찾고 있던터라, 처음에 버즈빌에서 최종합격 통보를 주셨을 때 일이 많을 것 같아서 거절을 했었습니다.  하지만, 이후 다시 주변 분들이 너랑 잘 맞는 회사라는 말씀을 거듭 주셨고, 매우 부끄럽게 다시 연락을 드려서 기회가 있는지 물었습니다. 상당히 아이러니 한데요, 합격시켜주니 안간다고하고..알았다고 하니, 다시 가겠다고..이와 관련해서 내부에서도 이야기가 있었던 것으로 알고 있습니다 (저 사람은 들어왔다, 금방 나갈 것 이라고) 결과적으로 전 아직도 이곳에 있고 이곳이 좋습니다. 물론, 다른 기회를 잡았으면 어떨까하는 생각을 안한 것은 전혀 아니나, 이정도면 매우 만족한다고 볼 수 있습니다 3. 버즈빌에서 어떤 업무를 담당하고 계신가요? 제가 담당하는 업무는 Accounting and Finance 전반적인 업무를 진행하고 있습니다. 물론 이 외에도 회사의 여러가지 정책을 정립하고 수립하는 업무도 담당하고 있습니다업무를 나누자면 크게 3가지로 나눌 수 있습니다 1) 재무회계업무 2)IR업무 3)기타정책업무. 물론 회사에 따라서는 1)재무회계업무도 1-1 재무 / 1-2 회계 / 1-3세무 로 나누지만, Buzzvil은 아직 인력이 충분하지 않아 동 업무를 모두 같이 처리하고 있습니다   우선 1) 재무회계업무를 보면, 주로 하는 일은 재무관리가 있는데요. 간단하게 말씀드리면 회사의 입/출금을 관리하는 업무입니다. 입금의 경우 회사가 발생시키는 매출에 대해서 매출이 적절하게 회수됐는지 확인을 합니다. 반대로 출금의 경우에는 회사가 지불하는 다양한 서비스 경비에 대해서 비용이 적절하게 승인됐는지, 지불금액은 합리적인지 판단 후 출금을 처리하는 업무를 말합니다. 회계의 경우에는 앞에말씀 드린 입/출금 업무가 제대로 처리됐는지 장부상에서 관리하는 것을 말합니다. 흔히 회계를 단순한 내역정리라고 보시는 분도 계신데요. 회계는 장부를 통해 회사의 살림살이가 제대로 운영되는지 확인하는 기능입니다. 아쉽게 제가 입사하기 이전의 Buzzvil의 회계는 외부기장을 통해 작성되고 있었기 때문에, 장부의 금액에 대해서 회사내에 정확히 파악하시는 분이 없었습니다. 해서, 처음에 이 부분에 대한 파악 및 확인이 시급하였고, 지금은 적어도 어떤 Account의 어떤 비용이 있는지는 파악하고, 관련 내용을 COO 및 CEO, 외부 투자자들에게도 공유 드리고 있습니다  두번째로는 IR업무입니다. 물론 아직 상장을 하지 않은 법인이기 때문에, 정확한 의미의 IR이라고 볼수는 없는데요. 제가 현재 담당하고 있는 IR은 주로 투자자 응대입니다. 저희 회사에 투자한 투자자분들께서 회사의 실적등에 대해서 궁금해 하시기 때문에, 주로 분기별로 응대를 하고 있습니다. 그리고 지난해 Slidejoy를 인수하면서 개인투자자 분들도 많이 추가 되셨기 때문에, 이 분들에게도 관련 자료를 전달 드리고 있습니다. 만약 회사가 Going public으로 간다면, 그때는 관련업무의 depth가 지금보다는 더 깊어질 것으로 보고 있습니다. 따라서 이를 대비하기 위한 IR 자료 준비 등의 업무도 올해부터 시작하려고 하고 있습니다  마지막으로 담당하는 업무는 기타정책업무 입니다. 아직 회사에는 비용에 대한 기안/승인/집행 등과 관련된 프로세스가 정립되지 않았습니다. 따라서 관련 업무를 보다 체계화 시키는 업무를 진행하고 있습니다. 비용관련 정책의 경우 단순하게 BM에서 집행하는 비용 외, 전사에서 발생하는 모든 비용을 대상으로 관련 정책을 수립하고 있습니다. 아울러, 회사가 Going public을 진행하고 있기 때문에 관련해서 사전에 미리 준비해야하는 여러가지 사항에 대해서 처리하고 있으며, 이 중에서 정책적으로 결정해야 하는 일이 있으면, 관련 정책의 수립도 진행하고 있습니다   4. 스타트업에서 혹은 광고업계에서 일하는 느낌이 어떠세요? 굉장히 새롭습니다. 스타트업에서 근무해본 경험은 있지만 광고는 처음인터라, 물론 저의 업무특성상 업계에 크게 구애받지 않는 업무이긴 합니다만, 항상 새로운 Industry에 대해서 배우는 것은 저에게 매우 즐거운 일이라 생각합니다.  사실 버즈빌은 광고라기 보다는 광고 및 컨텐츠를 통해서 모바일 잠금화면이라는 새로운 생태계를 구성하는 업체라고 생각합니다. 이는 단순하게 새로운 컨텐츠를 제작하여 배포하는 것도 아니고, 광고만을 수주하여 고객에게 전달하는 것과는 다르다고 생각합니다.  이러한 면에서 사실 이전 회사에서는 접하지 못한 새로운 수익의 창출 및 고객의 니즈를 충족시킬 수 있다는 부분은, 저 스스로에게도 다양한 부분을 시사했던 것 같습니다. 제 개인적으로는 버즈빌이 광고업계라는 업종을 한정시키기 보다는, 모바일을 통한 Life Changer로서의 다양한 Role을 수행해 나가길 희망하고 있습니다  5. 이것만큼은 버즈빌이 참 좋다! 어떤 게 있으실까요? 우선 버즈빌의 자유로운 분위가 저는 매우 좋습니다. 물론 입사초에는 규정되지 않은 문화가 매우 어지럽고 비효율적이라는 느낌을 받은 것도 사실입니다. 이는 버즈빌의 문화의 잘못이라기 보다는, 제가 있던 곳들이 어쩌면 정형화된 분위기에서 저의 일만 하면 되는 분위기 였기 때문에, 그러한 차이에서 오는 약간의 불편함 이었다고 생각합니다.  보통 회사의 경우 인간적인 관계의 부분도 중요하지만, 공적인 일을 하는 장소라는 인식을 많이 가지고 있습니다. 소통도 상대적으로 덜할 수 밖에 없죠. 그렇지만 버즈빌은 자유로운 문화를 통해 서로 이야기 하고, 불편한 점을 고쳐나가기에 자유로움이 소통으로 더 극대화 되는 좋은 기폭제가 아닌가 생각하게 합니다.   개인적인 경험으로 미루어보아 말씀드려보자면, Top – down 시스템이 익숙한 회사에서 버즈빌에 조인하셨다면, 약간 업무적응에 힘들 수 있습니다 . 왜냐면, 뭔가 exact한 지시를 하는 사람이 없고, 그 지시를 내릴 수 있는 Level의 분들 중 어떤 분들은 중간관리자로 오신 분들보다관련 경험이 없을 수도 있기 때문입니다.  반대로 본인이 주도적 성격을 가지고 업무를 이끌어가는 분이라면 제 생각에는 이곳만큼 좋은 곳이 없습니다. 버즈빌은 Self-leader를 장려하고, 이러한 role에 대한 서로 존경하는  곳 입니다. 따라서, 본인이 하고자 하는 업무가 명확하다면 CEO와의 대화를 통해 이러한 부분을 구체화하고 이끌어 나갈 수 있습니다.  저의 경우에는 버즈빌 입사와 동시에 Finance System을 구축하고 싶다는 목표가 있었습니다. 물론, 아직 관련 계획을 진행하고 있지는 못하지만, 그 System의 기반이 되는 여러가지 데이터의 정리/분석 등을 통해 한단계 한단계 나아가고 있습니다. 만약 제가 과거와 같이 큰 업체이 있었다면, 저의 의견보다는 윗선의 의견을 수렴하여 프로젝트를 진행하는 Role을 맡고 있었을 것 입니다 . 6. 개인적인 목표나 꿈이 있으신가요? 있다면, 버즈빌에서의 경험이 어떻게 도움이 된다고 생각하시나요? 버즈빌의 많은 분들처럼 저 역시 창업에 대한 꿈이 있습니다. 이 곳에서 아이템에 대해서 말씀 드리기 어려우나 ^^; 개인적으로는 이전부터 하고 싶었던 창업의 아이템이 있어서, 만약 Buzzvil을 퇴사한다면 관련 사업을 진행하고 싶습니다. 그리고 이 사업을 하면서 버즈빌에서 느낀 여러가지 감정 및 업무 경험이 매우 큰 도움이 될 것이라고 생각합니다.  어떻게 살고싶냐는 질문은 매우 철학적인데요. 개인적으로는 많은 고민과 테스트를 하면서 살고 싶습니다. 저는 이전부터 다양한 분야에 관심이 많았고, 그중에서 가장 관심이 많은 부분은 ‘왜 사람들은 저런 생각을 할까’ ‘왜 저런행동을 할까’ 였습니다. 이것은 단순한 심리에 대한 파악이 아니라, 그 사람의 심리를 관통하는 철학은 무엇이고, 그 철학은 어떻게 생성되었기 때문에 그 사람 안에 깊숙히 스며들어 있는가 등 입니다. 좀 지루한 이야기일지 모르겠지만, 이렇듯 사람은 어떠한 철학, 종교에 영향을 받았고, 그 가치가 그 사람의 언어 및 행동 패턴을 변화시켰다고 생각하기에,  그 변화가 지금 그 사람의 문제에 대한 접근방식 및 결론 내는 부분에도 작용한다고 생각하고 있습니다.  따라서, 저는 앞으로 어떻게 살고 싶냐는 질문에, 지금처럼 이러한 것들에 대해서 다양한 고민을 하고, 저의 가설이 맞는지 증명하는 방향으로 인생을 살아갈 듯 합니다. 물론 이러한 고민이 저에게 어떠한 가치(예: 돈)를 줄지는 솔직히 모르겠습니다. 하지만, 나름 저만의 재미있는 세계를 가지고 인생을 살 수 있게 해줄수 있을것 같습니다. 그리고 또한, 행복한 가정을 꾸리고 가족과 함께 평안한 여생을 보내는 것도 제가 꿈꾸는 미래 중 하나 입니다  
조회수 865

삼성화재 지속가능경영사무국에 가다!

기업이 지속적으로 성장하려면 경제적인 성장뿐만 아니라 사회적 책임을 다하고 환경문제에 기여하는 등 기업경쟁력을 높이는 경영이 이루어져야 하는데요. 최근 대두되고 있는 ‘지속가능경영’이 이러한 흐름에 발맞춘 변화라고 할 수 있습니다.삼성화재도 주주, 고객, 임직원, 파트너, 지역사회 등 이해관계자 모두를 고려한 지속가능경영 활동을 체계적으로 전개하고 공유하고 있다고 하여 ‘삼성화재 Mic-On’이 ‘지속가능경영사무국’에 직접 찾아가보았습니다. :)삼성화재 지속가능경영사무국은 윤리경영, 환경경영, 신뢰경영을 바탕으로 지속가능한 발전을 추구하고 있습니다. 매년 지속가능경영보고서를 발간해 삼성화재의 다양한 경영활동을 전파하고 있지요.  최근에는 ‘카본Re’ 프로젝트를 통해 환경 보호를 위한 캠페인에 동참하고 있다는데요. 이와 관련해 지속가능경영사무국의 김경민 선임을 만나 자세한 이야기를 들어보았습니다. Q. 삼성화재의 ‘카본Re’ 프로젝트가 무엇인가요?‘카본Re’ 프로젝트란 ‘카본(탄소)’과 ‘Re{Reduction(축소)&Recycle(재순환)}’의 합성어로, 탄소를 줄이고 재활용률을 높여 환경을 보전하는 캠페인입니다. 환경문제가 세계적으로 이슈가 되고 있는 만큼 탄소를 줄이는 캠페인에 동참하고 있는 것인데요.현재 시행하고 있는 세부적인 활동으로는 ‘대기전력 제로 캠페인’이 있습니다. 퇴근하기 전 대기전력을 차단함으로써 전기 소모를 줄이는 활동이지요. Q. 왜 보험회사에서 탄소저감 활동을 하나요?탄소저감 활동은 기업시민으로서 당연히 해야 할 의무입니다. 세계적으로 기후변화에 어떻게 대응하고 있는지 많은 관심이 있고, 해외 글로벌 선진사의 경우에도 임직원이 참여할 수 있는 캠페인을 포함해 여러 가지 활동들을 많이 늘려나가고 있어 저희도 동참하고 있는 것이죠.안전한 대한민국을 꿈꾸며 더 나은 환경을 조성하기 위해 꾸준히 노력해온 삼성화재! 그동안 효율적인 탄소경영을 위해 어떤 길을 걸어왔는지 되짚어볼까요?▷더 자세한 내용 알아보기 (클릭)‘카본Re’ 프로젝트를 비롯한 다양한 사회적 문제에 관심을 두고 공익적 활동을 이어가는 삼성화재! 그렇다면 지속가능경영사무국은 어떤 일을 하고, 무슨 비전을 가지고 있을까요? 지속가능경영사무국의 김민정 책임을 만나 이야기를 들어보았어요. Q. 지속가능경영사무국은 어떤 일을 하는 부서인가요?지속가능경영사무국은 매년 지속가능경영보고서를 발간하고 있습니다. 이 보고서는 회사의 재무적 성과뿐만 아니라 환경보호나 윤리경영, 사회공헌과 같은 비재무적 성과까지 담아 이해관계자에게 전파하기 위해 만들어지는데요. 삼성화재 홈페이지에서도 보고서를 확인할 수 있으니 시간 되실 때 읽어주시면 좋을 것 같습니다.▷삼성화재 지속가능경영보고서를 확인하고 싶다면? (클릭)Q. 만약 삼성화재가 ‘지속가능’하지 않으면 어떤 일이 생길까요?삼성화재와 얽힌 모든 이해관계자의 삶에 영향을 미칠 텐데요. 삼성화재라는 보험회사를 믿고 보험계약을 체결해주신 고객의 입장에서는 사고 발생 시 받아야 할 보험금을 제때 받지 못할 수도 있고, 주주나 투자자의 경우 재산상의 손실이 발생할 수도 있습니다. 또한, 임직원은 급여를 제대로 받지 못하는 경우도 발생할 수 있어요.하지만, 위와 같은 상황은 모두 가정일 뿐, 걱정하지 마세요! S&P AA-(대한민국 신용등급과 동급), AM BEST A++ Superior, 지급여력비율 321.5% 등 삼성화재의 지급 여력과 국제기관 평가는 국내 최고랍니다.Q. 삼성화재가 생각하는 지속가능경영은 무엇인가요?‘삼성화재’ 하면 바로 떠오르는 지속가능경영 활동들이 늘어나고 사회적 인식이 확산되는 것이 1차 목표입니다. 또한, 삼성화재가 하는 많은 활동이 하나의 브랜드가 되어 ‘삼성화재가 지속가능경영을 하고 사회에 기여한다’는 인식이 널리 퍼졌으면 하는 바람입니다. 지난번 삼성교통안전문화연구소에 이어 Mic-On의 두 번째 주인공 ‘지속가능경영사무국’을 만나보았습니다. 사회적 책임을 다하고 다양한 이해관계자와 공생하는 길을 모색하는 모습이 정말 든든한데요. 대한민국과 고객 여러분이 함께하는 한 삼성화재의 지속가능경영에는 마침표가 없습니다. :)#삼성 #삼성화재 #지속가능경영사무국 #기업문화 #조직문화 #구성원인터뷰 #팀워크 #협업
조회수 1484

미생과 스타트업

미생이라는 웹툰을 아는가.웹툰을 모르더라도 드라마로 한번쯤은 들어봤을 듯하다.미생을 처음 접한 것은 한창 직장생활에 지쳐있을 때였다.웹툰으로 퇴근길에 버스 안에서 직장인의 지침서라고 여길 정도로 푹 빠져있었다.신입으로 입사한 후임에게 권할 정도로회사 생활하는데 많은 사색과 물음을 던져 주는 작품이다.창업을 하고 한 동안 잊고 지냈다.TV를 안 보는 내 생활 속에서미생을 원작으로 한 드라마의 존재는 사실 끝나기 전까지도 모르고 있었다.뷰티 트렌드를 파악하기 위해 유튜브를 검색하다가우연히 철 지난 미생 드라마의 짤막한 편집 영상을 발견하였다.(출처: tvN "미생 "중에서, 영업3팀과 안영이)그렇게 하룻밤을 새워서 미생 영상을 찾아보며,다시금 나를 향한 물음을 되뇌게 되었다.창업을 결심하게 된 것은 대학생 시절부터였고,여러 가지 복합적인 이유가 지금의 길을 걷게 하고 있다.단 한 가지 이유로 창업하게 된 것은 아니다.주된 목적과 동기가 있지만 오직 그것 때문만 결정하지는 않았다.우리가 살아가면서 중요한 선택의 기로에 있을 때,단 한 가지 이유, 근거로 결정하는 일은 없다.다각적으로 고찰하고,다양한 이야기를 듣고,현재 상황에 대한 충분한 고려를 하고 난 후에야결정이라는 해답을 찾는다.마찬가지로창업을 결심한 것은 대학생 때였다지만,그 시기를 저울질할 때는 직장생활에서 느낀 좌절감, 부조리, 실망, 가능성, 확신 등의여러 요인들이 작용하였다.바둑을 조금 둘 줄 아는 나에게 있어미생이라는 단어가 특별하게 와 닿지는 않았었다.오히려직장 생활하는 중에 접한 미생 웹툰을 통해 특별한 단어로 느껴지기 시작했지.미생이라는 단어를 우리는 어떻게 볼 것인가완전히 살아있지 않은 상태를 어떤 시각으로 볼 것인가.1. 미생은 불합리하지만 현실이다.미생에 등장하는 인물들은 다들 능력이 있다.주인공 장그래를 비롯해서 오상식 차장, 안영이, 한석율부터악역처럼 인식되는 최 전무, 박 과장까지...드라마와 웹툰에서는 스토리 라인에 따라극적인 갈등을 그리기에악역이 존재하지만...이런 구분을 배제하고 오직 능력으로 보았을 때,이들은 모두가 능력이 출중한 인물들이다.마 부장의 꼰대 같은 모습이 싫겠지만(물론 나도 싫다),그가 대기업의 부장 자리까지 고만고만하게 올라온 사람이라고 볼 수 있을까?(출처: 윤태호 작가님의 웹툰 "미생" 중에서 박과장의 에피소드 중에서) 박 과장처럼 비리를 저지르는 인물에 대하여비난하는 것은 당연하겠지만그의 시작점에는 직장생활을 하면서큰 성과도 내고, 인정받는 능력자였다는 점을잊지 말아야 한다.그럼에도 완전하게 살지는 못하는 존재들!다른 시각에서 보면우리는 내심 장그래를 응원하고,오 차장과 영업 3팀에 몰입되어정의가 승리하길 고대했다.드라마 속 현실은 참 현실적이더라.인턴/비정규직이라는 한계!회사의 라인을 따라 흐르는 힘의 구도!시스템에 묻히는 개인의 개성들!우리는노력하고, 열정을 쏟은 만큼보상받길 원한다.그러나 삶은 꼭 그렇지가 않다는 것을 여실히 보여 준다.그리고 특히나 직장인 입장에서는 회사 다닐 맛을 잃어가게 된다.미생 시즌 1의 결말처럼 결국은 주요 인물들의 회사 밖으로 나가새로운 창업의 길을 걷게 되는 스토리를공감할 수밖에 없더라.2. 미생은 또한 가능성이다.미생은 살아있지는 않으나 죽지도 않은 상태를 뜻한다.아직은 완결 난 것이 아니라 다소 불리하게 보일지라도살아날 희망, 가능성이 있다는 점을 시사한다.직장에서 아등바등 하루하루 버티는 것은 신용카드 결제를 위함이라는 씁쓸한 농담이 있다.하지만 내가 직장을 다닐 적에는비록 적은 숫자가 통장에 찍혀도,회사 복지나 환경이 불만족스럽더라도가능성을 바라보고 출근했고,집을 향하면서 보람이라는 친구와 동행했다.물론 그 친구 옆에는 항상 피곤이라는 단짝도 있었지만 말이다.또 누군가에게는 승진이라는 희망을 가지고 이 꽉 물고 회사에 출근하기도 한다.지금의 위치보다 더 높은 곳을 바라고열정을 쏟는 직장인들도 존재한다.나와 같이 회사 밖 현실과 싸우는 부류가 있는 반면에나와 달리 회사 안 현실과 싸우는 부류가 있다.무엇이 옳고 그르냐는 넌센스다.내 입장에서는회사라는 시스템과 배경과 자원에본인의 능력을 발휘하여 임원이 되겠다는 꿈이더 승산이 높다고 생각한다."회사 생활이 전쟁터라고? 회사 밖은 지옥이야"뭐가 다르냐고?후방지원과 전우들이 있는 상태로 전쟁터에 나가는 것과혈혈단신으로 전쟁터로 나가는 것의 차이랄까?그 순간 전쟁터가 아닌 여기가 이래서 지옥이구나하고 파악했을 때, 직장을 그리워하게 된다.다니던 직장에서나의 능력은 십분 발휘되었다고 믿었다.실제로 큼직한 계약 건들과 기획한 사업들이 수익화 되는 모습에서자신감이 넘쳤었고,승승장구하면서 잠시 동안 내가 한가닥 하는 줄 알았다.마치 초창기의 박 과장처럼 말이다.이미 검증된 비즈니스 모델을 가지고,어느 정도 구체화된 아이디어와 계획들을 가지고동일한 패턴으로 창업을 수행한 초창기에....나는 무참히 깨지고, 실패하고, 좌절하고뒤늦게 회사 밖에서 깨닫게 되었다."내 능력이 아니라 회사의 능력이었구나"회사가 가진 레퍼런스들, 업력, 인프라, 영업망 등이 모든 것이 기본적으로 배경이 되어 주기에가능했던 일들이었다는 걸 간과하였다.나는 거기에 탑재된 부분적인 기능을 가진작은 소프트웨어에 불과했다.그러한 것들을 다시 무에서 유로 바꾸는 작업이상당한 시간과 비용이 수반된다는 점을부딪히고 아파보니까 알겠더라.회사생활이 합리적이지 않다고 생각했는데밖에 나오니까 합리적이라는 것이 보인다고 할까.그럼에도스타트업으로 출사표를 던진 나에게 있어서그때와는 또 다른 가능성과 희망을 품고 있다.오히려 이 부분에서 웹툰, 드라마 미생보다는살벌했던 "신의 한 수"란 영화가 더 피부에 와 닿는다.(출처: 영화 "신의 한수" 중에서, 안성기 님이 열연한 장님 바둑 고수)극 중 배우 안성기 님이 연기한장님인데 바둑을 두는 모습처럼....우리는 앞을 못 보면서 바둑을 두는모습이 더 가까울 것이다.안성기 님은 안 보여도 기억력이 좋아 바둑은 고수지만...우리는 안 보이면서 기억력도...안 좋은데... 우짜지?가능성이 희박하긴 한대...앞이 안 보이면, 다른 감각이라도극대화하여 고수가 되는 길을 선택했다.미생이라는 단어처럼 살았다고 할 수는 없지만, 죽지도 않아서완생이 될 기회를 노리며 준비하고 있다.3. 미생은 변화이다.불완전하다는 것은 또한 변화가 필요하다는 뜻이다.그대로 정체되어 있는 것이 아니라 활로를 찾아야 한다.완전하게 살아남기 위하여 한점, 한점 사활을 걸고 고민하며 묘수를 찾아야 한다.그리고 국면과 실리 사이에서 우리는 무리수와 승부수를 판단해야 한다.이 모든 활동은 지금 상황을 타개하기 위한,정체된 판세를 흔들기 위한,변화를 주어 성장을 도모하기 위함이다.이대로라면 이도 저도 아닌 게 아니라필패하게 된다.미생에 등장하는 인턴들을 보면,초반부에 모습과 후반부의 모습은 확연하게 차이가 난다.그들의 성장하는 과정을 우리는 엿볼 수 있다.정직원이라는 것이 최종 목표였다면,결과론적으로는 성장했으나 실패였다고 보겠지만삶이라는 판으로 보면, 미완에서 조금은 더 완성에 가까워졌다.발전하고, 더 성장하고, 더 기회를 만들 여지가 생겼다.스타트업도 마찬가지다.형세를 유지하려고 하는 것이 아니라형세를 바꾸려고 해야 한다.어느 정도까지 도달해야 완성이라고 부를 수 있을지는 나 역시 의문이다.하지만 미생이기 때문에 채워지지 않은 부분이 남아있다.그냥 흘러가는 대로, 판세에 따라 유유히 가다 보면,결착의 시점에서상대방이 준비해둔 포석에 놀아났다는 것을깨달았을 때는 이미 대국이 끝난 상태이다.우리가 준비한 포석대로,우리가 계획한 판세대로,흘러가게 하려면 변화를 주어야 하고,그 변화는 차별성, 기술, 인프라, 팀 빌딩 등 여러 가지 형태가 될 것이다.4. 대국이 끝났다고 다 끝난 것은 아니다.(출처: 이세돌과 알파고의  바둑대국, http://anngabriel.egloos.com/5978422)알파고와 이세돌 기사의 대국 장면은 전 세계가 주목하고, 많은 사회적 이슈를 생산해냈다.그중 가장 인상 깊었던 모습은대국이 끝나고 복기를 하는 이세돌 기사의 장면이다.알파고에게 패하고 나서 어디서부터 어느 부분에서놓친 부분이 있었는지복기하는 모습!다음 판에서 승리를 얻기 위해판을 되짚어 보는 것이다.다들 알파고가 승리한 것과이세돌 9단의 패배가 세상에 어떠한 영향을 줄 것인지에 대한이야기로 떠들썩할 때,묵묵하게 다음을 준비하는 모습이나는 오히려 더 멋지게 보이더라.그리고 그렇게 비록 한 판이지만이세돌 기사는 알파고를 상대로승리를 얻었다.작게는 하나의 판 안에서 미생이 존재하지만좀 더 범위를 넓히면,다음 판을 위한 미생이 존재하기도 한다.복기가 없이는 다음에 바뀌는 것이 없다.동일한 실수를 반복하는 것은실수가 뭔지 모르기 때문이거나실수를 알아도 대응하는 방법을 못 찾았기 때문이다.틀린 문제를 파악하지 못하면 다음에 비슷한 유형의 문제에서또 틀리게 되는 것이다.그래서 우리가 학창 시절,그렇게 많은 오답노트를 작성하지 않았던가.태생적으로 스타트업은 실수가 많지만,같은 실수를 반복할 만큼 여유롭지 못하다는 사실에우리는 복기의 능력을 최대한 살려야 한다.미완의 아름다움에 대한 수필을 읽은 적이 있다.완성된 것은 종결을 뜻하지만,미완은 아직도 변화와 더 채울 수 있음이 있어아름답다는 말이 참 멋들어진 표현이다.꼭 스타트업이 아니더라도,우리의 인생이 끝없는 미완의 연속일진대어느 순간이 되면,마치 다 알아버린냥,다 경험한 듯이 아는 채, 잘 난 채 하지는 않던가.우리가 늘 미완의 존재라는 사실을 인지하자.그러나...우리는 "미생"이라는 이름하에 제한을 걸어 놓으면 안 된다.미완이 아름다운 이유는 완성을 향하기 때문이기도 하다."나는 어차피 목표를 못 이룰 거야""내가 할 수 있는 것은 여기까지니까""흙수저 치고는 선방했어."이런 것은 미생이 아니라 대국을 포기한 것이다.완생을 바라고 성장해야 하는 미생과완생을 버리고 정체하는 미생은완전히 다르다.그래서 웹툰 미생의 시즌 2에서장그래와 영업 3팀이 주축이 된"온길"이라는 중소기업의다음 대국이 기대된다.열심히 시간을 쪼개서 글을 올리고 있습니다.비록 어줍지 않은 글이고,깊이가 얕은 글이지만...그래도 구독해주시고,심심할 때 한 번씩 들러주시는 분들께공해가 되지 않는 글이 되길 원합니다.그럼에도 말단에 조금은 회사 제품과 회사소개를 알리고자링크를 걸어 놓습니다.이제 막 제품을 첫 출시하다보니...한 분이라도 더 우리를 기억해 주십사,우리 제품을 돌아보길 바라며....추천과 지지서명 부탁드립니다.#클린그린 #스타트업 #창업가 #창업자 #마인드셋 #조언

기업문화 엿볼 때, 더팀스

로그인

/