스토리 홈

인터뷰

피드

뉴스

조회수 766

플로우 마케팅팀 재택근무 시행기(인터뷰)

#재택근무  #재택근무후기 #인터뷰 #협업툴 #기업문화 #조직문화안녕하세요 협업툴 플로우입니다.코로나19 사태와 함께 재택근무를 시행하는 기업들이 늘어나고 있습니다. 이미 회사 내 협업 도구가 구축되어 있던 기업들은 비상 재택근무 체제에도 큰 업무 공백 없이 원활한 소통을 이어가지만, 임시방편으로 '단톡방'으로 업무를 공유하는 경우 명확한 업무 보고의 기준이 없어 소통이 마비되거나, 과도하게 업무를 감시하는 수준에 이르는 등의 혼선을 겪고 있다고 합니다. 이에 플로우 직원들의 재택근무 방법이 다른 기업들에게 작게 나마 도움이 되길바라며 '솔직한 재택근무 시행기'를 들려드립니다. 팀마다 업무 속성이 다른 점을 고려하여 마케팅팀 > 고객지원팀 > 개발팀 > 디자인팀의 이야기를 순차적으로 업로드 하겠습니다. 플로우 재택근무 시행기 첫번째팀은 마케팅 팀의 장아람 담당자의 인터뷰입니다.Q. 간단한 본인 / 팀 소개A. 플로우 마케팅 팀 장아람 주임입니다. 마케팅 팀은 업무 특성상 수 많은 업무량 + 타팀 협의 / 대행사 핸들링 / 대표님 최종 컨펌.. 등, 그 어떤 팀보다 커뮤니케이션이 많이 필요합니다. 또한 마케팅은 답이 정해져 있지 않기 때문에 업무가 시행되는 과정 속에서도 중간 피드백 + 수정도 빈번합니다. 퍼포먼스 성과가 좋은 전략을 빠르게 업그레이드하여 성과를 키우고, 성과가 부진한 전략은 중단 결정 or 보완 전략이 필요하기 때문이죠. 최대한 업무 시간을 효율적으로 활용하여 어제보다 더 많은 도전을 하려고 노력하는 플로우 마케팅 팀 입니다.Q. 본인의 재택근무 환경을 소개 해 주세요.A. 재택근무 기간동안 친동생 보물 1호인 게이밍 컴퓨터 사용을 허락을 맡았습니다. (회사 노트북을 가져오긴 했지만) 이번 주는 포토샵 작업이 많은 것을 고려하여, 좀 더 사양이 좋은 데스크탑과 듀얼 모니터 사용이 적합하다고 판단했습니다. 다소 PC방 같은 분위기지만 게이밍 의자가 편해서 업무 집중에 큰 도움이 됐습니다.Q. 출/퇴근은 어떻게 체크 하나요?A. 경영 지원 팀에서 매일 아침 플로우로 [오늘의 출근 일정]게시물을 등록하여 줍니다. 각자 본인의 재택 근무지 에서 업무 준비가 완료되면 '실시간 업무 준비 사진'을 찍어서 인증샷을 남기고 있습니다. 회사까지 출근하는 이동 시간이 줄어드니 30분 정도 아침 뉴스 (코로나19 사태 현황)를 보다가 다른 직원들의 출근 알림을 확인하고 저도 업무 시작을 함께 했습니다.Q. 하루 업무 계획은 어떻게 하나요?A. 플로우 에서는 모든 업무의 [담당자/마감일]이 명확하게 지정되어 있습니다. 출근과 동시에 오늘까지 내가 마무리 해야 하는 업무를 필터링 하여 우선순위를 파악합니다. 플로우는 개인의 업무 뿐만 아니라 모든 직원들의 업무를 투명하게 확인 할 수 있습니다. 즉, 대표님도 팀원들도 저의 업무를 확인 할 수 있습니다. 몇 년전 협업툴이 없는 회사에서 근무했을 때는, 본부장님의 출장 기간 동안 엑셀로 업무 일지 작성하여 오전 / 오후에 보고하는 절차가 필요했는데.. 번거로운 보고 절차 없이도 투명하게 업무를 관리 할 수 있어서 좋았습니다.Q. 여러명이 참여하는 회의는 어떻게?A. ZOOM이라는 화상 회의 채널을 활용하였습니다. 상황 상 평소보다 회의가 빠르게 진행 되었습니다. 모니터에 바로 자료를 띄우고 팩트 중심으로 간략하게 주요 이슈만 공유 하였습니다. 사실 화상회의가 처음 이였던 저는 모니터 연결의 실패하여 얼굴을 비추지는 못했습니다. 저를 제외한 다른 분들은 스마트 하게 적응하여 차질 없이 회의를 진행하였습니다. 잘 들린다는 사실을 알리고 싶어 무턱대고 헤드폰을 끼고 혼자 대답을 했습니다.Q. 오전시간 업무는?A. 오전에는 언제나 그러하듯 우선순위가 높은 업무 = (오늘까지 마감일을 절대 넘겨서는 안되는 업무)를 우선적으로 처리합니다. 내가 맡은 '업무에 대한 요건'들은 플로우에 명확하게 기록되어 있어서 혼선 없이 수월하게 업무를 진행 할 수 있었습니다. 업무를 진행하는 과정에서 질문이 있거나, 사소하게 업무 방향이 변경되는 경우가 있어 '실시간 채팅'으로 소통하였습니다. 재택근무 기간에는 가급적 더 빨리 회신을 하기로 약속을 했기 때문에 오전에 진행했던 간단한 업무 소통에는 전혀 문제가 없었습니다.Q. 점심시간은 어떻게 보냈나요?A. 전 날 저녁에 미리 점심을 준비 해 놨습니다.(원래도 저와 동생의 건강을 위해! 주 3일 이상 퇴근 후 요리를 해서 건강한 아침을 챙겨 먹고 있습니다.) 코로나19 사태에 대비하기 위해서는 개인의 위생/컨디션 관리가 가장 중요하다고 생각합니다.Q. 점심시간 후 오후 업무 복귀에 어려움은 없었는지?A. 원래 플로우는 점심시간이 자유롭습니다. 때문에 내가 정한 점심시간에 충분히 휴식을 취하고 오후 시간에 리스타트 하고 있습니다. 재택근무라고 해서 특별히 점심시간에 늘어지진 않았습니다. (각자의 점심시간이 다르기 때문에) 내가 점심 시간을 보내고 있는 틈틈이 실시간 업무 알람이 왔고, 느낌 상 다들 꽉 채운 점심시간을 보내는 것이 아니라 신속히 업무 마무리를 하고 싶어 빨리 복귀를 하는 듯 보였습니다. 오후 1시 30분 쯤에는 모두 열일하는 분위기가 시작되어 저도 평소와 같이 오후 업무를 시작했습니다.Q. 업무 소통에 어려움은 없었나?A. 상황에 따라 커뮤니케이션 방법을 달리했습니다. 글로 요건을 정리 할 수 있는 업무는 플로우로 업무 요청을 했습니다. 약속된 업무 요건 외 좀 더 다양한 의견이 필요한 경우에는 실시간으로 채팅을 주고 받았습니다. 중간에 좀 더 빠른 회신이 필요한 경우 전화를 했고, 전화는 거의 5분 내로 끊었습니다. 하루의 업무 소통의 방식의 비율을 표시한다면 아래와 같습니다.* 재택근무 중 업무 소통 비중- 플로우 : 업무 요청 (70%)- 플로우 : 실시간 채팅 (20%)- 전화 (10%)Q. 전화는 어떤 경우에 필요 했는가?A. 아무리 협업툴이 시/공간의 제약을 넘어 소통을 원활하게 도와주더라도 상황에 따라 분명 비 언어적 커뮤니케이션도 필요했습니다. 대표님께서 아주 중요하다고 강조했던 마케팅 콘텐츠를 기.깔.나.게. 살리지 못하여.. 대표님의 사랑을 독차지 하게 되었습니다. ( 어찌 보면 근무 시간이라 너무나 당연히 필요한 업무 피드백인데 집에서 전화로 피드백을 받으니 막 반갑거나 막 좋거나 그렇지 않았습니다. ㅎ )Q. 퇴근까지 업무 집중이 잘 되었는가?A. 평소와 비교 했을 때 업무 집중 오히려 더 잘 됐습니다. 개인마다 재택근무 환경이 다르겠지만 저는 동생이 출근을하고 완전히 혼자 집에서 일을 한 덕분에 타인 or 외부 영향을 받지 않고 온전히 개인 업무에 몰두 할 수 있었습니다. ( 평소에는 가끔 회사 분위기에 따라 집중이 흐려질 때도 있었던 것 같습니다. ) 재택근무 기간에 절대로 업무 공백이 없어야 한다는 심리적 책임감과 약간의 부담감이 있었기에 마감일에 맞춰 더 철저하게 업무를 진행 했습니다.Q. 짝짝! 모든 업무가 마무리 되었습니다.퇴근 후 업무 보고 절차는?A. 실시간으로 모든 업무 처리 상태가 알림으로 뜨기 때문에 평소에 플로우 마케팅팀은 퇴근 시간에 따로 업무 보고 절차가 없습니다. 다만 재택근무 기간에는 평소보다 좀 더 철저하게 업무 보고를 하고 싶어서 [ 할 일 ] 체크 리스트 기능을 활용하여 직관적으로 보고를 했습니다. 업무 계획 100% 수행. 이로써 퇴근 완료!Q. 플로우 활용 재택근무 (마케팅팀 장아람 마지막) 총평A."어디서 일하느냐" 보다 "어떻게 효율적으로 일하느냐"가 중요하다.Good (+) 내 스스로 업무 시간을 통제하지 못하고 업무에 집중하지 못하는 시간이 생기지 않을까? 고민과 달리 오히려 외부 환경에 영향을 받지 않으니 업무 집중이 더 잘 됐다. 또한 플로우를 활용한다면 담당자와 / 마감일이 명확하고 실시간 업무 처리 알림이 뜨기 때문에 장기간 재택근무를 하더라도 업무 리듬이 쉽게 깨지지 않을 것 같다. 팀 커뮤니케이션은 상황에 따라 다르겠지만 현재로서는 큰 무리가 없었다. 결과적으로 업무의 만족도는 평소와 비슷하게 잘 유지 될 수 있었다. 무엇보다 '코로나19'로 부터 나를 아주 안전하게 지킬 수 있었다는 점은 매우 높은 점수를 줄 수 있다.Bad (-) 사람과 사람의 관계가 중요한 나로써는 유대감(친밀감)이 거의 느껴지지 않아서 장기간 혼자 일을 해야 한다면 일의 흥미가 떨어지거나 외로울 수도 있을 거라는 생각이 들었다. 빨리 코로나가 종식되어 모두 한 공간에서 서로 에너지를 부딪히면서 일하고 싶다. 평소 같았으면 대표님과 피드백을 주고 받으며 일을 발전시키는 재미가 있었는데 집에서 전화로 피드백을 받으니 왠지 모르게 전혀 반갑지 않았다. 마지막까지 걸려온.. 대표님의 피드백 전화.. (내겐 너무 완벽한 당신...) 어쨌든 오늘 하루도 잘 마무리 됐다고 한다. 이상. 플로우 마케팅 팀 재택근무 시행기 끝!협업툴 플로우 바로가기
조회수 1849

Amazon SageMaker는 처음이지?

Overview브랜디 랩스를 사랑해주시는 여러분, 안녕하세요. 개발자 오-연주입니다. 지난 4월, Brandi Back-end 개발자 분들과 코엑스에서 열렸던 AWS Summit(04.18 - 04.19)에 다녀왔습니다!여러 세션을 듣는 와중에 우연히 AI machine learning 를 쉽게 도와주는 Cloud Machine learning Flatform인 Amazon SageMaker에 대해 들었습니다. 듣던 중 머닝러닝에서 학습을 시켜 그 데이터로 ‘Brandi 서비스와 연관지으면 어떨까’ 라는 생각을 했는데요. 그래서 오늘은 많은 분들의 관심사인 머신러닝 학습관련 Amazon Amazon SageMaker에 대한 글을 쓰려고 합니다.sage는 마법사, 현자라는 의미입니다.sageMaker를 create하자!“자, 퐈이팅 넘치게 신나게 sagemaker를 create해볼까요!” 했는데…Seoul Region이 없다!현재 지원되는 리전은 아직 네 군데입니다. 저는 제일 있어 보이는 미국 동부의 버지니아를 선택하겠습니다.1] EU (Iceland) 2] US West (Oregon) 3] USEast (N. Virginia) 4] US East (Ohio)SageMaker를 create하기 전에는 학습할 데이터와 학습 모델을 저장할 S3 Bucket이 필요합니다.1. Default 값으로 S3를 만드세요.중요한 점은, bucket 이름이 “sagemaker-” 로 시작되어야 한다는 것입니다. 그래야 나중에 notebook instance가 어느 곳에 데이터를 저장할지 알 수 있습니다.Next, Create bucket 버튼을 누르다 보니, S3 Bucket이 생성되었습니다.2. Create notebook instance 버튼을 눌러 SageMaker를 만들어 봅시다!원하는 이름을 지어줍니다. 저는 machineLearningTest 라고 지었어요. IAM role 선택하는 부분에서 None을 눌러 Default 값으로 sageMaker를 만듭니다.인고의 Pending 시간3. Pending이 끝나고 “open” action을 선택하면 Jupyter가 열립니다.Jupyter(Jupyter Notebook)는 오픈 소스로 라이브 코드, 등식, 코드에 대한 시각화를 위해 사용됩니다. 또한 description을 위한 텍스트 문서(마크다운 등)를 지원하는 웹 어플리케이션입니다. 이렇게 하면 코드에 대한 문서화가 가능합니다. 이 글에서는 Jupyter Notebook을 통해 데이터를 학습하고, 그 데이터를 테스트하겠습니다. 제가 진행한 전체 코드 스크립트(entire script)는 이 글의 마지막 부분에 기술있으니 참고해 주세요.자, 이제 드디어 머신러닝 학습을 시킬 차례입니다. 머신러닝 학습에 꼭 필요한 키워드 두 가지를 뽑아봤는데요. - Dataset: 정제된 데이터와 그 데이터에 대한 label을 정리해 놓은 데이터 모음      - Machine learning Algorithm: 기계학습 알고리즘 우리는 MNIST 데이터셋을 k-means 알고리즘으로 학습시킬 겁니다.1)MNIST Dataset기계학습 알고리즘을 사용할 때 가장 기본적으로 테스트하는 데이터셋으로 MNIST 데이터셋이 있습니다. 이것은 사람이 0부터 9까지 숫자 중 하나를 손글씨로 쓴 이미지 데이터와, 해당 이미지에 대한 레이블(0 - 9)이 6만 개 들어있는 학습 데이터셋입니다. 각 이미지는 가로와 세로가 각각 28 픽셀로서, 각 픽셀은 0부터 255 사이의 숫자가 있습니다. 다시 말해, 하나의 이미지는 28 x 28 = 784개의 숫자로 이루어진 데이터입니다. 하나의 이미지를 나타내는 데이터의 array > length가 784라고 표현할 수 있겠네요.MNIST dataset2)k-means지금 만든 SageMaker 학습 알고리즘은 AWS 튜토리얼에서 제시한 K-means를 사용할 예정입니다. k-means는 label 없이, 즉 정답을 모르는 상태로 학습을 하는 비지도 학습 (unsupervised learning) 알고리즘 중 가장 쉽고 많이 쓰입니다. 정답을 모르니, ‘비슷한 애들끼리 뭉쳐봐’ 라고 하고, 알고리즘은 비슷한 친구들끼리 뭉쳐 놓습니다. k-means에서 k는 ‘k개 덩어리로 뭉쳐주세요’라고 제시하는 숫자입니다. 우리는 0부터 9까지 비슷한 친구들끼리 모이게 하고 싶으니 k=10을 쓸 겁니다.지금부터 해야 할 TO DO!1. MNIST 데이터셋을 다운로드받고, 우리가 학습시키기 좋도록 정제하기(preprocessing)2. Amazon SageMaker를 통하여 데이터 학습시키기(training job)3. Amazon SageMaker를 통하여 학습된 데이터를 배포하기(Deploy the model)4. 배포된 모델에 요청을 보내 테스트 데이터에 대한 예측값을 받아오기(inference)4. Jupyter 노트북 인스턴스 생성하기Jupyter에 New Notebook(conda_python3)을 선택해 새로운 노트북을 생성합니다.5. 학습시키기 위한 기본 셋팅드디어 코딩 시작입니다! (의욕활활) 초기 설정해두었던 IAM role, S3 Bucket, MNIST 다운로드, 다운받은 데이터 등을 확인하세요. 글보다 코드로 주석을 보는 게 가독성이 더 좋습니다. 아래 노트북을 통해 마크다운, 주석처리를 통해 description을 해두었으니 참고 바랍니다.외부에서 MNIST 다운로드가 쉽도록 한 url로 MNIST를 다운받는데 성공했습니다. MNIST 데이터셋 내용물 중 하나를 jupyter notebook에 그려서 제대로 다운 받았는지 show_digit() 함수를 작성해 확인하겠습니다.서른 번째 데이터는 누군가 3을 손글씨로 쓴 이미지입니다.6. 머신러닝 학습하기이 세션에서는 기계학습 알고리즘 설정, 학습할 데이터 경로를 지정하겠습니다. 그 후 MNIST 학습 데이터를 S3 버킷에 옮겨 저장합니다.kmeans.fit() 함수를 호출해 직접 학습을 시켜볼까요? 학습 과정은 상당히 오래 걸린다고 했는데 다행히 4분 만에 학습이 끝났습니다.여기서 잠깐! 여기서 k = 10에 대해서 조금 더 알아보도록 할게요. cluster란 한 지점에 점을 찍고 데이터 분석을 한 뒤, 비슷한 데이터들의 군집을 만들어 주는 것입니다. k-means가 진행되면서 각 cluster의 중심이 서로가 잘 뭉치는 방향으로 이동합니다. 직접 그려봤어요(부끄).7. 학습된 모델을 배포하기학습을 시키면 테스트를 하거나 사용할 수 있어야겠죠? 학습된 모델을 배포해 주세요.8. 배포된 모델 테스트 진행하기배포된 모델에 valid_set 데이터로 검증 데이터를 진행합니다..predict() 함수를 호출하면 새로운 이미지가 어떤 cluster에 속했는지 예측 결과를 알려줍니다. 가장 가까운 cluster가 0번이라고 예측 결과를 반환했네요. 또한 cluster 중심과의 거리는 5.85라고 알려줍니다. 여기서 중요한 점은 cluster 번호와 실제 숫자는 일치하지 않는다는 겁니다. 알고리즘은 임의로 cluster 중심에 번호를 매기는데, 꼭 0번 클러스터가 숫자 ’0’을 뭉쳐놓은 건 아니에요!9. 데이터 예측해보기더 많은 데이터를 예측해볼까요? valid set에 있는 100개 데이터를 예측해봅시다! 각 cluster에 가까운 데이터들이 쭉 선정되었습니다. 정확하지는 않지만 비슷한 숫자 모양들이 서로 군집되어 나타납니다. 0과 2같은 숫자들은 잘 표현되지만, 알고리즘이 9랑 4를 헷갈리거나 5와 3을 헷갈리는 듯 하네요.FASHION MNIST로 SageMaker 머신러닝 학습 및 예측해보기자, 이제 몸도 풀었으니 제가 하고 싶었던 패션 관련 머신러닝 학습 및 예측을 진행해볼게요. 마침 옷 그림으로 MNIST와 매우 비슷한 데이터를 만들어 놓은 fashion-MNIST라는 데이터셋을 발견했어요!1. 패션 관련 MNIST 다운로드 받기패션 MNIST 데이터셋을 우선 다운받아 볼게요! 다운로드는 여기에서 받을 수 있습니다. 총 네 개의 파일을 다운로드 받으세요.- train-images-idx3-ubyte.gz : train set 이미지  - train-labels-idx1-ubyte.gz : train set 레이블  - t10k-images-idx3-ubyte.gz : test set 이미지  - t10k-labels-idx1-ubyte.gz : test set 레이블  다운로드 받은 패션 Mnist의 label은 아래와 같이 되어 있습니다. 숫자 0부터 9 대신에 각 이미지가 어떤 이미지인지 텍스트로 표현되어 있어요.LabelDescription0T-shirt/top1Trouser2Pullover3Dress4Coat5Sandal6Shirt7Sneaker8Bag9Ankle boot2. Fashion-MNIST 데이터셋을 이전에 사용했던 mnist.pkl.gz 와 같은 형태로 변환해주는 스크립트 작성해주기위에서 연습할 때는 mnist.pkl.gz 한 개 파일만 사용했는데요!?! 그래서 다운로드 받은 네 개의 파일을 똑같은 형식의 파일 하나로 만들어주는 파이썬 스크립트를 작성해 fashion-mnist.pkl.gz 파일로 만들었어요.import gzip import pickle import numpy as np # MNIST 데이터셋은 train, test 셋이 각각 image, label로 나누어 저장되어있는 4개의 파일로 구성 test_image_path = 't10k-images-idx3-ubyte.gz' test_label_path = 't10k-labels-idx1-ubyte.gz' train_label_path = 'train-labels-idx1-ubyte.gz' train_image_path = 'train-images-idx3-ubyte.gz' out_file_name = 'fashion-mnist.pkl.gz' # train label / images 추출 with gzip.open(train_label_path, 'rb') as train_label_f:     train_label = np.frombuffer(             train_label_f.read(), dtype=np.uint8, offset=8).astype(np.int64)   with gzip.open(train_image_path, 'rb') as train_image_f:     train_imgs = np.frombuffer(             train_image_f.read(), dtype=np.uint8, offset=16).reshape(-1, 784).astype(np.float32)   # test label / images 추출 with gzip.open(test_label_path, 'rb') as test_label_f:     test_label = np.frombuffer(test_label_f.read(), dtype=np.uint8, offset=8).astype(np.int64)   with gzip.open(test_image_path, 'rb') as test_image_f:     test_imgs = np.frombuffer(             test_image_f.read(), dtype=np.uint8, offset=16).reshape(-1, 784).astype(np.float32)   # 기존 60000개 training set에서 50000개는 train set으로 사용하고, 10000개는 valid set으로 활용 train_label, valid_label = train_label[:50000], train_label[50000:]  train_imgs, valid_imgs = train_imgs[:50000], train_imgs[50000:]   # train set, validati on set, test set을 튜플 자료형으로 저장 out_data = ((train_imgs, train_label),             (valid_imgs, valid_label),             (test_imgs, test_label))   # pickle file로 dataset 데이터 포맷 맞춰주기 with gzip.open(out_file_name, 'wb') as out_f:     pickle.dump(out_data, out_f) 이 과정을 통해 나온 결과물, fashion-mnist.pkl.gz 를 Jupyter Notebook이 있는 경로에 업로드합니다.fashion-mnist.pkl.gz가 업로드 되었습니다!3. 머신러닝 학습하기아까 사용했던 활용했던 숫자 MNIST 스크립트를 그대로 사용하겠습니다. show_digit()을 이름만 바꾼 show_fashion()으로 데이터를 살펴보니 드레스가 보입니다.조금 전에 했던 숫자 MNIST와 똑같은 과정을 SageMaker를 이용해, 학습 → 테스트 → 예측해보니 아래와 같은 예측 결과를 얻을 수 있었습니다. 신발은 신발끼리, 바지는 바지끼리, 가방은 가방끼리 분류된 게 너무나 신기합니다. (아까 진행한 숫자보다 더 학습이 잘 된 것 같은건 기분 탓일까요…?)머신러닝이라고 겁내지 않아도 됩니다! 유저들에게 더 좋은 서비스 제공할 수 있으니까요. 지금까지 브랜디 개발2팀의 단아한 개발자 오연ㅈ….참사를 막아주세요.앗, 잠시만요!! 중요한 것을 놓칠 뻔 했네요.저처럼 테스트를 하면 그냥 지나치지 마세요. 자동 결제로 출금되는 뼈 아픈 경험을 할 수도 있습니다. 반드시 이용했던 서비스들을 stop 하거나 terminate 해주세요. (Clean-up단계) 자세한 내용은 여기를 클릭하세요.지금까지 Brandi 개발 2팀, 단아한 개발자 오연주였습니다!# entire script (숫자 Mnist) # 오호 드디어 coding start! # 이제부터 Brandi의 단아한 개발자, 저를 따라오시면 됩니다 :) # 노트북 Block을 실행하는 방법은 Shift + Enter 입니다 from sagemaker import get_execution_role role = get_execution_role()  # 초기에 설정해 뒀던 IAM role 가져오기 bucket = 'sagemaker-julie-test' # 초기 단계에 만들었던 S3 Bucket 이름 적기 %%time import pickle, gzip, numpy, urllib.request, json   # 여기서 잠깐, 생소한 라이브러리 설명을 드릴게요! # pickle: python식 데이터 압축 포맷 # numpy: 수치 계산을 하기 위한 python package # Load the dataset urllib.request.urlretrieve("http://deeplearning.net/data/mnist/mnist.pkl.gz", "mnist.pkl.gz") with gzip.open('mnist.pkl.gz', 'rb') as f:     train_set, valid_set, test_set = pickle.load(f, encoding="latin1")     # matplotlib로 그리는 그림이 jupyter 노트북에 바로 보여줄 수 있도록 설정 %matplotlib inline import matplotlib.pyplot as plt # 도표나 그림을 그릴 수 있게 해주는 라이브러리 plt.rcParams["figure.figsize"] = (2, 10) # 그림의 크기 지정 def show_digit(img, caption='', subplot=None):     if subplot is None:         _,(subplot) = plt.subplots(1,1)         imgr = img.reshape((28, 28))     subplot.axis('off')     subplot.imshow(imgr, cmap='gray')     plt.title(caption)   # train_set의 그림과[0] 데이터 이름[1]을 예시로 보여준다 show_digit(train_set[0][30], 'This is a {}'.format(train_set[1][30]))   # 학습을 하기 위해 학습 알고리즘 및 데이터 경로 설정! from sagemaker import KMeans data_location = 's3://{}/kmeans_highlevel_example/data'.format(bucket) output_location = 's3://{}/kmeans_example/output'.format(bucket)   print('training data will be uploaded to: {}'.format(data_location)) print('training artifacts will be uploaded to: {}'.format(output_location))   kmeans = KMeans(role=role,                 train_instance_count=2,  # 장비 2대를 사용하여 학습하겠어요!                 train_instance_type='ml.c4.8xlarge',                 output_path=output_location,                 k=10,  # 아래 그림을 참고해 주세요!                 data_location=data_location) %%time   # 학습 시작! kmeans.fit(kmeans.record_set(train_set[0]))   %%time # 모델을 만든 후 사용하기 위하여 배포하기 kmeans_predictor = kmeans.deploy(initial_instance_count=1,                                 instance_type='ml.m4.xlarge')                                  # valid_set에 30번째 sample을 테스트 해보기 result = kmeans_predictor.predict(valid_set[0][30:31])  print(result)   %%time   # vaild_set에 있는 0번부터 99번까지의 데이터로 cluster를 예측 해보자 result = kmeans_predictor.predict(valid_set[0][0:100])   # 예측 결과에 대한 cluster 정보를 수집 clusters = [r.label['closest_cluster'].float32_tensor.values[0] for r in result]   # 각 cluster별 예측된 이미지 출력 for cluster in range(10):     print('\n\n\nCluster {}:'.format(int(cluster)))     digits = [ img for l, img in zip(clusters, valid_set[0]) if int(l) == cluster ]     height = ((len(digits)-1)//5)+1     width = 5     plt.rcParams["figure.figsize"] = (width,height)     _, subplots = plt.subplots(height, width)     subplots = numpy.ndarray.flatten(subplots)     for subplot, image in zip(subplots, digits):         show_digit(image, subplot=subplot)     for subplot in subplots[len(digits):]:         subplot.axis('off')     plt.show() 출처Getting Started - Amazon SageMaker CodeOnWeb - 머신러닝 초보를 위한 MNIST fashion-mnist 글오연주 사원 | R&D 개발2팀[email protected]브랜디, 오직 예쁜 옷만#브랜디 #개발문화 #개발팀 #업무환경 #인사이트 #경험공유
조회수 1101

Team Profile: Meet Jungkap

As a yet minuscule startup, each member holds a significant power over the overall atmosphere of the team. And in our ultimate quest to make big waves in the data world, we need to make sure that the people at the helm are at least kind of cool. We think we’ve done a pretty good job so far in assembling a society of unique but equally driven members.So we bring you this seven-part series, one of each devoted to interviewing each of our members in detail, to give you an in-depth glimpse into the people responsible for bringing you the future of machine learning with Daria. Plus, we peppered the interviews with questions from Dr. Aron’s “The 36 Questions that Lead to Love”*, cherry picked to make work appropriate and concise, but interesting.(*actually falling in love with our members highly discouraged)Jungkap, the most recent addition to our team, made the move from sunny Santa Clara to Seoul, a city that is slowly freezing over as you read this. But he is used to the cold, Jungkap assures us, having spent his doctorate years in the apocalyptic winters of Michigan. When he’s not busy helping build Daria’s machine learning engine, Jungkap devotes his time to re-exploring Korea and taking care of his cats Jolie and Brad (named so before the tragic dissolve of Brangelina). Learn more about him here!Tell us about your role at XBrain.JP: I joined the team as a machine learning engineer, and my main task is to develop our machine learning engine. I have the task of researching and finding solutions to obstacles that hinder people from using automated machine learning technology with ease.What does a typical work day look like for you, morning to evening?JP: I get to work at about 9:15 AM (*the earliest, we note, out of any of the members), and check the Slack messages and emails I got overnight. Since I concentrate the best in the morning, I take a look at relevant articles and dissertations then. Since I didn’t major in machine learning at school, there’s a lot I still have quite a bit to learn, learning’s still a big part of my work process. After I’ve warmed up a bit, I study the code that’s already been written, and develop the parts that need to be developed. Then I have lunch with the team, which is a part of our culture that I really enjoy — a set meal time and a chance to have a conversation with other members. Today I did investigation into an issue we had with the machine learning engine, and worked on how to solve that problem based on my discoveries. I think I’ll be working on constructing that idea into actuality, with a lot of validation, tests, trial and error.What are the parts of your job that you enjoy the most?JP:I enjoy enhancing and optimizing processes, and actually seeing improvement after I’ve worked on something. I’m working on improving the system that we have right now, but a long-term project we have in mind is developing technology of XBrain’s own, and figuring out the needs of our customers. In order to do that, I’m spending a lot of time looking into any issues that we have with our current technology, hoping to get insight from the process.What are the least enjoyable/most challenging parts of your job?JP:The most challenging, rather than the least enjoyable, is issue definition. There are four types of situations to what can happen: either I find a problem that’s already been found, or something that’s so insignificant that no one cares, something that’s unsolvable, and, finally, an issue that’s both important and solvable. The fourth is what we’re going after, and the process is long and arduous, but I do enjoy it to a certain extent.Pick one item on your desk that tells us something about you.JP:I don’t have much stuff on my desk, which is something I also noticed about some of the Silicon Valley companies I visited while I was working in the States, like Twitter or LinkedIn. Most engineers’ desks just had computers on them, and I appreciate that sort of simplicity.Jungkap keeps things on his desk simpleWhat made you go into machine learning?JP:I was on the user end of machine learning technology in grad school and at work thereafter, and felt that the process of utilizing and understanding tools was too complex and difficult. I thought that I might find it fulfilling to optimize this process myself by becoming a machine learning engineer myself.Why XBrain?JP:First off, I really liked how the team was set up, people-wise. I was also struck by the competency of the members and the company culture, which suited me well. The values that XBrain pursues, and the ideas that it had about the future of machine learning technology was in line with my own. Not to see it simply as a source of profit, but as something that could potentially bring a lot of people a great deal of help.As our most recent member, what’s a vision you have for our team?JP:It’s not so much a vision as a direction we should be heading in — despite how machine learning is such a huge buzzword now, I think it’s still in the process of research and development. A lot of work needs to be done before it can start having a real impact in the world. What our role is, then, is to look far ahead and start with the basics.Recommend a movie for our next Cinema Society, please.JP:Downsizing, which hasn’t come out in Korean theaters yet, but I think it presents a lot of points for discussion.If you could sum up XBrain in three words or less?Serious, but quirky.If you could have dinner with any XBrain member, who would it be and why?JP: JY — we haven’t really gotten a chance to share a meal, and I feel like he’d have some interesting storiesWhat can you tell us about the JP 10 years from now?JP:He will probably be a more seasoned machine learning engineer, from his 10 years of research and studying. I’m a novice engineer now, but I’d like to be in a more senior position then, mentoring younger engineers.Given the choice of anyone in the world, whom would you want as a dinner guest?JP:Carl Sagan, who first got me interested in science and technology. In my head, he’s this benevolent father figure who would offer to mentor me.Would you like to be famous? In what way?JP:No…What would constitute a “perfect” day for you?JP:I think a “perfect” day is a day that’s yet to come. Is that too weird to publish?If you were able to live to the age of 90 and retain either the mind or body of a 30-year-old for the last 60 years of your life, which would you want?JP:The body, definitely. Minds can mature — bodies not so much.For what in your life do you feel most grateful?JP:Probably soundness of mind and body.If you could wake up tomorrow having gained any one quality or ability, what would it be?JP:Speedier comprehension upon reading something?What is the greatest accomplishment of your life?JP: Forging strong relationships with good people.What, if anything, is too serious to be joked about?JP:It depends on the audience, I think. Anything that they might consider offensive, or a weak spot, is off limits.Your house, containing everything you own, catches fire. After saving your loved ones and pets, you have time to safely make a final dash to save any one item. What would it be? Why?JP: My hard drive — it has everything on it.#엑스브레인 #팀원소개 #팀원인터뷰 #기업문화 #조직문화 #팀원자랑 #머신러닝 #머신러닝엔지니어
조회수 1606

상품기획팀 이승준 팀장 "써티컷 발명가라고 불러주세요"

"써티컷의 모든 상품은 나를 거친다!"Q. 자기소개를 해주세요. 30CUT에서 무슨 일을 맡고 있나요?“안녕하세요, 상품기획팀장 이승준입니다.”써티컷에서 다양한 상품을 기획하고 있습니다. 지금 NH농협은행과 출시 준비 중인 P2P 대환대출 상품 ‘NH 30CUT론’부터 추후 공개될 자산관리 애플리케이션 서비스 등 주요 서비스들의 기획을 맡고 있습니다.Q. NH 30CUT론을 개발한 '발명가'라고 들었습니다! 상품 설명을 해주신다면요?먼저 ‘NH 30CUT론’은 신용카드대출을 사용하고 있는 고객들을 대상으로 이자를 30% 인하해 대환 해주는P2P 금융 서비스인데요, 이 상품의 기획 전반을 담당했습니다. 대출 및 투자 구조와 신용평가 시스템(CSS,Credit Scoring System)을 개발했고요. 써티컷이 올해 4월 기술보증기금에서 받은 벤처기업 인증이 바로 신용평가 시스템에 관한 것인데요, 영광스럽게도 제 이름이 발명가로 올라갔습니다. 앞으로 발명가라고 불러주세요(웃음). 현재는 자산관리 앱을 기획하면서 CSS 고도화 작업을 진행 중입니다. 추후에 출시되는 다양한 대출 상품의 기획도 맡게 될 것 같습니다. Q. P2P 금융 플랫폼의 핵심이 바로 신용평가 시스템이라고 해도 과언이 아닌데요. 써티컷의 신용평가 시스템은 어떤 강점을 가지고 있나요?일단 초기 개발 단계에서는 신용카드대출 사용자의 3년간 데이터 500만 개를 가지고 서비스를 기획했는데요. 보다 정확한 심사를 위해서는 비정형 데이터를 포함한 업그레이드된 CSS가 필요합니다. 이를 위해 여신운용팀에 이연정 팀장님이 입사하셨고요. 함께 진화된 신용평가 시스템을 만들 계획입니다. 지금 금융당국과의 문제 때문에 서비스 론칭이 늦어지고 있긴 하지만, 출시 전후로 계속해서 CSS는 고도화할 예정입니다. Q. 30CUT에 어떻게 합류하게 되셨나요?지인의 소개로 대표님과 만나게 됐는데 첫 만남부터 ‘아, 이 사람은 보통 사람이 아니구나’를 느꼈거든요. 왜냐면 회계법인에서 높은 자리에 있는 분이라고 들었는데(자세한 정보는 모르고 만났으니까요) 엄청 패셔니스타인 거예요. 보통 이 나이대의 임원 분들이 입는 일반적인 스타일이 있잖아요? 그런데 전혀 그렇지 않았어요. 그때 인사이트를 얻었죠. 이 사람은 뭔가 다르겠구나(웃음). Q. 그러면 대표님의 패션 때문에 입사하신 건가요?(웃음)그 점에서 긍정적인 충격을 받은 건 사실입니다. 그렇지만 사업적으로도 비전이 물론 확실했어요. 가장 맘에 들었던 건 P2P 금융 사업을 하는데 처음부터 기관투자자 모델로 하겠다고 하시더라고요. 이 부분에서 입사를 결정했죠. 사실 P2P 대출업이 요즘 굉장히 핫하고 유망하다고 하지만 개인투자만으로는 분명 한계가 있거든요. Q. 그렇다면 개인투자자 P2P 모델의 한계가 뭐라고 생각하시나요?개인이 투자자로 들어오면 일단 규모를 키우기가 어려워요. 미국의 렌딩클럽이 2015년 말 기준으로 총 15조 원 정도를 대출했다고 하는데, 이 말은 15조 원의 투자금이 조달이 됐다는 거거든요. 개인만의 힘으로는 불가능하죠. 현재 렌딩클럽도 투자자의 80% 가까이가 집합투자기구 포함해서 기관투자자가 참여하고 있습니다. Q. 기관투자자 P2P 모델에 매력을 느끼신 거네요. 기존에 JT 그룹에서 일을 하고 계셨는데, 대형 금융기관에서 작은 핀테크 업체로 옮겨오기가 쉽지 않았을 것 같아요.핀테크가 발전하면서 금융 시장도 빠르게 변하고 있습니다. 요 몇 달 사이에 공인인증서 없이 간편하게 송금하는 모바일 서비스들이 훌쩍 늘어난 것만 봐도 알 수 있죠. 기존 금융사들은 역사와 노하우를 갖고 있지만 한계도 분명히 존재해요. 지금 저축은행이나 캐피털 기업들 같은 경우 먹거리가 떨어져가고 있거든요. 예를 들면, 저축은행 대출액이 증가세를 보이지만 대부분이 추가 대출입니다. 즉 신규 고객을 유치하지 못하고 있다는 거죠. 그런 면에서 대출액 증가는 허수라고 봐요.  이런 문제로 고민하던 찰나에 대표님을 만나게 된 거죠. 성장 가능성이 큰 핀테크 기업에서 일을 해보고 싶었어요. 대환 시장이 엄청나게 발달하고 있는 상황에서 ‘30% 낮은 이자의 카드론 대환’이라는 모토가 지금 금융 추세와 맞아 떨어진다고 생각했습니다. 더구나 캐피털, 카드사, 저축은행들은 그들의 신용등급으로 자금을 끌어와야 하는데, P2P 시장은 자금 유치가 굉장히 열려 있어요. 종합해보니 기관투자자 P2P로 금융이 경쟁력이 있겠구나 확신이 들었습니다. Q. 30CUT을 선택하게 된 결정적인 이유가 뭔가요?하얀 도화지에 내가 그림을 그려 넣을 수 있다는 게 큰 매력이었습니다. 경력이 8년으로 길지는 않지만, 신용평가 모형 개발, 영업 관리, 인수합병, 채권 매매 등 다양한 경험을 쌓아왔기 때문에 이런 것들을 종합적으로 발휘할 수 있겠다고 생각했어요. 그리고 앞서 말한 것처럼 ‘P2P의 시대가 도래했다’는 것에 엄청나게 공감했고요. 기존 금융사에 다니고 있는 친구들 물어보면 P2P 시장으로 이직하고 싶어 할 정도로 경쟁력 있는 업계거든요. 선점할 수 있는 자리에 빨리 와야겠다 생각했죠. 대표님을 비롯해 저랑 맞는 사람들과 일할 수 있다는 것도 큰 매력이고요. Q. 30CUT의 최대 장점을 한 가지만 꼽는다면?P2P 금융이라는 것이 최고의 장점이죠. P2P라는 사업 모델이 무궁무진하게 변화가 가능해요. 한정된 상품만 판매하는 것이 아니고 다양한 상품, 즉 기존의 금융사에서 만들지 못 했던 상품을 만들 수 있습니다. 반대로 생각하면 기존 금융사에서 하고 있는 어떤 것이든 할 수 있고요. 가능성이 매우 열려 있어요. 해보지 않은 사람은 모르는 매력적인 산업이죠. Q. 30CUT이 어떤 회사로 성장해 나가길 원하나요? 내가 꿈꾸는 회사의 모습은?최고의 모토는 '30CUT이라는 브랜드가 세상의 모든 사람이 아는 것이 되는 것'입니다. 은행보다 거대한 금융 사업을 하는 회사가 돼서 이름을 떨쳤으면 좋겠어요. 전 국민이 한 번씩은 사용해본 서비스가 되면 더할 나위 없이 좋고요. 써티컷의 모토가 이자를 30% 낮추는 것인 만큼 고금리에 고통받고 있는 많은 사람들을 도울 수 있다고 생각해요. 뉴스에 보면 빚 때문에 삶을 포기하는 사람들도 많으니까요. 우리 서비스로 그런 분들이 혜택을 받고,가계부채를 줄이고, 최종적으로는 나라가 강해지는 데까지 기여할 수 있기를 바랍니다.   Q. 올해 개인적인 목표는?얼른 시작했으면 좋겠습니다!!!!!! 우리가 목표했었던 것대로 진행됐으면 좋겠어요. 개인적으로는 말을 잘하고 싶어요(웃음). Q. 10년 뒤 어떤 사람이 되고 싶은지? 이 분야에서 굉장한 사람이라는 말을 듣고 싶습니다. 지금 금융업에서 큰손이라고 불리는 사람들처럼요. #비욘드플랫폼서비스 #비욘드펀드 #팀원 #팀원소개 #팀원인터뷰 #인터뷰 #사내문화 #기업문화 #조직문화
조회수 1189

[인터뷰] Clara의 인턴 직무 인터뷰 제1화 _Global Communication의 초희를 만나다

안녕하세요. 클라라입니다:)안녕하세요. 클라라입니다:)저희 미미박스에는 저를 비롯한 아홉 명의 인턴들이 일을 하고 있는데요~저희들은 서로를 ★MEMEGIRLS★라고 부른다며………여하튼, 원래 인턴과 대화해보면 그 회사에 대해 잘 알 수 있다고 하죠. (네, 제가 만들어낸 말입니다...)집중의 박수 짝짝짝!!!오늘부터 [미미걸스 인턴 인터뷰]를 올릴 예정이니 많이 기대해주세요 >_<첫번째 인턴 인터뷰 !!그 영광의 주인공은 바로글로벌커뮤니케이션 팀에서 일하고 있는 CHOHEE 초희!!!!!매력적인 목소리를 가진 밝은 에너지의 초희를 만나보시죠:) 뿅뿅첫번째 인턴 인터뷰 !!그 영광의 주인공은 바로글로벌커뮤니케이션 팀에서 일하고 있는 CHOHEE 초희!!!!!매력적인 목소리를 가진 밝은 에너지의 초희를 만나보시죠:) 뿅뿅Q. 안녕하세요 초희:)아침부터 인터뷰 응해주셔서 감사합니다 . 평소 초희의 하루 일과는 어떻게 되는지 알려주세요!A. 아침에 출근을 하면 세계 각국의 지사에서 온 요청들을 처리해요. 미미박스에는 총 다섯 개 국가에 지사를 두고 있어요. 미국, 중국, 대만, 싱가포르, 홍콩인데요. 지사마다 분위기도 다르고 집중하고 있는 업무도 달라서 지사에 맞게 요청을 처리하고 커뮤니케이션하는 게 저희 팀의 주 업무거든요. 저는 메이크업 브랜드를 담당하고 있는데, 예를 들어 새로 런칭하는 제품이 있을 때, 그 제품에 대한 이해를 바탕으로 교육자료나 컨셉보드를 번역해서 전달하는 일을 하기도 하고요. 화장품 같은 경우는 수출을 위해 위생허가를 받아야 하는데, 저는 중국과 대만의 위생허가를 담당하고 있어요. 위생허가의 원활한 절차를 위해 브랜드 오너들, 제조사, 그리고 위생허가 담당자들과 주로 커뮤니케이션을 하고 있어요. 또 매일 한 지사씩 돌아가면서 컨퍼런스 콜을 합니다. 그 콜을 하면서 지사가 어떻게 돌아가고 있는지, 서로의 이슈나 요청에 대한 의견을 나눕니다. 새로운 화장품을 출시할 때 제품의 이름이나 컬러명 등을 결정하는 일도 하는데요. 전 세계적으로 문화에 맞게 통용될 수 있는 이름을 지어야 하기 때문에 이 일 또한 글로벌커뮤니케이션팀에서 담당하고 있습니다. 예를 들어서 우리는 ‘로즈브라운’이라고 하면 대충 색감이 와닿잖아요, 근데 미국에서 색이름으로 너무 이상하다고 한 적이 있어요. 그런 미묘한 차이를 반영해서 어느 국가에서나 통용될 수 있는 이름을 찾아내는 거죠.Q. 그럼 화장품 성분이나 법률 지식도 많이 알아야 할까요? 글로벌커뮤니케이션에 가장 필요한 업무 능력이나 지식은 무엇일까요?A. 생각보다 화장품 지식은 금방 배우는 것 같아요. 몇 가지만 알면 어느 정도 이해할 수 있거든요. 근데 저는 여성이기 때문에 강점이 좀 있다고 봐요. 화장품 업계 모든 직무가 그렇겠지만, 일단 컨셉보드 같은 경우에 보자마자 직관적으로 그 내용을 이해할 수 있으려면 화장품 자체를 접할 기회가 있어야 하는 것 같고요. 그게 베이스가 되어있으면 용어적인 면에서는 금방 적응하고 배울 수 있어서 큰 문제는 없을 것 같네요.제가 느끼기에 가장 필요한 능력은 아무래도 영어인것 같아요. 지사들과는 직접 만날 수 없으니 화상통화와 메일로만 커뮤니케이션이 가능한데, 모든 지사들이 기본적으로 영어를 쓰기 때문에 영어가 가장 중요한 업무 능력인 것 같아요. 사실 영어보다 중요한 건 커뮤니케이션 스킬이에요. 저는 흔히 말하는 업무 능력들 중 많은 사람들이 커뮤니케이션 스킬이 중요하다고 했을 때는 감이 잘 오지 않았었어요. 이제는 제가 커뮤니케이션 팀에 있다 보니 그게 얼마나 중요한지 피부로 깨닫게 되는 것 같아요. 어떤 의사결정을 할 때에 지사와 본사에 있는 브랜드 담당자들이 굉장히 많이 부딪히거든요, 그럴 때 중간에서 서로 감정이 상하지 않으면서 좋은 결과를 도출할 수 있도록 조율해줄 수 있는 능력이 무엇보다 필요한 것 같아요!Q. 그럼 미미박스의 해당 직무에 지원하게 된 계기는 무엇이었나요?아침부터 인터뷰 응해주셔서 감사합니다 . 평소 초희의 하루 일과는 어떻게 되는지 알려주세요!A. 아침에 출근을 하면 세계 각국의 지사에서 온 요청들을 처리해요. 미미박스에는 총 다섯 개 국가에 지사를 두고 있어요. 미국, 중국, 대만, 싱가포르, 홍콩인데요. 지사마다 분위기도 다르고 집중하고 있는 업무도 달라서 지사에 맞게 요청을 처리하고 커뮤니케이션하는 게 저희 팀의 주 업무거든요. 저는 메이크업 브랜드를 담당하고 있는데, 예를 들어 새로 런칭하는 제품이 있을 때, 그 제품에 대한 이해를 바탕으로 교육자료나 컨셉보드를 번역해서 전달하는 일을 하기도 하고요. 화장품 같은 경우는 수출을 위해 위생허가를 받아야 하는데, 저는 중국과 대만의 위생허가를 담당하고 있어요. 위생허가의 원활한 절차를 위해 브랜드 오너들, 제조사, 그리고 위생허가 담당자들과 주로 커뮤니케이션을 하고 있어요. 또 매일 한 지사씩 돌아가면서 컨퍼런스 콜을 합니다. 그 콜을 하면서 지사가 어떻게 돌아가고 있는지, 서로의 이슈나 요청에 대한 의견을 나눕니다. 새로운 화장품을 출시할 때 제품의 이름이나 컬러명 등을 결정하는 일도 하는데요. 전 세계적으로 문화에 맞게 통용될 수 있는 이름을 지어야 하기 때문에 이 일 또한 글로벌커뮤니케이션팀에서 담당하고 있습니다. 예를 들어서 우리는 ‘로즈브라운’이라고 하면 대충 색감이 와닿잖아요, 근데 미국에서 색이름으로 너무 이상하다고 한 적이 있어요. 그런 미묘한 차이를 반영해서 어느 국가에서나 통용될 수 있는 이름을 찾아내는 거죠.Q. 그럼 화장품 성분이나 법률 지식도 많이 알아야 할까요? 글로벌커뮤니케이션에 가장 필요한 업무 능력이나 지식은 무엇일까요?A. 생각보다 화장품 지식은 금방 배우는 것 같아요. 몇 가지만 알면 어느 정도 이해할 수 있거든요. 근데 저는 여성이기 때문에 강점이 좀 있다고 봐요. 화장품 업계 모든 직무가 그렇겠지만, 일단 컨셉보드 같은 경우에 보자마자 직관적으로 그 내용을 이해할 수 있으려면 화장품 자체를 접할 기회가 있어야 하는 것 같고요. 그게 베이스가 되어있으면 용어적인 면에서는 금방 적응하고 배울 수 있어서 큰 문제는 없을 것 같네요.제가 느끼기에 가장 필요한 능력은 아무래도 영어인것 같아요. 지사들과는 직접 만날 수 없으니 화상통화와 메일로만 커뮤니케이션이 가능한데, 모든 지사들이 기본적으로 영어를 쓰기 때문에 영어가 가장 중요한 업무 능력인 것 같아요. 사실 영어보다 중요한 건 커뮤니케이션 스킬이에요. 저는 흔히 말하는 업무 능력들 중 많은 사람들이 커뮤니케이션 스킬이 중요하다고 했을 때는 감이 잘 오지 않았었어요. 이제는 제가 커뮤니케이션 팀에 있다 보니 그게 얼마나 중요한지 피부로 깨닫게 되는 것 같아요. 어떤 의사결정을 할 때에 지사와 본사에 있는 브랜드 담당자들이 굉장히 많이 부딪히거든요, 그럴 때 중간에서 서로 감정이 상하지 않으면서 좋은 결과를 도출할 수 있도록 조율해줄 수 있는 능력이 무엇보다 필요한 것 같아요!Q. 그럼 미미박스의 해당 직무에 지원하게 된 계기는 무엇이었나요?A. 음, 저는 사실 다른 직무, MD나 인사 직무에 대한 고민도 조금은 했었는데 제가 잘하는 게 외국어니까 그걸 가장 잘 살릴 수 있는 직무가 무엇인가 고민했어요. 그게 글로벌 커뮤니케이션이었어요.뒤통수 미인이다아~Q. 일하면서 있었던 가장 재미있는, 또는 힘들었던 에피소드를 알려주세요! A. 최근에는 저희 글로벌 브랜드 팀에서는 아임미미나 포니이펙트같은 브랜드가 어떻게 소비자들에게 더 잘 다가갈 수 있는지, 어떤 메시지를  어떻게 전달하면 좋을지 기존의 틀을 더 발전시켜보는 시간을 가졌었어요. 리서치도 해보고 다양한 사람들과 생각을 나누다 보니 저도 미미박스에 대한 이해도가 높아지고 아무래도 매일매일 처리하는 업무의 성격과 다르다 보니 정말 재밌게 느껴졌던 것 같고요!물론 힘든 일도 있습니다. 지사랑 연락하는 과정에서 갈등이 일어나기도 하니까요. 특히 문화적, 언어적 간극에서 오는 갈등이 많아요. 제품 이름을 정할 때, 한국 BM분들이 원하는 이름과 미국BM분들이 원하는 이름이 다르면 그 사이에서 갈등을 조율해야 하는데, 그 시간이 길어지거나 의견이 좁혀질 가능성이 안 보이면 지치게 되는 것 같아요. 근데 또 그 갈등을 잘 해결했을 때 보람이 있으니까 더 잘해야겠다는 생각도 들어요.Q. 인턴으로 일하면서 가장 만족스러운 부분은 뭘까요?Q. 일하면서 있었던 가장 재미있는, 또는 힘들었던 에피소드를 알려주세요! A. 최근에는 저희 글로벌 브랜드 팀에서는 아임미미나 포니이펙트같은 브랜드가 어떻게 소비자들에게 더 잘 다가갈 수 있는지, 어떤 메시지를  어떻게 전달하면 좋을지 기존의 틀을 더 발전시켜보는 시간을 가졌었어요. 리서치도 해보고 다양한 사람들과 생각을 나누다 보니 저도 미미박스에 대한 이해도가 높아지고 아무래도 매일매일 처리하는 업무의 성격과 다르다 보니 정말 재밌게 느껴졌던 것 같고요!물론 힘든 일도 있습니다. 지사랑 연락하는 과정에서 갈등이 일어나기도 하니까요. 특히 문화적, 언어적 간극에서 오는 갈등이 많아요. 제품 이름을 정할 때, 한국 BM분들이 원하는 이름과 미국BM분들이 원하는 이름이 다르면 그 사이에서 갈등을 조율해야 하는데, 그 시간이 길어지거나 의견이 좁혀질 가능성이 안 보이면 지치게 되는 것 같아요. 근데 또 그 갈등을 잘 해결했을 때 보람이 있으니까 더 잘해야겠다는 생각도 들어요.Q. 인턴으로 일하면서 가장 만족스러운 부분은 뭘까요?A. 일단, 직무 선택을 잘했다고 생각하는 게, 이 직무가 회사의 큰 그림을 볼 수 있는 일이라는 거예요. 좁은 범위의 일만 하는 게 아니라 브랜드 전체의 프로세스를 이해하고 전달하는 일이라서 가능한 것 같아요. 만약 좁은 범위의 일을 반복적으로 하는 일이었다면 저랑 맞지 않았을 것 같고, 일에 대한 주인의식도 안 생겼을 것 같은데, 제가 한 일이 어떤 영향을 미치고 그 결과도 직접 느낄 수 있어서 일하는 재미를 얻어 가는 것 같습니다. 그리고 인턴임에도 진짜 많이 배우고 많은 일에 관여할 수 있는 것 같아서 만족스러워요. Q. 글로벌 커뮤니케이션 일을 하면서 느꼈던, 미미박스가 갖고 있는 강점은 무엇인 것 같아요? 저는 미미박스가 글로벌 지사들의 말에 진심으로 경청하는구나, 하는 생각을 자주 하는데요. 제 주변 타사에서 일하는 분들 말씀을 들어보면 보통 본사에서 일방적으로 소통하는 경우가 정말 많아요. 그런데 미미박스는 각 지사와 매주 소통하고 그들이 하는 말을 귀 기울여 들으려고 진짜로 노력해요. 때로는 그게 지나친 게 아닌가 싶을 정도로요. 근데 그런 점에서 저는 미미박스가 글로벌로 뻗어나가기 위한 태도를 잘 실천하는 회사라는 생각이 들었어요. Q. 마지막으로, 누군가 글로벌 커뮤니케이션 인턴으로 지원하고자 한다면 해주고 싶은 말! A. 음... 저희 팀원들이 너무너무 좋거든요. 다른 팀은 제가 직접 경험하지 않아서 모르겠지만 저희 팀의 경우에 말 그대로 수평적인 문화가 잡혀있어요. 팀원들이 너무 좋아서 인턴을 하면서 가장 크게 얻어 가는 것 중 하나가 사람이라는 생각이 들 정도에요. 첫 직장에서 팀원들을 너무 잘 만난 것 같아서 감사하며 다니고 있습니다. 혹시라도 저희 팀에 지원하시게 된다면 좋은 사람들은 보장해드릴 수 있을 것 같네요 ^^초희의 사원증과 중요해 보이는 인터네셔널한 서류!!!!! ----------------오늘 인턴 직무 인터뷰 어떠셨나요?미미박스, 그리고 글로벌 커뮤니케이션에 대해 조금은 이해가 가셨는지 모르겠어요~.~다음 직무는 요즘 핫한 데이터와 관련된 직무가 될 예정이니 궁금하신 점 있으신 분들은아래 댓글을 쑝 달아주세요!클라라가 친절하게 직접 여쭤봐드리겠습니당 호호홍그럼 다음에 또 만나요, 제바아아아아아알~----------------오늘 인턴 직무 인터뷰 어떠셨나요?미미박스, 그리고 글로벌 커뮤니케이션에 대해 조금은 이해가 가셨는지 모르겠어요~.~다음 직무는 요즘 핫한 데이터와 관련된 직무가 될 예정이니 궁금하신 점 있으신 분들은아래 댓글을 쑝 달아주세요!클라라가 친절하게 직접 여쭤봐드리겠습니당 호호홍그럼 다음에 또 만나요, 제바아아아아아알~
조회수 396

프로그래밍 수업의 모든 것 — 엘리스 코스 매니저 인터뷰.

안녕하세요 엘리스입니다:)엘리스의 프로그래밍 수업은 누구에 의해서, 어떻게, 어떤 생각을 바탕으로 만들어질까요? 미래를 이끌어나갈 컴퓨터 사이언스 기술과 그 근간이 되는 교육 사이에서 좋은 프로그래밍 수업을 만들기 위해 치열하게 고민하는 엘리스의 코스 매니저가 직접 이야기합니다! 마침 엘리스는 코스 매니저 채용 중에 있으니 관심이 있다면 눈여겨 봐주세요.코스 매니저가 관여한 프로덕트로 인하여 사용자가 성장을 하고 있다면 그것은 충분히 의미 있는 일.# 안녕하세요 저는,“트라우마를 극복한 프로그래밍 수업 크리에이터.”Q. 자기소개 부탁드려요.A. 엘리스의 프로그래밍 과목을 만드는 코스 매니저 이용희입니다.Q. 엘리스에서 일하게 된 이유는 무엇인가요?A. 원래는 프로그래밍에 대한 트라우마가 있었어요. 하지만 기술 창업에 대한 꿈이 있었기 때문에 프로그래밍은 극복해야 할 산이었죠. 엘리스는 가장 뛰어난 기술자들이 모여 창업한 스타트업이에요. 당연히 기술 창업을 가장 가까이에서 경험할 수 있는 매력적인 곳으로 느껴졌죠. 그리고 프로그래밍 교육을 제공한다는 것 역시 기회로 느껴졌어요. 저와 같이 프로그래밍을 미워하고 두려워하는 사람들에게 보다 쉽게 배울 수 있는 환경을 마련해주고 싶다는 기대로 일을 시작하게 되었습니다.Q. 두려운 대상을 향해 몸을 던지셨군요! 그런데 코스 매니저가 프로그래밍을 몰라도 되나요?A. 많이 알면 알수록 당연히 좋아요. 많이 알고 있을수록 시도할 수 있는 것도 많고 학생에게 전달해줄 수 있는 것은 더욱더 많기 때문에요. 하지만 최소한으로는 Class가 뭔지 알고 있으면 OK. 예를 들어서 코드를 보고 이 코드가 어떤 목적을 갖는지 알 수 있으면 직접 코딩을 하지는 못한다고 해도 괜찮아요.Q. 코스 매니징 외에도 라이브 수업 참여, 조교, 챌린지 사회자 등 많은 역할을 하셨는데 이유가 있나요?A. 좋은 수업을 만들기 위한 첫 번째 방법은 코스를 만드는 모든 과정에 참여하는 사람들의 역할을 직접 체험해 보는 것이라고 생각했어요. 학생으로서, 조교로서, 사회자나 라이브 어시스턴트로서. 이렇게 하니까 학생으로서 수업을 접할 때의 감상은 무엇인지, 조교로서 가르쳤을 때는 어떤 어려움이 있는지를 알 수 있었어요. 라이브 수업 어시스턴트로 참여했을 때는 방송하시는 선생님들의 애로사항을 알 수 있겠더라고요.# 코스 매니징의 정수.“프로그래밍적 성장을 도움으로써 가치를 만들어 냅니다.”Q. 코스 매니징의 A to Z는? 구체적인 업무 프로세스가 궁금해요.A. 크게 기획 — 모집 — 제작 — 분석의 네 단계로 이루어져 있어요.수업 기획 — 어떤 과목을 만들 것인가? 주차별로 무엇을 다룰 것인가? 흥미로운 콘텐츠는?선생님, 조교 모집 — 엘리스가 구상한 수업을 가장 잘 전달할 수 있는 선생님과 조교를 모집.수업 제작 및 운영 — 실습 문제, 강의 자료 등을 엘리스의 색깔로 제작하여 수업을 운영.데이터 분석 — 학생들의 피드백과 데이터를 다음 수업의 발전 및 교육자와의 관계 개선에 반영.Q. 업무 방식은? 어떤 메리트가 있나요?A. 처음부터 끝까지 모든 과정을 주도해나가는 방식이에요. 어떤 회사를 가도 프로덕트의 end to end 프로세스를 전부 경험하기는 어려운데 엘리스에서는 그 전 과정을 경험할 수 있어요. 저는 이러한 경험이 교육 업계나 특정 프로덕트에만 적용할 수 있는게 아니라 다른 업계에 간다고 하더라도 충분히 전환될 수 있는 좋은 경험이라고 생각해요.Q. 미래 산업의 근간이 될 교육을 직접 만든다는 중책을 맡고 계신다고 생각하는데요, 좋은 프로그래밍 수업을 만들기 위해 어떤 노력들을 하시나요?A. 그런 영향을 미칠 수 있다는 게 무서운 일인 것도 같아요. 어떤 사람들은 엘리스를 통해서 프로그래밍을 처음 접하는 것일 수도 있는데 그 경험이 불쾌했다면 앞으로 프로그래밍을 배울 생각이 전혀 들지 않을 수도 있는 거잖아요. 그래서 최대한 다양한 피드백을 받아서 수렴하려고 해요. 외적으로는 대학강의, 수많은 수업들을 참고해요. 여러 강의를 보다보면 좋은 예도 많지만 모든 수업이 재미있지는 않아요. 중간에 듣다 마는 경우도 있고요. 그럴 때마다 내가 왜 중단했고 어떤 요소를 바꾸면 엘리스에서는 학생들이 끝까지 들을 수 있을까 고민해서 반영하려고 하죠.Q. 언제 보람을 느끼나요?A. 내가 관여한 프로덕트가 누군가에게 임팩트를 만들어내고 나뿐만 아니라 프로덕트를 사용하는 사람들이 성장을 하고 있다면 그것은 충분히 가치 있는 일인 것 같아요. 저희 플랫폼에서는 대시보드를 통해서, 그리고 학생이 코드를 어떻게 짜고 있는지 보면서 그 결과를 가시적으로 확인할 수 있어요. 누군가 제가 만든 코스를 수강함으로써 실질적으로 성장하는 게 눈에 보일 때 가장 큰 보람을 느끼는 것 같아요.한 번은 한 선생님께서 학생으로부터 ‘선생님 덕분에 취업할 수 있었어요’라는 메시지를 받은 것을 엘리스와 공유해주셨는데 그때 정말 행복하더라고요. 이게 엘리스가 추구하는 거다,라는 생각을 했어요. 엘리스도 하나의 커뮤니티이고 싶거든요. 이 경우에는 학생-선생님-엘리스가 서로의 영향으로 좋은 결과를 만들어 낸 거죠. 이런 접점을 앞으로 더 많이 만들려고 생각하고 있어요.대시보드에 나타나는 학생들의 학습 현황 및 성취도.# 엘리스는 이런 팀.“가치, 성장, 사람. 포기할 수 없는 세 가지가 있는 곳.”Q. 함께 일하는 동료들은 어떤 사람들인가요? 총평을 하자면?A. 항상 내가 최고의 사람들과 함께하고 있다라는 확신이 있어요. 각자 자기 분야에서 최고의 실력을 가진 사람들과 함께 일한다는 것만으로도 큰 자극이 되죠. 프로그래밍이든 스타트업 생존 노하우든 항상 뭔가를 새롭게 배우고 성장하게끔 동기부여를 해주는 사람들이에요. 저는 트라우마가 있었을 정도로 프로그래밍을 두려워했지만 이들과 함께 일하며 작은 피드백을 하나 듣는 것만으로도 제 실력이 빠르게 성장한다는 것을 몸소 느낄 수 있었어요. Q. 엘리스의 분위기, 팀 문화는 어떤가요?A. 새로운 것에 도전하는 것을 환영하는 수평적이고 자유로운 팀. 인턴도 아이디어를 제시할 수 있어요. 이 다음이 더 중요한데, 아이디어에서 그치는 게 아니라 활발한 피드백이 오가요. 아이디어를 실행하기 어렵다고 판단하더라도 왜 그렇고 어떻게 발전시킬 수 있는지 이야기하죠. 실행하게 되었을 때는 아이디어를 제시한 사람에게 일에 대한 권한이 전적으로 주어지고요. 저도 처음엔 파트타임 인턴이었지만, 이런 팀문화 덕분에 계속해서 업무 범위를 확장하고 제 역량을 키울 수 있었어요.# 코스 매니저 채용.“Generalist & Infinite Learner”Q. 현재 코스 매니저를 구인 중인데요. 코스 매니저에 적합한 성향이 있나요?A. Generalist, 그리고 Infinite Learner. 깊게 한 분야를 아는 사람보다는 얕고 넓게 아는 사람이 더 적합하다고 생각해요. 다르게 말하면 새로운 것을 시도하는 것을 좋아하고 새로운 것을 접할 때 포용력이 높은 사람이요. 두 번째로는 배움에 재미를 느끼는 사람. 엘리스는 교육 스타트업이고 코스 매니저는 직접 교육의 경험을 만드는 사람이니 스스로가 배움에서 행복을 느끼는 사람이라면 훨씬 더 재미있게 일할 수 있겠죠. 한 가지 덧붙이면, 데이터 분석을 배우고 싶은 분께 엘리스는 최고의 장소입니다.Q. 코스 매니저로서 갖추고 있으면 좋은 역량이나 자질이 있다면?A. 소통 능력과 균형 감각. 코스 매니저는 수업을 만드는 모든 단계에서 다양한 이해당사자들과 일하게 돼요. 이들과 원활하게 소통하고 의견을 공유하는 게 중요하죠. 그리고 다양한 사람들 사이에서 최고의 균형을 찾아내는 것도 중요해요. 예를 들어서 선생님의 경우 개발만 해왔고 교육이라는 것을 접해본 적이 없는 분들이 대부분이고, 학생은 프로그래밍을 처음 접하면 그 수업이 좋은 건지 아닌지 평가하기 어려워요. 때문에 코스 매니저가 이 둘 사이에 다리를 놓는 중재자의 역할을 하기 위해서는 다양한 시각에서 볼 수 있는 균형 감각이 필요하다고 생각해요.최고의 실력자들과 함께 일하며 프로덕트의 처음부터 끝까지를 만드는 경험을 통해서 사람들의 성장을 돕는 가치를 창출하고 싶으신 분이라면,>> 코스 매니저에 도전해 보세요! <<#엘리스 #코딩교육 #교육기업 #기업문화 #조직문화 #서비스소개 #팀원인터뷰 #팀원소개
조회수 802

현대자동차그룹 사람들의 반추(反芻)

잠시 멈춰서 어떤 일을 되풀이하여 생각해야 할 때가 필요합니다섭취한 음식을 분해해 영양분을 흡수하기 쉬운 형태로 만드는 것을 소화한다고 하는데, 이는 어떤 일을 처리한다는 뜻으로도 쓰입니다. 한 번 삼킨 먹이를 다시 게워 내어 씹는 것을 반추한다고 하는데, 이는 어떤 일을 되풀이하여 생각한다는 뜻으로도 쓰입니다. 무엇을 소화하기 위해서는 반추가 필요할 때도 있는데 음식이든 생각이든 모두 들어맞는 듯합니다. 현대자동차그룹 사람들은 어떤 것을 반추하고 있을까요? 세 사람의 이야기를 들어보았습니다. 내 안의 목소리를 마주하는 반추의 묘미해비치 호텔&리조트 제주마케팅팀 신진석 매니저의 반추는 나를 마주치는 것입니다 저에게 반추란 뽀얀 먼지가 내려앉은 서랍장을 여는 것과 같습니다. 오래도록 볕을 보지 못한 것을 하나하나 꺼내보며 추억에 잠기듯, 잠시 숨을 고르며 지나간 시간 속에서 내가 했던 말이나 행동 등을 곱씹는 것. 그 시간 속에서 삶의 의미를 찾아보기도 하고, 인정하기 싫은 모습의 ‘나’를 마주하며 새로운 시작을 다짐합니다.그중 독서는 일상에서 가장 쉽게 반추에 빠져들 수 있는 방법입니다. 제가 하는 독서법은 좀 독특합니다. 책을 통해 많은 정보를 얻으려 하기보다는 저자가 던져주는 의미를 다양한 맥락에서 곱씹으며 사색의 시간을 갖습니다. 때로는 일상의 경험을 끊임없이 대입해 보는데, 스스로를 반추하며 내 생각으로 정리하지 않으면 제대로 읽은 기분이 들지 않기 때문입니다. 같은 내용이라도 바라보는 관점을 달리하거나 경험에 비추어 온전히 내 것으로 만들 때 전혀 생각하지도 못한 깨달음을 얻을 수 있습니다.다음은 여행입니다. 촘촘하게 짜인 일과에 공허함이 밀려들 때 일터인 제주 곳곳을 혼자 걷기도 하고, 끝없이 펼쳐진 바다를 한참 동안 바라보기도 합니다. 살짝 가파른 오름을 아무 생각 없이 오르거나, 바다 냄새 가득한 바람을 맞으며 망망대해를 바라보면 어느새 복잡한 머릿속이 맑아지며 나를 따라온 발자국을 발견할 수 있습니다.세상의 걱정으로부터 멀어진 만큼 내 안의 목소리를 들을 수 있는 이곳에서라면 반추의 시간이 선물처럼 찾아 올 것입니다.해비치 직원이 안내하는 제주의 반추 여행지-지난 시간을 눈앞에 펼쳐 놓는, 정물오름제주 중산간에 위치한 오름은 돌담과 방풍림으로 구분지어 놓은 밭과 억새의 일렁임을 한눈에 담을 수 있습니다. 그중 제주 제일의 억새 명소로 꼽히는 곳은 정물오름입니다. 이곳에 올라 바람에 흔들리는 억새를 동무 삼아 아름다운 제주 풍경을 내려다보면 지난 시간이 자연스레 눈앞에 펼쳐집니다.-복잡한 생각을 정리해주는, 함덕해변발길을 조금만 옮겨도 바다를 만날 수 있는 제주. 특히 함덕해변은 서우봉에서 해수욕장까지 해안선을 따라 산책로가 잘 조성되어 있습니다. 머릿속이 복잡할 때 바닷바람을 맞으며 걷기에 좋습니다. 너른 바위에 걸터앉아 망망대해를 바라보면 복잡한 생각이 절로 정리되는 반추의 명소입니다.-원초적 아름다움을 품은 사색의 명소, 신산 신양 해안도로신산 신양 해안도로는 제주에서 흔히 볼 수 있는 이국적인 해안도로와는 조금 다른 모습입니다. 검은 돌과 적막한 바다는 어둡고 침침한 분위기를 자아내는데, 볼품없어 보이는 바위는 작은 소라게와 보말 등 다양한 바다생물을 품고 있습니다. 이런 원초적인 아름다움이 깊은 사색을 불러 옵니다.내 반추는 공부를 지속할 수 있게 만든 힘현대다이모스 시트구조설계팀 임현우 책임연구원의 반추는 적당함을 찾는 힘입니다시트구조설계팀에서 시트구조물에 대한 강도, 충돌, 동역학 성능 등을 시뮬레이션하는 업무를 진행하며 공학 이론에 대한 필요성을 절실하게 느끼게 되었습니다. 탄탄한 이론적 근거가 바탕이 되어야만 시뮬레이션의 정확도를 한층 높일 수 있기 때문입니다. 업무 중간 중간 잘 풀리지 않거나, 경험에만 의존해 해결하려 했던 부분도 답을 구하고 싶었습니다. 그렇게 서울대 공학전문대학원 응용공학과에 다니게 되었고, 10년 동안 손 놓았던 공부를 다시 시작할 수 있었습니다.공부하다 보면 누구나 슬럼프나 실패를 경험하게 됩니다. 매우 완벽하게, 항상 열심히 해야 한다는 강박이 클수록 슬럼프나 실패는 쉽게, 또 자주 찾아옵니다. 마라톤처럼 공부할 때도 적당한 강약과 리듬 조절이 필요합니다. 이를 잘 조절할 수 있게 만든 힘이 나에게는 ‘반추’였습니다.석사 학위를 위해 교수들에게 논문 심사를 받을 때였습니다. 시트 구동부의 진동소음 문제를 해결하기 위한 과제를 발표했는데, 심사 과정에서 과제를 전면 수정해야 하는 상황이 벌어졌습니다. 시간이 촉박해 걱정만 앞서고 진도가 나가질 않았습니다. 몇 날 며칠을 끙끙 앓다 논문을 준비하며 정리한 생각을 찬찬히 돌아보게 되었고, 몇 번이고 되풀이하는 과정에서 명확한 해결 방안을 찾을 수 있었습니다. 그렇게 2018년 발표한 < 다물체동역학 해석모델 기반 자동차 전동시트 작동 진동 소음 분석 및 최적 설계 > 논문으로 석사 학위를 취득했고, 최우수 성적으로 졸업하며 대학원 대표로 총장님께 학위기를 수여 받는 영광도 누렸습니다.공부를 다시 시작하고 싶은 분들이 있을지 모르겠습니다. 혹여 있다면 지치지 않는 나만의 ‘반추 공부법’을 소개하려 합니다.현대다이모스 직원의 반추하는 공부법-짧은 기억과 긴 기억의 차이, 복습의 힘아무리 열심히 공부해도 시간이 지나면 저절로 잊어버리기 마련입니다. 저는 수업 시간에 최대한 꼼꼼하게 노트 필기를 했고, 다음 과정으로 넘어가는 수업 전 앞서 배운 것을 늘 쭉 훑어보았습니다. 단 절대 많은 시간을 들이지는 않습니다. 복습에 많은 시간을 들여야 한다고 생각하면 그 자체에 부담을 느껴 실천하기 어렵기 때문입니다.-작은 성취감의 반복은 꾸준히 공부하게 만듭니다공부량을 늘리는 데 초점을 맞추기보다 자신의 능력을 잘 파악해 공부 계획을 세워야 합니다. 저는 매일 밤 자기 전 하루 일과를 돌아보며 목표를 이루었을 때는 스스로를 칭찬했고, 그러지 못했을 때는 반성하고 계획을 전면 수정했습니다. 이렇게 자신이 세운 목표를 하나하나 이뤄가며 성취감을 느끼면, 분명 목표했던 공부량을 채울 수 있습니다.-공부만큼 잘 쉬는 것도 중요합니다열심히 집중해 공부하는 것만큼 잘 쉬는 것도 중요합니다. 힘들고 지칠 때면 ‘한 곡의 음악은 한 번의 여행이다’라는 어느 디제이의 말을 떠올리며 음악을 들었습니다. 눈을 감고 가사 내용을 곱씹으며 행복했던 과거를 떠올리면, 잡념은 사라지고 어느새 마음의 평화가 찾아왔습니다.반추를 거듭해 만드는 명품차현대차 총합성능개발2팀 황경 책임연구원의 반추는 새로움을 만드는 과정입니다“우리는 소에게서 배워야 할 일이 한 가지 있다. 그것은 반추(되새김)하는 것이다.”- 니체끊임없이 되새김하며 답을 찾아내는 것은 총합성능개발2팀의 업무와 크게 다르지 않습니다. 총합성능개발2팀은 SUV 고객의 다양한 의견을 수렴해 개발 목표를 세우고, 기획 단계부터 참여해 완벽한 양산에 힘쓰고 있습니다. 하지만 대부분의 차량이 개발 목표를 처음부터 달성하는 경우는 드뭅니다. 때문에 각 부문 담당자와 개발 과정을 반추하며 완성도를 높입니다. 그 종합적 결과물이 신형 싼타페(4세대)입니다. 신형 싼타페 개발 전 3세대 싼타페의 개발 과정을 다시 한번 꼼꼼하게 반추했습니다. 더불어 고객의 차량 이용 분석을 통해 고객 편의를 최우선으로 하는 차량 개발 목표를 세웠습니다. 디자인부터 주행 성능, 안전·편의 사양 등에 이르기까지 분석 결과를 체계적으로 살피며 ‘어떻게 하면 고객을 만족시킬 수 있을까’도 고민했습니다. 또 싼타페 구매를 고민하는 고객은 ‘패밀리카’ 역할을 기대하기 때문에 기존 차량보다 넓은 실내 공간 확보에도 주의를 기울였습니다. 안전성을 높이는 데도 주력했는데, 이렇게 탄생한 것이 안전 하차 보조(SEA)입니다. 뒷자리 탑승객이 내릴 때 후측방에서 접근하는 차량이 감지되면 경고를 보내고 잠금 상태를 유지해 교통사고를 예방하는 기술입니다. 특히 안전 하차 보조는 세계 최초로 싼타페에 탑재한 기능입니다. 이밖에도 승용차에 비해 진동소음이 많이 발생하는 SUV의 단점을 보완하기 위해 관련 부서와 논의하며 다양한 아이디어를 냈고, 이를 실제 차량에 적용해 나갔습니다. 생각처럼 좋은 결과가 나오지 않으면 되돌이표처럼 다시 돌아가, 하던 일을 몇 번이고 다시 수정했습니다. 그리고 결국 차체 주요 부위에 흡차 음재 확대 적용 등 다양한 NVH(Noise, Vibration, Harshness) 설계로 공회전 진동, 로드 노이즈 등을 감소시킬 수 있었습니다.저는 이렇게 과거의 결과를 반추하며 오늘도 새로움을 만들어가고 있습니다.현대차 연구원의 반추 연구 일지-고객의 의견에서 해답을 찾다사람에게 가장 필요한 차를 만들려면, 고객이 실제 차량을 이용하며 겪은 좋은 점과 부족한 점 등을 분석해 무얼 원하는지 알아내야 합니다. 때문에 저는 고객의 의견을 어느 하나 허투루 넘기지 않습니다. 특히 고객의 입장이 되어 상황을 직접 그려 보기도 하는데, 하나하나 되짚으며 반추하다 보면 풀리지 않았던 문제의 답을 찾게 됩니다.-끊임없이 반추하며 완성도를 높이다차량 한 대를 완성하려면 2만여 개의 부품과 다양한 시스템이 조화를 이루어야 합니다. 이를 위해서는 수없이 많은 시험과 검증을 거쳐야 합니다. 부족한 부분이 있다면 끊임없이 개발 과정을 되짚어보고, 경쟁차와 비교 분석해 최적화를 위한 개선안을 찾아 완성도를 높입니다.-마지막까지 긴장의 끈을 놓지 않다신형 싼타페 양산을 앞둔 사전 점검에서 아이들(Idle) 진동이 개발 목표에 미치지 못함을 발견, 소음 진동 개발 담당자와 부품을 일일이 확인하며 원인을 찾아냈습니다. 차량의 성능 향상 설계·설계 개선·양산 품질 등 관련 부문과 협업해 개선된 부품을 최종 적용했고, 덕분에 지금의 조용하지만 강한 차량을 만들 수 있었습니다. 끊임없는 관찰과 재해석, 즉 반추의 힘을 느낀 순간이었습니다.글 정리. 이자인 ▶ 해당 기사는 현대자동차그룹 모터스라인에서 원문을 확인할 수 있습니다.#현대 #현대그룹 #현대자동차그룹 #반추 #해비치호텔&리조트 #현대다이모스 #현대차 #모터스라인 #HMG저널 #HMG_Journal #HMG #기업문화 #조직문화 #구성원인터뷰
조회수 3021

Python 기반의 웹서비스 개발 환경 구축 방법

안녕하세요. 스포카 크리에이터팀의 프로그래밍 인턴을 맡고 있는 __박종규, 정성재, 고아라__입니다. 저희 세 명은 각각 다른 OS 환경에서 웹서비스를 개발하였는데 이번 포스팅에서는 OS별로 개발 환경을 구축하는 과정을 설명하겠습니다.PythonPython(파이썬)은 비영리의 Python 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델을 가지고 있습니다. Python은 C파이썬 구현이 사실상의 표준이며 동적 타이핑 범용 프로그래밍 언어로, 펄 및 루비와 자주 비교됩니다. Python은 순수한 프로그래밍 언어의 기능 외에도 다른 언어로 쓰인 모듈들을 연결하는 Glue language로써 자주 이용됩니다. 실제 Python은 많은 상용 응용 프로그램에서 스크립트 언어로 채용되고 있습니다. 또한, 유니코드 문자열을 지원하여 다양한 언어의 문자 처리에도 능합니다. 현대의 Python은 여전히 인터프리터 언어처럼 동작하나 사용자가 모르는 사이에 스스로 Python 소스 코드를 컴파일하여 바이트 코드를 만들어 냄으로써 다음에 수행할 때에는 빠른 속도를 보여줍니다.Windows에서 Python 2.x 설치 방법Linux와 Mac OS에서 Python은 기본적으로 설치되어 있기 때문에 터미널 창에서 Python 명령만으로 쉽게 실행할 수 있지만 Windows에서는 Python을 따로 설치해주어야 합니다.Python 공식 사이트해당 사이트에 들어가서 Quick Links (2.7.3) – Windows Installer 선택하여 python-2.7.3.msi 다운로드 후 실행하여 설치합니다. 특별히 원하는 버전이 있을 때에는 DOWNLOAD – Releases에서 버전별로 설치파일을 다운로드 할 수 있습니다. Python의 기본 설치 경로는 C:\Python27 이며 설치 완료 후, 환경변수를 등록해야 합니다. 환경변수를 등록하는 방법은 다음과 같습니다.내컴퓨터(마우스 오른쪽 버튼 클릭) – 속성(시스템 등록 정보) – 고급 – 환경 변수 클릭시스템 변수 – Path 선택 후 편집 클릭변수 값에 맨 뒤에 C:\Python27;C:\Python27\Scripts; 입력 후, 확인 버튼을 눌러 시스템에 적용변수 값은 각각 ; (세미콜론) 으로 구분Python의 패키지 설치 방법시작 메뉴 – 실행 – CMD 로 커맨드 창을 실행 시킨 후에 Python이 설치된 디렉터리로 이동합니다.cd C:\Python27\Scripts 그 다음 easy_install pip 명령으로 pip를 설치해줍니다. pip는 PyPI(Python Package Index)에 등록된 패키지들을 설치하고 관리할 수 있는 패키지 관리 시스템입니다.$ easy_install pip 다음은 pip 명령의 사용법입니다.pip install packageName 명령 : 최신버전으로 설치pip install packageName==0.x.x 명령 : 0.x.x버전으로 설치패키지 설치 경로 : C:\Python27\Lib\site-packagespip uninstall packageName 명령 : package 제거pip freeze 명령 : 현재 환경에 설치된 package 이름과 버전 목록 PostgreSQLPostgreSQL는 California 대학 Berkeley computer science 학부에서 개발한 POSTGRES, Version 4.2 를 기반으로 한 오브젝트 RDB 관리 시스템(ORDBMS)입니다. 또한, PostgreSQL은 BSD 허가권으로 배포되며 오픈소스 개발자 및 관련 회사들이 개발에 참여하고 있습니다. 따라서 누구라도 사용, 수정, 배포할 수 있으며 목적과 관계없이 무료로 이용할 수 있습니다.각 운영체제 별 PostgreSQL 설치 방법WindowsWindows에서 PostgreSQL을 설치하기 위해 해당 사이트로 접속합니다.PostgreSQL 공식 사이트해당 사이트의 Download탭을 선택하여 Downloads 페이지로 이동합니다. 그 다음 Binary packages 에서 Windows를 선택하여 Windows installers 페이지로 이동합니다. One click installer 에서 Download 선택 후 이 페이지 로 이동하여 해당하는 OS 버전으로 선택하여 다운로드 후 설치합니다.Linux (ubuntu 12.04 LTS)Linux(리눅스)에서 PostgreSQL은 여러 가지 방법으로 설치 할 수 있습니다. 패키지로 설치하는 방법은 터미널 창에서 아래와 같은 명령어를 입력하시면 됩니다.$ sudo apt-get install postgresql-X.X(버전명) 다른방법으로 설치하는 방법은 아래 주소로 들어가시면 자세히 나와 있습니다.PostgreSQL 공식 사이트추가로 PostgreSQL을 편하게 이용하고 싶은 사용자는 pgadmin3이라는 PostgreSQL의 GUI 프로그램을 설치하시면 됩니다. 설치 방법은 터미널 창에서 아래와 같은 명령어를 입력하시면 됩니다.$ sudo apt-get install pgadmin3 Max OS ( MAC OS X Mountain Lion 10.8.2)Mac OS에서 PostgreSQL은 Homebrew를 이용하여 설치하도록 하겠습니다. Homebrew는 Mac OS의 패키지 관리자 프로그램입니다. PostgreSQL은 Homebrew 이외에도 PostgreSQL 다운로드 사이트, Homebrew와 비슷한 기능을 하는 MacPorts 등을 이용해서도 다운받을 수 있습니다. 하지만 PostgreSQL 이외의 다른 프로그램을 설치하기에도 패키지 관리자가 유용하기 때문에 저는 Homebrew를 이용하도록 하겠습니다. 일단, Homebrew 패키지를 컴파일 하기 위해서 xCode가 설치되어 있어야 합니다. 앱스토어에서 xCode를 검색하여 받도록 합니다.xCode 설치를 완료했으면 메뉴에서 __xCode탭 - Preferences - Downloads - Command Line Tools__를 다운받습니다. 그럼 이제 Homebrew 패키지를 컴파일할 수 있게 되었습니다.이제 터미널을 실행시키고 다음 명령을 입력하면 Homebrew가 설치됩니다.$ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)" Homebrew가 이미 설치되어있다면 업데이트할 사항이 없는지 확인해보고 업데이트를 시켜주세요.$ brew update이제 Homebrew 설치를 완료했으니 간단하게 PostgreSQL을 설치할 수 있습니다.$ brew install postgresql 설치된 버전을 $ psql –ver 명령으로 확인해 보니 PostgreSQL 9.1.4 버전이 설치되어 있었습니다.psycopg2psycopg2는 Python library의 한 종류로써 하는 역할은 Python에서 PostgreSQL를 활용하게 해주는 library입니다. 설치 방법은 터미널 창에서 아래와 같은 명령어를 입력하시면 됩니다.$ pip install psycopg2 * 참고 ubuntu/debian 사용하시는 분 중에서 설치가 안 되시는 분들은 psycopg2를 설치하시기전에 python-dev라는 패키지 파일을 설치하시면 psycopg2를 설치 하실 수 있습니다. 설치 방법은 터미널 창에서 아래와 같은 명령어를 입력하시면 됩니다.$ sudo apt-get install python-dev FlaskFlask는 Python용 Micro Framework이며, Jinja2 template engine과 Werkzerg WSGI toolkit에 의존합니다. Flask에는 기본적으로 많은 환경설정 값들이 존재합니다. 규칙에 따라 템플릿 파일과 CSS, JavaScript, Images 등의 파일들은 templates과 static 이라는 하위 디렉터리에 각각 보관해야 합니다. 기본적으로 Flask는 다른 라이브러리에는 존재하는 Database abstraction layer, Form validation 등의 기능을 포함하지 않지만, 기능을 추가할 수 있는 확장성을 제공합니다. 이미 수많은 라이브러리들이 Database integration, Form validation, Upload handling, Various open authentication technologies등을 제공합니다. SQLAlchemy나 다른 DB Tool을 이용하여 고급 패턴을 구현할 수 있으며, Flask를 이용해보면 다양한 기능을 확장할 수 있다는 것을 알 수 있을 것입니다.Flask 설치 방법Flask를 설치하려면 터미널 창에서 다음 명령어를 입력하면 됩니다. (windows의 경우 cmd창) $ sudo pip install flask SQLAlchemySQLAlchemy는 Oracle, DB2, MySQL, PostgreSQL, SQLite와 같은 관계형 데이터베이스에 강력하고 유연한 인터페이스를 제공하는 Python SQL Toolkit이자 Object Relation Mapper(ORM)입니다. 여기서 ORM은 객체를 관계형 DB 테이블에 매핑해주는 역할을 하는데 SQLAlchemy는 객체를 매핑하기 위해 특정 클래스를 상속받지 않아도 되기 때문에 높은 수준의 라이브러리라고 할 수 있습니다.앞선 단계까지의 설치가 완료되었다면 SQLAlchemy의 설치법 역시 pip 명령을 쓰면 되므로 간단합니다. 윈도우는 커맨드창을 실행시키고, 리눅스와 MAC OS의 경우 터미널을 실행시켜 다음 명령을 입력합니다. 저는 SQLAlchemy 0.7.2 버전을 설치했습니다.$ pip install SQLAlcheymy==0.7.2Permission denied라는 문구가 뜨면 권한이 없는 것이므로 관리자 계정으로 설치를 해주어야 합니다. 관리자 계정은 $ sudo su로 로그인하거나 명령 앞에 sudo를 붙이면 됩니다.$ sudo pip install SQLAlchemy==0.7.2 여기에서 ==0.7.2는 설치할 SQLAlchemy의 버전을 뜻하며 버전을 명시하지 않으면 최신 버전으로 깔립니다.Flask-SQLAlchemyFlask-SQLAlchemy는 SQLAlchemy를 더욱 뒷받침할 수 있는 Flask의 확장으로 SQLAlchemy 0.6 이상의 버전을 필요로합니다. Flask-SQLAlchemy 역시 pip 명령으로 설치할 수 있으며 저는 Flask-SQLAlchemy 0.15 버전을 설치했습니다.$ sudo pip install Flask-SQLAlchemy==0.15 마치며지금까지 Windows, Linux, Mac OS에서 Python, PostgreSQL을 이용한 웹서비스 개발 환경 구축 방법에 대해 알아보았습니다. 이 글을 통해서 처음 접한 사람들도 특정 OS에 구애받지 않고 쉽게 웹서비스 개발 환경을 구축하는 데에 도움이 되었으면 좋겠습니다.출처Python 위키백과pip 위키백과 Flask 홈페이지PostgreSQL plusPostgreSQL 위키백과 Essential SQLAlchemy, O REILLY, 2008Flask-SQLAlchemy 홈페이지#스포카 #개발 #개발팀 #개발자 #파이썬 #Python #개발환경 #업무환경 #꿀팁 #조언 #인사이트
조회수 4263

회사 다니면서도 딴짓 잘하는 7가지 방법

벌써 명함이 네 장이다. 이직을 자주 해서 그런 건 아니고 (...) 회사에서 쓰는 명함이 아닌 다른 명함이 3개 더 있다는 뜻이다. 매 달마다 딴짓을 기획하고 일 년에 한 개씩만 남겨보자고 다짐했는데, 그렇게 4년이 지나니 몇 개의 프로젝트가 남아 내 주위를 맴돌고 있었다.부업 같은 사이드 프로젝트는 모든 직장인들의 염원 같은 존재다. 내게도 그랬다. '아, 저 퇴근 후에는 다른 일로 돈을 벌어요 하핫' 이라든지, '퇴근 후에는 다른 사람으로 살아가죠 후후' 같은 말을 하는 것을 모두가 꿈꾸지 않던가. 그러나 사이드프로젝트란 놈은 사뭇 그렇게 만만하지만은 않다.  이쯤되면 사이드프로젝트 하는게 사이드프로젝트인 수준이래 저래 눈치 볼 상사도 많고, 퇴근하고 나면 피곤해 죽겠고, 막상 뭔가를 하자니 무섭고 두렵고 걱정되고 불안하고 망할 것 같고 가정이 무너지고 사회가 무너지고 ... 우리는 기어코 도전을 방해하는 요소들을 굳이 찾아내고 찾아내어 무기력한 주말을 보내고 제자리에 머무르곤 한다. 그래서일까, 사람들은 내게 '어떻게 사이드프로젝트를 여러 개나 할 수 있냐'는 질문을 많이 던지곤 한다. '집에 가면 자기 발 닦고 자기 바쁜데, 대체 너는 뭐야?' 라는 표정이 보인달까. 절반은 신기함으로, 절반은 의구심으로 묻는 수 많은 질문들에 대답하다보니 나름 노하우가 생기더라. 그래서 오늘은 퇴근 후, 캘리그라피 강사 - 콘텐츠 에디터 - 공간 운영 등을 하며 가열차게 딴 짓을 하고 있는 나만의 몇 가지 팁을 공유해보려 한다. 1. 본업과 딴짓을 연결시켜서 당당하게 공개하라다들 사이드 프로젝트를 한다고 하면 '어떻게 하면 회사에 숨길 수 있을지'를 고민한다. 그러나 우리의 사이드 프로젝트가 성공한다는 가정 아래(...) 당신의 딴짓은 반드시 회사에 알려질 수밖에 없다. 그때 가서 들키게 되면, 잘못한 것도 아닌데 괜히 죄지은 기분이 들면서 사이드 프로젝트를 중단해야 하는 사태가 벌어지기도 한다. 사이드 프로젝트를 시작하기가 두려운 직장인이라면, 본업과 관련이 있어 보이는 프로젝트를 시작하고 그걸 오히려 당당하게 밝히는 것이 좋다. 예를 들어, 마케터인 나는 디자인과 로고 등의 감각을 키우고 싶다는 이유로 '캘리그래피'를 배웠고, 실제로 캘리그래피를 배운 뒤로 꽤 많은 회사 예산을 줄이고 (야근은 늘리고) 업무에도 많은 도움을 받았다.본업과 부업의 퓨전으로 본업을 살리면 팀장님이 좋아한다(...)본업과 사이드 프로젝트가 시너지를 낼 수 있는 방향을 찾으면, 오히려 회사에 공개하기도 수월해진다. 만약 사이드 프로젝트로 본업에 도움을 주는 날이라도 온다면 그 뒤로는 팀원들과 상사들로부터도 눈치를 덜 볼 수 있다. 다만 꼭 지켜야 하는 원칙이 있다면 '회사에서는 절대로 사이드 프로젝트를 하지 않아야' 한다는 점이다. 근태나 업무 퍼포먼스가 떨어지면 모두가 사이드 프로젝트 탓을 하기 쉽다. 공격의 빌미는 주지 않되, 본업에 연결시키는 현명함을 발휘해야 한다. 2. 나를 숨기고 다른 페르소나를 활용해라그래도 딴짓하는걸 절대로 회사에 알리고 싶지 않다면 다른 페르소나를 활용해서 나를 숨기는 방법이 있다. 필자의 경우에는 '문과생존원정대'라는 페이지를 운영하면서 '문생원'이라는 필명을 이용해 3년 동안 정체를 숨기며 콘텐츠를 연재했었다. 처음으로 실명과 얼굴이 공개된 것은 모 신문사 기자가 나를 '문 씨는' 이라고 표현하는 것을 보고 난 뒤였다. 차마 부모님 성씨마저 바꿀 수는 없었어서... (필자는 '고' 씨다)게시자는 나지만, 사람들은 나를 고재형이 아닌 '문생원'으로 기억한다.페이스북 페이지나, 인스타그램 새로운 계정은 얼마든지 내 정체성을 숨기면서도 할 수 있다. 어쩌면 내 개인의 브랜드보다 새로운 페르소나가 더 좋을 수도 있다. 본인이 막강한 인플루언서가 아니라면 과감하게 나를 버리고 새로운 페르소나를 택하라. 얻는 것은 프로젝트의 자유일 것이다. 3. 작은 결과물이라도 만들고 자주 공유해라당연한 말이지만, 사이드 프로젝트를 처음부터 잘할 수는 없다. 시작하자마자 잘했으면 애초에 그건 사이드가 아니었을 테니 말이다.(눈물) 그래서 완벽주의자들은 절대 사이드 프로젝트를 시작하지 못한다. 본인이 만들어 낸 결과물이 완벽하지 않기 때문에 주변에 공개조차 하지 못하고, 완벽한 수준을 만들어내기 까지의 시간 소요를 알기에 애초에 시작하지 않고 무작정 미뤄버린다.작은 결과물이라도 자주 올려라. 의외로 사람들은 작은 결과물에도 놀란다. 그것은 직장을 다니면서도 무언가를 해내는 당신의 열정과 체력에 대한 경의이기도 하며, 애초에 당신에게 크게 기대하지 않았는데 그럴싸한 결과물이 눈에 보이는 그 순간이 놀랍기 때문이기도 하다. 친구들의 작은 반응은 이처럼 큰 동력이 된다타인의 사소한 놀라움은 내게 큰 동력이 된다. 아주 쓸모없는 짓을 하고 있던 것은 아니었구나 하는 안심과 함께, 내가 하고 있는 일이 잘 되고 있는지 간단하게 피드백을 받을 수 있는 좋은 기회이기도 하다. 인스타가 되었든, 페이지가 되었든, 술자리가 되었든 내가 만든 작은 결과물들을 어떻게든 공유하고 자랑하라. 의외의 뽕을 맞을 수 있을 것이다. 4. 돈을 벌지 못하면 실패라는 편견을 버려라우리가 하는 대부분의 프로젝트는 어차피 잘 되지 않는다(...) 필자는 하루가 멀다 하고 사이드 프로젝트를 기획하지만, 그중에 결국 옆에 남은 것은 서 너개 뿐이다. 4년간 매 달 기획했던 48개 중 45개는 망한 것이다. 그리고 그중에서 돈이 되는 것은 단 두 개뿐이었다.페북의 '내가 만든 페이지 목록'. 수도 없이 많은 페이지들이 소리없이 사라져갔지만 모두가 필요한 과정이었다.그러나 사람들은 사이드 프로젝트로 돈을 '소비' 하는 것이 실패하고 있는 과정이라고 여긴다. 명심해야 할 것은, 애초에 사이드 프로젝트로 돈을 벌기까지는 그만큼의 '투자'가 필요하다는 점이다. 돈을 벌 수 있을만한 사이드 프로젝트를 만나기 위해선 그만큼 소비하고 투자해야 한다. 다만 그 소비의 과정에서 즐거움을 찾고, 나에 대한 이해를 높이며, 더 나은 사이드 프로젝트를 찾아가는 여정에 익숙해져야 한다. 그 여정이 익숙해지는 어떤 순간에 소득은 선물처럼 발생한다. 5. '할 일'과 '일정'을 구분하고, 할 일을 위한 일정을 만들어라'진짜 부지런하신 것 같아요'라는 말을 정말 많이 듣는다. 마치 내겐 시간이 더 있는 것처럼, 당신의 회사는 야근을 하지 않느냐는 순진한 눈빛과 함께 이런 질문을 던질 때면 나도 당황한다. 애석하게도 나는 퇴근 시간이 7시인, 늦잠을 좋아하고 야근도 종종하며, 사회생활을 위한 소모적인 모임에도 나가야 하는 평범한 직장인이다. 다만 남들과 다르게 시간을 활용하는 노하우가 있었다면, 친구들을 만나는 모임과 같은 일정처럼 '할 일'을 위해서도 일정을 만들어줬다는 것이다. '오늘은 뭐 하세요?'라는 질문에 '오늘은 사이드 프로젝트를 위해서 시간을 내는 날이에요'라고 것처럼 말이다. 사람들은 주말에 모든 계획을 몰아 넣지만, 구체적으로 언제 어디서 일을 할 것인지는 정하지 않는다. 사람을 만날 때는 꼬박꼬박 시간과 장소를 잘 정하면서 말이다. 일정 속 숨어 있는 '할 일 일정'. 저건 누군가와의 약속과 동일한 무게를 지닌다.딴짓을 위한 시간은 마치 헬스장을 다니는 시간과도 비슷하다. (그래서 잘 안 되는 건가) 캘린더에 미리 딴짓을 위한 일정을 만들고, 다른 사람들이 그 날 만나자고 해도 딴짓과의 약속을 지켜줘라. 그러고 나면 의외로 주말에도 시간이 많이 나고, 쉴 것 다 쉬면서도 딴짓을 하는 나 자신을 발견할 수 있을 것이다. 6. '고민'과 '걱정'을 구분하고, 먼저 저질러라사이드 프로젝트가 45개나 망했지만, 그 과정에서 언제나 '걱정'은 없었다. 늘 어떻게 하면 더 재밌고 잘할 수 있을지 '고민'하는 시간은 있었지만 말이다. 고민과 걱정은 엄연히 다르다. 걱정은 애초에 '실패'를 염두에 두고 있다. '고민'은 더 나은 방향으로 나아가는 보다 구체적인 태도다. 일단 고민하지 말고 먼저 들이대본다. 걱정 후 포기보다 실행 뒤 후회가 낫다.'내가 사이드 프로젝트를 과연 잘할 수 있을까?'는 걱정이고 그 어떤 것도 진전을 이룩하지 못하지만, '유튜브를 하려고 카메라로 얼굴을 찍어봤더니 피부가 너무 안 좋고 생각보다 더 늙어 보이며 말을 버벅이네, 어떻게 하면 이걸 해결할 수 있을까?'는 (슬픈)고민이다. 일단 저지르고, 그 과정에서 걱정을 고민으로 바꿔라. 그러다 보면 어느새 뭐라도 하고 있을 것이다. 7. 함께 작당 모의할 동료를 구하거나 더 많은 사람들을 연결하라예전에 루트임팩트의 정경선 대표가 스타트업을 위한 주거공간을 만들며 했던 말 중에 '미친 짓을 하고 있는 사람들끼리 모아 놓으면, 나만 미친 짓을 하는 게 아니라는 걸 알면 뭔가 위로가 될것 같아서' 만들었다는 말을 기억한다.나는 그 말을 들은 뒤로, 뭔가 새로운 미친 짓을 할 때는 늘 동료(공범)를 만든다. 동료들은 언제나 나의 시도를 부추겨주며, 더 나아가서는 프로젝트를 돌이킬 수 없을 만큼 크게 만들어버리곤 한다. 내게는 공간 사업이 그랬다. 처음에는 방 1개만 운영하려 했는데, 공범을 영입하고 나서는 어느새 4개 층 건물의 2개 층을 운영하게 되었다. 재미는 두 배, 리스크는 절반이니 이 얼마나 합리적 선택인가. 공간 사업도 원래 이렇게 크게 하려던건 아니었는데 정신을 차려보니 커져있었다 (...)만약 동료를 만들기 어렵다면, 페친이라도 늘려라. 나와 비슷한 관심사에 있는 사람들을 무작정 추가하고, 팔로우하고, 자주 만나라. 내 결과물을 보고 무조건적인 좋아요를 눌러줄 수 있는 팬들을 만들면 내 사이드 프로젝트는 의외로 더 크고 그럴싸해 보인다. 무플이 악플보다 더 나쁘다고 하지 않던가. 애초에 반응이 없는 프로젝트를 진행하는 것은 짝사랑과 별반 다르지 않다. -개인의 시대라 하지만, 개인이 성공하기 위해서는 더욱 연결되어야 하는 아이러니한 세상에 살고 있다. 회사로부터 탈출하고, 더 나은 '내'가 되기 위해서는 이제 준거집단으로부터 탈출해 더 많은 사람들을 만나고 연결되어야 한다. 더 다양한 프로젝트 주제를 찾기 위해서라도, 내 프로젝트를 무작정 좋아해 줄 사람들을 만나기 위해서라도 우리는 더 큰 세상으로 나가야 한다. 그런 큰 세상을 향한 발걸음에 적당히 좋은 입문 기회가 있다. 이 글을 쓴 필자도 나온다. 그런데, 필자가 제일 쪼렙이다. 강남역에서 9월 14일에 열리는 '평생직장은 개뿔, 개인의 시대' 컨퍼런스에서 더 대단한 '개인주의자'들의 이야기를 들을 수 있다. 사이드 프로젝트를 잘 하는 방법부터, 회사가 아닌 곳에서 살아남는 '개인'들의 노하우를 공유한다. 얼리버드가 끝났다. 벌써 절반이 넘게 팔렸다고 한다. 이 글을 읽고 무언가가 꿈틀댔다면, 더는 망설일 이유가 없다. 사이드 프로젝트를 고민하고 있다면, 지금 '개뿔콘'에 와서 그 힌트를 얻어보도록 하자.https://festa.io/events/75평생직장 개뿔! 개인의 시대 컨퍼런스 | Festa!Festa에서 당신이 찾는 이벤트를 만나보세요.festa.io#어니스트펀드 #마케터 #마케팅팀 #인사이트 #경험공유
조회수 1054

디자이너가 혹시라도 멋져보인다거나 그러면.

포토샵을 열어요. 대지를 만들어요. 레이어를 만들어요. 고민을 해요. 핀터레스트를 본다. 빠져둔당. 2시간 순삭. 사진을 찾자. 2시간 순삭. 와씨...점심먹을 시간됨. 점심먹고 앉아서 다시 레이어를 만든다. 사진을 찾았다. 다른이름으로 저장... 문서에서 열어서 컨트롤 에이, 씨, ㅂ (욕 아님. v발음이예요.) 옮겨서 컨트롤 티 크기조정하고 마스크씌우고 쓱싹쓱싹 닦아내고 지우고 컨트롤 엘. 레벨조정 스윽... 밝아지고, 커브로 배불뚝이 S라인 만들어주고, 다시 레이어 만들고 눌러서 드롭섀도 주고 레이어 만들고, 텍스트 복붙하고 레이어만들고...아 맞다. 저장.레이어만들고, 흰색칠하고 다시 레이어만들고 마스크 씌우고 잘라내고, 그림 불러오고 고급개체 만들고 자유변형해서 기울이고 그림자 주고 레이어만들어서 광원효과 주고. 레이어만들고 텍스트 또 복붙해요. 아까 그 레이어랑 그룹핑 시켜줘요. 레이어 만들고 유튜브를 하나 볼까?..(중요)2시간 순삭.아씨...다시 레이어 만들고, 일러를 켜고. 일러에서 패스따서 아이콘 만들어요. 내보내기해서 고급개체로 불러왔는데 아놔 뭔가 작아지니까 안이뻐. 다시 만들고 또 만들고, 패스따고 도형만들고 합치고, 나누고 나부랭이 지우고 레이어 만들어서 아래꺼 고정시키고 레이어만들고 선만 따로 그룹핑, 레이어만들고 나머지 그려주고. 견본색 스포이드로 찍어서 따로 저장해놓고 선 끝처리 해주고 내보내기.포토샵으로 돌아오기 전 배고프니까 간식 와구와구..... 하나만 먹어야지. 한 봉지만... 컵라면도.. 피씨방인줄.포토샵으로 돌아와서 레이어만들고..아 왜 만들었지? 다시 지우고 아 맞다...그거 할려고 했지. 다시 만들고 그라데이션 만들고 레이어 만들고 글자쓰고 글자 테두리 따서 클리핑해주고 위로 옮겨요.그리고 레이어만들고..( 무표정.... )레이어 만들고 칠해주고 또 레이어 만들어서 위에 클리핑해주고, 레이어 만들어서 브러쉬로 뭐 그린다음 패턴지정하고 저장해서 다시 패턴채우기. 레이어만들고 브러쉬2000pt 잡고 흰색으로 삥! 만들어서 광원효과만들고 투명도 주고 다시 레이어 만들어서 빤짝이를 만듭니다. 레이어를 만들고 글씨를 쓰고 하늘색 정렬선 쭉쭉 끌어오고 레이어만들고 정렬맞춰요. 아오..텍스트가 애매하게 줄바꿈 되었어요. 한 단어만 툭 튀어나옴. 한툭튀. 뭔가 지울 게 없나 살펴봅니다. 클라이언트에게 전화를 해요. 이거 텍스트 좀 수정해도 돼요? 안돼요. 네. 자간을 좀 줄이자... 겨우 맞춤. 정렬선만들고 제목선 맞추고 정렬선만들고 두개 만들고 세개 만들고 문단맞추고 정렬선만들고 정렬선 또 만들어서 하단 맞추고 정렬선 만들고 오케이 계획대로 되고 있어.저장해주기.언스플래쉬가서 사진 찾기. 맘에 드는 거 없어. 턱수염아저씨들밖에 없음. 얼굴없는 걸로 셀렉. 불러와서 컨트롤 ㅆㅂ. (C+V) 레이어만들고 다시 편집, 레이어만들고 사진 위에 필터효과 주기, 레이어만들고 광원효과.레이어만들었는데 허리아퍼...일어나서 끄으으아아아어으아으아ㅡ아으아으앙 뚜둑.다시 앉아서 레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..잠깐 멍......턱을 괴고 쳐다봅니다.맘에 안들어...다시 레이어 그룹핑해서 잠시 눈 꺼놓고 다시 만듦. 색조정하고 레이어 만들고 아놔..... 메뉴꺼짐. 다시 불러와서 또 레이어만들고 클릭 딸깍..클릭 딸깍..레이어만들고 마스크만들어줘요. 폭염에 마스크쓰고 그룹핑에 쳐박힌 레이어기분을 니들이 알아?(feat. 마미손) 레이어만들고 반전주고 투명도23% 멀티플잡아주고 레이어만들고 가자 렛츠고.번아웃...하기싫어졌습니다. 손목이 아파서 잠시 허리를 풀어봅니다.(사실 손목을 어떻게 푸는 지 모르겠어..) 바람을 쐬고 와야지.. 바람을 쐬고옵니다. 다시 컴퓨터로 돌아오니 미치겠음. 갑자기 일정을 다시 보면 뭔가 달라지진 않았을까 싶어서 일정을 다시 확인함. 데드라인은 변함없어요. 오늘의 나는 노쇠했으니 내일의 나에게 기대를 걸어보는 것은 어떨까? 그런데 어제도 그랬어.이젠 아무 생각이 없어지고 레이어 만들어요. 노운프로젝트에서 아이콘 다운받아서 (이젠 일러로 만들기도 싫음) 포토샵으로 데려와서 아이콘 박아주고 선택툴 만들고 색바꿔주고 레이어 만들고...레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..잠깐! 아..이거 로고상태가....?  로고 파일을 JPG로 주셨네.자동지우개.. 허용치10...정도 주고 흰색을 날려보자..오호 로고에 흰색이 섞여있어서 같이 날아가네? (이 때 해야할 방법을 알지만 그것 말고 다른 방법은 없을 지 잠시 생각.. = 없음)패쓰로 누끼따기.... 딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트/딸깍쉬프트 다 됬다.. 이제 다시레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고..레이어만들고.. 레이어에 색칠해서 그룹핑 정리해주고 이름..........은 귀찮아서 안바꾸기로. 어차피 수정오면 다시 내가 만들건데 뭐...일단 다른 이름으로 저장. 알컨쉬+에쓰. 이미지로 뾱.. 피앤지로 저장. 메일을 쓰자...'담...당..자 님.... 요청..하신 시안...드립...니다... 확인..하시..고.. 피..드백..부..탁(시러) 드..립..니....다.'보내기 꾹. ㅓㅜㅑ 어깨야...Q. 총 몇 개의 레이어가 만들어져 있을까요?
조회수 1262

채널 데스크 프론트엔드 기술 스택

오프라인 고객 분석 솔루션 워크인사이트를 개발해 온 조이는 최근 온라인 접객 서비스 채널을 런칭했습니다. 이 글은 채널과 관련된 기술 블로그의 첫번째 글로 채널 데스크 프론트엔드(웹, 윈도우, OSX)의 기술 스택 및 개발 환경을 소개하도록 하겠습니다.React채널 개발을 처음 시작할 당시 (지금으로부터 1년 전) 에 워크인사이트 대시보드 및 기타 사내 툴에서는 AngularJS 1을 사용하고 있었습니다. 비교적 적은 코드로 복잡한 애플리케이션을 빠르게 만들 수 있는 점에는 만족했지만 퍼포먼스면에서는 아쉬운 부분이 많았습니다. 따라서 새로운 프레임워크 및 라이브러리를 리서치 했고 매우 가볍고 렌더링 퍼포먼스 면에서 AngularJS 1 대비 우위에 있던 React 를 사용하기로 결정했습니다.컴포넌트의 설계 패턴은 Redux를 만든 Dan이 제안한 Container 와 Presentational 컴포넌트를 구분하는 방식으로 설계하고 있습니다. 따라서 Container 가 data fetch 및 update 등의 액션을 실행하고 Presentational 컴포넌트들을 조합하여 렌더링을 하게 됩니다.React를 실제 1년째 사용해 본 결과 저를 비롯한 팀원들은 매우 만족하고 있습니다. 구조, 스타일, 동작을 한 컴포넌트로 묶어 재사용성이 매우 높아졌으며 React의 휴리스틱한 Dom diff algorithm 덕분에 렌더링 퍼포먼스에서도 많은 이득을 얻을 수 있었습니다.Facebook Flux Utils아키텍쳐는 페이스북이 제안한 flux 철학에 따라 설계되었습니다. flux를 구현하기 위한 기본적인 유틸리티 기능을 제공하는 Flux Utils을 사용합니다. Flux의 많은 구현체 중에 요즘 가장 인기인 Redux도 고려했었습니다. 저희가 프로젝트를 시작할 당시에 Redux는 5~6개월밖에 되지 않은 프로젝트였고 거의 Dan의 1인 프로젝트였기 때문에 향후 메인터넌스를 장담할 수 없다고 판단했습니다. 그보다는 페이스북이 만든 Flux Utils가 그런 면에서는 더 안전할 거라고 생각했던 것이죠.약 1년 정도 Flux Utils로 개발해오며 몇 가지 문제를 겪게 되었습니다. 애플리케이션이 커지면서 관리해야할 State가 많아지고 그들 사이의 의존성 관리 때문에 Store의 복잡도가 빠르게 증가했습니다. 그에 따라 테스트가 어려워지고 올바른 유닛테스트를 위해서는 테스트 코드 역시 매우 복잡해지는 문제가 있었습니다.그래서 Redux를 다시 리서치하게 되었고, 결론적으로 “단일 Store, 다수Reducer” 라는 Redux의 철학을 통해 State 관리 로직(Reducer)을 단순하고 테스트도 쉽게 유지할 수 있겠다는 생각을 하게 되었습니다. 뿐만 아니라 그 동안 설계와 관련되어 고민하고 필요한 경우 저희 스스로 개발해서 사용하던 많은 부분이 Redux의 서브 프로젝트 형태로 (redux-actions, redux-thunk, reselect 등) 개발되어 사용되고 있는 것을 발견해서 Redux로의 마이그레이션을 결정했고 현재 진행 중에 있습니다.Electron이 글의 도입부에서 이야기한 것처럼 채널 데스크는 윈도우용, OSX용 애플리케이션으로도 제공됩니다. 채널 개발 초기 당시 윈도우, OSX 각각 네이티브로 만들 리소스가 부족했기 때문에 웹 기술 기반으로 네이티브 앱을 만들 수 있는 다양한 솔루션들을 리서치했고 그 중 Electron을 선택하게 되었습니다.Electron은 제가 정말 좋아하는 제품인 Slack, Simplenote에서 사용하고 알려져 있고 국내에서는 Remember 등에서 사용하고 있습니다. 초기 개발 당시에는 안정성에 의문을 제기하는 개발자들도 많았고 저희도 여러 문제와 삽질(인증, 패키징, 이슈 레포팅의 어려움, 메모리릭 등등)을 많이 겪긴 했습니다만 개인적으로는 충분히 프로덕션에 쓸 수 있을 정도 수준이라고 생각합니다. 무엇보다 프론트엔드 개발자가 매우 적은 노력으로도 네이티브 데스크탑 앱을 만들 수 있는 장점이 다른 모든 문제점을 상쇄하고도 남습니다.언어개발 언어로는 자바스크립트 ES6를 사용합니다. 언어를 선택할 당시에도 여러 옵션이 있었는데 가능하면 실험적이지 않고 표준을 사용하는 것이 미래 유지보수에 안전하다고 판단했습니다. 또한 다른 자바스크립트 대안 언어를 사용하지 않더라도 ES6 (일부 ES7 포함) 스펙도 충분히 효율적인 개발이 가능하다고 생각했습니다.코딩 스타일은 기본적으로 Airbnb의 코딩 스타일 가이드라인을 따르며 조이의 상황과 맞지 않는 부분은 엔지니어들과 상의 후 수정해서 사용하고 있습니다. 스타일 체크는 ESLint로 자동화한 뒤 Circle CI와 붙여서 모든 풀리퀘스트에 대해 점검하고 있습니다.테스트초기 개발할 때는 테스트 코드를 별도로 붙이지 않았습니다. 고객의 요구와 기타 상황에 따라 기획과 설계가 크게 변경되기도 했고 그 때마다 기민하게 반응하기 위해서, 어느 정도 확립된 제품이 되기 이전에는 테스트 코드는 작성하지 않는 것이 좋다고 판단했습니다. 이제는 많은 부분이 확정되었고 안정성이 중요해지기 시작했으며 애플리케이션이 커지면서 자동화된 테스트는 필수가 되기 시작했기에 최근에 도입을 하고 있습니다.테스트를 위한 도구는 Jest, Enzyme 등을 사용합니다. Presentational 컴포넌트에 대한 테스트는 props에 따라 원하는 형태로 렌더링이 이루어지는지, 이벤트에 따라 콜백이 잘 실행되는지 등의 Spec 을 작성합니다. Container 컴포넌트에 대한 테스트는 각종 이벤트 및 동작을 시뮬레이션하고 그에 따라 Action이 잘 발생하는지 또는 내부 state가 잘 변경되는지를 테스트합니다. 또한 Store (또는 Reducer), Action Creator, Model, Util 등 모든 구성 요소에 대한 테스트를 붙이려고 노력하고 있습니다. 유닛 테스트가 아닌 e2e 테스트 혹은 css 스타일 테스트 등은 하지 않고 있습니다.빌드 및 배포현재 채널 데스크는 Client-side rendering을 합니다. 초기 로딩 속도가 느리다는 단점이 있어서 Server-side rendering으로의 전환도 고려하고 있습니다. 이미 Node.js 를 사용하고 있어서 Isomorphic Javascript의 형태로 어렵지 않게 전환이 가능합니다.작성된 자바스크립트는 Babel로 컴파일되고 Webpack으로 번들화됩니다. css를 포함한 각종 리소스들 역시 Webpack을 통해 처리됩니다. 웬만한 작업은 npm과 Webpack으로만 자동화하려고 했으며, Electron과 관련된 작업(패키징, 인증 등)들만 gulp를 이용해 자동화됩니다. 모든 리소스들은 Node.js + express 서버로 Serving 되고, Node.js 앱은 Docker로 빌드되어 AWS EC2로 배포됩니다.마무리이상으로 채널 데스크 프론트엔드의 기술 스택을 소개해드렸습니다. 앞으로 각 부분 별로 저희 팀이 고민해 온 문제들과 해결 방법을 공유하고자 합니다. 뛰어난 개발자 분들의 많은 관심과 피드백 부탁드립니다!#조이코퍼레이션 #개발자 #개발팀 #인사이트 #경험공유 #일지
조회수 1886

Swift 4.1에서 딥링크로 앱을 여는 경우 크래시되는 문제 해결하기

최근 Xcode 9.3 버전이 배포되었습니다. 이 버전에는 가장 최신의 Swift 4.1 버전이 포함되어 있습니다. Swift 4.1에는 여러 흥미로운 개선사항들이 많지만, 치명적인 버그도 존재합니다. 바로 딥링크를 통해 앱을 여는 경우 크래시가 발생하는 문제입니다. StyleShare에서는 QA 과정을 통해 문제를 발견할 수 있었습니다.만약 여러분의 애플리케이션이 아래 조건을 모두 충족할 경우 문제가 발생합니다:Swift 4.1 버전을 이용해서 빌드한 경우Deployment Target이 iOS 11.0 미만인 경우AppDelegate에서 application(_:open:sourceApplication:annotation:) 메서드를 구현한 경우문제를 재현하기에 가장 좋은 방법은 Safari 앱을 이용하는 것입니다.1. iOS 기기 또는 사뮬레이터에서 Safari 앱을 구동합니다.2. 주소 입력란에 앱이 지원하는 딥링크 URL을 입력한 뒤 이동합니다. (e.g. myapp://)3. 앱이 구동됨과 동시에 강제 종료됩니다.이 버그는 Swift 이슈 트래커에 SR-7240 티켓으로 이미 등록되어 있습니다. Resolved 상태로 표시되지만 이번 Xcode 9.3 버전에는 포함되지 않은 것으로 보입니다. 다행히 댓글에 한 개발자가 문제를 해결할 수 있는 workaround를 공유해두었는데요. 이 방법을 이용하면 당장의 문제는 해결할 수 있습니다. AppDelegate 메서드의 annotation 파라미터의 타입을 Any에서 Any?로 변경하는 것입니다.- func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool + func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any?) -> Bool<iframe width="700" height="250" data-src="/media/0ce1fe8c63fca7a6c953233b94406d02?postId=ed495077c36" data-media-id="0ce1fe8c63fca7a6c953233b94406d02" data-thumbnail="https://i.embed.ly/1/image?url=https://avatars2.githubusercontent.com/u/931655?s=400&v=4&key=a19fcc184b9711e1b4764040d3dc5c07" class="progressiveMedia-iframe js-progressiveMedia-iframe" allowfullscreen="" frameborder="0" src="https://medium.com/media/0ce1fe8c63fca7a6c953233b94406d02?postId=ed495077c36" style="display: block; position: absolute; margin: auto; max-width: 100%; box-sizing: border-box; transform: translateZ(0px); top: 0px; left: 0px; width: 700px; height: 100px;">UIApplicationDelegate에 정의된 메서드 시그니쳐와 다르기 때문에 컴파일러가 경고를 표시하지만 무시하셔도 됩니다.만약 새로운 버전의 앱을 릴리즈 할 계획을 가지고 계시다면 이 이슈를 꼭 확인하시길 바랍니다. 이 버그는 페이스북 로그인 등 다른 앱을 이용한 로그인이나, 카드 결제 후 주문서로 돌아오는 흐름에서 큰 문제를 일으킵니다. 이 글이 여러분들께 도움이 되길 바랍니다.Swift Korea 그룹에서 Xcode Release Notes에도 같은 내용이 있다는 것을 제보해주셨습니다. Swift Compiler 섹션의 Known Issues 4번째 항목입니다.#스타일쉐어 #개발팀 #개발자 #개발후기 #경험공유 #인사이트

기업문화 엿볼 때, 더팀스

로그인

/