스토리 홈

인터뷰

피드

뉴스

조회수 2183

비전공자를 위한개발자 되기 5 스텝

안녕하세요. 언제 어디서나 함께하는 코딩 교실 엘리스입니다 :)아이디어만 좋다면 뭐든 실현해볼 수 있는 시대! 지금은 '프로그래밍'이라는 강력한 무기를 통해 원하는 세계를 실현할 수 있는 잠재적 가능성이 폭발적인 때입니다. 그리고 그 기회는 비단 '개발자'라는 특정 직업에 국한하지 않더라도 각계 분야에 펼쳐져 있는데요. 이미 마케터, 기획자, 디자이너, 콘텐츠 창작자, 금융업계 종사자, 지리학자, 연구원 등 다양한 분야의 많은 사람들이 프로그래밍을 통해 각자의 영역과 세계 곳곳을 새로운 곳으로 만들고 있습니다.높은 급여와 삶의 질을 보장하고 나의 꿈을 펼칠 수 있는 탁월한 수단인 프로그래밍.프로그래밍을 업으로 삼고 있는 사람들의 시작은 어땠을까요?이 글에서는 소프트웨어 엔지니어가 되고자 이제 막 마음먹은 분들을 위해 프로그래머가 되기 위한 다섯 가지 짚고 넘어가면 좋을 팁들을 알려드릴게요.STEP 1. 개발 친화적인 환경 찾아가기서당개 삼 년이면 풍월을 읊는다컴퓨터 공학 전공자와 비전공자가 가지게 되는 가장 큰 차이는 무엇일까요? 개발에 대한 이론 지식? 개발 능력?물론 모든 게 상대적인 것이겠지만 일반적으로 한 가지 큰 차이가 있다면 바로 '환경'이라고 할 수 있을 듯합니다. 내 주변에 개발과 관련된 자원이 얼마나 풍부한가 하는 점입니다.전공자가 개발을 시작하고자 마음을 먹으면 주위에서 좋은 리소스를 쉽게 찾을 수 있습니다. 한편 비전공자는 개발 공부를 시작하려고 할 때 레퍼런스로 삼을만한 좋은 예가 없으니 망망대해에 홀로 떠있는 기분이 들 수밖에 없겠죠! 그렇다고 해서 반드시 컴퓨터 공학 전공에서부터 다시 시작하거나 고액의 학원에 다닐 필요는 없습니다. 먼저 개발과 관련된 인적, 물적 자원이 풍부한 곳으로 적극적으로 다가가보세요. 작은 환경의 변화가 큰 변화의 시작점이 될 수 있습니다.엘리스가 추천하는 방법!온라인 커뮤니티 활동하기 : 코딩과 관련된 페이스북 그룹에 가입하여 많은 정보를 접하고 질문도 하면서 활동해보세요. 나와 비슷한 상황인 사람을 만나 서로 도움을 주고받을 수도 있고, 내 롤모델이 될만한 훌륭한 개발자를 만나 공부의 동력이 될지도요!개발 동아리, 스터디 등에 참여하기★ 엘리스 코딩 클래스 활용하기 : PC로도, 모바일 앱으로도 언제 어디서든 프로그래밍을 위한 환경에 접속하세요! 엘리스에 로그인하는 것만으로 공부하기 위한 모든 리소스를 얻을 수 있을 뿐만 아니라 과목별 채팅방을 통해서 함께 공부하고 있는 수강생들, 과목 튜터와의 활발한 대화에 참여할 수 있습니다. STEP 2. 강력한 동기와 조력자 만들기하늘은 스스로 돕는 자를 돕는다컴퓨터 공학 전공자라고 하면 모두 다 개발을 잘할까요? 적어도 아주 조금은 더 잘할까요? 대답은 NO!아무리 많은 이론을 배웠다고 해도 직접 개발을 하지 않는다면 아무런 소용이 없겠지요. 이해도가 다르기 때문에 배움의 속도는 조금 다를 수도 있겠지만 이런 차이보다는 개인의 학습 의지와 동기가 얼마나 분명하냐가 더 중요합니다.막연하게 '개발자'라는 너무 먼 목표만 보고 달리는 것보다는 보다 가까이에 있고 달성하기 쉬운 분명한 목표를 단계별로 설정해보세요. 그리고 '즐거움'을 느낄 수 있는 수단을 찾아 목표 달성을 위한 집중력을 높이세요. 동시에 내가 어려움에 처하거나 헤매고 있을 때 도와줄 조력자가 있다면 금상첨화!Photo by Mimi Thian on Unsplash엘리스가 추천하는 방법!동기 부여를 위한 작은 목표 설정 : 지식 습득 및 학습과 관련된 목표로 그룹 스터디 참여, 부족한 부분의 프로그래밍 강의 완강, 책 한 권 떼기 등이 있을 수 있고, 더 적극적인 형태의 개발 경험을 위해 공모전, 경진 대회 등 기간과 보상이 정해져 있는 대외 활동 참가 및 수상도 좋은 목표가 될 수 있을 거예요.★ 엘리스 코딩 튜터 활용하기 : 엘리스에는 학습을 도와주는 튜터가 있습니다. 엘리스 튜터는 답을 알려주는 사람이 아니라 답을 찾는 법을 알려주는 길잡이입니다. 공부하다가 막힐 때, 길을 잃은 것 같을 때 엘리스 튜터를 멘토로 삼아 보세요! 구독 및 트랙 이용 시 담당 튜터가 배정되어 개인 채팅방을 통해 1:1 튜터링을 받을 수 있고, 클래스 수강 시 단체 채팅방을 통해 언제든 질문할 수 있습니다.STEP 3. 원하는 개발 분야 탐색해보기  콩 심은 데 콩 나고 팥 심은 데 팥 난다개발에는 아주 숱~한 다양한 분야가 있습니다. 그리고 그 분야에 따라 특성도, 익혀야 하는 언어와 기술도 천차만별인데요. 아래 몇 개의 개발 분야와 사용 언어 및 기술에 대해서 적었으니 참고해보세요. 그리고 이보다 더 다양한 개발의 세계를 탐색해보면서 흥미가 가는 분야가 있다면 구체적으로 검색하고 공부를 시작할 계획을 세워보세요.Photo by Victoriano Izquierdo on Unsplash잘 모르겠다 or 코알못이다파이썬은 분야를 막론하고 많은 분야에서 사용되며 익히기에 쉬워 처음 코딩을 시작하는 입문자에게 가장 적합한 언어 중 하나입니다. 개발 언어부터 접해보고 싶다면 파이썬 언어 학습에서 시작해보세요!웹 개발 '콩 심은 데 콩 나고~'라는 속담을 인용했지만, 사실 다양한 개발 영역의 많은 지식들이 서로 겹치는 부분도 있고, 어느 한 분야를 잘할 수 있을 때 다른 분야로 전향하거나 옮겨가는 일은 보다 수월할 수 있습니다. 개발의 시작을 보다 쉽게 하고 싶다면 웹 개발부터 접근해보세요. 공부할 수 있는 자원이 풍부하고 추후 다른 개발 분야로의 전향도 가능하기 때문이에요.프론트엔드프론트엔드 개발은 주로 웹 환경에서 사용자와 맞닿는 가시적인 부분을 개발하는 영역입니다. 사용자가 코드를 작성하지 않고도 컴퓨터에게 명령을 내리는 등의 의사소통을 그래픽적으로 쉽게 할 수 있도록 가시적으로 만들어주는 것이 바로 프론트엔드 개발자의 역할이라고 할 수 있는데요. 예를 들어 엘리스에 로그인하고 싶을 때 '로그인 버튼을 클릭'하여 쉽게 로그인할 수 있는 인터페이스도 프론트엔드에 해당합니다. * 익혀야 하는 기본기 : HTML, CSS, JavaScript* 좀 더 나아가서 : JavaScript의 프레임 워크인 React.js 또는 Vue.js 또는 Angular.js 백엔드/서버백엔드 개발은 웹 환경에서 보통 사용자에게는 보이지 않는 서버(컴퓨터) 단의 개발을 의미하며, 사용자가 웹 상에서 활동함으로 인해 쌓이는 데이터가 모이는 DB(Data Base)를 다루는 영역을 개발합니다.* 익혀야 하는 기본기데이터베이스에 대한 지식 : MariaDB, PostgreSQL, MongoDB 등. 서버 쪽의 언어- 금융, 제약 등 전통적인 대기업 : Java의 프레임 워크인 Spring을 많이 사용- 과거 많이 쓰이던 기술 : Php(학습 속도와 개발 속도가 빠르며 무료!)를 많이 사용- 요즘 떠오르는 기술 : Python 기반 프레임 워크인 Django 또는 Flask. JavaScript의 프레임 워크인 Node.js* 좀 더 나아가서 : 클라우드 컴퓨팅 기술 Amazon AWS 또는 Azure에 대한 지식데이터 사이언스 - 데이터 분석가21세기에 가장 각광받는 직업 중 하나로 떠오른 '데이터 사이언티스트'에 대해서 모두 다 한 번쯤은 들어보셨을 거예요. 데이터 사이언스 분야에도 아주 복잡하고 다양한 영역들이 존재하는데요. 통상 데이터 사이언스라고 하면 수학 및 통계에 대한 지식, 컴퓨터 공학에 대한 지식, 인공지능 및 머신러닝과 관련된 기술을 사용하게 됩니다. 너무 많아 보이나요? 아래에는 데이터 사이언스의 많은 영역 중에서도 '데이터 분석가'로서 꼭 알아야 하는 내용을 적었습니다.* 익혀야 하는 기본기수학적 지식 : 통계, 선형대수학분석을 위한 언어 : Python, R* 좀 더 나아가서 : 머신러닝 기술임베디드 개발계산기, 에어컨, 자동차 등의 기계가 일정 기능을 컴퓨터처럼 수행할 수 있도록 기계 내부의 하드웨어 시스템을 구축하는 것이 임베디드 개발입니다. 사물 인터넷(IoT, Internet of Things)이나 하드웨어 부품과 관련된 분야에 관심이 간다면 임베디드 개발에 대해서 좀 더 알아보세요!* 익혀야 하는 기본기임베디드 개발 언어- 가장 많이 사용하는 언어 : C언어 - 국내 전통적인 대기업 : Java- 수요가 많은 언어 : Python (임베디드 분야에서도 빠지지 않고 자주 사용하는 언어! 국내 채용 사이트에서 임베디드 관련 개발 스택으로 많이 요구.)* 좀 더 나아가서 : 무선 통신 기술에 대한 지식*(공통) 개발자라면 익히고 있어야 할 기본기 : Git을 사용한 버전 관리 방법엘리스가 추천하는 실습 기반 과목HTML/CSS | JavaScript | 모바일 웹 코딩Git과 Git 버전 관리 (6월 오픈 예정)Python 기초 I | Python 기초 IIC 언어 | C++Java 기초 및 심화인공지능/머신러닝 기초 | 프로그래밍 수학데이터 분석 | Numpy, Pandas | 크롤링 | Kaggle 문제R 기초 |  R 패키지 | R 데이터 분석STEP 4. 실습, 프로젝트 기반으로 공부하고 개발 경험 쌓기구슬이 서 말이어도 꿰어야 보배다책을 사고 인강을 결제해도 직접 만들어보면서 익히지 않으면 절대 내 것이 될 수 없는 것이 또 개발!처음 언어를 익히는 단계에서부터 실습 기반으로 직접 코딩하고 그 결과를 확인해보면서 학습하는 것이 중요해요! 필요한 공부를 실습 단위로 쪼개어 직접 구현해보면서 익히고, 좀 더 나아가서는 프로젝트 단위로 구현하면서 실전 기술을 습득해보세요. 또한 실무에서는 혼자 개발하는 것이 아니라 뭐든 '협업'해야 하기 때문에 혼자 하는 프로젝트 외에도 여러 사람들과 함께하는 그룹 프로젝트의 경험이 큰 도움이 될 거예요. 자기소개서, 포트폴리오, 면접 시에도 어떤 프로젝트에서 내가 맡은 부분은 어느 부분이었고 어떻게 주도적으로 이끌었는지가 관건이 될 수 있습니다.엘리스가 추천하는 방법!★ 온라인 코딩 실습으로 기본기 다지기 : 엘리스는 별도의 코딩 환경 세팅 없이 온라인에서 바로 코딩 문제를 풀고 내가 짠 코드의 결과를 확인할 수 있어서 실습 기반으로 학습하기에 탁월한 플랫폼입니다. :) KAIST, SKT, 삼성 SDS 등에서도 활용하는 검증된 플랫폼에서 코딩 실습으로 기본기를 다지세요!프로젝트 단위로 혼자서 만들어보기 : 프로그래밍 언어의 기본에 익숙해졌다면, 직접 A to Z를 구현하는 작은 프로젝트를 통해 실제 필요한 기술이 뭔지 파악해가며 실전 기술을 익혀보세요. 그룹 프로젝트에 참여해서 협업 경험을 통해 익히기 : 취업을 위해서 중요한 것 중 하나인 '협업'능력! 그룹 프로젝트에 참여하여 비단 개발 실력뿐만 아니라 실무에 필요한 다양한 역량 또한 길러보세요.STEP 5. 포트폴리오, 시험 준비하고 개발 직군에 지원하기시작이 반, 그 이상이다!아시겠지만 개발자가 되면 끝인 그런 일은 없겠죠. (어떤 직무에서도 마찬가지일 거예요.) 끊임없는 공부, 새로운 기술 연마, 리팩토링, 문서화, 코딩 공부 코딩 공부!그러니 완벽에서 시작해야 한다는 생각은 버리고 지금까지 최선을 다해온 결과물을 가지고서 개발 직군에 지원하세요. 실제 개발자로 일하게 되면 그 속에서 배우고 성장할 수 있는 자원이 훨씬 더 많아집니다!'자리가 사람을 만든다'라는 말이 괜한 말이 아니니, 더 큰 성장과 가능성이 있는 곳으로 가기 위한 준비와 지원을 주저 없이 해보시길 바라요!Photo by Green Chameleon on Unsplash엘리스가 추천하는 방법!나를 잘 보여줄 포트폴리오 만들기 : (사용한 언어 / 프레임 워크 / 앞의 것을 적용하여 프로젝트에서 내가 한 역할) 별로 정리해두고 내가 커밋한 코드와 함께 보여주기.   블로그 쓰기 : 거창한 것이 아니어도 좋으니 공부하면서 느꼈던 것, 새로 알게 된 지식들, 프로젝트하면서 고민했던 것들을 블로그로 정리해보세요. 내가 구현한 것들을 이미지를 통해서 가시적으로 보여줄 수 있다면 금상첨화!★ 엘리스에서 알고리즘 시험 준비하기 : 이미 많은 수강생 분들이 엘리스 알고리즘 과목을 통해서 코드를 발전시키고 알고리즘 시험 및 취업에 성공하고 있습니다. :) 대기업 입사를 준비하시는 분이라면 엘리스 알고리즘 과목들을 꼭 수강해보세요.이다음의 6번째 스텝은 무엇이 될까요? 아마도 1~5 스텝을 계속 반복해나가면서 익숙해지고, 다른 역할로 각각의 스텝에 참여하게 되는 일이 아닐까요.엘리스는 누구나 프로그래밍을 통해 원하는 일을 할 수 있도록 좋은 강의 콘텐츠와 서비스, 플랫폼으로 여러분의 다섯 스텝에 함께하고자 합니다. :) 막막한 초심자 분들에게 앞으로의 방향성을 그려보는 데에 조금이라도 도움이 되길 바라며 글을 발행합니다.그럼 엘리스에서 만나요! >> 엘리스 아카데미 바로가기* 이밖에 조언, 첨언, 질문 등을 댓글로 남겨주시면 이 글의 독자분들에게 큰 도움이 됩니다.
조회수 592

기획자도 전문가인가?

너는 여기 있을 사람이 아냐드물지만, 들을 때 은근히 기분 좋은 말이다.말하는 사람의 의도는 그것이 아니었을지라도 괜시리 잠재력을 읽어준 듯한 느낌이 들어 기분이 좋다. 자신이 가진 역량을 누군가 알아준다는 것은 기쁜 일이다. 특히나 객관적으로 입증하기 어려운 직종의 경우에는 그 한마디가 큰 위안이 된다.성공한 브랜드가 하나 있다면, 그 성공은 누구의 성과인가? 뛰어난 실적을 이끌어낸 영업부서, 흠 잡을데 없는 품질을 만들어낸 개발부서, 빠른 시간에 소비자들에게 회자되게 만든 마케팅부서, 강렬한 이미지로 감동을 이끌어낸 디자인부서, 아니면 대표님? , 아~오너?!처음 아이디어를 발현하고 조심스레 제안했던 기획자는 무대 뒤에서 멀찌기에서 들리는 박수소리를 듣고 있다.사회는 결과로 모든 것을 얘기한다. 과정은 그 순간을 같이 했던 동료들에게나 의미있는, 입증하기 어려운 부분이다. 물론 아이디어는 아무것도 아니다, 구체화할 수 있는 능력은 굉장히 중요하다. 다만 방향을 잡고 그 가치를 모두에게 공감시키는 것은 일의 시작에서 핵심 중의 핵심이다. 건물의 골조와 같은 역할을 하는 것이다.기획자의 이력서를 살펴보면 많은 프로젝트들에 참여했더라도, 관여한 정도나 명확히 기여했던 부분을 설명하기가 곤란한 경우가 많다. 과연 기획이라는 영역이 대체 불가능한 전문 영역이라고 감히 얘기할 수 있을까? 누군가 기획전문가가 투입되면 일정한 수준의 결과물이 일관되게 배출 될 수 있을까?그래서 뭘 할 수 있는데요?기획의 전문 툴이 있는 것도 아니고, 남들과 다르게 생각하는 것을 하나의 역량으로 인정받기도 어렵거니와, 수준의 높낮이를 측정하기도 어렵다.츠타야서점의 마쓰다 무네아키의 회사는 CCC라는 '기획회사'를 표방하고 있다. 서점이라는 결과물로 세상에 알려져 있지만, 남들과 다른 기획력이 핵심인 회사이다. 기획력이란 남들과 다르게 보는 생각의 힘과 동시에, 그것을 실현할 수 있는 추진력을 동시에 일컫는다. 애플도 공장을 직접 가지고 있지 않지만, 컨셉을 만들어내는 일종의 기획회사이다.있으면 잘 모르지만, 없으면 텅 비어져 있다는 것을 느끼게 되는 영역이 기획이다. 생각은 모든 일의 절대 기반이 되기 때문이다.그러나 아이러니하게도, 기획자의 역할을 하는 가장 좋은 포지션은 사장이나 오너이다. 그들이 기획자가 되어야 모든 일이 풀린다. 또는 그들의 가까이에 생각의 힘을 가진 사람을 두어야 한다. 밑에서 기획해서 올라오는 아이디어는 여러 단계를 거치면서 의미도 잃게 되고, 엣지도 사라질 수 밖에 없다. 그래서 기획자는 점점 자리를 잃어갈 수 밖에 없다.기획자가 전문가로 인정받는 세상이 온다측정할 수 없다고, 무시될 수는 없다.좋은 기획은 모든 일의 시작이자 토대이다. 만약 하는 일마다 무색무취의 성과로 실패한다면, 기획의 힘을 빌려야 한다. 그들은 비록 평소에 무색무취의 존재감을 가졌을지 모르지만, 그것이 제대로 발현된다면, 누구보다 강한 힘을 발휘 할 것이다. 그것이 기획의 힘이다.적어도 없을 때는, 비어 있다는 것을 입증할 수 있을테니까...
조회수 3664

포스트맨 200% 활용하기

편집자 주 MAC OS 기준으로 작성했으며, 본문 내용 중 Proxy(또는 프록시)는 영문으로 통일하여 표기함. OverviewPOSTMAN은 API 테스트에 큰 도움을 주는 도구입니다. 강력한데다가 무료입니다. 안 쓸 이유가 없군요. POSTMAN은 사용하는 방법도 쉽습니다. 그래서 이번 글에서는 최근에 나온 POSTMAN native 버전 패킷캡쳐 방법을 공유하겠습니다.native App은 기존 크롬 플러그인 버전보다 깔끔하고 버그도 많이 줄었습니다. 하지만 원래부터 강력했던 postman interceptor가 아직 지원하지 않습니다.1)공식 블로그 답변입니다.이미 interceptor를 사용하고 있어서 native App에 대한 니즈는 없었는데요. 한글 패킷 캡쳐를 시도하고 생각이 완전히 바뀌었습니다. intetceptor로 캡쳐된 패킷테스트 중이던 공지사항 제목이 이상하게 변경됐습니다.Postman Proxy를 써보자!어쩔 수 없이 native App 을 써야겠다고 생각했습니다. 가장 먼저 postman interceptor에 연결할 방법이 필요했는데 위의 공식 블로그 답변처럼 지금은 안 된다고 합니다. 구글링을 했더니 아래와 같은 글이 보였습니다.스마트폰이나, 기타 기기들의 패킷을 캡쳐할 수 있기 때문에 매력적인 방법입니다. 웹을 사용할 땐 브라우저를 Proxy 태우면 결과는 비슷하게 나올 겁니다.native Appnative App은 여기에서 다운로드 받을 수 있습니다. nativeApp을 켜면 오른쪽 위의 메뉴에 interceptor 아이콘은 없고 위성안테나 모양의 아이콘이 있습니다. 이것은 Proxy Server 기능입니다. Proxy Server를 postman native가 구동해주고 사용하는 방식이죠.Proxy 설정 화면이 뜨는 기본 포트는 5555번입니다. 따로 할 건 없고, 캡쳐 위치는 기본 값인 History로 지정합니다. 만약 다른 컬렉션에 내용을 모으고 싶다면 그곳으로 지정하세요. Connect 버튼을 클릭하면Proxy가 구동됩니다.요청 내용을 긁어 모을 때다!Proxy 세팅을 마쳤으니 브라우저를 연결해야겠죠? 일반적인 방법으로는 연결되지 않습니다. 여기선 크롬 확장 프로그램인 Proxy SwitchyOmega의 도움을 받았습니다. 다운로드는 여기를 클릭하세요.이것은 Proxy 스위칭 프로그램입니다. 도메인 단위로 설정이 가능하기 때문에 on 또는 off 따로 하지 않고도 사용이 가능할 겁니다. 플러그인 설치를 마쳤다면 설정을 유도합시다.Server에는 localhost, Port에는 5555를 적어주세요.캡쳐하고 싶은 사이트에 들어가 Direct 옵션을 켭니다.Proxy를 활성시킵니다.브랜디 주요 도메인인 brandi.co.kr을 클릭해 Proxy를 활성시키면 ***.brandi.co.kr 도메인은 Local Proxy를 타고 넘어가는데요. 이제 받기만 하면 됩니다. (빵끗)진짜 긁어 모아보자!캡쳐하려고 했던 사이트에 접속해 요청을 발생시킵니다.내부 테스트 서버postman native App 캡쳐 내용와우! 발생한 요청 내용이 캡쳐되어서 들어오기 시작합니다.속이 뻥!!!속을 썩이던 한글도 깔끔하게 캡쳐되었군요. 이제 행복한 테스트만 남았습니다. 즐거운 시간 되시길 바랍니다.소소하지만 알찬 팁1: 필터 기능proxy 설정도구에서 필터 기능을 사용하면 원하는 것만 캡쳐할 수 있습니다.소소하지만 알찬 팁2: 테스트 기능스마트폰의 native App은 위와 같이 설정하면 테스트할 수 있습니다. 이제 휴대폰 테스트 결과를 PC로 수집할 수 있을 겁니다. 앱 테스트에 대한 상세 설명은 여기를 클릭하세요.소소하지만 알찬 팁3: 안 쓸 때는..proxy를 안 쓸 때는 System Proxy를 클릭해 끄도록 합시다.1) interceptor는 브라우저 요청을 postman에서 패킷을 캡쳐해주는 도구다.참고Capturing HTTP requests글천보성 팀장 | R&D 개발2팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #개발자 #개발팀 #인사이트 #경험공유 #Postman
조회수 945

Learning Languages Through Gaming: An Interview with Dr. Simone Bregni

 Everyone remembers having mandatory language classes in school, going over sentence structure, grammar and vocab. However, Simone Bregni, PhD, an associate professor of Italian at Saint Louis University (SLU), has been researching and testing out language learning lessons that involve an unusual supplementary activity: immersing yourself in some of your favorite video games. Dr. Bregni started learning English in the sixth grade in Italy, and played classics like Pong. He has always used his various interests in comic books, music and of course games to bolster his language learning process.We asked Dr. Bregni a few questions to get a deeper understanding of his method and the benefits of video games for language learning. Some of the answers have been edited for length.  Dr. Simone Bregni How did your relationship with video games change over the years? Dr. Bregni: Electronic games transitioned from the ‘70s and early ‘80s games, where one moved a few primitive blocks across a screen, to the more complex textual and graphic adventures of the Commodore 64 and other home computers in the later ‘80s. I really loved the pre-1983 crash consoles. My first programmable console was a Philips Videopac (Magnavox Odyssey in America), then I also got an Intellivision (my favorite), an Atari VCS and a Colecovision.Thanks to games such as Activision’s Alter Ego and Lucasfilm’s Manic Mansion, I realized that my English (and later, French and Spanish) language skills rapidly improved while I was having fun. While playing narrative-oriented quests in video games, not only was I reading in a foreign language, I was also applying my reading comprehension to solve problems and using writing to attain goals.My interest in video games also pushed me to explore other related content, which in foreign language acquisition is referred to as realia: authentic artifacts in the target language that help enhance language acquisition such as magazines, and later on, gaming websites for reviews, guides, tips and tricks. My personal interest in the topic bolstered language comprehension and new vocabulary acquisition in broader, related contexts. What inspired you to start incorporating video games into your language research? Dr. Bregni giving a lecture on how video games challenge students studying new languages.  Dr. Bregni: My own experiences as a foreign language learner have always played an essential role in guiding my pedagogical approach to the teaching of foreign languages and cultures, and supported the importance of realia that informed my teaching. To this day, I am more likely to remember vocabulary, idioms and irregular verbs from some song, comic book, magazine, TV show or video game. I never deny that foreign language teaching and language classes provided me with very useful, necessary structures, but I feel that it was the time I spent with my pop culture realia, especially interactive games, that bolstered my ability to communicate in multiple languages. These sources reinforced grammatical structures learned through traditional instruction, but they also taught me idioms and slang, all of which I would not have been able to access in a "regular” classroom.The rise of video games as a mass phenomenon, which began around 1997 with the Sony PlayStation and with the popularity of the excellent interactive, animated role-playing games (RPGs) of Square Enix, such as the Final Fantasy series, led me to explore the full potential of video games as interactive multimedia narratives in the language classroom. At the time, I was a Graduate Fellow in Italian at Trinity College in Hartford, CT, where they had just received a substantial Mellon Grant for language technology development. This allowed me to obtain the resources to experiment early on with digital realia. Along with my scholarly duties, I was also working as a freelance writer for one of the leading Italian video game magazine at the time, Super Console. The experience further stimulated my intellectual curiosity regarding the potential use of video games in learning. The process for my classroom experimentation in those days was a complex one. It involved using an Italian copy of Final Fantasy VIII in the PAL (Italian) video standard running on a modified, region-free PlayStation 1 system in the NTSC (North American) television standard connected to a multi-standard projector in a high-end, state-of-the-art multimedia lab.Things are much easier now thanks to recent technical advancements, namely the advent of HDMI and, as a consequence, region-free and multi-language games. I can purchase a game anywhere in the world and play it anywhere in the world, in multiple languages. In your research you use Assassin’s Creed to teach English speakers Italian. Why does the act of playing the game have better results than a more typical classroom environment with a teacher? One of Dr. Bregni's classes focused on learning Italian with the help of Assassin's Creed.  Dr. Bregni: While I do not believe that video games and other digital realia should replace “regular” teaching, I am convinced that they can be used to reinforce and expand vocabulary and structures. Some specific recent video games are fully interactive multimedia experiences combining real-time animation, speech/dialogue, subtitles, writing/textual interaction and, in some cases, even spoken interaction in the form of audio/video chat with other users. Cinematic games can serve as excellent realia, enhancing language and, in some cases, culture acquisition. Such is the case of the Assassin's Creed series in and outside the classroom.Based on my research and teaching experience, the use of video games and other related realia (online gaming magazines, YouTube videos, reviews, etc.), both in and outside the classroom, has shown to be a very effective didactic tool for reinforcing linguistic skills and exposing students to contemporary cultures of other nations and groups.Cinematic games with a high emphasis on communication contain plenty of opportunities to reinforce a variety of grammatical forms and explore new vocabulary through listening and reading comprehension, lexical expansion and problem solving. Each main chapter in the Assassin’s Creed series, with its outstanding recreation of everyday life and culture of the specific time period and geographical areas in which it is set, allows educators like me, in languages and cultures, but also in other fields such as architecture and the social sciences, to explore first-hand several aspects of life in those times and places in dynamic, immersive and interactive ways.What I apply in my teaching is game-based learning (GBL). GBL is pedagogy, closely connected to play theory where learners apply critical thinking1. My course was developed with the assistance of the SLU Reinert Center for Transformative Teaching and Leaning in fall 2016, as a recipient of a competitive fellowship. In spring 2017, I used the SLU Reinert Learning Studio (a state-of-the-art, high-tech learning space) to teach Intensive Italian for Gamers, which combines “traditional” intensive language instruction with gaming-based interaction. Within the pedagogical premise that language acquisition is a process that involves, and benefits from, daily interactions in the language in and outside the classroom, the course targeted the specific segment of the 10%2 of the student population that self-identify as gamers. Based on my learning experience, teaching experience and research, I believed that a strong, shared interest in gaming would stimulate and enhance the students’ learning process, thus justifying the intensive nature of the course. So I created an “Affinity Group”, which, as research shows, enhances learning. While more long-term research must be done, initial results through testing and surveys indicate that my premise is correct. You know how excited you get when you communicate with a group of peers that share your exact same interests/passions? Such situations have been shown to foster F/L2 acquisition. [In your research paper, “Assassin’s Creed Taught Me Italian: Video Games and the Quest for Lifelong, Ubiquitous Learning”] you mention that lip-syncing is a limitation to this method. Are there others? How can you get past the issue of lip-syncing? Dr. Bregni: Most cinematic games appear to have been created with lip-syncing designed for the English language. Observation of lip movements assists in listening comprehension. This is an important limitation until more games are created (or adapted) specifically for other markets. That said, in all cinematic games, co-speech gestures, another essential component of communication and foreign language acquisition, are excellent, and definitely provide a visual aid that enhances overall student comprehension. Although most games are currently produced with English, or, in some cases, Japanese as the main in-game language, cinematic games are, in my view, still very usable and beneficial for the acquisition of languages other than English. However, they become an outstanding tool for English as a Second Language (ESL) and Japanese language instruction.Square Enix’s Life is Strange, for example, is an excellent portrayal of the life of American teens in a small, Northwestern US coastal town. Life is Strange has not been fully localized in Italian, which is really unfortunate, because I would have loved to use it in my courses, since it has many topics that would “speak” to my student population, and, more importantly, it provides opportunities to discuss and develop empathy. I am also disappointed that the amazingly innovative and well-written The Invisible Hours by Tequila Works has not been fully localized in Italian. But for ESL students it is an excellent learning tool: being able to observe lip movements up close and personal, especially in VR mode on PlayStation VR, greatly enhances listening comprehension, especially given the in-game ability to review and fast-forward time at will.So, another important limitation that I see at the moment, and the most relevant one, is that not all games are fully localized as I feel they should be. Full localization is an investment that I believe all companies should make. The interest that my research and teaching practices have generated (as of today, they have been mentioned in ninety news sources of various kinds, for general audiences, educators and gamers, all over the world) show that there currently is a high interest in video games as learning devices for foreign languages and cultures.I believe that the next frontier of localization will be the localization of lip-syncing also. The market of commercially-available games as foreign language learning devices may be exploding soon, as I am inclined to believe given the positive response I received regarding my research and teaching. This spring semester I was on sabbatical in my native country Italy, and while delivering presentations and workshops at a number of European institutions, I met a number of young men and women who instantly connected with what I was talking to them about, games as foreign language tools, because those kids had experienced exactly the same: they noticed that their foreign language skills improved rapidly while playing video games.Currently, I believe that the Assassin’s Creed series and games by Quantic Dream are excellent examples of strong localization, which, to me, is much more than “simple” translation. High-quality localization makes every single in-game data and reference fully understandable and accessible to people from other cultures. Does the added element of fun also help students stay on track and motivated to learn or does it distract? Dr. Bregni teaching  Dr. Bregni: Video games are effective not just because they are fun, but because they are challenging3. They are difficult, and repetition enhances comprehension and memorization. Video games involve Total Physical Response (TPR), Adrenaline production and Csikszentmihályi’s Flow Theory — the best learning happens when we become oblivious to the passing of time. Gamers often refer to “being in the zone” when they play effectively, all of which have been shown to enhance learning. What are some student reactions to this method? Do they prefer it? Dr. Bregni: Over the years, my experiences with video games in the classroom have been more than positive. Student interaction was good, and it did get them excited. Even those students who were not gaming-inclined appreciated the storytelling, the clearly enunciated, authentic foreign language speech and subtitles. “Unpacking” the meaning of the various Italian gestures correctly used by characters in the Assassin’s Creed games set in Italy became a students’ favorite and sparked many meaningful discussions about non-verbal communication in other cultures.I also observed that gaming-based activities had the advantage of fostering group cooperation and active participation better than other digital lab activities, with agency and problem-solving being the keys. All of the students who responded to the survey over the last three years enjoyed the video game-centered lab activity very much (approximately 95% thought it was excellent) and approximately 93% of them felt that they had learned very much from the activity. Post-activity test performance showed a 9% median score increase. Many non-gaming students expressed surprise, as they games I exposed them to were “not the typical ‘run & kill’ games they were used to”, and “more like watching episodes of Stranger Things”, the Netflix TV series (they were referring to games such as Quantic Dream’s Beyond: Two Souls and Heavy Rain).Some students are bound to be either unfamiliar with or just not care much about video games, and playing them could be a complex task for some of them. The solution I envisioned, as I mentioned, is to elicit volunteers to do the actual gaming and encourage the rest of the class to participate by encouraging the players. Approximately 70% of college students play video games “at least once in a while” 4.Video games become an effective didactic tool for reinforcing linguistic skills. After all, as language learning research confirms, we all become more excited and communicate more easily and effectively when in the company of people who share our same interests and passions. Since our agency is responsible for localizing games by changing the language and cultural context to make it more immersive for native speakers, would you recommend that people choose games in different languages if they are trying to improve? Dr. Bregni: Absolutely! The key is playing games in the chosen language with subtitles set in that same language. The biggest challenge for language learners at the beginner/lower intermediate level (which generally corresponds to 2-3 years of foreign language in high-school or 2-3 semesters in college) is to move away from constantly translating everything into one’s own native language, and towards approaching the foreign language as such, with its own forms and structures. Also, while in some languages, such as Italian “What you see is what you get” (one pronounces every single letter, and there are standard rules for pronunciation) that is not the case for other languages, such as English. Ask the average non-English native teenager/young adult, “What is the name of the game series that features the heroine Lara Croft?” In my experience, over 90% will respond correctly “Tomb Raider,” but only a small percentage will be able to pronounce both words correctly based on their high-school and college education, even when solid and rigorous.My other advice is to have handy, on your mobile device, while you play, the WordReference app, the interactive multi-language dictionary5. Whenever you encounter a word that you do not know, look at the context. Are you able to give that word a plausible meaning based on that context? Then do, and move on. Are you totally stuck on that word, instead? Then pause the game, and take 30 seconds to look that word up. You will soon notice that your vocabulary is rapidly expanding, that quickly those new, previously unfamiliar words are becoming part of your vocabulary. That is because we remember 90% of what we do (Xunzi, Chinese philosopher, 3rd century A.C.).If you are interested in receiving updates on Dr. Bregni’s research, workshops and teaching, check out his practices on LinkedIn, Academia.com pages and personal blog: simonebregni.comTo read his research, click here.Subscribe to our monthly newsletter for more company news and blog updates!  References:1. Farber M., Gamify your classroom: A Field Guide to Game-Based Learning, 2017, 2nd ed.2. 2016 PEW Research Center3. "Los videojuegos funcionan no porque entretienen sino porque desafían," Gonzalo Frasca4. PEW Research Center5. Word Reference 
조회수 6049

개발자 채용 시 기술검증 어떻게 할 것인가

eBrain에서 진행하는 "개발자 채용 시 기술검증 어떻게 할 것인가"라는 미니 워크숍을 다녀왔다. 항상 고민하고 있는 주제이기도 하고 개인적으로 팬심(?)을 가지고 있는 김창준님의 강의라 한시간 거리를 극복했다.  이미 창천향로님이 강의 내용을 잘 정리해 주셨다. 하지만 내 자신의 학습을 위해 강의 내용을 재해석 해서 적어 본다. 빠져든다! 1. 현재 기술력 검증의 문제점최근의 개발자 채용에 사용되는 기술력 검증 방식은 다음과 같은 것들이 있다.  온라인 코딩 테스트 (최근에 여러 가지 플랫폼도 있다)손 코딩 테스트기술 인터뷰과제 제출이 중 최근에는 주로 알고리즘에 대한 코딩 테스트가 주가 되는 것 같다. 생각보다 난이도가 있어서 재직자들이 “이런 문제면 저는 못 들어왔을 것 같아요”라고 하는 경우도 있다. 코딩 테스트에 대해 두 가지 사례를 들어 질문을 던져 본다.  삼각형 판별 문제삼각형 판별 문제는 세 좌표가 주어졌을 때 이 삼각형이 어떤 삼각형인지 (정삼각형, 이등변 삼각형, 둔각 삼각형 등)를 맞추는 것이다. 이 프로그램이 잘 동작하는지를 검증하는 것이 QA 동네의 ‘Hello World’ 문제다. 이 문제가 주어지면 초보자들은 그냥 문제를 푼다. 하지만 전문가는 문제를 풀지 않고 “이 프로그램을 누가 쓸 것인가요?”를 물어본다. 콘텍스트에 따라서 완전히 다른 테스트의 설계가 필요하기 때문이다.  코딩 테스트도 이와 비슷하다. 코딩 테스트는 단순화된 문제를 푼다. 즉 맥락이 제거된 상태에서의 문제를 푼다. 실무는 종합적인 환경에서 이뤄진다. 따라서 이 문제를 잘 푼다는 것이 실무를 잘할 수 있는 것을 의미하지 않을 수 있다.  질문) 우리의 코딩 테스트는 과연 실무에서의 실력과 높은 상관관계가 있는가?  전문성 연구개발자는 종종 전문성의 연구 대상이 되곤 한다. 이때 연구비를 이유로 주로 혼자서 빠르게 풀 수 있는 문제로 실험이 이뤄진다. 하지만 이런 식의 실험들에서 “토이 문제”가 아닌 “복잡하고 확장된 문제"를 전달했을 때 전혀 다른 결과가 도출된다는것을 알게 되었다.  복잡한 문제, 즉 실제 문제를 풀 때는 인지적 전략이 많이 바뀐다. 또한 사회적 요소도 필요하다. 이런것들을 “토이 문제”로 검증하기는 쉽지 않다. X를 테스트하면 X를 잘하는 사람을 뽑게 된다.  즉, 알고리즘 코딩 테스트를 하면 알고리즘 코딩 테스트에 능한 사람을 뽑게 된다. 질문) 실무에 최대한 가까운 상황을 제한된 면접 시간 내에 만들어 내려면 어떻게 해야 할까? 2. 개발자 채용은 어떻게 해야 할까?채용이 더 크리티컬 한 곳이 있다. 델타포스, 네이비씰과 같은 특수부대이다. 이곳에서는 사람을 어떻게 뽑을까?  작전 지역을 설정 해 두고, 보급품과 군사장비를 실제 작전 수행 환경과 같이 조성해 놓는다. 그곳에서 직접 작전을 수행하는 것을 시뮬레이션 한다.이를  교관이 직접 따라가며 기록과 채점을 한다.  개발자의 면접 시에도 최대한 실제와 비슷한 환경을 구축하는 것이 좋다. 코딩 문제처럼 맞고 틀림만 보는 것이 아니라 과정에 대한 채점이 이뤄져야 한다. 3. 효과적인 기술력 검증을 위해서는 어떻게 준비해야 하는가?1) 우리가 하는 일을 분석한다.  우리가 하는 일에 코딩만 있는 것이 아니다. 설계도 하고, 버그도 찾고, 장애 해결도 하고, 커뮤니케이션도 한다.  2) 대표 케이스들을 뽑거나 만들어 내야 한다.  예를 들어 새롭게 코드를 작성하는 것보다 기존의 기능을 파악해서 코드를 수정하는 일을 더 많이 한다면 이런 상황을 문제로 만드는 것이 좋다.  3) 대표 케이스들로 파일럿 테스트를 해본다.  우리 회사의 뛰어난 개발자 3명과 평범한 개발자 3명에게 이 문제를 풀게 해보고 이를 기준으로 채점표를 만들어야 한다. 어느 누가 평가해도 비슷하게 나오도록 해야 한다. 뛰어난 개발자의 문제 풀이 방식을 기준으로 채점 기준을 만들 수 있다. 예를 들면 다음과 채점 기준이 나올 수 있다.  질문을 5개 이상 한다.코딩하는 과정에서 반복적인 실행을 한다. 4) 면접 후에는 결과에 대한 논의가 필요하다.  특정 항목에 대해 채점 기준이 다른 경우 이에 대한 논의 과정이 필요하다. 이는 면접관의 훈련에 도움이 된다.   4. 실습실제로 면접 문제 만드는 것을 실습해 보자.1) 수강생의 제안다음과 같은 면접 문제는 어떨까요?첫날 출근을 했는데 회사 웹서비스가 죽었습니다. 어떻게 하면 좋을까요? 2) 코칭좀 더 게임스럽게 만들어 본다. 실제 토이 서버를 죽여 놓고, 쉘을 주면서 실제로 어떻게 해결 하는지 살펴본다.옆에 조언을 줄 수 있는 가상의 3년 차 팀원(NPC처럼)을 제공한다. 제한된 답변을 하도록 한다.면접자가 다음과 같은 경우면 더 높은 점수를 줄 수 있다. 실제 업무를 할 때에는 이런 상황까지 이어진다는 것을 유념하자.  문제의 원인을 밝힌 이후에 이 문제를 근본적으로 해결하기 위한 후속조치를 말한다. 개발팀 내에 이 원인과 해결에 대한 공유를 한다.  5. 질문 답변1) 필터링의 목적으로 코딩 테스트는 의미가 있나요? 간단한 문제를 던져서 못 푸는 사람을 필터링하는 것으로는 의미가 있다. 하지만 그 이상의 목적으로 사용하는 것은 조심해야 한다고 생각한다.코딩 테스트라는 과정은 특히 지원자에게 많은 비용이 드는 과정이기 때문에 조금 더 경제적인 방법들이 있다. 예를 들면 “행동 기반 인터뷰”가 있다. 과거에 있었던 행동에 대한 구체적인 질문을 던지는 것이다.또한 코딩 테스트는 지원자에게 상당히 스트레스를 주는 방법이고, 지능이 높은 사람은 오히려 스트레스에 취약하다는 연구가 있다. 따라서 코딩 테스트를 진행하더라도 스트레스를 덜 주는 방향을 고민해야 한다.  2) 블라인드 테스트(이력서를 보지 않고 면접)의 장단점? 결국 코딩 테스트에 적합한 사람을 뽑게 될 것 같다. 코딩 테스트라는 것이 훈련 과정이 필요하기 때문에 입사에 대한 갈망을 볼 수는 있겠다. 질문 시에는 실무와 관련이 깊은 질문을 하면 좋겠다. 역시나 과거의 행동에 기반한 질문이 편향이 적고 많은 정보를 얻을 수 있다. 예를 들면 “팀장이 한 달 걸릴 일을 일주일 만에 끝내라고 한 적이 있나요? 그때 어떻게 하셨나요?”와 같은 질문이다. 3) 끈기, 성실 여부를 판단할 수 있을까요? 주위에서 끈기, 성실이라는 키워드를 생각하면 떠오르는 사람이 있을 것이다. 그 사람의 구체적인 행동을 기반으로 면접 문제를 만들어내는 것이 좋다. 행동에 대한 질문을 할 때에는 과거에 대한 질문을 하는 것이 좋다. 사람은 미래에 대해서는 거짓을 이야기 하가 쉽지만 과거의 이야기를 할 때에는 과거의 상황을 조작하는 동시에 거짓말을 하기가 쉽지 않다.  4) 채용 여부는 실력에 기반하게 되는데, 결국 연봉은 연차에 따라 주게 된다. 좀 더 세밀하게 측정할 수 있는 방법이 있을까? 임시 월급을 주고, 1달 혹은 3달 뒤에 급여를 적용하는 방법이 있다. 실제 환경에서는 보다 정확하게 퍼포먼스를 측정할 수 있다.  하지만 입사할 때 연봉이 중요한 요소가 되지 않게 하는 것이 더 주요한 방법이다. 내재적 동기를 갖게 하는 것이 더 중요하다. 연봉 인상에 따른 동기는 최대 3 달이면 없어진다. 외재적 동기는 점점 내재적 동기를 감소시킨다. 그 일을 즐기지 않게 되고, 하기 싫어지고, 성과가 없어진다. 연봉 말고 다른 협상 거리를 많이 가지고 있어야 한다. 연봉이 여러 가지 조건 중 하나가 되어야 한다.  5) 현재 잘하는 사람을 기준으로 채점 기준을 만들었다면, 다른 장점이 있는 사람이 탈락되지 않을까? 만일 현재 채점기준에는 적합하지 않지만, 다른 측면에서 장점이 있는 사람이 있다면 그 측면을 반영한 채점 기준을 만들어야 한다.  채용에 대해서 틀린 선입견을 가지고 있는 경우가 많이 있다. 예를 들면 술을 잘 먹는 사람이 협력을 잘한다.라고 생각하는 것이다. 그 반례가 있는지를 생각해 보면 그런 선입견을 깨는데 도움이 된다.  6) 비개발자와 함께 면접을 할 때 합의가 힘든 경우가 있다.  회사 안에서 어떤 사람을 뽑고 싶은지 합의가 필요하다. 우리 회사에서 핵심 인재를 추린 다음에 이 사람들의 공통점을 찾아서 인재상을 만들어야 한다.  7) 전화면접 괜찮을까요? 화상면접이 더 효과적인진 않을까요? 억양이 포함되어 있는 대화는 90%의 정보를 전달할 수 있다고 본다. 그 사람의 생각을 충분히 전달받을 수 있기 때문에 화상면접이 크게 더 효과적이라고 생각하지는 않는다.  우리나라에서는 많이 하지 않지만 면접에 대한 비용이 저렴하기 때문에 전화면접이 효과적인 수단이라고 생각한다. 단, 전화면접을 하기 전에 기준이 명확해야 한다. 느낌만으로 판단을 내리는 것은 의미가 없다. 8) 사내 전문가가 없는 영역에 대한 채용을 해야 한다면? 회사 외부의 전문가 몇 분을 찾아가서 그분들의 경험을 듣는다. 그 경험들에 기반해서 면접 문제를 만든다. 도메인에 관계없는 전문성이 있는지는 검증할 수 있는 방법이 있다. 즉, 전문가의 특징이 있다. 전문가는 공부를 한다. 실력을 향상하기 위한 꾸준한 노력을 한다.전문가는 확정적이지 않고 유연하다. 9) 러닝 커브가 좋은 사람을 찾는 방법은? 소규모 회사일수록 현재는 저평가되어 있지만 성장 가능성이 있는 사람을 채용해야 한다. 사실 능력 좋은 사람이 노력도 많이 한다. 뛰어난 사람은 “의도적 수련”의 양이 많고 질이 좋다.  학습에 관련된 테스트를 할 수도 있다. 예를 들어 “새로운 언어로 작은 프로그램을 작성해 보세요. 그리고 그 과정을 타임 로그로 남겨보세요” 와 같은 문제를 보면 학습 자체에 대한 능력을 테스트할 수 있다.  10) 개발을 잘하는 친구는 리드를 안 하려고 하고, 상대적으로 부족한 친구는 리드를 하려고 합니다.  개발을 잘하는 것에 대해서 생각해 볼 필요가 있다. 보통 개발을 잘한다고 하면 코딩을 잘하는 것만 생각하지만 협력에 대한 것이 포함되어야 한다. 흔히 하는 실수가 코딩 실력만 보고 리더를 삼으려고 하는 것이다.  내가 좋아했던 상사를 생각해 보고 그 사람의 특징을 생각해 보는 것부터 시작해 보는 것이 좋겠다. 개발 트랙, 매니저 트랙으로 나눠서 이야기하는 것은 좋지 않다.   6. 후기좋은 시간이었다. 워크숍에 참여하고 나서 어떻게 실력을 검증할것인가에 대해 구체적인 방향이 잡혔다. 우리가 현재 하고 있는 것들 중에 도움이 되는것과 그렇지 않은것이 구분 되었다. 8퍼센트에 좋은 분을 모실 수 있게 하나씩 시도해 봐야겠다.#8퍼센트 #에잇퍼센트 #개발자 #워크숍 #워크샵 #채용워크숍 #채용워크샵 #후기 #참여후기
조회수 833

마케터를 위한 딥 링크 만들기

더 나은 사용자 경험 딥 링크(Deep Linking)는 사용자를 최종 목적지로 곧장 연결시켜 줍니다. 따라서 즉각적인(On-demand) 해결이 필요한 니즈를 가진 사용자일수록 딥 링크를 통해 복잡한 이동 과정을 생략할 수 있으며, 이는 더 나은 사용자 경험으로 이어집니다.광고에서 매력적인 상품을 발견한 사용자는 광고 클릭, 앱 설치, 앱 실행의 과정을 거치게 됩니다. 해당 상품에 대한 실제 정보는 앱 초기화면에서 검색을 거친 후에나 확인 가능합니다. 하지만 광고에 딥 링크가 적용되어 있으면 사용자는 앱 실행 후 곧바로 광고에서 봤던 상품으로 이동합니다. 따라서 딥 링크는 마케팅 메시지와 랜딩 페이지 사이의 일관성을 유지시키는 역할을 합니다.(딥 링크를 적용하여 마케팅 메시지와 랜딩 페이지의 일관성이 유지되며 최종 페이지로의 이동단계는 축소됩니다. 이를 통해 사용자 경험을 높일 수 있습니다.)딥 링크 찾기이 딥 링크 활용이 쉽지 않은 이유는 딥 링크를 어디에서 찾아야 할 지 알 수 없기 때문입니다. 딥 링크는 웹사이트 URL처럼 쉽게 확인할 수 없으며, 앱을 만들면서 자동으로 생성되지 않습니다. 그렇다면 딥 링크는 어떻게 만드는 것일까요?딥 링크 생성 프로세스를 단순화하면 다음과 같이 표현할 수 있습니다.마케터가 딥 링크 요청 -> 개발자가 딥 링크 생성 -> 마케터가 딥 링크 적용마케터는 앱 빌드를 하지 않기 때문에 딥 링크를 직접 만들기 어렵습니다. 결국 개발자의 도움이 필요합니다. 따라서 이 부분에선 두 번째 단계인 딥 링크 생성을 마케터가 알기 쉽게 설명하려고 합니다. 생성 작업을 알게 되면 개발자와 원활하게 커뮤니케이션 할 수 있고, 이를 통해 작업의 효율성도 높아질 것이라 기대합니다.딥 링크 만들기마케터의 요청을 받은 개발자가 딥 링크를 생성하기 위해 어떤 작업을 하게 되는지 작업 순서대로 설명 하겠습니다. 이해를 돕기 위해 안드로이드 기준으로 말씀 드리겠습니다.(1) 안드로이드 매니페스트와 액티비티“이 화면으로 연결되는 딥 링크를 만들어 주세요”라고 요청이 왔다고 가정하겠습니다. 개발자는 그 화면에 해당하는 액티비티(Activity)를 안드로이드 매니페스트(Android Manifest) 파일에서 찾습니다.안드로이드 매니페스트 파일은 앱의 모든 구성요소가 설명되어 있는 명세서라고 이해하시면 좋습니다. 앱에 어떤 기능을 만들어 놓았더라도, 안드로이드 매니페스트에 그 기능이 기술되어 있지 않다면 그 기능은 존재하지 않는 것과 마찬가지입니다. 따라서 딥 링크로 연결할 화면 역시 안드로이드 매니페스트에 존재하고 있으며, 개발자는 이 액티비티에 딥 링크를 지정하기 위해 안드로이드 매니페스트를 수정하게 됩니다.(2) 인텐트 필터 추가앱 입장에서 생각해 보면 인텐트 필터(Intent-filter)를 쉽게 이해할 수 있습니다. 가만히 있던 앱은 갑작스럽게 딥 링크를 통해서 앱의 특정 액티비티를 열어달라는 호출을 받게 됩니다. 호출 받은 입장에서는 어떤 의도(Intent)로 호출을 했는지 요약된(filter) 설명을 들을 수 있으면 좋겠지요. 인텐트 필터는 위와 같이 액티비티를 호출하기 위한 목적과 방법을 앱에 알려주는 역할을 합니다.개발자는 안드로이드 매니페스트에서 딥 링크로 연결될 액티비티를 찾은 뒤, 특정 딥 링크에서 호출이 오면 이 액티비티를 열면 된다는 명령을 미리 기술하게 됩니다. 위의 설명이 실제로 어떻게 구현되는지 예제를 보면서 확인하겠습니다.123456789101112131415161718192021222324<!-- 딥 링크로 호출할 액티비티 입니다 -->    android:name="com.example.android.GizmosActivity"    android:label="@string/title_gizmos" >    <!-- 인텐트 필터가 추가되었습니다 -->                                    <!-- "http://www.example.com/gizmos”라는 URI를 허용합니다 -->                     android:host="www.example.com"              android:pathPrefix="/gizmos" />        <!-- note that the leading "/" is required for pathPrefix-->                                       <!-- "example://gizmos”라는 URI를 허용합니다 -->                     android:host="gizmos" />   (Source: 구글 개발자 사이트)“com.example.android.GizmosActivity”라는 액티비티를 호출하기 위해 를 추가한 코드입니다.  항목은 화면 조회를,  항목은 브라우저에서 앱을 호출할 수 있도록 하는 역할을 하며, 딥 링크 구현을 위해서 기본적으로 포함되어야 하는 항목입니다.(3) 딥 링크 주소 생성 하위에  항목에서 딥 링크 주소를 ‘지정’할 수 있습니다. 없던 주소를 새로 만드는 것이기 때문에 주소에 어떤 문자열을 사용할지 지정해줘야 합니다. 일반적으로 개발팀 내부 규칙을 따르게 됩니다.딥 링크 주소는 보통 커스텀 URI, 커스텀 스킴 등으로 부릅니다. 예제에서 두번째  항복을 보면 scheme으로 example을, host로 gizmos를 지정하고 있습니다. 스킴과 호스트를 조합한 것이 딥 링크 주소로 사용됩니다. 예제의 경우엔 example://gizmos가 딥 링크 주소가 됩니다. 결과적으로 사용자가 example://gizmos URI가 적용된 광고를 클릭하면 “com.example.android.GizmosActivity” 화면이 호출되며 앱이 실행됩니다.보완책: DEFERRED DEEP LINK딥 링크는 앱의 특정 화면을 호출합니다. 하지만 앱이 없는 사용자가 광고를 클릭한다면 어떻게 될까요? 아무런 동작도 일어나지 않을 것이고 어렵게 확보한 클릭을 잃게 되는 결과로 이어질 것입니다. 이런 경우의 보완책으로 와이즈트래커는 지연된 딥 링크(Deferred Deep Link)를 채택하고 있습니다.위 그림에서 볼 수 있듯이, 앱을 설치한 사용자가 광고를 클릭하면 특정 화면이 호출된 상태로 앱이 실행됩니다. 앱을 설치하지 않은 사용자가 광고를 클릭하면 우선 앱 마켓으로 이동하게 되며, 사용자가 앱을 설치한 후 최초 실행시 딥 링크가 호출하려던 화면이 나타나게 됩니다.만약 지연된 딥 링크가 없다면 사용자 경험을 설계하는데 상당히 많은 경우의 수가 생깁니다. 당연히 캠페인 기획, 실행, 운영 시에 고려할 사항도 크게 늘어나게 됩니다. 따라서 딥 링크를 사용하기로 결정 했다면 와이즈트래커와 같은 3rd Party를 통해 더욱 고도화된 기능의 장점을 충분히 활용하시면 좋겠습니다.
조회수 991

[블랭크코퍼레이션 상생스토리.04]전통 한과에 바질씨를 담다#소소반끼-유림푸드

제조사와 같이블랭크코퍼레이션은 좋은 기술과 제품을 보유한 제조사를 발굴하고, 그들과 함께 생활의 문제에 대해 고민하고 있습니다. 더불어 그 제품을 소비자와 더 효율적으로 연결할 수 있도록 함께 하고 있습니다. 우리의 고민이 단발성이 되지 않도록, 함께 성장할 수 있는 가치를 만들고자 노력하고 있습니다.이런 인터뷰는 처음이라며 무척 쑥스러워 하셨지만 한과에 대한 이야기하실 땐 누구보다 열정적으로 알려주신 유림푸드 김주형 대표블랭크의 식음료 브랜드 소소생활에는 눈에 띄는 다이어트 식품이 있다. 한과제조업체 유림푸드가 전통 다식제조 방법을 응용한 바질정을 개발해 만든 ‘소소반끼’가 그 주인공이다. 전통 방식을 고수해 만들던 한과가 ‘소소반끼’로 재탄생하기까지의 과정을 유림푸드 김주형 대표에게 들었다.유림푸드 로고가 들어간 조그마한 간판Q1. 유림푸드는? 1979년에 서울 종로구 창신동에서 가족기업 창신제과로 한과 사업에 첫발을 내디뎠습니다. 한과를 만들다 1997년 3월부터 유림한과로 독립해 현재 유림푸드로 사명을 변경해 사업을 이어오고 있습니다. 소소반끼를 비롯해 수제 약과, 다식, 강정, 넛츠바 등 10가지 제품을 생산합니다.Q2. 주요 제품과 특징은?전통방식의 수제제조로 제품을 만듭니다. 생산성이 좀 떨어지더라도 수작업을 고집하죠. 기계화가 필요한 부분은 받아들이되 맛과 관계된 부분에서는 수작업을 고수하고 있어요. 약 40년 동안 한과를 제조하면서 노하우를 쌓았습니다. 특히 강정과 넛츠바는 여름철이 되면 찐득찐득하게 변하기 쉬운데 이런 현상이 전혀 없는 제품을 만들고 있습니다. 일반적으로 한과 업체는 강정을 만들기 위해 물엿을 졸입니다. 그리고 강정의 형태를 유지하기 위해 다량의 설탕을 넣고, 일부 업체는 젤라틴이나 한천 같은 보조제를 넣기도 합니다. 단단한 경도를 유지하는 것이 기술이기 때문입니다. 그러나 요즘 소비자에게 딱딱하고 달달한 강정은 입맛에 맞지 않습니다. 경도는 유지되나 씹으면 쉽게 바스러지고 달지 않은, 쿠키 같은 식감의 넛츠바를 만들었습니다.공장에 들어가면 바로 깨끗하게 잘 정리된 기계들이 있는데 이렇게 깨끗하게 잘 관리되어 한과업체에서는 드물게 HACCP 인증을 받을 수 있었다.전통방식의 수제제조로 제품을 만듭니다.생산성이 좀 떨어지더라도 수작업을 고집하죠.기계화가 필요한 부분은 받아들이되 맛과 관계된 부분에서는수작업을 고수하고 있어요.반죽기계를 지나 다른 방으로 들어가니 많은 직원분들과 함께 한과를 제조 중에 있었다.많은 직원분들이 바쁘게 한과 생산에 몰두하고 있다.Q3. 같이 일하게 된 과정은? 전통 한과 시장의 주요 고객층은 60대 이상 노년층입니다. 젊은 세대의 눈높이에 맞지 않아 소위 ‘잊혀져 가는 식품’, 제사 때나 먹는 맛없고 비싼 음식으로 전락하고 말았습니다. 시장이 위축되다 보니 회사에도 어려움이 닥쳤습니다.그러던 중 지난해 5월경 블랭크에서 바질씨를 이용한 제품을 만들고 싶다는 의뢰가 들어왔습니다. 물에 닿으면 30배가 불어나는 바질씨의 성질을 이용해 포만감을 느낄 수 있는 제품을 만들어보자는 것이었습니다.바질씨는 성형하기 곤란한 물성을 가지고 있습니다. 반죽할 때 경화되는 속도가 빨라 캡슐에 바질씨만 넣어야 했습니다. 하지만 현행법상 의약품이 아닌 것은 캡슐에 넣을 수가 없습니다. 그래서 압력을 통해 압축하는 방식인 타정으로 만들어 달라는 요청이 있었습니다. 기존 업체에서 타정 방식으로 작업을 할 수가 없는 상황이었던 것 같습니다. 그래서 한과를 만드는 우리 회사에 의뢰가 들어온 것이죠. 그러나 바질씨는 반죽 후 20분이면 경화가 되어 타정을 할 수가 없었습니다. 이후 바질씨를 갈아 한약의 환 형태로 만들었습니다. 그러나 환 형태로 만드는 과정에서 수분에 노출되어 이미 부풀어오른 것을 반죽해야 했죠. 뱃속에서 부풀어야 하는데, 이미 부푼 것은 먹어도 효과가 없었습니다.다이어트 식품의 특성을 살려 미량의 쌀조청만으로 제품화하기까지 두 달이 걸렸습니다. 전통방식으로 제조해 특허 출원까지 따냈습니다. 만드는 것만이 전부는 아니라는 마음가짐으로 바로 HACCP 기준에 맞는 설비를 갖출 수 있게 준비했고, 2018년 4월 HACCP 인증을 받았습니다. 현재 한과업체 중 HACCP 인증을 받은 곳은 손에 꼽을 정도입니다. 소소반끼의 제품 품질을 위해 별도로 설치한 조명.Q4. 시장의 반응은?소소반끼 첫 출시 때 5,000세트 정도를 납품했습니다. 시장 반응은 그야말로 폭발적이었습니다. 첫 납품 후 일주일도 채 안돼 3만개의 추가 발주가 들어왔습니다. 한과 특성상 명절이 아닐 때는 한가했는데, 일이 크게 늘어나 즐거운 비명을 질렀죠. 주야간 3교대로 24시간 작업을 돌려 물량을 맞췄습니다. 인력이 부족해 소분을 할 여력이 없어 평소 친분이 있던 업체인 정과원의 도움을 받기도 했습니다. 현재는 자체적으로 설비를 선진화하여 HACCP 인증을 취득했고, 인력 확충을 통해 유림푸드 자체적으로 생산 및 소분까지 완제품을 만들고 있습니다.소소반끼 출시 이후 34만개를 생산해 약 34억원의 매출을 기록했습니다. 블랭크와 협업한 뒤 매출이 40% 정도 급성장했습니다.마침 한쪽에서는 소소반끼의 제품 포장이 이루어지고 있다. 이 기계는 불순물 검출기로 HACCP인증 기준 이상으로 준비한 기계라고 한다.Q5. 어떤 점이 달랐는지?HACCP 인증 설비를 갖추기 위해 기계를 장만할 때 블랭크가 큰 도움이 됐습니다. 기계 값이 한두 푼이 아닌데 블랭크의 선결제로 무사히 HACCP 인증을 받을 수 있었습니다. 블랭크는 ‘안 될 것 같은 것’을 ‘되게 하는’ 힘이 있습니다. 특히 요즘 젊은 층의 니즈에 부합하는 SNS를 통한 마케팅은 탁월하다고 생각합니다. 저희 업무는 한과 특성상 명절에 주로 작업을 하고 평소에는 한가한 편이었습니다. 이제는 성수기가 아니어도 쉬지 않고 작업할 수 있게 돼 회사 운영에 큰 도움이 되고 있습니다.식품업계에서 오래 종사하다 보니 ‘이건 이래서 안 될 거야’라는 나름의 저지선이 있었습니다. 그런데 감각적이고 도전 정신 넘치는 블랭크의 모습을 옆에서 지켜보면서 나도 뭔가 전통 한과에 새로운 것을 접목해야겠다는 도전 의식이 생겼습니다. 한과가 기존 것을 답습하는 것이 아니라 서양의 수많은 식품과 비교해도 경쟁력을 가질 수 있도록 발전시켜 나가고 싶습니다. 새로운 세대의 기호에 맞춰 한과 제품을 현대화하는 작업에 심혈을 기울이게 됐습니다. 전통 제품만이 아니라 우수한 건강식품으로 제품군을 넓혀 나가고자 합니다.소소반끼의 시작은 정과원의 홍권택 차장님의 소개로 공동개발되었다.(사진왼쪽)유림푸드 김주형대표 (사진오른쪽)정과원 홍권택 차장소소생활 - 소소반끼 홈페이지블랭크 코퍼레이션은 좋은 기술력의 기업과 함께더 나은 생활을 만들어 갑니다./Lifestyle needs solutionblank.
조회수 571

인사이트를 먹고사는 박쥐들의 생활양식 3종 세트

인사이트. 광고/마케팅/컨텐츠/디자인 이 네 개의 카테고리 아니 어떤 일을 하든 숙명처럼 따라붙을 수밖에 없는 단어 아닐까. 그래서인지, 우리 멤버들의 대화 속에서도 인사이트라는 단어를 자주 들을 수 있다. 매우 주기적으로 인사이트를 먹고사는 우리는 어디서 인사이트를 얻고 또 어떻게 서로 공유하는지 혹시나 궁금해할 누군가들을(?) 위해 박쥐들의 인사이트 생활양식 3종 세트를 소개해볼까 한다.하나, 인사이트 쉐어링주간회의가 있는 월요일의 첫 출근 날이었다. "자, 그럼 회의는 여기까지 하고 인사이트 쉐어링 해볼까요?"라는 말이 시작되자마자 띠링띠링 하는 소리가 들렸다. 무슨 소리인가 싶어 옆에 있던 멤버의 노트북을 슬며시 훔쳐보니 회사에서 사용하는 메신저에서 나는 거였다. Archive_Insight라는 채널에 파일, 이미지, 웹 주소 등이 공유되면서 나는 소리였던 것! 인사이트 쉐어링이란 한 주 동안 멤버들 개개인이 얻은 인사이트와 그 소스들을 공유하는 시간으로 좋은 디자인, 웹사이트, 브랜드 소식 등을 자유롭게 나누는 시간이다. 한 명이 물꼬를 트면 꼬리에 꼬리를 물고, '아, 그럼 저도!' 하며 다들 주섬주섬 인사이트를 꺼내 놓는다. 처음엔 일주일에 한 번인 주간회의 때만 반짝하고 마는, 비정기적 이벤트 개념으로 생각했다. 하지만 아니었다. 한 주의 시작인 주간회의가 물꼬를 트는 개념일 뿐, 이 채널은 매일같이 새 알람이 뜨며 (글을 쓰고 있는 지금도) 왕성하게 활동 중이다.실제 하루에도 몇 번씩 불이 켜지는 이 채널은 일종의 우리들의 보물창고 같은 곳이다. 가끔 일을 하다 리프레시가 필요할 때, 이 채널을 뒤적거리며 재미있는 컨텐츠를 보며 웃기도 하고 새로운 아이디어를 얻을 수 있는 소스들에 감탄하기도 한다.어느새 'Archive_Insight'는 가장 반기는 알림의 채널이 되었음을 슬쩍 고백해본다. 온라인 뿐만 아니라 오프라인으로도 인사이트 쉐어링은 자주 이루어진다. 여행을 다녀올 때, 출장을 다녀올 때도 좋은 것을 보고 들으면 꼭 멤버들 나눠줄 리플렛, 포스터 등을 보부상처럼 바리바리 싸들고 오는 정 많은 사람들.. 우리에게 인사이트 쉐어링은 일상이자, 일종의 동지애 같은 것이 아닐까?"인사이트...? 멤버들과 나누고 싶은 것!" - 이다솜 Branding Team Director둘, 도서 구매 지원(이라 쓰고 방라딘이라 읽는다)그렇다. 요즘 뜬다 하는 스타트업들이 그러하듯, 우리도 도서 구매 지원 복지가 있다! 이름하여 '방라딘'. 뭐하나 평범하게 넘어가는 법이 없는 우리는 이것마저도 네이밍을 했다는.. 절대 강요는 아니었..!!! AE 팀장 방정훈님의 관리 아래 운영되기 때문에 그의 이름에서 따온 네이밍이 만장일치로 당첨되었다. (디자이너 하나님의 의견이었다. 역시 핵인싸다워....) 방라딘의 이용 방법은 이러하다. 간단한 신청 이유와 함께 방라딘을 소환하기만 하면 끝. 그냥 진짜 끝! 그러면 총알처럼 접수해 일주일 안에 도서를 전해준다.단, 이 책을 완전히 내 것으로 만들기 위해서는 한 가지 미션을 완수해야 한다. 바로 '독서 노트' 작성하기. 이름처럼 심하게도 친절한 방라딘은 램프를 문지른 댓가로 이 노트를 요구한다. 양식만 보면 '그냥 내 돈 주고 살까' 싶은 생각이 잠시 들기도 하지만, 방라딘이 시키는 대로 정리하며 책을 읽다 보면 정말 그 책이 100% 내 것이 되는 신기한 경험을 할 수 있다. 작성한 독서노트는 멤버들 모두에게 공유되어 자연스럽게 인사이트의 역할을 한다. 이것이 바로 최소 비용에 최대 효율을 위한 방라딘(을 가장한 방정훈님)의 빅 피처였던 것이었다... "저에게 인사이트란, 좋은 작업을 하기 위해 끊임없이 스스로에게 자극을 주는 것이에요" - 이건용 Designer셋, 게더링 데이노마드 데이의 자매품이다. 한 달에 한 번 진행되던 노마드 데이를 격월로 줄이고, 그 빈 공간을 게더링 데이가 채우게 되었다. 노마드 데이는 토요일이지만, 게더링 데이는 무려 금요일이다. (야호!) 오후 3시경 각자 작업을 마무리하고, 미리 약속한 액티비티를 하러 떠난다. 볼링을 치는 팀도 있고, 방 탈출을 하러 간 팀도 있다. 머리 쓰고 몸 쓰기 귀찮다면, 산책 팀을 고르는 방법도 있다.그냥 놀러 가는 거냐고?맞다. 하지만 우리 멤버가 둘 이상 뭉치면 그곳에서는 인사이트가 뽑아지기 마련. 이번 게더링 데이에 산책 팀으로 참여한 나의 경험을 풀어보자면 이렇다. 신나게 사운즈 한남을 구경한 후 카페에 모여 이야기를 나누는데, 새로 산 가방에서 시작한 수다가 어느새 브랜딩에 대한 논의로 넘어가는 신기한 경험을... (가방<<<브랜딩) 어쩌면 게더링 데이는 일하느라 맘껏 떠들지 못한 인사이트들을 이참에 공유하라는 회사의 배려일지도. (아...아닌가?)"누군가와 대화를 할 때, 그 사람의 색다른 경험과 관점에서 인사이트를 얻어요." - 조윤성 AE
조회수 1120

I/O Diary 18. 오늘 행복하지 않으면 내일도 행복하지 못하다.

Hand made diary대학교 3학년즈음이었을까. 한창 무한한 가능성이 나를 이끌던 시절이었다. 부푼 꿈을 손에 쥐어 보기 위해 악착같이 살았던 1년. 결과적으로 단 한 과목도 빠짐 없이 A+를 받아 전액 장학금을 탔다. 장기간 준비한 공모전도 우승해서 국가대표로 뉴욕에도 가보았다. 실험에 실험을 거듭한 논문에 2저자로 이름이 올라 호화로운 호텔에 묵으며 컨퍼런스 발표란 것도 해보았다. 이 결과물들을 발판으로 더 많은 기회들을 얻은 걸 보면 적지 않은 성취일 수 있겠다.그런데 그 때의 나는 행복했을까? 이제는 당시의 생동감이 무뎌저 그땐 그랬지 할만도 한데, 곰곰이 돌이켜보면 참 아팠다. 계획으로 가득찬 캘린더와 쌓여만 가는 해야할 일들. 쉬어도 마음 한 켠이 불편해 그게 곧 스트레스인 상황. 여가는 당연하고 결국 기본 욕구들도 줄여야만 겨우 소화할 수 있었다. 집 오가는 시간이 아까워 연구실 한 켠에 라꾸라꾸 침대를 펼치고 잠들기가 부지기수. 집중력을 되찾기위해 엎드려 청하는 쪽잠. 그러면서 자연스레 늘어가는 커피. 걸으면서 먹는게 마음이 더 편해 그게 지금까지 습관으로 자리잡았다. 아니나 다를까 몸은 정직했다. 생전 처음으로 위내시경을 받으며 이런저런 생각을 했는데. 이대로가면 안될것 같다는 깨달음을 얻기에는 충분한 시간이었다. 그 뒤로 한 달간 죽만 먹었지만 약해진 소화능력은 아직도 돌아오지 않는다.얻은 것도 많았지만 그만큼 잃은 것도 분명히 많았다. 무엇보다 아찔한 점은 당시의 마음가짐으로 지금까지 살아왔다면 불행한 성취만 가득했을 것같다. 이력서를 훑어 보는 그 순간은 뿌듯할지도 모르겠지만 내일 해야할 일은 또 고통스러울테니까. 목표를 이루는 과정이 고통과 희생으로만 점철됐다면 올바르다고 말하진 못하겠다. 10여년전 전국의 아파니까 청춘이던 친구들은 지금은 안아프고 행복한 일만 가득할까?물론, 노력하지 말하는 소리는 아니다. 개인적으로 욜로를 좋아하진 않는다. 당연히 어제보다 나은 오늘이 되어야하고 우리는 성장하면서 더 나은 미래를 꿈꿔야한다. 다만, 미래라는 불확실성 뭉치에 조급해 오늘의 행복을 내일로 미루진 말자. 미래를 위해 오늘을 희생한다면 기다리던 그 미래에서도 우리는 그 다음 미래를위해 희생하고 있을 것이 뻔하다. 무질서와 계획 사이의 황금비는 모르겠다. 다만 오늘의 내가 나를 괴롭히고 있다면 그건 무엇인가 잘못된 모습일테다. 조금 늦어도 되니 방향만 잃지 않는다면 한 걸음이라도 나아간 오늘의 나에게 상을 주자. 행복이라는 상을.이번에 동전의 앞면이 나왔다고 해서 다음 번에 반드시 뒷면이 나오지 않는다. 다시 던진 동전은 또 정확히 반반의 확률을 지닌다. 오늘의 행복과 내일의 행복은 별개의 문제다. 그러니 오늘의 행복을 내일로 미루지 말자. 일은 행복감을 느끼는 수준에서 만족하자. 대신에 그 빈자리를 건강, 가족 , 연애, 친구, 취미 등으로 채워 오늘도 행복하자.다짐: 2018년 블로그 꼭 20편 이상 쓰자.instagram: continueingfacebook: facebook.com/profile.php?id=100011882362436email: [email protected]#스위처 #Switcher #다짐 #각오 #마인드셋
조회수 1556

PyCon2017 첫번째날 후기

아침에 느지막이 일어났다. 어제 회사일로 피곤하기도 했지만 왠지 컨디션이 좋은 상태로 발표를 하러 가야지!라는 생각 때문에 깼던 잠을 다시 청했던것 같다. 일어나 아침식사를 하고 아이 둘과 와이프를 두고 집을 나섰다. 작년 파이콘에는 참가해서 티셔츠만 받고 아이들과 함께 그 옆에 있는 유아교육전을 갔었기에 이번에는 한참 전부터 와이프에게 양해를 구해둔 터였다.코엑스에 도착해서 파이콘 행사장으로 가까이 가면 갈수록 백팩을 메고, 면바지를 입고, 영어 글자가 쓰인 티셔츠를 입은 사람의 비율이 높아지는 것으로 보아 내가 제대로 찾아가고 있구나 라는 생각이 들었다.                                               늦게 왔더니 한산하다.지난번에는 입구에서 에코백과 가방을 나눠줬던 것 같은데 이번에는 2층에서 나눠준다고 한다. 1층이 아무래도 복잡해지니 그런 것 같기도 하고, 2층에서 열리는 이벤트들에도 좀 더 관심을 가져줬으면 하는 것 같기도 하다. 우선 스피커 옷을 받고 싶어서 (솔직히 입고 다니고 싶어서) 2층에 있는 스피커방에 들어갔다.                         허락 받지 않고 사진찍기가 좀 그래서 옆방을 찍었다.첫 번째 키노트는 놓쳤지만 두 번째 키노트는 꼭 듣고 싶었기에 간단히 인사만 하고 티셔츠를 들고 나왔다. (외국에서 오신 연사분과 영어로 대화를 나누고 있어서 자리를 피한것은 아니다.) 나가는 길에 보니 영코더(초등학교 5학년 부터 고등학생 까지 파이썬 교육을 하는 프로그램)을 진행하고 있었다. 의미있는 시도를 하고 있다는 생각이 들었다.                          이 친구들 2년 뒤에 나보다 잘할지도 모른다.키노트 발표장에 갔더니 아웃사이더님이 뒤에 서 게셨다. 지난 파이콘 때 뵙고 이번에 다시 뵈었으니 파이콘이 사람들을 이어주는 역할을 하는구나 싶었다.키노트에서는 현우 님의 노잼, 빅잼 발표 분석 이야기를 들을 수 있었다. 그리고 발표를 통해 괜히 이것저것 알려줘야만 할 것 같아 발표가 부담스러워지는 것 같다는 이야기를 들었다. 나 또한 뭔가 하나라도 지식을 전달해야 한다는 압박감을 느끼고 있었던 터라 현우 님의 키노트 발표를 듣고 나니 좀 더 오늘을 즐겨야겠다는 생각이 들었다.                                              오늘은 재미있었습니다!현우님 키노트를 듣고 같은 시간(1시)에 발표를 하시는 경업님과 이한님 그리고 내일 발표이신 대명님, 파이콘 준비위원회를 하고 계신 연태님과 함께 식사를 하러 갔다. 가는 길에 두숟갈 스터디를 함께 하고 계신 현주님과 희진 님도 함께했다. 사실 이번에는 발표자도 티켓을 사야 한다고 해서 조금 삐져 있었는데 양일 점심 쿠폰을 주신다고 해서 삐진 마음이 눈 녹듯이 사라졌다.                                                  부담 부담식사를 하고 발표를 할 101방으로 들어가 봤다. 아직 아무도 없는 방이라 그런지 괜히 긴장감이 더 생기는 느낌이다. 발표 자료를 열어 처음부터 끝까지를 한번 넘겨 보고 다시 닫았다. 처음에는 가장 첫 발표라 불만이었는데 생각해보니 발표를 빨리 마치고 즐기는 게 훨씬 좋겠다는 생각이 들었다. 발표 자료를 다듬을까 하다가 집중이 되지 않아 밖으로 나갔다. “열린 공간” 현황판에 충동적으로 포스트잇을 하나 붙이고 왔다. 어차피 발표는 나중에 온라인으로도 볼 수 있으니까 사람들과 이야기를 나눠 봐야 겠다 싶었다. (내 발표에는 사람이 많이 왔으면 하면서도, 다른 사람의 발표는 온라인으로 보겠다는 이기적인 생각이라니..)                                            진짜 궁금하긴 합니다다시 발표장으로 돌아왔다. 왠지 모르는 분들은 괜찮은데 아는 분들이 발표장에 와 계시니 괜히 더 불안하다. 다른 분들은 발표자료에 짤방도 많이 넣으셨던데.. 나는 짤방도 없는 노잼 발표인데.. 어찌해야 하나. 하지만 시간은 다가오고 발표를 시작했다.                                            얼굴이 반짝 반짝리허설을 할 때 22분 정도 시간이 걸렸던 터라 조금 당겨서 진행을 했더니 발표를 거의 20분에 맞춰서 끝냈다. 그 뒤에 몇몇 분이 오셔서 질문을 해주셨다. 어리버리 대답을 한 것 같다. 여하튼 내 발표를 찾아오신 분들께 도움이 되었기를. 그리고 앞으로 좀 더 정확한 계산을 하시기를.대단히 발표 준비를 많이 하지도 못하면서 마음에 부담만 쌓아두고 있는 상황이었는데, 발표가 끝나니 아주 홀가분한 마음이 되었다. 발표장을 나가서 이제 부스를 돌아보기 시작했다. 매해 참여해 주고 계신 스마트스터디도 보이고 (정말 안 받고 싶은 ‘기술부채’도 받고 말았다.) 쿠팡, 레진 등 친숙한 회사들이 많이 보였다. 내년에는 우리 회사도 돈을 많이 벌어 여기에 부스를 내고 재미있는 이벤트를 하면 좋겠다는 생각이 들었다.부스를 돌아다니다가 이제 파이콘의 명물이 된 내 이름 찾기를 시작했다. 이름을 찾기가 쉽지가 않다. 매년 참여자가 늘어나서 올해는 거의 2000명에 다다른다고 하니 파이썬 커뮤니티의 성장이 놀랍다. 10년 전에 파이썬을 쓸 때에는 그리고 첫 번째 한국 파이콘이 열릴 때만 해도 꽤 마이너 한 느낌이었는데, 이제 주류가 된 것 같아 내 마음이 다 뿌듯하다. (그리고 내 밥줄이 이어질 수 있는 것 같아 역시 기쁘다)                                          어디 한 번 찾아보시라다음으로는 박영우님의 "Django admin site를 커스텀하여 적극적으로 활용하기” 발표를 들으러 갔다. (짧은 발표를 좋아한다.) 알고 있었던 것도 있었지만 커스텀이 가능한지 몰랐던 것들도 있어서 몇 개의 기능들을 킵해 두었다. 역시 컨퍼런스에 오면 내게 필요한 ‘새로운 것’에 대한 실마리를 주워가는 재미가 있다.                                     익숙하다고 생각했지만 모르는 것이 많다4시가 되어 OST(Open Space Talk)를 하기로 한 208B 방으로 조금 일찍 갔다. 주제가 뭐였는지는 잘 모르겠는데 주식 투자, Tensor Flow, 비트코인, 머신러닝 등등의 이야기들이 오가고 있었다. 4시가 되어 내가 정한 주제에 대해 관심 있는 사람들이 모였다. 괜히 모일 사람도 없는데 큰방을 잡은 것이 아닐까 하고 생각하고 있었는데, 생각보다 많은 분들이 오셨다.각 회사들이 어떤 도구를 사용하는지 설문조사도 해보고, 또 어떤 개발 방법론을 사용하는지, 코드 리뷰, QA는 어떻게 하고 있는지에 대한 이야기를 나눴다. 다양한 회사에서 다양한 일을 하는 사람들이 모여 있다 보니 생각보다 꽤 재미있게 논의가 진행되었다. 사실 내가 뭔가 말을 많이 해야 할 줄 알았는데, 이야기하고 싶은 분들이 많이 있어서 진행을 하는 역할만 하면 되었다. 마지막으로는 “우리 회사에서 잘 사용하고 있어서 다른 회사에도 추천해 주고 싶은 것”을 주제로 몇 가지 추천을 받은 것도 재미가 있었다.                                  열심히 오간 대화를 적어두긴 했다5시에 OST를 마치고는 바로 집으로 돌아왔다. 오늘 저녁에 아이들을 잘 돌보고 집 청소도 열심히 해두어야 내일 파이콘에 참여할 수 있기 때문이다. 기대된다. 내일의 파이콘도.그리고 정말 감사드린다. 파이콘을 준비해주시고 운영해주고 계신 많은 분들께.                                                   #8퍼센트 #에잇퍼센트 #이벤트 #참가후기 #파이콘 #개발자 #개발 #파이썬 #Python #Pycon
조회수 721

멋있는 삶이란?

대치동 학원가 어둑한 시간에 피곤에 찌든 모습으로 엄마의 차에 올라타는 아이들을 보면, 무엇을 위해 저 어린 아이들이 저렇게까지 해야할까 진심 의문이 든다.저 아름다운 청춘의 시기에 엄청난 학원비를 지불하고 인터넷 검색하면 5초면 찾아볼 수 있는 지식을 머리속에 꾸역꾸역 넣기 위해 인생과 돈을 낭비하고 있다는 생각때문에 너무 안타깝다.목표가 있다면 다행이지만, 뒤쳐지지 않기 위함이 목표라면 정말 슬퍼진다. 목표가 만약 성공이라면, 그들이 생각하는 성공이 얼마나 아름다운 것인지도 생각해보면 좋겠다.무엇이 아름다운 인생일까?성공을 위한 최선이 저 경쟁에 뛰어드는 것일까?나는 아이들이 정말 멋있는 인생이 무엇인지 생각해보았으면 좋겠다. 높은 연봉과 좋은 차, 강남 아파트에 산다는 것이 그들의 멋이 아니었으면 좋겠다.많이 가지지 않아도 자신감있게 행동할 수 있다는 것, 남들과 다르더라도 자신의 생각을 당당히 표현할 수 있다는 것, 정말 좋아하는 분야에 대해서 깊이있는 대화를 나눌 수 있는 지적 진정성, 좋아하는 작가의 작품을 따라해보고 좋아하는 음악을 직접 연주할 수 있는 진짜 열정...이런 멋진 사람들이 아이들의 눈에 자주 띄었으면 좋겠다.무엇이 되고 싶고 무엇이 하고 싶은지 알아야 그렇게 될 수 있는 방법을 찾게되고, 그래야 목표가 생기고 열정이 생기게 된다. 스스로의 욕망이 없으면 아무리 전교 1등이라도 프로그램된 아이일 뿐이다. 입력하지 않으면 결혼도 사회생활도 스스로 할 수 없는 무능아를 만들 뿐이다.수학을 잘하냐, 영어가 좋으냐, 과학에 재능이 있느냐로 구분하지 말고, 너는 어떤 사람이 멋있다고 생각하고, 어떤 삶이 행복하다고 질문해야 한다. 너는 무엇을 잘하고, 너는 어떤 재능을 가졌느냐가 아니라, 너는 무엇을 잘하고 싶고, 어떤 일이 너를 즐겁게 하겠느냐를 물어야 한다.부모가 바뀌어야 한다.90%는 부모를 따라간다. 부모가 정해놓은 잣대로 아이들은 살게 된다. 부모가 멋을 모르는데 아이가 무엇을 판단할 수 있겠는가? 부모가 정해놓은 성공 방정식이 있는데, 아이가 어떻게 그 굴레를 쉽게 벗어나겠는가?멋은 돈으로 만들어지지 않는다. 멋진 곳에 갈 수는 있고, 멋진 옷을 살 수는 있겠지만, 멋있어질 수는 없다.멋은 권위로 만들어지지 않는다. 밑에 사람들에게 기분 좋은 얘기는 들을 수 있겠지만, 그들의 존경을 얻을 수는 없다.멋은 그런 척 할 수도 없다. 멋있어 보이도록 연기할 수는 있겠지만, 뒤돌아서서 스스로 부끄러움을 감출 수는 없다.우리가 아이들에게 가르쳐줘야 하는 것은 세상은 정말 다양한 기준의 멋있는 삶이 있다는 것과, 공부라는 것은 자신이 그 멋있는 인생을 만들어가기 위한 과정과 도구라는 것, 목표를 찾는게 가장 중요하다는 것, 그리고 그것을 찾기 위한 공부는 평생해야 한다는 것이다.안타깝지만, 아이들은 부모의 삶 안에서 생각하게 되는 경향이 크다. 재벌 2, 3세의 인생이 전혀 아름다워 보이지 않는 이유이기도 하다. 부모가 바뀌어야 한다. 아이를 망치는 것은 부모의 편협한 성공 방정식이다.매일매일 세상은 변하고 있다. 인류 역사상 하루하루가 이렇게 빠르게 변했던 적은 없다. 아이의 미래를 자신의 과거에 붙잡아두지 말고, 미래를 위해 놓아줘야 한다.그리고 부모 자신들은 지금이라도 멋있게 살 준비를 해야 한다. 프랑스인이 생각하는 중산층의 기준을 한번 찾아보길 바란다. 무엇이 진짜 멋인지 찾아보길 바란다.생각이 멋있고삶이 멋있는 사람들이많아졌으면 좋겠다.
조회수 2869

iOS 개발을 위한 11가지 노하우

Overview기고 제안을 받자마자 iOS 개발을 시작했을 때가 떠올랐습니다. 신대륙을 마주한 것 같았던 그때의 기분을 아직도 잊지 못하기 때문입니다. 당시까지만 해도 Android 개발만 했기 때문에 iOS는 그야말로 미지의 영역이었습니다. 게다가 개발을 시작하려고 조심스럽게 첫 발을 내딛은 순간, 입이 떡 벌어질 수밖에 없었죠.“이렇게 느린 IDE가 있다니…““개발자 프로그램이 뭐 이렇게 비싸?”XCodeXCode는 그동안 접했던 IDE 중에서도 가장 최악이었고, 개발자 프로그램 등록은 13만 원 상당의 비용을 지불해야 했습니다. 가장 중요한 건 맥 컴퓨터(Macintosh)를 보유해야만 했죠. 처음 개발을 시작하려니 넘어야 할 산이 매우 많았습니다. 맞습니다. 팜므파탈의 대명사 마타하리(Mata Hari)처럼 iOS 개발은 밀당과도 같습니다. 분명 매력적인 일이지만 XCode와 개발자 프로그램 등록은 빙산의 일각이기 때문입니다. iOS는 곳곳에 구덩이를 파고 초보 개발자들을 집어삼킬 준비를 하고있습니다. (예를 들면 리소스를 묶어놓은 R.java 파일 같은 레퍼런스가 없습니다. 흑.)그래서 준비했습니다. 수많은 초보 개발자들이 iOS의 구덩이를 피해갈 수 있는 팁을 말이죠.iOS의 구덩이를 피하는 11가지 방법1.비싼 맥(Macintosh)을 사세요.iOS 개발자에게 MacOS는 필수입니다. XCode가 MacOS만 지원하기 때문입니다. 오픈 소스로 공개된 Swift에는 제약이 없지만 XCode는 MacOS에서만 동작하는 제약이 있습니다. 따라서 맥은 iOS 개발자에게 가장 필요한 준비물입니다. 게다가 하드웨어 리소스를 많이 사용하는 XCode 탓에 더 크고, 더 비싸고, 더 아름다운 맥을 구매하셔야 합니다. Macbook이나 Macbook Air 모두 추천하지 않습니다. 15형 Macbook Pro 모델을 비롯해, Mac Pro나 iMac Pro 등의 고급 모델을 사용하면.. 개발이 잘 됩니다.2.돈을 내세요.iOS를 개발하려면 가장 먼저 Apple Developer Portal에서 연 129,000원의 개발자 프로그램에 등록해야 합니다. XCode를 사용해서 코드만 볼 것이라면 문제가 되지 않지만, 디바이스에 앱을 설치하고, 테스트하며, AppStore에 배포할 거라면 반드시 구매해야 합니다. 이 계정은 앞서 말한 것처럼 1년이 지나면 다시 구매해야 합니다. 만약 기업 개발자로 등록하려면 Enterprise Program이 따로 준비되어 있습니다. 기업을 위해 특화된 In-House 배포 등의 이점이 있습니다. 구매해야할 것이 꽤 많죠? 이제 익숙해져야 합니다.3.XCode를 설치하세요.XCode는 Mac App Store에서 설치할 수 있습니다. 용량이 크기 때문에 설치하기 전에 하드디스크 저장공간부터 확인하는 것이 좋습니다. 처음 실행하면 추가 컴포넌트를 다운로드하는 과정이 실행되고, 그 이후에 XCode를 사용할 수 있습니다. XCode와 관련된 자세한 내용은 아래에서 자세하게 다루겠습니다.4.어려운 것에 대비하세요.1)인증서‘들’XCode 설치 이후에도 몇 가지를 발급 받고, 셋업해야 합니다. 방 탈출 게임처럼 한 단계 한 단계 거치는 과정이 필요합니다. 첫 번째로 인증서‘들’을 발급받아야 합니다. 애플을 대신해 앱을 설치하고, 배포할 수 있는 권한을 위임 받는 과정입니다. 이 인증서들은 Apple Developer Portal의 ‘Certificates, IDS & Profiles’ 항목에서 발급 받을 수 있으며, MacOS의 키체인 앱을 이용해 개인 키를 생성하는 방식으로도 방식으로 발급 받을 수 있습니다. 2)디바이스 등록디바이스-iOS-에 개발한 앱을 설치하려면 애플 개발자 계정에 개발용 디바이스를 등록해야 합니다. 이 과정은 XCode에 신규 디바이스를 연결하고, 빌드 및 배포를 할 때 XCode가 알아서 합니다. 만약 디바이스를 보유하고 있지 않은 상황이라면 해당 디바이스의 UUID를 받아서 개발자 포털에 직접 등록할 수도 있습니다. 3)Bundle IDBundle ID는, 앱의 고유한 ID입니다. iOS가 앱을 식별할 때 사용하는 식별자이며, 보통 ‘com.companyname.appname’ 의 형식으로 회사나 개인의 도메인을 거꾸로 쓰는 것이 보편적입니다. 하지만 Bundle ID는 어디까지나 개발자가 결정하는 영역이므로 인스턴스 이름 지정하듯이 자신만의 고유한 방법을 사용해서 Bundle ID를 지정해도 문제가 없습니다. 4)Provisioning ProfileProvisioning Profile은 디바이스 정보와 앱 정보, 인증서 정보를 매핑해주는 Profile입니다. 최신 XCode에서는 이 Provisioning Profile을 자동으로 관리해주기 때문에 따로 신경쓰지 않아도 좋습니다.5.개발자 포럼에 질문하거나, StackOverflow에 질문하거나!질문하는 사람은 아름답습니다. 궁금하거나, 잘 안 풀리는 코드는 개발자 포럼에서 질문할 수 있습니다. 대신 영어 실력이 좋아야 합니다.크게 기대는 하지 않는 것이 좋습니다. 등록된 discussion에 대한 답글들이 ‘나도 같은 상황이다’, ‘나도 궁금한 점이다’ 등의 다른 개발자들의 답변 정도가 일반적이기 때문이죠.그들의 답변...저는 개발자 포럼보다 StackOverflow를 더 선호합니다. 참여하는 개발자 규모가 다르기 때문에 보다 양질의 정보를 빠르게 찾을 수 있습니다. (하지만 허위 정보도 존재합니다.) Vote 시스템으로 신뢰 높은 정보를 필터링할 수 있으나, 어떤 정보를 선택할지는 당신의 몫입니다.6. iTunesConnect와 친하게 지내세요.앱을 개발했다면, iTunesConnect를 통해 앱을 전 세계의 사용자들에게 배포할 수 있습니다. iTunesConnect는 iOS용으로 개발된 바이너리를 배포하는 등 앱 배포/테스트와 관련된 전반적인 사항들을 관리할 수 있는 포털입니다. AppStore에서 앱을 판매하려면 이 iTunesConnect를 통해 애플과 계약을 해야만 가능합니다. 출시할 앱을 등록하기도 하고, 앱의 사용자들이 어떤 경향을 보이는지 Trend Analysis를 확인할 수도 있습니다.iTunesConnectiTunesConnect에는 다양한 메뉴들이 있고, 앱을 배포하고 관리하는데 필요한 여러 툴이 있으므로 개발 중에 시선을 환기하고자 한다면 iTunesConnect를 한 바퀴 둘러보는 것도 좋습니다. 언젠가는 다 사용하게 될 테니까요.7.앱 개발을 마쳐도 XCode를 사용하세요.앱을 개발하고 iTunesConnect에 업로드하려면, XCode를 통해 간접적으로 바이너리를 업로드하게 됩니다. 서드파티 앱을 사용할 수도 있지만, 제가 주로 많이 사용하는 방식은 XCode입니다. 소스코드가 준비되었다면, XCode 메뉴의 Product > Archive 메뉴를 선택해 XCode가 배포용 앱을 빌드합니다. 빌드가 완료되면, 자동으로 Organizer 창이 열리면서 앱을 업로드할 수 있게 되죠. 이 때 미리 구매한 개발자 계정의 인증서가 준비되어 있어야 합니다. 모든 준비가 완료되고 아카이빙이 완료되면, Organizer의 Archives 탭에서 우측단의 ‘Upload to App Store…’ 버튼으로 바이너리 업로드를 진행할 수 있습니다.8.배포 전에 시험비행을 해봅시다.앱을 개발했다면, 테스트플라이트(TestFlight)를 통해 실제로 앱을 배포하기 전 ‘시험비행’을 할 수 있습니다. iTunesConnect에 관련 테스터들을 등록하고, 등록된 사용자들을 대상으로 미리 앱을 테스트할 수 있도록 요청하는 것이죠. 이 테스트플라이트에 배포된 바이너리를 그대로 AppStore에 배포하게 되므로, 테스트용으로 유용합니다.TestFlight테스트플라이트는 원래 iOS 배포 관리 솔루션을 제공하는 업체였지만 지금은 애플이 인수해 iTunesConnect에서 관리하도록 제공하고 있습니다.9.앱이 죽는다면 Organizer로 확인하세요.iOS는 충돌보고 Crash Report를 Organizer를 통해 오류를 확인합니다. 앱을 설치한 사용자가 동의하면 XCode는 iOS가 앱을 실행하면서 발생한 Crash Report를 애플에 자동으로 업로드합니다. 업로드된 Crash Report들은 XCode의 Organizer를 통해 다운로드하고, 확인할 수 있습니다. Organizer는 XCode > Window > Organizer 항목에서 실행하세요.Organizer와 Crash ReportCrash Report는 Organizer의 상단 Crashes 탭에서 확인이 가능합니다. 또 현재 보고 있는 Crash Report의 어느 부분에서 오류가 발생했는지 알고 싶다면 우측단의 ‘Open in Porject…’ 버튼을 눌러보면 됩니다.10.내 친구 XCode최근 XCode는 메이저 업데이트를 통해 사용성과 퍼포먼스를 향상시켰습니다. 하지만 이만큼 무겁고 느린 통합개발툴 IDE는 이클립스(Eclipse) 이후에 처음입니다. 안드로이드의 경우 IntelliJ 기반의 Android Studio로 쾌적한 개발환경을 제공하고 있는 반면, XCode의 업데이트는 퍼포먼스나 사용성 개선보다는 Swift의 메이저 버전 반영에 더 급급한 느낌입니다. (업데이트 때마다 속지만 ‘혹시 이번에는..’하고 또 속아 넘어갑니다.) XCode 사용을 위한 네 가지 팁을 소개합니다.1)XCode는 모노로그입니다.XCode는 로그를 따로 ‘예쁘게’ 볼 수 없습니다. 검은 화면에 흰 로그가 정리되지 않은 상태로 마구마구 출력됩니다. 개발자들에게는 쥐약같은 상황이죠. 이런 불편한 로그 출력 방식 때문에 저는 별도의 GlobalLogger 모듈을 작성해서 다음과 같은 스타일로 로그를 출력하도록 하고 있습니다.$$ BrandiLogger Error Log ##MESSAGE: Initial Parameter is not exist. ##LOCATION: BRLogPringer.swift @Line: 122 2)iOS개발자를 위한 휴식시간, 빌드 타임XCode의 빌드 타임은 개발자에겐 기나긴 휴식 시간입니다. 소스가 비대해질수록 퍼포먼스는 떨어지며, 담배 한 대를 태우고, 화장실에서 손을 씻고 들어와도 빌드가 절반도 안 된 상황을 마주할 겁니다. 빌드 타임을 줄이고자 구글링을 하면 몇 가지 팁을 발견할 수 있는데, 특히 빌드 타임을 가장 많이 단축할 수 있는 방법이 있습니다.짜잔! 공개합니다!먼저, 프로젝트 셋팅의 ‘Build Settings’ 항목에서 ‘Optimization Level’을 검색합니다. ‘Swift Compiler - Code Generation’ 항목을 찾을 수 있는데요. 여기서 Optimization Level의 Debug 항목을 ‘None’으로 설정하면, 빌드시간이 엄청나게 줄어든 것을 확인할 수 있습니다. Brandi iOS 버전의 소스코드는 원래 컴파일에 7분 이상이 소요되었지만, Optimization Level을 변경한 후 1분 내외로 단축되었습니다. Optimization Setting을 변경할 때는 꼭 Debug 항목만 변경하고, Release 버전은 기존 설정을 유지하는 것이 좋습니다. 그래야 빌드 과정에서의 버그를 막을 수 있기 때문이죠. 만약 이 설정으로 개발하던 도중 소스가 충돌되면 Command+Shift+K 단축키를 눌러 소스를 한 번 클린하고, 재빌드하세요. 충돌이 사라지는 경우가 많습니다. 빠른 빌드를 위해 종종 감수해야 하는 부분이기도 합니다. 3)Derived Data빌드가 자꾸 안되고 꼬일 때는 Derived Data 폴더를 삭제 해 보세요. Derived Data 폴더는 XCode > File > Project Settings(Workspace Settings) 항목에서 ‘Derived Data’ 항목 아래의 폴더 경로에서 접근할 수 있습니다. Derived Data 접근 경로Derived Data 폴더를 삭제하면 거짓말처럼 빌드 오류가 사라지는 기적을 만날 수 있습니다. 4)CocoaPods‘바퀴를 두 번 발명할 필요는 없다’는 격언이 있습니다. 이것을 개발에 적용하면 ‘잘 만들어진 라이브러리를 사용하라’ 정도가 되겠습니다. 개발자의 개발 시간을 현저하게 단축시키는 오픈소스 라이브러리. 이것들을 간편하게 사용하는 방식이 iOS에도 존재하는데, 바로 CocoaPods입니다. 프로젝트 Root 폴더에 Podfile을 생성하고, 원하는 오픈소스 라이브러리들을 명시한 후에 ‘pod install’ 명령어를 입력해주면….CocoaPods오픈소스 라이브러리가 설치되었습니다. 귀찮은 소스 다운로드와 임포트 과정을 거치지 않아도 됩니다. CocoaPods 설치와 사용에 관한 글은 구글링으로 쉽게 찾을 수 있습니다. 꼭 사용하길 권합니다.Mac App Store에서의 XCode 평점XCode는 느리고 불편합니다. 숨겨진 편의기능도 많지만 고질적인 빌드 문제와 사용성 문제를 마주하면 높은 평점을 줄 수가 없습니다. 그런데, 저만 그렇게 생각하진 않더라고요.(위 스크린샷 참조) XCode의 사용법은 기회가 되면 따로 정리하겠습니다.11.어떤 경우에도 대응할 수 있는 화면 구성을 원한다면, AutoLayoutiOS를 사용하면서, 금융권이나 쇼핑 앱들을 사용하다 보면 이런 상황이 발생합니다. 금융권 앱. 화면에 꽉 차지 않는 레이아웃 혹은 비정상적으로 커진 글씨본래 iOS는 단일 디바이스를 지향하는 플랫폼이었습니다. 아이폰 시리즈도 해상도가 변하지 않았기 때문에, 디바이스 종류가 많은 안드로이드처럼 다양한 스크린 사이즈를 지원할 필요가 없었습니다. 하지만 이제는 iPhone SE, iPhone 8, iPhone 8 Plus의 해상도에 iPhone X의 해상도까지 더해지면서 그야말로 ‘해상도 춘추전국시대’가 되었습니다.이런 다양한 해상도를 모두 지원하는 레이아웃을 구성하려면, iOS에서는 AutoLayout을 사용해야 합니다. AutoLayout은 Xib Editor에서 AutoLayout을 활성화하는 방식으로 사용할 수 있습니다. 거기에 한 가지 덧붙이면 Layout Constraints라는 개념도 있습니다. 레이아웃에 조건을 주는 방식입니다. 예를 들어 ‘어떤 해상도에서든 이 컴포넌트는 왼쪽 끝으로부터 10Point의 여백을 가지도록 한다’ 라는 식이죠. AutoLayout, Layout Constraint이 Layout Constraint를 이용하면 짧은 시간 안에 다양한 해상도를 지원하는 레이아웃을 쉽게 만들 수 있습니다. 가히 AutoLayout의 꽃입니다.ConclusionXCode/iOS 개발과 관련된 팁은 대부분 구글링으로 찾을 수 있습니다. 다룰 내용이 많지만 초보 iOS개발자들이 당황할 수 있는 내용을 중심으로 글을 썼습니다. 소소한 이야기지만, 분명 도움을 받을 수 있을 겁니다.글이정환 과장 | R&D 개발1팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #iOS #개발기 #업무환경 #인사이트 #경험공유 

기업문화 엿볼 때, 더팀스

로그인

/