스토리 홈

인터뷰

피드

뉴스

조회수 908

할아버지/할머니도 코딩을 해야 하는 이유

대부분의 교육은 초, 중, 고등학생이나 대학생 등 주로 젊은 층을 위주로 진행되고 있습니다. 프로그래밍 교육도 마찬가지로, 현재 10대에서 30대인 주로 젊은 층의 학생과 직장인들을 대상으로 교육이 서서히 일어나고 있습니다. 하지만 높아진 평균 수명으로 노인층이 급격히 늘어나고, 빠르게 변화하는 산업 아래 노인층의 재교육을 통한 지속적인 사회 활동이 요구 되는 시대가 되었습니다.2016년 한국의 인구분포도. 42–57세의 중장년층이 15–24의 청년층보다, 청년층이 0–9세의 유아층보다 월등히 많습니다. Wikipedia위 그래프에서 보이는 것처럼 이렇게 사회의 전체적인 평균 연령의 급격한 상승이 예고되어있음에도 불구하고, 고등학교나 대학까지의 일회성 교육이 아닌 전 연령층을 대상으로 한 지속적인 교육 제공은 아직 보편화 되어 있지 않습니다. 노인층 대상으로 진행되는 교육은 미미하며, 특히나 젊은층도 배우기 어려운 코딩 교육은 노인층에게는 교육이 불가능하거나 전혀 필요하지 않다고 여겨지고 있습니다.UC San Diego 대학의 Phillip Guo 교수Phillip Guo 교수는 HCI (사람-컴퓨터 인터랙션) 및 온라인/컴퓨터 교육 분야에서 명성이 높은 연구자입니다. Guo 교수는 처음으로 노인층에 대한 코딩 교육 연구를 진행하여 온라인에서 프로그래밍을 배운 52개국 60~80대 504명으로부터 다양한 설문조사와 심층조사를 진행한 결과를 CHI 국제 학술회에 출간했습니다. 본 연구 설명과 함께 엘리스에서 생각하는 로드맵을 소개합니다.연구본 연구는 http://www.pythontutor.com 웹사이트에서 실시된 온라인 코딩 교육 설문조사에 응한 504명의 60~85세 학생에 대한 심층 분석과 인터뷰로 이루어져있습니다. 이들이 코딩을 배우는 목적은 세가지 주요 요점으로 종합됩니다.첫째는 코딩을 배움으로서 노화되는 뇌를 자극하기 위함이고, 둘째로 젊은 시절 놓쳤던 새로운 기회를 잡기 위함, 그리고 마지막으로 어린 가족 구성원들과 소통하기 위함이었습니다.혼자 공부하는 방식의 교육은 온라인에서 특히 더 높은 이탈율을 보입니다.이들이 프로그래밍을 배우는 원동력은 교육을 통한 취업과 같은 정확히 정해진 목표보다는, 스스로의 동기부여 및 젊은층과의 소통을 위한 이유가 더 컸습니다. 코딩을 배우는 과정 중에 가장 힘든 세가지는 감퇴하는 인지력, 질문에 대답해 줄 수 있는 강사나 조교 혹은 학생이 없었고, 매번 변화하는 SW를 따라가기 어려움이 있었습니다. 첫번째를 제외한 나머지 어려움은 다른 연령층에서도 겪은 어려움이었습니다.마치며Philip Guo 교수의 논문에서 알 수 있는 것은 노인층이 노화하면서 겪을 수밖에 없는 배움의 어려움과 더불어, 현재 교육 시스템이 노인층을 전혀 고려하지 않고 있다는 것입니다. 이것은 노인층 대상의 교육을 더욱 어렵게 합니다.논문에서는 노인층에게 적합한 교육 시스템이 만들어지거나 제공된다면, 이들이 산업에 바로 투여될 수 있는 능력을 갖추기는 어려울 수도 있으나 프로그래밍 교육을 할 수 있는 선생님으로 활동할 수 있다고 서술하고 있습니다. 이를 활용하면 현재 현저히 부족한 SW 교육자 수로 어려움을 겪고 있는 공교육에 도움이 될 수 있습니다.엘리스에서는 라이브 교육 방송 진행, 헬프 센터 조교 도우미 등 학생들에게 좋은 교육을 제공하기 위해 부단히 노력하는 다양한 연령층의 온라인 조교님들이 계십니다. 언젠가는 60~80대 조교님이 활동하실 수 있다고 믿고 있습니다. 이러한 믿음을 주신 중2 아들을 둔 한 어머니의 피드백을 참조합니다. (엘리스 기초 자바 과정에서 최상위 점수를 받으셨습니다.)저는 전공도 인문학쪽이고 수학 싫어서 문과갔던 문과생인지라, 코딩처럼 논리력 요구하는 수업 따라가기나 할까 큰 기대없이 시작했었습니다.수업 초반에는 마냥 어리둥절했고, 시키는대로 따라하면 다 되었기 때문에 ‘어라 쉽잖아?’ 라고 느꼈습니다. 하지만 중반부 넘어가면서…클래스, 메소드라는 개념이 낯설기도 했고, 각종 연산자의 적용이나 변수들을 식에 적용시키는 다양한 패턴들이 적응이 잘 안되었어요. 반복문의 순서나 마침표,세미콜론, 콜론을 기억하지 못해서 다시 되돌아와서 확인한 것만도 수 십번이었습니다.다른 분들은 마치 초급 과정을 어디서 마스터 하고 온 것처럼 잘 따라가시는데, 저는 매 시간마다 헤매고 오류나고…하지만 똑똑한 것 보다 꾸준한 것이 더 낫다고… ‘머리가 안따라가면 더 오래 공부하면 되겠지’ 하고 다시 보고, 다시 풀고, 계속 질문하고그러나보니 어느 순간 이해가 가는 개념들, 저절로 외워지는 패턴들이 조금씩 늘어났어요.특히 실시간 강의라서 피드백을 받을 수 있고, 조교님이나 강사님들께 질문을 편하게 할 수 있는 시스템이 정말 좋았습니다. 비주얼 좋은 두 분이 수업을 진행해 주신 것도 좋았구요. 반응 좋은 우리 반 수강생들도 참 좋았습니다.저녁 설거지 해 두고 (때로는 저녁상을 치우기 바쁘게) 컴퓨터 앞에 앉아서 8주간 공부한 시간들이 저한테는 정말 소중한 시간이었습니다. 이렇게 집안 일 하고, 애들 챙기면서도 공부할 수 있고, 배울 수 있다는 것이 너무 좋습니다. 좋은 강의 열어주셔서 고맙습니다. ^^*p.s.수업 중에 어떤 분이 자바 알고리즘 강의 열어달라고 하시던데, 알고리즘이 뭔지 물어보고 싶었는데 못 물어봤네요 ㅋ#엘리스 #코딩교육 #교육기업 #기업문화 #조직문화 #서비스소개
조회수 889

전격! 어린시절 파헤치기

안녕하세요~!오늘은 미드레이트를 함께 만드는 분들의 어린시절을 탐험해보는 시간을 가져보려고 해요!^^미드레이트를 총괄하고 계신 대표님과 이사님들의 과거를 낱낱이(?) 파헤쳐보겠습니다먼저미드레이트 이승행 대표님의 어린이 시절을 만나볼까요~짜잔!! 너무나 똘망똘망하지 않나요!!지금의 부리부리한 눈빛과 카리스마는 갑자기 생겨난 게 아니었습니다어릴 때부터 좌중의 마음을 뒤흔들었을 것 같은 강렬한 눈빛~~어이쿠 계속 보고 있으니 깊고 까만 눈 속에 빠져드는 것 같습니다정신이 혼미~~이 아이가 어떻게 컸을까요어언 20여년이 흐른 후 ........짠대표님께서 이전에 SK E&C다니시던 시절 사진인데요^^화르륵젊음과 활활 타오르는 청춘이 느껴집니다!그리고오른쪽 뒤에 글자 보이시나요?"미래로, 세계로"저 때부터 이미 미래로, 세계로 나아가겠다는 대표님의 큰 꿈이 벽에 나타나고 있었습니다.어쩌면 이미 미드레이트가 대표님 마음 속에 탄생해서 자리 잡고 있었을지도 모르겠네요~그 다음 사진으로~단체사진임에도! 딱 센터에 눈에 띄는 분이 있죵~?요리보고 저리봐도 지금의 미드레이트 대표! 이승행 대표님!+ 뒤에 한 분 더 눈에 띄는 분이 있죵~?이미 짐작하신 분들이 많이 계시겠지만 ^^ 미드레이트의 개발을 담당하고 계신 백승한 이사님이십니다.두 팔을 벌려 우주의 기운을 받고 있는 듯 합니다.... :)이 기운을 받아 미드레이트를 건실하게 개발하고 계신 거라 믿습니다!!!한 번 더 독사진으로 만나볼까요~?이사님께서 이 때의 상황을 설명해주셨는데요소련 고르비 은퇴식 때 찍은 사진입니다라며......... ^^하핫 러시아 대륙 한파에도 정말 끄떡없을 것 같아 보이네요!그리고미드레이트에는 또 한 분의 이사님이 계시죠~^^자자~ 대표님과 함께 찍은 투샷으로 먼저 만나보겠습니다어디가서 못 보는이승행 대표님과 신규식 이사님의 얼마 지나지 않은 젊은 시절 대공개!두 분다 눈이 정말 초롱초롱하세요~~미드레이트는 초롱초롱 군단만 가입가능한걸까요?저는 아닌 것 같군요......하지만 마음만은 누구 못지 않게 초롱초롱하답니다!믿어주세요~~~믿어주신다고요? 감사합니다 사랑합니다 고객님흠흠,, 다시 본론으로 돌아가여기서 다시 더 먼 과거로 돌아가 신규식 어린이를 만나보겠습니다!나는 이 다음에 커서 세계를 제패할거야야망이 깃든 표정인걸요?이 때만 해도 몰랐었겠죠미드레이트라는 새로운 업체에서 새로운 일을 하고 있을지!각자 다른 곳에서 태어났지만SK라는 공간을 통해 만났고현재 미드레이트를 함께 이끌고 계신 세 분!이승행 대표님 & 백승한 이사님 & 신규식 이사님과거 사진을 엿보았는데요즐거우셨는지요!^^저만 즐거웠던 것 아니죠?ㅎㅎㅎ다음에 더욱 재미있는 이야기 들고 오겠습니다!Bye Bye~미드레이트 자주 방문하시고 다양한 투자 소식도 받아가세요!#미드레이트 #팀원 #팀원소개 #팀원자랑 #팀자랑 #회사문화 #조직문화 #기업문화
조회수 1267

[인터뷰] Humans of MEME, 그 마지막 주인공을 만나다. - 긍정의 힘을 지닌 듀크의 이야기

여러분 안녕하세요.미미박서의 평범하지만 특별한 이야기를 담아왔던 모뜨입니당!오홍 벌써 프로젝트의 마지막 이야기가 다가왔네요.Humans of MEME 의 마지막 주인공은바로 Global SCM 팀의 듀크입니다 !듀크의 솔직하고 담백한 이야기를들어보실까요 ?Q. 듀크가 담당하시는 업무인 SAP는 사내에서도 어렵다고 소문이 났는데요(쥬륵). SAP를 간략하게 소개해주신다면, 무엇인가요?A. 미미박스라는 회사가 원활하게 운영될 수 있도록 도와주는 시스템이 ERP(Enterprise Resource Planning : 전사적 자원 관리)이고 그 ERP 안에 여러가지 툴 중의 하나가 SAP이에요. 또 SAP에는 많은 프로그램들이 있는데, 그 프로그램을 개발하는 것이 abap 개발을 담당하고 있어요. 저는 컴퓨터를 전공하여 대학교 때부터 계속 컴퓨터만 해왔어요. SAP는 거의 대학교 과정에 없는 내용이라, 우연찮게 첫 직장에 들어가면서 처음 접했어요. 실무를 접하게 되면서 여러가지 상황에 대응하는 능력을 배우면서 적성에도 맞고 차차 젖어든 것 같아요. 전공에 따라 직업이 선택되기도 하지만 둘 사이의 직접적인 관련보다는 직업을 선택하는 것에 있어서 여러가지 경험 중의 한 단계인 것 같아요. 저도 컴퓨터가 전공이었지만 기획하고 여러가지 활동적인 일들도 하고 싶어서 찾아보기도 했었어요. 2가지 사이의 직접적인 연관은 없지만, 전공은 직업을 선택하는 데에 있어서 토대를 마련해주는 경험의 일종이라고 생각해요.  Q. 미미박스를 어떻게 만나게 되셨나요?A. 이전 직장 동료의 추천으로 미미박스에 합류하게 되었어요. 이전 직장의 동료들이 현재 미미박스의 동료들이기도 합니다(웃음). 저는 물론 하고 있는 업무도 중요하지만 동료와의 관계가 회사 생활의 50%를 차지한다고 생각해요. 동료와의 관계가 좋아야지 같이 시너지 효과를 내면서 분명히 업무 또한 잘 할 수 있는 것 같아요. 일도 마음도 잘 맞는 동료들과 함께 일을 하다보면 즐거운 일도 같이 공유하고 속상한 일이 있어도 서로 그때그때 풀 수 있어요. Q. 삶에서 도전적인 경험을 하신 적이 있으세요?A. 저는 늘 여린 외모때문에 주변 분들에게 약해보인다, 여려보인다 등 이런 얘기를 들은 적이 많아요. 그래서 그런지 몰라도 자꾸 무모한 도전을 해보려고 했던 과거 시절이 있었어요. 그 중의 하나로 대학교를 휴학한 후 자전거로 전국 일주를 다녀왔어요. 남들이 해보지 않은 경험을 해보고 싶었고 스스로 강해지고 싶다는 욕구도 있었어요. 저를 포함해서 친구들 3명과 같이 일주를 했어요. 저는 3이라는 숫자를 좋아해요. 2명이라면 싸울 수도 있는데 3명이라면 싸워도 2:1 이 되기 때문에 늘 그 자리에서 결론이 나거든요(웃음).서울에서 출발해서 미시령을 넘고, 강원도에서 부산으로 내려와, 부산에서 배를 타고 제주도를 갔어요. 제주도 한바퀴를 돌고 다시 배를 타고 목포에 도착했어요. 그렇게 목포에서 서울로 다시 올라왔습니다. 그렇게 총 한달 정도 걸렸어요.자전거로 한달 동안 전국을 돌면서 많은 사람들도 만났고 위험한 일도 많이 겪었어요. 무모하게 시작했던 것이지만 지금 돌이켜보면 가장 기억에 남고 제 자신의 한계를 시험해볼 수 있었던 것 같아요.자전거 전국일주를 하던 2002년의 듀크(좌)! WOWOWQ. 요즘 느끼시는 소소한 행복이 있으신가요?A. 최근에 아내가 아이를 출산했어요. 태어난지 현재 4개월 째가 되었는데 아이를 보는 낙에 살아가고 있어요. 제가 눈썹만 움직여도 아이는 꺄르르 웃으며 자지러지는데, 아이가 웃으며 결국 저도 웃거든요!저는 예전에는 운동하는 것이 특기이자 취미였어요. 이전에는 다른 즐거움이 분명히 있었는데 세월이 흐르다 보면서 또다른 즐거움을 맞이하고 있어요. 아내와 아이를 보면서 살아가는 데서 행복을 느끼고 에너지를 받는 것 같아요. Q. 듀크는 스스로 어떤 사람이고 싶으세요?A. 저는 늘 마음에 품고 있는 말이 있어요. 바로 ‘긍정의 힘’ 이라는 말이에요. 상황을 부정하고 의심하기보다 어려운 상황 속에서도 긍정적인 요소를 찾아낼 수 있어야 해요.먼저 긍정적인 마인드는 스스로를 변화시킬 수 있어요. 또한 저의 긍정적인 마인드를 통해 주변 사람들 또한 변화시킬 수 있는 것 같아요. 제가 긍정적인 에너지를 줌으로써 옆에 계신분들에게도 웃음을 전달할 수 있고 기쁜 순간들을 같이 할 수 있을 때 뿌듯해요. 앞으로도 저는 스스로에게도 긍정적으로, 주변 사람들에게도 긍정의 힘을 전파할 수 있는 사람이고 싶어요.듀크가 말한 긍정적인 마인드가 자신을 변화시키고나아가 주변 사람들도 변화시킬 수 있다는 힘과짧은 시간이나마 인터뷰를 진행하며 듀크의 긍정적인 기운을 느낄 수 있었어요 :)매일 행복할 수는 없지만행복한 일은 매일 있다는 말이 있듯이 여러분도 긍정의 힘을 믿어보시는 것은 어떠세요 !?이렇게 7번째 주인공 듀크를 마지막으로Humans of MEME 프로젝트가 끝나게 되었습니다.실화인가요?실화입니다.흫 여러분들은 이야기를 보며 어떠셨나요?저 모뜨는 인터뷰를 통해개인적으로나 회사의 속한 구성원으로서나새로운 자극을 받기도 하고 많이 성장할 수 있었던 시간이였습니다!판교 미미박스 본사 10층 플레이미미Humans of MEME 프로젝트는블로그에 올라오는 이야기 뿐만 아니라 미미박스 사내의 카페테리아에 매주마다 주인공들의 포스터가 붙여졌었답니다! (매주 포스터 구경하는 재미가 쏠쏠했다구여)Humans of MEME 는미미박서분들이 가장 많이 찾는 공간인 10층 플레이미미에서서로서로를 알아갈 수 있었던좋은 커뮤니케이션의 채널로서도 자리잡았었는데요!아쉽게도 프로젝트가 끝이 나게 되지만,미미박서 FOREVER 얍얍얍 미미박스 FOREVER 얍얍얍앞으로도 더 멋진 미미박서와 미미박스의 이야기로꾸준히 찾아오도록 하겠습니다 !안녕히계세요 !
조회수 1206

[Buzzvil Career] 좋은 디자이너는 어떤 사람일까요?

 버즈빌은 어떠한 인재를 찾는지 지원자에게 잘 알리려고 노력합니다. 그럼 지원자도 버즈빌이 자신에게 맞는 기업인지 알 수 있을 테니까요.  Buzzvil Career에서는 각 직무에 대해 더욱 심도 있는 정보를 제공합니다. 현재 채용 중인 디자이너 포지션을 여기에서 확인 해주세요. 이번 글은 지난 13년동안 디자인에 매진한 Max 에 대한 직무 인터뷰입니다. (그에 대한 자세한 내용은 LinkedIn 에서도 확인할 수 있습니다!) 그는 여전히 이 분야에서의 일을 즐기고 있고, 지난 4년 동안 수석 디자이너로 버즈빌과 함께 했습니다. 그가 생각하는 좋은 디자이너란 누구인지 함께 이야기해 보았는데요. 버즈빌과 함께 성장하고 싶은 디자이너라면 이 글에 주목해 주세요. 버즈빌에서 하루 일과를 설명해주세요. 저는 매일 일과를 차분하게 계획하기 위해 평화로운 오전 9시 정도에 출근해 하루를 시작합니다. 그러고 나서 Young, James, Lucas를 포함한 몇 명의 버즈빌리언과 9:30분에 명상을 즐깁니다. 오전 10시에는 팀원들과 daily scrum을 한 뒤 커피를 마시는 시간을 가져요. 이렇게 순조로운 업무를 위해 소통하며 하루를 시작합니다. 저는 오전에 생산성이 가장 높기 때문에, 어려운 작업은 이 시간에 모두 하려고 노력합니다. 에너지 반만 쓰면서 오후 내내 하는 것보다 오전 한 시간에 온전히 집중하면 더 많은 일을 할 수 있는 것 같아요. 그 후 최근 인기가 좋은 송리단길에서 새로운 맛집을 찾아 점심을 먹거나 회사에서 제공하는 아침 식사를 브런치처럼 간단하게 먹습니다. 오후는 보통 팀원들이나 다른 버즈빌리언들과 소통하고 팔로우업 하는 시간입니다. 하루의 마지막 시간들은 문서화 작업, 리서치,  벤치 마킹하며 시간을 보냅니다. 왜 버즈빌을 선택했나요? 버즈빌은 디자이너들에게 특별한 환경을 제공합니다. 회사는 창의성을 이해하고 각 팀의 분야를 존중하기 때문이죠. 각 팀은 팀원들이 직접 일을 어떻게 관리할지를 자유롭게 결정할 수 있습니다. 이것은 디자이너들이 일하는 방법을 찾고 끊임없이 개선하는데 적합한 환경이죠. 이러한 기업 문화는 보기 드물거든요. 버즈빌은 어떤 곳인가요? 버즈빌은 모두에게 자기 주도적일 것을 권합니다. 스스로 도전할 준비가 됐고 이를 위한 최상의 환경을 원하는 디자이너들에게 아주 적절합니다. 버즈빌의 디자이너는 한 가지 일이 아닌 많은 것을 하게 될거에요. 그리고 한가지 특정 분야에 매여 있지 않은 대신에 여러 가지 프로젝트들을 맡으며 역량의 범위를 무한대로 넓힐 수 있습니다. 아이디어가 있을 때, 그것을 실행에 옮기는 데 시간을 낭비하지 않도록 디자인 팀은 소통과 새로운 아이디어에 늘 열려 있어야 합니다. 버즈빌는 조화를 가장 중요시하는데요. 많은 IT 회사들은 종종 좋은 환경에 낮은 임금 또는 반대로 나쁜 업무 환경에 높은 임금 둘 중 하나만을 제공하잖아요. 그러나 여기 이곳은 훌륭한 기업 문화를 제공하면서 많은 직원 혜택과 결코 낮지 않은 임금을 제시합니다. 팀 분위기는 어떤가요? 버즈빌의 디자인 팀은 고효율을 매우 중요시합니다. 우리는 내부적으로 회사의 브랜드, 마케팅 그리고 자체 잠금화면 앱 서비스 허니스크린, 슬라이드조이 및  50개 이상의 파트너사의 잠금화면 앱들을 포함한 제품들에 관한 폭넓은 이슈를 다룹니다. 우리는 문제를 제기하고 이것을 빠르게 처리합니다. 그리고 한 사람이 똑같은 일을 두 번 할 필요가 없도록 현명하게 일할 줄 아는 디자이너들을 찾고 있습니다. 나를 포함한 여기 디자이너들은 기술적인 백그라운드를 가지고 있어서 문제를 더욱 쉽게 다루고 있습니다. 우리는 결국 IT 스타트업이기 때문에 필수는 아니지만, 프로그래밍 경험이 있는 지원자를 선호합니다. 우리는 제품이 어떻게 작동하고 어떻게 사람들의 삶을 변화시킬 수 있는지를 이해할 수 있어야 하기 때문이죠. 좋은 디자이너는 어떤 사람일까요? 호기심이 많은 사람: 좋은 디자이너는 평생 공부하는 사람입니다. 좋은 디자이너는 모든 디테일에 주의를 기울여야 하고 비지니스 측면을 포함하여 무엇이 중요한지를 이해해야 합니다. 디자인은 끊임없이 변화하는 분야이기 때문에 디자이너들은 항상 최신 트렌드나 이슈를 잘 알고 있어야 합니다. 행동하는 사람: 디자인은 아이디어를 실질적으로 구체화할 수 있는 능력을 가지는 분야입니다. 디자이너는 초기 단계일지라도 새로운 것을 시도하는데 절대로 주저해서는 안 됩니다. 리서치는 중요하고 과정의 일부이지만 아이디어를 실행으로 옮겨야 실력 있는 디자이너로 성장할 수 있지 않을까요. 잘 소통하는 사람: 디자이너들은 아이디어들을 전달하기 위해 시각 언어를 만들어내고 사용합니다. 공유하고, 가르쳐주고, 알려주고, 토론하고 더 나은 디자인을 위해 다른 사람들의 피드백에 근거하여 다시 디자인 작업을 반복하는 것이 디자이너들의 역할이죠. 그리고 한 사람이 훌륭한 디자이너가 될 수 있다고 한들 그가 아이디어를 나누는 방법을 모르면 그게 무슨 의미가 있을까요? 좋은 디자이너는 확실한 방법론을 가진 사람인데요. 방법은 모든 프로젝트의 기초가 됩니다. 자신만의 방법을 가진 디자이너는 다양한 프로젝트에 적응할 수 있습니다. 최신 디자인과 관련된 트렌드를 잘 알기 위해 Slack같은 툴을 이용하여 소규모의 온라인 커뮤니티를 시작하거나 가입하는 건 어떨까요. 기사를 읽고, 팟캐스트를 듣고, 관련 영상과 그것들 밑에 추천되는 콘텐츠를 접해도 되겠네요. 그런 콘텐츠를 통해 다른 디자이너들은 어떻게 문제를 해결하는지에 대한 좋은 아이디어를 얻는 게 중요한 것 같아요. 버즈빌에서 우리 디자인 팀은 더 커질 필요가 있고 우리는 함께할 최고의 팀플레이어를 찾고 있습니다. 여기에서 멋진 경험과 보람찬 모험을 함께 했으면 좋겠습니다. 현재 어떤 포지션을 채용 중인가요? (2018년 10월 기준) 현재 자율적으로 웹과 모바일 관련 프로젝트를 노련하게 담당해줄 Product Designer를 찾고 있습니다. 기술적이고 사업적인 분석까지 가능하여 상항에 맞게 잘 적응할 수 있는 분이였으면 좋겠습니다. 무엇보다 팀워크가 중요하다는 것을 잘 이해하고 팀원들과 함께 공유하고 배우고 참여하는 디자이너라면 지원해주세요. 개인적으로 그리고 팀원으로 함께 성장했으면 좋겠습니다.   *버즈빌의 채용공고(전문연구요원 포함)를 확인하고 싶으면 아래 버튼을 눌러주세요!
조회수 2230

덕업일치를 이룬 옐로오투오 로컬사업부 신입왕, 이휘재 매니저

안녕하세요, 매력 넘치는 옐로피플을 발굴해 소개하는 Y의 옐플 인터뷰 18번째 이야기! 이번 주인공은 옐로오투오 로컬사업부에 입사한지 반년도 되지 않아 좋은 성과로 모두를 놀라게 한 ‘이휘재 매니저’입니다. 평소 좋아했던 야구선수와 함께 작업을 진행하며 덕업일치를 이룬 이야기부터 그가 얘기해 주는 노하우까지! 그의 흥미진진한 이야기를 놓치지 마세요~안녕하세요! 옐블 독자들을 위해 간략한 자기소개 부탁 드립니다. 안녕하세요, 옐로패밀리 여러분! 1월부터 옐로오투오 로컬사업부에 조인한 이휘재입니다. 잘 부탁드려요!옐로오투오 로컬사업부에서는 어떤 일을 하고 계세요? 소상공인 마케팅을 돕는 컨설팅을 하고 있습니다:) 서울오빠나 당근웹 등의 내부 솔루션들을 필요로 하는 소상공인들에게 연결해 드리는 거죠. 자영업하시는 분들 중 온라인에 대한 이해도가 낮은 분들이 있는데요, 그런 분들에게 저희 사업을 소개해드리고 사업을 온라인으로 가져올 수 있게 도와드리고 있습니다:)최근 사업부 내에서 좋은 성과를 내셨다고 들었어요! 쑥스럽네요^^ 사실 동료, 선배들이 갓 입사한 저를 너무 잘 이끌어 주시고 많은 도움을 주신 덕분에 계약 성과가 좋았던 것 같아요. 처음에는 모르는 분들, 그것도 홈페이지에 대한 이해도가 낮거나 니즈가 없는 분들에게 상품을 설명하는게 굉장히 어려웠어요. 그래도 많은 도움을 받아 차차 철판을 깔기 시작했죠ㅎㅎㅎ전 직장에서도 컨설턴트 직무를 맡았었나요? 네, 졸업 후 10개월 정도 컨설턴트 일을 하다가 동생과 함께 옷가게를 잠시 운영했어요. 장사를 하다 보니 같은 일을 하면서 고민을 공유하고 협업했던 게 그립더라고요. 다시 컨설턴트 일을 하고 싶은 마음에 입사하게 됐습니다:) 옐로모바일 사내카페에 엄청 끌렸었는데 동대문 본사로 출근을 하게 돼서 조금 아쉬운 면이 없지않아 있어요ㅋㅋ 그래도 함께 일하는 팀들이 너무 좋아서 만족하며 다니고 있어요.로컬사업부 단체사진10개월이라니! 그 연차에 좋은 성과를 낼 수 있었던 노하우가 있을까요? 저는 서비스에 대한 자신감이라고 생각합니다. 본인이 내가 판매하는 서비스에 자신감이 있어야 한번도 만난 적 없는 사람을 설득시킬 수 있는 것 같아요. 설득을 해야 하는 자영업자분들 대부분이 저보다 나이도 경력도 많은 분들이고, 제가 무슨 의도로 전화를 걸었는지 다 아시더라고요. 그런 분들을 설득하기 위해서는 본인이 먼저 충분히 설득 되어야 한다고 생각해요. 자신감이라! 자신감을 쌓는 방법은 무엇일까요? 우선 두려워하거나 확신이 없으면 절대 안될 것 같아요. 그래서 처음에는 제가 기본적으로 배경지식이 있고 관심있는 업종을 공략했어요. 그 산업에 대해 조금이라도 알고 있다면 클라이언트들과 대화하기 수월하고 자신감이 붙으니까요! 그리고 컨설팅 하는 과정에 문제가 있으면 함께 하는 팀원들, 선배들이 바로 피드백을 줄 수 있는 환경에서 근무하고 있어요. 혼자서는 절대 깨달을 수 없는 습관이나 실수에 대한 피드백을 듣고 바로 잡으면서 더욱 자신감이 생기는 것 같습니다.로컬 사업부 비즈니스의 차별점이 있다면 무엇일까요? 저희의 가장 큰 강점은 토털 서비스가 가능하다는 점인데요, 모든 일들을 본인이 직접 고민하고 결정해야 하는 소상공인들에게 비즈니스를 성장시키기 위해 함께 고민해주는 파트너가 생긴다는 건 정말 큰 힘이 됩니다. 저희 로컬사업부는 실제 홈페이지와 같은 솔루션 제작 뿐 아니라 운영을 위한 컨설팅, 광고 전략 수립, 사후 케어까지 온라인을 통한 비즈니스가 안착될 수 있도록 다양한 방안으로 서비스를 제공하고 있어요:)입사 이후 가장 기억에 남는 에피소드가 있나요? 제가 야구를 굉장히 좋아하거든요. 그중 몇 년 전에 은퇴한 조규수 선수 팬이었어요. 얼마전에 리틀야구단과 컨설팅 계약을 했는데, 감독 이름이 ‘조규수’라고 되어 있더라고요. 설마 했는데, 정말 제가 좋아했던 선수라 너무 신기하고 설레었습니다:) 함께 업무 진행하면서 싸인볼도 받았는데 성공한 덕후라는 게 이런 거구나를 느꼈죠.영광의 싸인볼! 두둥지금까지 일하면서 다양한 피드백이 있었을 것 같아요. 최근 개인 변호사 사무실을 개업한 분이 이었습니다. 온라인 비즈니스에 약한 분이라 영업도 항상 전화나 대면으로만 진행하셨다고 하더라고요. 온라인 비즈니스에 대한 니즈도 크게 없으셨고요. 오랜 설득 끝에 웹사이트를 개설해드리고 온라인 상으로 상담할 수 있는 솔루션 교육까지 진행해 드렸습니다J 이후 온라인을 통한 상담 요청이 많아지고 댓글을 통해 피드백을 주고 받으면서 저희 서비스에 대한 만족도가 높아지셨어요. 나중에는 비즈니스에 많은 도움이 됐다며 고맙다는 인사도 전해 주시더라고요. 이 일을 하면서 가장 뜻 깊었던 순간이 아닐까 싶어요:) 와, 혹시 기존에 온라인 비즈니스를 적극적으로 하지 않고 있지만 도움이 될 수 있는 분야를 꼽아 본다면 무엇이 있을까요?아까 말씀드렸듯, 저는 동대문 청평화시장에서 옷가게를 운영했는데요. 도매업이고 MD들이 직접 와서 옷을 수백 장씩 가져가기 때문에 대부분의 가게들이 홈페이지 조차 만들지 않아요. 소매로 쇼핑몰하는 클라이언트들의 영역을 침범하는 것이라 생각하시기 때문이죠. 그런데 이걸 일반 소비자가 아닌 사업자들 대상으로만 판매하는 온라인 쇼핑몰을 운영한다면 보다 효율적으로 비즈니스가 가능하지 않을까 라는 생각입니다.동대문 청평화시장에서 운영했던 매장회사에게 바라는 점이 있다면? 음, 사원들끼리 소통할 수 있는 시간이 더 많아졌으면 좋겠어요. 팀원들끼리 소통하면서 많은 것들을 배우고 있는데, 다른 팀과는 대화할 기회를 만들기가 쉽지 않더라고요. 회사차원에서 서로 편하게 이야기할 수 있는 자리를 자주 만들어준다면 서로 시너지도 나고 에너지도 받으면서 일 할 수 있을 것 같아요!  마지막으로 한마디 부탁 드립니다! 제가 하는 일이 모르는 사람들을 상대해야 하는 분야이다 보니 어려움이 있어요. 그렇지만 함께 일하는 동료, 선배들 덕분에 짧은 기간에 좋은 성과도 낼 수 있었다고 생각합니다. 저도 앞으로 계속 연차가 쌓이면 후배가 생길 텐데, 제가 선배들에게 받았던 것처럼 후배들에게 조언을 해줄 수 있는 좋은 선배가 되고 싶어요. 로컬사업부 파이팅! 옐로오투오 파이팅!!
조회수 1949

AWS Rekognition + PHP를 이용한 이미지 분석 예제 (2/2)

이전 글 보기: AWS Rekognition + PHP를 이용한 이미지 분석 예제 (1/2)Overview지난 글에서는 AWS Rekognition을 이용해 S3 Bucket에 업로드한 이미지로 이미지 분석 결과를 확인했습니다. 이번엔 더 나아가 Collection(얼굴 모음)을 생성해보고, 얼굴 검색을 해보겠습니다.1. Collection 만들기Collection은 AWS Rekognition의 기본 리소스입니다., 생성되는 각각의 컬렉션에는 고유의 Amazon 리소스 이름(ARN)이 있습니다. 컬렉션이 있어야 얼굴들을 저장할 수 있습니다. 저는 ‘BrandiLabs’라는 이름의 Collection을 생성했습니다.1-1. createRekognition 메소드를 이용해 손쉽게 Collection 을 생성합니다.# 클라이언트 생성 $sdk = new \\Aws\\Sdk($sharedConfig); $rekognitionClient = $sdk->createRekognition(); # 모음(Collection) 이름 설정 $collection = array('CollectionId' => 'BrandiLabs'); $response = $rekognitionClient->createCollection($collection); 1-2. Collection이 정상적으로 생성되었다면 아래와 같은 응답을 받습니다.[ { "StatusCode" : 200 "CollectionArn" : "aws:rekognition:region:account-id:collection/BrandiLabs" /*...*/ } ] 2. Collection에 얼굴 추가IndexFaces 작업을 사용해 이미지에서 얼굴을 감지하고 모음에 추가할 수 있습니다. (JPEG 또는 PNG) 모음에 추가할 이미지에 대해서는 몇 가지의 권장사항[1]이 있습니다.두 눈이 잘 보이는 얼굴 이미지를 사용합니다.머리띠, 마스크 등 얼굴을 가리는 아이템을 피합니다.밝고 선명한 이미지를 사용합니다.권장사항에 최적화된 사진은 S3 Bucket 에 업로드되어 있어야 합니다. 미리 ‘kimwk-rekognition’ 이라는 이름으로 버킷을 생성 후 제 사진과 곽정섭 과장님의 사진을 업로드해두었습니다.2-1. IndexFaces 메소드를 이용해 얼굴을 추가합니다. 예시에서는 제 얼굴과 곽 과장님의 얼굴을 인덱싱했습니다.$imageInfo = array(); $imageInfo['S3Object']['Bucket'] = 'kimwk-rekognition'; $imageInfo['S3Object']['Name'] = 'kwakjs.jpg'; $parameter = array(); $parameter['Image'] = $imageInfo; $parameter['CollectionId'] = 'BrandiLabs'; $parameter['ExternalImageId'] = 'kwakjs'; $parameter['MaxFaces'] = 1; $parameter['QualityFilter'] = 'AUTO'; $parameter['DetectionAttributes'] = array('ALL'); $response = $rekognitionClient->indexFaces($parameter); 각각의 요청 항목에 대한 상세 설명은 아래와 같습니다.Image : 인덱싱 처리할 사진의 정보입니다.CollectionId : 사진을 인덱싱할 CollectionId 입니다.ExternalImageId : 추후 인식할 이미지와 인덱싱된 이미지를 연결할 ID 입니다.MaxFaces : 인덱싱되는 최대 얼굴 수 입니다. 작은 얼굴(ex. 배경에 서 있는 사람들의 얼굴)은 인덱싱하지 않고 싶을 때 유용합니다.QualityFilter : 화질을 기반으로 얼굴을 필터링하는 옵션입니다. 기본적으로 인덱싱은 저화질로 감지된 얼굴을 필터링합니다. AUTO를 지정하면 이러한 기본 설정을 명시적으로 선택할 수 있습니다. (AUTO | NONE)DetectionAttributes : 반환되는 얼굴 정보를 다 가져올 것인지 아닌지에 대한 옵션입니다. ALL 로 하면 모든 얼굴 정보를 받을 수 있지만 작업을 완료하는데 시간이 더 걸립니다. (DEFAULT | ALL)2-2. Collection에 정상적으로 얼굴이 추가되었다면 아래와 같은 응답을 받습니다. 사진 속 인물의 성별, 감정, 추정 나이 등의 정보를 확인할 수 있습니다.[ { "Face":{ "FaceId":"face-id", "BoundingBox":{ "Width":0.28771552443504333, "Height":0.3611610233783722, "Left":0.39002931118011475, "Top":0.21431422233581543 }, "ImageId":"image-id", "ExternalImageId":"kimwk", "Confidence":99.99978637695312 }, "FaceDetail":{ "BoundingBox":{ "Width":0.28771552443504333, "Height":0.3611610233783722, "Left":0.39002931118011475, "Top":0.21431422233581543 }, "AgeRange":{ "Low":20, "High":38 }, "Smile":{ "Value":false, "Confidence":85.35209655761719 }, "Eyeglasses":{ "Value":false, "Confidence":99.99824523925781 }, "Sunglasses":{ "Value":false, "Confidence":99.99994659423828 }, "Gender":{ "Value":"Male", "Confidence":99.35176849365234 }, "Beard":{ "Value":false, "Confidence":94.80714416503906 }, "Mustache":{ "Value":false, "Confidence":99.92304229736328 }, "EyesOpen":{ "Value":true, "Confidence":99.64280700683594 }, "MouthOpen":{ "Value":false, "Confidence":99.4529037475586 }, "Emotions":[ { "Type":"HAPPY", "Confidence":2.123939275741577 }, { "Type":"ANGRY", "Confidence":6.1253342628479 }, { "Type":"DISGUSTED", "Confidence":19.37765121459961 }, { "Type":"SURPRISED", "Confidence":7.136983394622803 }, { "Type":"CONFUSED", "Confidence":30.74079132080078 }, { "Type":"SAD", "Confidence":9.113149642944336 }, { "Type":"CALM", "Confidence":25.382152557373047 } ], "Landmarks":[ { "Type":"eyeLeft", "X":0.45368772745132446, "Y":0.31557807326316833 }, … ], "Pose":{ "Roll":5.615509986877441, "Yaw":-5.510941982269287, "Pitch":-17.47319793701172 }, "Quality":{ "Brightness":93.13915252685547, "Sharpness":78.64350128173828 }, "Confidence":99.99978637695312 } } ] 3. 얼굴 검색드디어 얼굴 검색의 시간이 왔습니다. searchFacesByImage 메소드를 이용하면 지금까지 그래왔던 것처럼 쉽게 얼굴 검색을 할 수 있습니다. 저는 ‘kimwk2.jpg’ 라는 또 다른 제 얼굴 사진을 S3 Bucket에 업로드해뒀습니다. 얼굴 검색이 제대로 이루어졌다면 응답으로 제 ExternalImageId (kimwk) 가 내려올 것입니다. 한 번 해볼까요?3-1. searchFacesByImage 메소드를 이용해 얼굴 검색을 합니다.$imageInfo = array(); $imageInfo['S3Object']['Bucket'] = 'kimwk-rekognition'; $imageInfo['S3Object']['Name'] = 'kimwk2.jpg'; $parameter = array(); $parameter['CollectionId'] = 'BrandiLabs'; $parameter['Image'] = $imageInfo; $parameter['FaceMatchThreshold'] = 70; $parameter['MaxFaces'] = 1; $response = $rekognitionClient->searchFacesByImage($parameter); 3-2. 정상적으로 검색이 되었다면 아래와 같은 응답을 받습니다.[ { "Similarity":99.04029083251953, "Face":{ "FaceId":"FaceId", "BoundingBox":{ "Width":0.23038800060749054, "Height":0.2689349949359894, "Left":0.2399519979953766, "Top":0.08848369866609573 }, "ImageId":"ImageId", "ExternalImageId":"kimwk", "Confidence":100 } } ] SearchFacesByImage는 기본적으로 알고리즘이 80% 이상의 유사성을 감지하는 얼굴을 반환합니다. 유사성은 얼굴이 검색하는 얼굴과 얼마나 일치하는지를 나타냅니다. FaceMatchThreshold 값을 조정하면 어느 정도까지 유사해야 같은 얼굴이라고 허용할지를 정할 수 있습니다.Conclusion이미지 분석 알고리즘과 얼굴 검색 기능을 직접 구현하려 했다면 시간이 많이 걸렸겠지만 AWS 서비스를 이용하면 이미지 분석을 금방 할 수 있습니다. 이 기능을 잘 활용하면 미아 찾기나 범죄 예방과 같은 공공 안전 및 법 진행 시나리오에도 응용할 수도 있겠죠. 다음엔 보다 재밌는 주제로 찾아오겠습니다.참고[1] 얼굴 인식 입력 이미지에 대한 권장 사항[2] Amazon Rekonition 개발자 안내서[3] 모든 예제는 AmazonRekognition, AmazonS3에 대한 권한이 있어야 함글김우경 대리 | R&D 개발1팀[email protected]브랜디, 오직 예쁜 옷만
조회수 10483

Next.js 튜토리얼 7편: 데이터 가져오기

* 이 글은 Next.js의 공식 튜토리얼을 번역한 글입니다.** 오역 및 오탈자가 있을 수 있습니다. 발견하시면 제보해주세요!목차1편: 시작하기 2편: 페이지 이동 3편: 공유 컴포넌트4편: 동적 페이지 5편: 라우트 마스킹6편: 서버 사이드 7편: 데이터 가져오기 - 현재 글8편: 컴포넌트 스타일링9편: 배포하기개요꽤 그럴듯한 Next.js 애플리케이션을 만드는 방법과 Next.js 라우팅 API의 모든 장점을 배웠습니다.대부분의 경우 데이터 소스에서  원격으로 데이터를 가져와야 합니다. Next.js는 페이지에 데이터를 가져오기 위한 표준 API를 제공합니다. getInitialProps라 불리는 비동기 함수를 사용하여 구현할 것입니다.주어진 페이지에 원격 데이터 소스를 통해 데이터를 가져오고 원하는 페이지에 props을 통해 전달할 수 있습니다. 서버와 클라이언트 둘 다 동작하도록 getInitialProps를 작성할 수 있습니다. 그래서 Next.js는 클라이언트와 서버에서 모두 사용할 수 있습니다. 이번 편에서는 getInitialProps를 사용하여 공개된 TVmaze API에서 가져온 데이터로 배트맨 TV 쇼에 대한 정보를 보여주는 애플리케이션을 구현할 예정입니다.설치이번 장에서는 간단한 Next.js 애플리케이션이 필요합니다. 다음의 샘플 애플리케이션을 다운받아주세요:아래의 명령어로 실행시킬 수 있습니다:이제 http://localhost:3000로 이동하여 애플리케이션에 접근할 수 있습니다.배트맨 쇼 데이터 가져오기데모 애플리케이션 내의 home 페이지에 블로그 포스트 목록이 있습니다. 배트맨 TV 쇼 목록을 표시할 것입니다.쇼의 데이터들을 하드코딩하는 대신에 원격 서버에서 그 정보를 가져옵시다.여기서는 TV 쇼를 가져오기 위해 TVMaze API를 사용합니다.TV 쇼 정보를 검색하는 API 입니다.먼저 isomorphic-unfetch를 설치해야 합니다. 데이터를 가져올 때 사용할 라이브러리입니다. 브라우저 fetch API 구현을 간단히 할 수 있도록 만들어진 것이지만 클라이언트와 서버 환경에서 모두 동작합니다.npm install --save isomorphic-unfetchpages/index.js를 다음과 같이 변경해주세요:위의 페이지에 있는 모든 내용은 아래에 표시된 Index.getInitialProps를 제외하고는 익숙할 것입니다:애플리케이션의 어떤 페이지에든 추가할 수 있는 정적 비동기 함수입니다. 이것을 사용하여 데이터를 가져오고 가져온 데이터를 props를 통해 페이지로 보낼 수 있습니다.보다시피 배트맨 TV 쇼 데이터를 가져오고 'shows' props를 통해 페이지로 전달합니다.위에서 보았던 getInitialProps 함수에서 가져온 데이터 숫자를 콘솔에 출력합니다.이제 브라우저 콘솔과 서버 콘솔을 살펴봅시다. 그리고 페이지를 새로고침 해주세요.페이지를 새로고침 한 후 출력되는 메시지는 어디에서 보였나요?- 서버 콘솔- 브라우저 콘솔- 둘 다- 어떤 콘솔에도 출력되지 않았다서버에서만 출력됩니다이 경우 메시지는 서버에서만 출력됩니다.이는 서버에서 페이지가 랜더링되기 때문입니다.이미 데이터를 가지고 있어 클라이언트에서 다시 정보를 가져올 필요가 없습니다.post 페이지 구현하기TV 쇼에 대한 자세한 정보를 보여주는 "/post" 페이지를 구현해봅시다.먼저 server.js를 열고 /p/:id 라우트를 다음과 같이 바꿔주세요.위처럼 바꾼 코드를 적용하기 위해 애플리케이션을 재실행시켜주세요.이전에는 title 쿼리 파라미터를 페이지에 매핑했습니다. 이제 id로 이름을 바꿔야합니다.다음과 같은 내용으로 pages/post.js를 변경해주세요.페이지의 getInitialProps을 살펴봅시다:여기에서 함수의 첫 번째 파라미터는 context 객체입니다. 정보를 가져올 때 사용할 수 있는 쿼리 필드를 가지고 있습니다.예제에서 쿼리 파라미터로부터 보여지는 ID를 선택하고 TVMaze API로부터 데이터를 가져옵니다.이 getInitialProps 함수에서 표시할 제목을 출력하는 console.log를 추가했습니다. 이제 어디에서 출력되는지 볼 수 있습니다.서버와 클라이언트의 콘솔를 둘 다 열어주세요.그 다음 홈페이지 http://localhost:3000로 이동하여 배트맨 쇼 제목을 클릭하세요.위에서 애기했던 console.log 메시지가 보여지는 장소는 어디인가요?- 서버 콘솔- 브라우저 콘솔- 콘솔 둘 다- 아무 콘솔에서도 출력되지 않는다클라이언트 사이드에서 데이터 가져오기브라우저 콘솔에서 메시지를 볼 수 있습니다.클라이언트 사이드를 통해 포스트 페이지에 이동했기 때문입니다. 그런 다음 클라이언트 사이드로부터 데이터를 가져오는 것은 가장 좋은 방법입니다.예를 들어 http://localhost:3000/p/975에 직접 이동한다면 클라이언트가 아닌 서버에서 메시지가 출력되는 것을 볼 수 있습니다.마무리데이터를 가져오고 서버 사이드에서 렌더링하도록 만드는 Next.js의 가장 중요한 기능 중 하나를 배웠습니다.대부분의 유스 케이스에서 충분히 사용할 수 있는 getInitialProps의 기본을 배웠습니다. 더 많은 것을 배우고 싶다면 Next.js의 문서 중 data fetching 문서를 참고할 수 있습니다.#트레바리 #개발자 #안드로이드 #앱개발 #Next.js #백엔드 #인사이트 #경험공유
조회수 811

브랜딩 용어사전: ‘좀 더 잘’은 얼마나 ‘잘’인가

이제 마지막 이야기가 될 듯 합니다. 뭔가 대단한 것을 적을 건 아니고... 이제껏 했던 내용들을 한 번 총정리해보려고 합니다. 사실 써놓고도 시간이 조금 지난 후 다시 정리된 내용들도 있더라구요. 주로 일을 하면서 쓰는 터라 새로운 일과 경험이 쌓일때마다 또 '그게 아니었구나....' 하면서 수정하고 바뀌는 경우들이 주로 있습니다. 그런 의미에서 이번 글도 몇 달 지나면 또 여러가지 사건들로 인해 조금은 바뀔 수도 있겠죠? 얼른 여러가지 사건(=일)이 생겨서 빨리 생각이 바뀌었으면 좋겠습니다. 그래야 저도 전세집을 구하고... 책상도 사고..침대도 사고...긁적브랜딩이라고 하는 것은?원래는 소비자의 마음속에 어떻게 뭐..이렇게 하거나, 연합을 구축하거나, 기업과 고객간의 관계를 재규정하거나 뭐 기타 등등...논문과 학술지, 전문가님들의 정의들이 우르르 많지만 제 생각엔 실무자에게 있어 브랜딩이란... 네, 그것은 원래 하던 것을 더 잘하는 겁니다. 뭔가 새로운 영감이 떠올라서 갑자기 일을 우르르 벌리는 것이 아니구요. 브랜딩회의는? 업무분장과 예산, 디테일의 삼박자를 만드는 과정입니다. 그 중 대부분은 업무분장과 예산, 디테일에서 망하더라구요. (뭐 굳이 하나만 꼽으라면 역시 예산의 문제가 크겠죠.)슬로건이란?슬로건은 우리 회사가 하는 일과 당신에게 줄 수 있는 경험을 10글자 내외로 설명하는 겁니다. 그 중 '가치'라는 단어를 빼셨으면 합니다. 그건 회사의 정의 그 자체이니까... '역전 앞' 과 같은 표현이랄까요.보일러플레이트란?회사소개란 얘기죠. 슬로건을 조금 풀어서 우리는 어떤 기업인데, 어떤 일을 하고 있고, 이것이 너와 나에게 어떤 도움이 되는 지를 설명하는 3줄 남짓의 텍스트를 말합니다. 중요한 건 3줄의 말이 모두 똑같은 얘길 3번 반복하고 있으면 안된다는 점입니다.회사소개서란?20페이지 남짓의 PPT로 만들어진 분기별 일거리입니다. 주로 마케터나 디자이너가 만들더군요. 스타트업은 한 달에 한 번씩 바뀔 때도 있었습니다. 원래는 앞단에 1,2페이지로 비지니스모델과 매력포인트를 몰아넣고 끝내는 게 좋습니다만... 주로 20페이지 내내 비슷한 얘길 반복하고 있죠. 주로 사람들은 20페이지를 챕터별로 쪼개서 3페이지는 회사소개, 비전/사업히스토리 소개/서비스소개로 쓰고 간지를 하나 넣은 후 사업영역3개를 5페이지씩 쓰면 되겠지? 라고 생각합니다만...현실적으론 20페이지를 끝까지 정독하는 경우는 없습니다.브로슈어란?브로슈어는 통독용입니다. 그걸 자세히 읽는 사람은 없습니다. 소개서도 마찬가지이고, 사실 리플렛도 그렇고...생각해보니 대부분 그렇군요. 일단 기본적으로 소비자들은 나머지 뒷부분에 대해선 별 관심이 없습니다. 그 자세한 이야기들에 관심을 지니는 이들은 실제로 구매욕구가 있는 이들이죠. 그러나 이건 표지, 최초3페이지에서 후킹이 되었을 때 얘기입니다.브로슈어는 기본적으로 잘 읽혀야 합니다. 정보를 막 때려박는 게 아니죠. 단언컨데 브로슈어에 텍스트와 그래프, 대충찍은 이미지가 가득하다면 그건 길거리에서 나눠주는 "하나님은 실존하는가?" 정도의 리플렛과 비슷한 운명이 될 지 모릅니다.리플렛이란?리플렛은 더 브로슈어보다 더 대충 읽히는 자료입니다. 더 짧고, 더 강렬하고, 더 필요한 것들만 가득해야 합니다. 사업의 모든 영역을 다 자세하게 설명하는 용도가 아니라, 사람들을 궁금하게 만들고 더 알아보고 싶게끔 매력을 뿜어내는 게 리플렛입니다. 그러니까 리플렛에 뭔갈 쏟아붓는 행위는 소개팅에서 처음 만난 상대방이 자신의 치과이력과 어릴 적 예방접종 맞은 주사이름까지 쏟아내는 것과 같습니다.브랜딩이 잘 되었다...의 의미는?그그..거기 뭐더라? 거기 그거 되게 잘하는 곳 있는데. 기다려봐 찾아볼께. 어디였지?라는 소리가 나오면 최고의 브랜딩이라고 생각합니다. 이름이나 로고같은 건 어렴풋이 기억나도 됩니다. 그런거 일일이 다 각인시킬 필요없습니다. 그곳을 찾고, 알려주고 싶어서 직접 구글을 켜거나 페이스북 앱을 켜서 스크롤을 마구 올리며 찾게만드는 힘.. 이 훨씬 중요하죠. 그런 이미지. 그런 느낌. 그런 경험이 더 중요해요.그렇게 되려면?단정짓긴 어렵습니다만, 제가 생각하는 가장 중요한 브랜딩의 요소는 디테일입니다. 그런 이미지와 그런 느낌은 멋진 광고와 사은품으로 만들어지지 않습니다. 스치는 인사, 환불절차, 문자메시지 하나, 매장의 점원, 제품의 배송상태 하나하나에서 만들어지는 것이죠. 실무자는 어디서 공부해야할까?브랜딩을 따로 공부할 수 있는 방법은 없더라구요. 그걸 체계적으로 알려준다고 해도... 사실 너무 케바케인터라 성공사례 몇개를 주루룩 보여주면서 이런 레퍼런스가 있어~ 그러나 구체적인 방법은 네가 알아서 하는거야!~ 라는 식의 책들이 너무 많아서 답답하더군요. 실무자는 현장에서 공부하는 게 맞는 것 같습니다. 매장이 있는 회사라면 매장에서 직접 고객들의 행동을 보는 거고, 앱을 만드는 회사면 앱을 사용하는 사람들을 직접 관찰하고 지켜보는 겁니다. 서베이도 중요하지만, 사용자들의 표정/행동/고민 등을 직접적으로 확인하고 느낄 수 있는 현장만큼 중한 것은 없는 듯 합니다. 그냥 책상에서 브랜딩의 모든 것이 결정된다면 그건 뭔가 잘못되었습니다.브랜딩은 꼭 필요할까?브랜딩의 의미가 회사소개서와 로고를 만드는 것...이라고 한다면 '아니요' 입니다. 하지만 하던 일을 더 멋지게 잘 해내는 것..이라는 의미라면 필수입니다. 사실 로고나 소개서나 슬로건 이나....이런 건 딱히 필수적인 게 아닙니다. 없어도 됩니다. 그런거 없어도 훌륭하게 열심히 고객들의 찬사를 받으며 일하시는 대표님들이 널렸더라구요. 책에 나오는 회사의 목적, 비전, 왜 사업을 하는 지 why...를 맨날 찾으라고 하는데 그것도 굳이 안찾아도 됩니다. 성실하게...진심을 다해서 우직하게 본인의 업에 충실하시면 됩니다. 브랜딩은 '하는 게' 아니라 '되어지는 것' 입니다. '카페, 진정성' 의 김대표님이 비전을 세우고 why를 찾아가며 밀크티를 만든 게 아닙니다. 브랜딩은 신뢰와 꾸준함이니까요. 그동안 20화에 걸쳐서 요즘 핫한 키워드인 '브랜딩'에 대한 이야기를 해보았습니다. 그 중에서도 실무자들을 위한 브랜딩이야기를 하려고 노력했습니다. 노력이 좋은 결과가 되었는지 모르겠습니다. 최대한 현장감 넘치게 써보려고 하였으나 그럼에도 주제가 주제인터라 여전히 뜬구름은 아니었는지 우려가 있습니다. 사실 아주 개인적인 관점이 많습니다. 저는 브랜딩이라는 단어가 막 어마무시해지고 무슨 만능열쇠처럼 그려지는 게 못마땅한 사람이니까요. 원래 브랜딩은 기본중에 기본이고, 당연히 모든 회사는 고객과 어떤 '관계'를 맺으며 어떤 경험을 선사하기 마련입니다. 그 과정에 좀 더 집중하고 잘 만들어내는 게 브랜딩이지요. 어떤 방식으로 어떤 이미지를 만들지는 컨트롤하려고 노력할 뿐 최종적인 결정권은 소비자들 자신에게 있습니다. 사실 좀 무책임하게 들릴 순 있겠으나... 진인사대천명이란 다소 뻔한 고사성어가 가장 잘 어울리는 영역이 아닐까 싶습니다. 다만, 이번 매거진에서 하고싶었던 얘기가 있습니다. 브랜딩이 무용하다거나, 전략에 대한 회의론을 논하고자 하는 것이 아닙니다. 당연히 수많은 브랜딩전략은 나름의 이론적 근거와 데이터를 통해 정립된 가치있는 결과물입니다. 때문에 전략과 방법론에 대한 이해와 공부는 매우 중요합니다. 다만, 일부... 그러한 지식과 전략만이 전부인 것 처럼 비춰지는 것을 경계하고 싶었고, 나아가 해당 지식이 왜곡되거나 단순히 특정부분만 부각되어 '서로가 힘든' 업무로 변해버리는 것을 더더욱 경계하고 싶었습니다. 분명 브랜딩은 실무자입장에선 '업무' 입니다. 그러나 어떤 업무가 될 지는 우리가 결정할 수 있는 문제이지요. 결코 쉽지 않은 작업입니다. 많은 시간과 노력, 비용이 들어가는 일이지요. 그리고 대표 혼자서도, 특정 직원 혼자서 할 수 있는 일도 아닙니다. 브랜딩만큼 모두가 함께 힘을 기울여야 하는 영역도 드물죠. 하지만 가치있는 일임은 분명합니다. 내가 속한 곳의 이미지를 바로 세우고, 많은 사람들의 애정어린 시선을 만들어내는 작업이니까요. 기왕 하는 일이라면 좀 더 '서로가 편한' 일이었으면 좋겠고, 들인 시간과 노력의 도착지가 우리가 원했던 그곳이었으면 좋겠습니다. 오늘도 현장에서 열심히 뛰고 있는 실무자분들과, 그들과 함께 브랜드를 키워나가기 위해 고민하고 잠못드는 대표님들을 응원합니다.부족하고 편협한 제 글이 조금이라도 도움이 되었길 기원합니다 :)감사합니다.
조회수 1045

Node.js - Event

Event(이후 '이벤트'로 통칭)Node.js(이후 '노드'로 통칭)는 이벤트 기반 비동기 방식으로 작동한다. 그러므로 노드를 잘 다루기 위해서는 이벤트에 대해 이해하여야 한다.노드에서 이벤트를 호출하고 여러 처리를 하기 위해서는 EventEmitter 객체를 상속받아 구현해야 한다.아래 예제 코드를 통해 EventEditter를 상속받은 객체를 가지고 이벤트를 생성하고 호출하는 등 여러 처리하는 법을 살펴보자.* 코드 복사붙여넣기가 필요한 경우 http://madeitwantit.tistory.com/32 에서 가능하다.EventEmitterEventEmitter 클래스는 events 모듈에 의해 정의되고 제공된다.EventEmitter = require('events');위와 같이 EventEmitter를 정의할 수 있다.EventEmitter의 메서드EventEmiter.on('이벤트 이름', '리스너 함수') - 지정한 '이벤트 이름' 이벤트에 '리스너 함수'를 리스너 배열 가장 끝에 추가한다. EventEmiter.once('이벤트 이름', '리스너 함수') - on() 메서드와 기능이 비슷하다. 다만 이 메서드로 등록된 리스너는 일회성으로 한 번 실행된 후 제거된다. EventEmiter.addListener('이벤트 이름', '리스너 함수') - on() 메서드와 같다.EventEmiter.emit('이벤트 이름'[, arg]...) - '이벤트 이름'  이벤트에 등록된 리스너 함수를 등록된 순서에 따라 호출한다. 이벤트가 존재한다면 true, 그 외에는 false를 반환한다.EventEmiter.setMaxListeners(n) - EventEmitter는 디폴트로 최대 리스너 수가 10으로 지정되어 있다. 10보다 더 많은 리스너를 등록할 때 사용한다. Infinity나 0을 지정하면 제한 없이 리스너를 등록할 수 있다.EventEmiter.getMaxListeners() - 현재 EventEmitter에 지정된 최대 리스너 수를 반환한다.EventEmiter.listenerCount('이벤트 이름') - '이벤트 이름'에 등록되어 있는 리스너의 수를 반환한다.EventEmiter.listeners('이벤트 이름') - '이벤트 이름'에 등록되어 있는 리스너 배열의 사본을 반환한다.EventEmiter.removeAllListeners(['이벤트 이름']) - 모든 리스너나 파라미터에 지정한 '이벤트 이름'의 리스너를 제거한다.EventEmiter.removeListeners('이벤트 이름', '리스너 함수') - '이벤트 이름'에 등록되어 있는 특정 '리스너 함수'를 제거한다. 같은 리스너가 여러 개 등록되어 있으면 이 메서드를 여러 번 호출해야 한다.EventEmitter의 이벤트'newListener' - 새로운 이벤트를 등록할 때, 추가될 리스너를 리스너 배열에 추가하기 전에 호출된다. 이벤트에 리스너가 전달되기 위해 이벤트 이름과 추가될 리스너가 전달된다.'removeListener' - 리스너가 제거된 후 호출된다.하단의 예제를 통해 newListener가 호출되는 시점에 대해 살펴보자.                                                              * 코드 복사붙여넣기가 필요한 경우 http://madeitwantit.tistory.com/32 에서 가능하다.참고문헌:모던 웹을 위한 Node.js 프로그래밍 - 윤인성Haruair (http://haruair.com/blog/3396)Node.js Documentation (https://nodejs.org/api)조대협의 블로그 (http://bcho.tistory.com/885)#트레바리 #개발자 #안드로이드 #앱개발 #Node.js #백엔드 #인사이트 #경험공유
조회수 4009

스포카 한 산스2.0에 관한 몇 가지 단편적 사실들

안녕하세요. BX디자이너 김동휘입니다.스포카에서 했던 프로젝트 중 가장 애착이 가는 프로젝트를 꼽으라면, 스포카 한 산스 프로젝트를 첫째로 꼽을 것입니다. 몇번 이와 관련된 글을 남기려고 했지만, 2.0버전이 나오고서야 글을 쓰게 되었네요.이 글에선 스포카 한 산스 새 버전 공개를 앞두고 스포카 한 산스 공식 웹에 다 담을 수 없었던 자잘한 업데이트 이야기, 스포카 한 산스에 관한 몇 가지 흥미로운 사실, 그리고 작업자의 소회 등을 단편적으로 기록해보려고 합니다.1) 영문 대문자 롤백애초에 스포카 한 산스의 영문 대문자를 커스텀 한 이유는 한글과 영문을 함께 썼을 때 영문의 자간과 자폭이 유독 좁아 보이는걸 보완하고자 함이였습니다.하지만 실제로 스포카 한 산스로 영문을 타이핑했을 때, 대문자만 쓰면 자간이 너무 벙벙해졌고 소문자와 함께 쓰면 자간이 부조화스러웠습니다. 또한 강제로 넓힌 자폭 및 자간을 다듬는 것은 아마추어가 건들기엔 더 전문적인 지식과 많은 시간을 필요로 하는일이었음을 깨닫고 원래 상태로 돌리기로 했습니다.2) 대문자 Q의 모양모든 대문자를 원래 상태로 돌린 건 아니였습니다. 대문자 Q는 디자인에 큰 변화를 겪었습니다.소문자 y의 꼬리 또한 마찬가지 이유로 커브를 쫙 펴주는 작업을 해주었습니다. 노토산스 CJK KR에 심긴 영문은 한글과의 어울림을 고려하여 디자인된 게 아니고 기존에 있던 오픈산스를 그대로 가져와 옮겨심은 것이기 때문에 완벽하게 매칭된 상태는 아닙니다. 그래서인지 개인적으로도 한글은 다소 딱딱한 느낌인데 반해 영문은 비교적 둥글둥글하다는 첫인상이였습니다. 또한 라토 서체에서 커스텀해 옮겨온 숫자 글리프도 쭉쭉 뻗은 모양새입니다. 이전 스포카 한 산스 작업당시 소문자 l의 꼬리 끝을 과감히 잘라낸 이유 중 하나도 한글 및 숫자 글리프와는 어울리지 않는다 판단했기 때문입니다.스포카 한 산스 2.0 작업을 하면서 스포카 한 산스의 기존 커스텀 방향을 좀 더 충실히 따르기로 했고 Q와 y도 대세를 따라 둥근 꼬리를 버리고 단호한 꼬리를 달게 되었습니다.숫자와 함께 쓰인 영문 예시 도판을 보시면 의도가 더 설득될지도 모르겠습니다.4) “,”와 “?”, ? 모양도 마찬가지로 대세를 따릅니다. 참고로 쉼표 모양을 변경하면서 참고했던 Apple 산돌고딕 Neo의 경우 , . ? “ ” ‘ ’ 모두 획의 끝을 각진 스타일을 맞춰줬으나 스한스는 그렇게까지는 안 하기로 했습니다.내가 만약 서체 디자이너라면 각진 스타일을 모두 맞춰주었겠지만, 스포카 한 산스 프로젝트의 최종 목표는 완벽한 서체를 만드는 것이 아니라 우리 서비스에 최적화된 서체를 (빨리) 커스텀하는것이였으므로 타협을 하기로 했습니다. 아래 Apple산돌고딕 Neo 소문자 i와 j의 점 모양을 보시면 타협한 이유가 보이실 텐데요, 이걸 고치기 시작하면 고칠 게 너무 많아지기 때문입니다.5) 소문자 a물론 이 모든 변화는 디자이너와 리뷰어들의 취향 또한 반영합니다. 이 변화의 경우 다른 이유보다 취향 탓이 더 큰 듯합니다. 오픈산스의 a는 사발(bowl) 부분이 다소 처진 느낌입니다. 이 사발 윗면의 경사 또한 부드러운 인상에 한몫한다고 판단, 경사를 완만하게 만들었습니다.노토산스CJK KR 소문자 a과 스포카 한 산스 2.0 소문자a6) 숫자폭과 숫자 1, 4 글리프서비스 특성상 숫자가 잘 읽혀야 하며 숫자의 단위를 가급적 빨리 인지할 수 있게 해야 했습니다. 특히 여러 수치를 리포트 형식으로 보여주는 페이지가 많으며 각각의 데이터값을 쉽게 비교해야 하는 서비스 특성을 반영해 개선했습니다.노토산스의 숫자를 보면 한글이나 영문 속에서 섞여 있을 땐 글줄이 매끈하게 썩 잘 어울리지만 숫자만 쓰였을 땐 그 장점이 단점으로 작용합니다.스포카 한산스 2.0과 노토산스CJK KR, 영문과 숫자를 함께 썼을 경우스포카 한산스 2.0과 노토산스CJK KR, 숫자 형태 비교기존 스포카 한 산스는 형태에 대한 커스텀은 라토를 가져옴으로 해결했지만 자폭에 대한 고려는 하지 못했습니다. 왜냐하면 각 숫자 글리프의 형태가 단순한 1부터 양옆으로 빵빵한 8에 이르기까지 다양했기 때문에 각 숫자의 공간을 동일하게 주기 어려웠기 때문입니다. 특히 1의 공간을 해결하기 너무나 어려웠는데요, 이번엔 라토 1의 모양대로 밑에 받침을 넣어주고 상단의 삐침을 길게 빼줘서 고정폭이 되더라도 어색해 보이지 않게 개선했습니다.스포카 한 산스 1.0의 1과 2.0의 1 모양 비교라토 4 획의 끝을 각지게 바꾸면서 다소 생뚱맞은 특징이 하나 생겼는데, 이를 반듯하게 다듬어주었습니다. 위의 숫자 1의 변화와 함께 놓고 보면 훨씬 안정적으로 바뀌었음을 느낄 수 있습니다.스포카 한 산스1.0과 2.0, 각각의 숫자14 글리프 모양 비교8) ☃ 글리프 교체단순히 귀여움을 위해 눈사람 글리프도 스포카 캐릭터로 심어주었습니다.스포카 캐릭터 포포, 푸이 캐릭터 원형9)_, - 수정.한글, 일본어 및 숫자를 주로 사용하는 서비스 특성에 맞춰, 숫자와 관련된 기호를 영문 소문자 디센더를 상대적으로 덜 고려한 위치로 옮겼습니다.수학 공식의 마이너스 부호는 너비를 늘리고 커스텀한 숫자에 맞춰 높이를 약간 낮췄습니다. 고객이 태블릿 입력창에 기입한 휴대폰 번호의 가독성이 높아야만 했기 때문에 너비를 충분히 넓혀주어 앞뒤 숫자들이 명확히 구분되게끔 했습니다.이런 변화는 숫자의 변화와 마찬가지로 인쇄를 위한 매끈한 글줄을 조판하고자 할 땐 거슬릴 수 있습니다. 키보드에 있는 마이너스 부호는 수학 공식에 쓰이기도 하지만 하이픈이나 구간을 나타내는 엔대시와도 혼용하고 있기 때문입니다. 엔대시가 포함된 글 한 단락을 조판한다고 가정했을 땐, 이런 변화는 글줄이 다소 끊겨 보일 테니 말입니다.10) <, >키보드에 ‘<’, ‘>’는 사실 수식의 부등호란 사실 알고 계셨나요?(…) 나 또한 스포카 한 산스 커스텀 하면서 알게 된 사실입니다. 허나 이미 수많은 사람이 이를 괄호처럼 사용하고 있으므로, 이게 괄호처럼 쓰여도 과히 이상해 보이지 않았으면 했고 이를 반영한 결과가 다음과 같습니다. 물론 수학 부등호와 괄호를 분명히 구분해주는 것이 맞지만, 많은 사람들이 귀찮고 특수문자를 찾아 넣기 힘들다는 이유로 혼용하고 있기 때문에 이를 무시할 수 없다고 생각했습니다.1참고로 과거의 나와 많은 사람이 <, >와 혼용하는 이 부호의 명칭은 꺾쇠괄호 혹은 홑화살괄호 〈 〉라고 합니다.11) |, \, /, (, ), {, }, [, ] 위치 및 길이 수정노토산스CJK KR의 경우 영문의 어센더 디센더를 모두 고려한 길이와 위치로 설정되어있었습니다. 그래서 한글이나 숫자, 그리고 디센더가 없는 영문 글리프와는 좀 어색한 모양새입니다. 모두 고려해주면 좋겠지만, 당장은 한글과 숫자 사용이 월등히 많으므로 한글과 숫자에 어울리는 길이와 위치로 변경해주었습니다. 단 완벽하게 한글과 숫자에 최적화를 한 건 아니며, 어쩌다 영문 소문자와 함께 쓰여도 이상하지 않을 정도로 타협을 보았습니다.참고로 산돌 네오고딕의 경우, 노토산스 CJK KR과 달리 영문서체도 모두 산돌에서 제작을 했음을 생각하면 영문의 디센더와 어센더의 높이를 한글에 맞게 길들인 것으로 짐작이 됩니다. 따라서 버티컬 라인의 위치와 길이가 별다른 조정 없이도 한글, 영문, 대소문자 숫자 모두 잘 어울립니다.(, ), {, }, [, ]도 디폴트값이 영문을 기준으로 되어있던 위치를 한글과 숫자 위주로 조절해주었습니다.12) ※, 〶, ‹, ›, «, », 『, 』, 「, 」, 『, 』, 「, 」, 《, 》, 〈, 〉각종 글리프 중 자주 쓸만한 글리프들의 굵기를 웨이트에 맞아 보이게 조절습니다.『, 』, 《, 》, 「, 」, 〈, 〉의 경우 사실 유니코드 표준상으로는 전각이 맞습니다.2 하지만 한글 조판 방식의 특성이 고려가 안 된 표준이라 글자 사이를 엄청나게 띄워놓아 가독성을 해치고 글줄에 구멍을 만듭니다. 물론 어도비 프로그램에서는 몇 가지 설정으로 쉽게 미세조정이 가능하나 디자인 툴이 갖춰져 있지 않거나 웹앱 등에서는 미세조정이 불가능하므로 강제로 반각으로 고쳤습니다.3 그러고 보니 스포카 한 산스의 커스텀 내용 중 많은 수가 디자인툴에서만 수정 가능한, 하지만 범용 애플리케이션에서도 니즈가 있던 부분들을 적용해주는 작업이네요.13) ¥ $ ₩ %숫자 글리프를 전면 수정하면서, 숫자와 주로 함께 쓰이는 통화기호도 숫자 외형 변화에 발맞춰야 했습니다.퍼센트 기호의 경우, 스한스 버전 1 때는 단독으로 예뻐 보이는 방향으로 취향껏 고치는 바람에 똥글똥글한 모양에 세로획이 다소 두꺼운 모양이었으나, 숫자 0과 영문 Oo과 잘 어울리지 않는다고 판단, 기존 모양으로 돌아가 획 굵기만 재수정하였습니다.14) 각종 글리프 패스 정리다소 부끄러운 고백이나, 폰트랩이 익숙지 않아서 처음 스포카 한 산스 작업할 땐 수정하고픈 글리프를 모두 일러스트레이터로 그려서 폰트랩에 옮겨오는 식으로 작업했습니다. 이 과정에서 패스가 일그러지는 부분들이 다수 생겼고, 2.0작업하면서 거의 모두 폰트랩으로 다시 그리거나 패스를 정리하였습니다. 웹에서 보면 그리 티 나지 않지만 디자인툴인 일러스트레이터나 인디자인으로 써놓고 크게 확대해보면 일그러진 패스들이 보입니다.스포카 한 산스1.0 글리프 ?, 숫자 4의 패쓰 찌그러진 것을 스한스 2.0에서 개선한 모습 비교15)“스포카”를 검색하면 가장 먼저 뜨는 연관검색어는 스포카의 서비스인 “도도 포인트”가 아니고 “스포카 한 산스”입니다. 스포카에서 진행한 오픈소스 프로젝트 중 가장 흥한 프로젝트는 스포카 한 산스 프로젝트라고 내부적으로 평가하기도 합니다.16)처음 스포카 한 산스를 공개했을 땐 피드백과 문제를 받기 위한 메일주소를 공개했었습니다. 덕분에 유익한 피드백을 받기도 했었지만 한편으론 우리도 끝내 해결 못 한 문제나 노토산스 자체 버그를 해결해달라는 문의도 많이 들어왔습니다. 현재는 해결 못하는 문제들을 기록하는 채널을 통일하고, 다른 분들도 모두 이슈를 확인하실 수 있도록 github 이슈로만 제보 받고 있습니다. 직접 해결해드리고 싶지만 본업이 서체 디자이너나 서체 개발자는 아닌지라 안타까운 마음일 뿐…17)한번은 스포카 한 산스 적용 중에 생긴 문제 해결을 위해 자사에서 사용 중인 개발 디테일을 알려달라는 메일이 오기도 했었습니다. 이에 개발 디테일은 공개할 수 없다고 답변드리자 스포카 한 산스 프로젝트 전체를 총체적으로 폄하하는 메일을 받기도 했었습니다. 당시엔 황당했지만 지금은 오픈소스 프로젝트에 대한 견해나 이해도 차이가 낳은 헤프닝이라고 생각합니다.18)사용문의 메일이 (아직도) 심심찮게 옵니다. 주로 기업에서의 사용문의인데, 여러분 그냥 묻지 말고 쓰셔도 됩니다.19)경쟁사에서 본인들 웹사이트에 해당 서체를 사용하는 걸 발견하고 모두가 어이없어했는데, 그로부터 몇 개월 후 스포카는 그 경쟁사를 인수하게 되었습니다. 420)2017년 2월부터 산돌커뮤니케이션의 서체 관리 프로그램인 ‘구름다리’를 통해 스포카 한 산스 2.0 버전을 제공하게 되었습니다. 산돌커뮤니케이션은 바로 노토산스CJK KR의 한글을 제작했던 서체 회사입니다.21)스포카 한 산스 프로젝트를 하고 난 후, 이따금 내가 처음부터 만들지도 않은 서체를 우리 회사 이름을 붙이고 적극적으로 홍보하는 것에 대해 가끔은 떳떳하지 않은 기분을 느꼈습니다. 나는 서체 디자이너가 아니며, 그렇기때문에 아무리 우리가 쓰기 좋게 만들었다 한들 서체만을 전문으로 디자인하는 전문가 입장과는 상충할 수밖에 없다고 생각했습니다. 커스텀 퀄리티에 대해 자신이 없기도 했고요.하지만 최근에 한글타이포그래피학교에서 진행하는 안삼열 님의 섞어짜기 특강을 들을 기회가 생겼고 우리의 방향성은 틀리지 않음을 확인했습니다.5 한글과 영문을 함께 쓴다는것은 두 문명의 충돌이기에 모든 조건에 100% 만족하게끔 섞어 쓰는 건 어려운 일이고, 어떻게 서로를 “길들”일지는 디자이너의 선택에 따라 방향이 달라질 수 있는 것이지요. 어떤 의도로, 무엇에 초점을 맞춰 서로를 길들일지 판단하는 것은 디자이너의 몫인 것입니다.스포카 한 산스가 어디에 주로 쓰일 것인지 명확했고, 철저히 그 조건에 부합하려고 노력했습니다. 노토산스CJK KR은 한글을 디자인한 디자이너가 영문이나 기타 글리프를 직접 디자인한 게 아니고 오픈산스를 가져와 붙인 것입니다. 물론 한글과 영문을 함께 쓰기에 부족함이 없도록 노력한 흔적들이 많고, 디자이너라면 이를 잘 찾아 적용할 수 있을 겁니다. 하지만 일반인들이 이런 방법을 알기는 힘들며, 앞서 말했듯 범용 애플리케이션에서 적용하기엔 어려운 점이 있습니다. 그럼에도 불구하고 노토산스CJK KR은 장점이 압도적인 서체이고, 감사하게도 오픈소스로 풀리는 바람에 우리 같은 아마추어도 서체를 새로 만드는 수고에 비해 아주 적은 노력만을 들여 개조할 수 있었습니다. 우리가 개발자 문화에 친숙했고, 오픈소스란 개념이 낯설지 않았던 덕택에 이런 문명의 혜택(?)을 입을 수 있었던 것입니다.이제는 이 프로젝트가 일종의 “리메이크”에 가깝다고 느낍니다. 상황에 맞게 기성 음악을 믹싱해서 틀거나 원하는 의도대로 리메이크 하듯, 우리도 서체를 리메이크한 것이지요.현재, 다른 웹사이트에서 심심찮게 스포카 한 산스를 발견할 수 있습니다. 숫자를 많이 쓰는 기업의 웹사이트에서 스한스를 많이 적용한 걸 보면 장점이 명확한 걸로 보입니다. 물론 우리 제품에서도 잘 쓰고 있고요. 이 정도면 꽤 성공한 프로젝트 아닐까요?22)Contributor : 김동휘, 강영화Reviewer : 김예지, 박지선, 정희연Technical assistance : 양천웅, 홍민희, 문성원, 유은총, 김재석, 박준규, 최종찬, 강성용Inspection of English contents : 옥지혜한국타이포그라피학회의 심우진 님의 논문 “한글 타이포그라피 환경으로서의 문장부호에 대하여”를 읽어보면, 주류 여론으로는 문장부호와 산술기호를 구분하는 것으로 보입니다. “6.3. 폰트 호환성 저하 부등호를 꺾쇠괄호의 대용으로 사용하는 한글 폰트도 많이 출시되어 있으나, 5.1에서 언급한 바와 같이 제작 방식에 차이가 있어 한글 폰트끼리의 크기, 위치 편차가 크다(그림 18)” ↩다음 각 항목의 링크를 클릭해 더 자세한 정보를 확인해보세요. 『(왼쪽 겹낫표), 』(오른쪽 겹낫표), 《(왼쪽 겹화살괄호), 》(오른쪽 겹화살괄호), 「(왼쪽 낫표), 」(오른쪽 낫표), 〈(왼쪽 홑화살괄호), 〉(오른쪽 홑화살괄호). ↩한국어의 조판방식과 유니코드 표준이 거리가 멀기 때문에 다른 한국 서체 회사들도 반각으로 임의로 고친 서체(산돌네오고딕, 나눔고딕 등)를 출시하기도 합니다. ↩‘쿠폰·포인트 적립 1위’ 스포카, 2위업체 전격 인수 ↩안삼열 님의 실제 의견과 본 블로그에 기재된 글쓴이의 의견이 다를 수 있습니다. ↩#스포카 #디자인 #디자이너 #폰트 #인사이트 #경험공유 #후기 #일지
조회수 620

나쁜 선택이란 없다

고3 시절 자발적 재수를 선택할 때도,대학원 논문을 접을 때도,5년 전 뒤늦게 라식을 결심할 때도,8개월 전 퇴사를 결정할 때도,시작은 다분히 우발적이었다.모든 선택은돌이켜 보면 섣부른 감정으로 시작되었고,판단의 순간은(돌이켜보면) 찰나였지만,순간 순간의 고민은 심해를 뚫는 듯 했다. 그럼에도 나는 큰 결정을 꽤 많이 해 온 편이다.그리고 후회도 잘 하지 않는다.모든 선택에는 기회비용이 발생하고얻는게 있으면 잃는 것이 있는건 당연한 법이다.잃게 될 무언가 때문에대부분의 선택이 문 앞에서 '현상 유지'로 돌아선다.크나큰 결단을 하게되면잃어버린 기회비용 만큼이나 변화에 적응해야하는과도기가 필요하다.그것은 항상 진통처럼 온다. 진통의 과정은수고스럽지 않은 경우가 없었고 인내가 필요하다.그리곤 아픈 만큼 새 살이 올라오는 경험을 가졌다.하지만되돌아 보면선택 자체가 무언가 결정짓는 것이 아니라,선택한 후 그것을 받아들이는 마음가짐이  모든 것을 좌우했던 것 같다.이제는두려워 하지 않는다.선택을 즐기고,결정할 수 있는 용기를 발휘할 수 있음에 감사하고,그 과정을 만끽할 뿐이다.무엇이 더 좋은 선택인지아무도 단언할 수 없다.50대 50이다.'좋은' 선택은 없다.선택하고 '좋게' 만들 뿐이다.

기업문화 엿볼 때, 더팀스

로그인

/