스토리 홈

인터뷰

피드

뉴스

조회수 2352

[피플] 더부스 브루잉의 핵심 코어, 판교 브루어리 양조사 김주미님!

[ 더부스팀 인터뷰 특별기획 4부 ]정말 하고 싶은 일을 하는 사람들의 이야기더부스 브루잉에서가장 중요한 사람은바로 맛있는 맥주를 만드는Brewer!항상 넘치는 에너지로맛있는 맥주에 힘을 불어 넣어주는더부스 브루잉의 핵심인력,김주미님을 소개합니다.맥주와 사랑에 빠진 그녀는어느날 자신이 거의 모든 월급을 털어맥주 양조 장비와 재료를사고 있었다는 것을 깨달았다.안정적인 직업을 갖고 있었던 그녀.근속연수가 길어질수록연금은 차곡차곡 쌓이고 있었지만,한살이라도 더 어릴 때과감한 결정을 해야 할 것 같아맥주를 빚으러 떠났다!前  패션 디자이너前  영어강사前  산업용재협회 월간지 기자現  더부스 브루잉 브루어Q1. 안녕하세요! 브루어가 한국에서 일반적인 직업은 아닌데, 주미님은 원래 브루어셨나요?아니에요. 제 원래 전공은 패션 디자인이에요. 패션 산업에서 일하며 밥먹듯이 동대문 원단시장과 공장을 왔다 갔다 했죠. 그런데 패션 업계에서 디자이너로서의 삶이 제 생각과는 많이 다르다는걸 알게 되었어요. 새로운 디자인을 창조하기 보다 ‘잘 된’ 디자인을 베끼는게 주된 일이었죠. 자신만의 전시회나 창작품을 만들고 싶다면 다 자비로 충당해야 했어요. 게다가 ‘열정페이’가 만연한 우리나라 패션업계에서는 밤 늦은 시간까지 고된 일의 연속은 물론이고, 월급도 상당히 적었죠. 체력적으로 많이 힘들기 때문에 오래 못버티고 그만 두거나 일찌감치 다른 직업전선에 뛰어든 대학동기들이 많았어요. 여러가지로 회의감을 느끼던 차에, 저 역시도 격무로 인해 건강에 문제가 생겨 패션 업계를 떠나기로 마음을 먹었죠. 다른 직업을 찾던 중 한 영어 교육프로그램 회사의 홍보팀에서 사보를 담당하기도 했죠. 그러다 우연한 기회로 우리나라 소상공인단체인 산업용재 협회라는 곳의 월간지 기자로 꽤 오래 일했었어요. 어렸을 때부터 글 쓰는 것을 좋아했기에 일이 적성에 맞았죠.Q2. 협회 월간지 기자로서 어떤 일을 하셨나요? 약간은 협회 이름이 생소하기도 한데요! 그리고 꽤 오래하신 일을 그만 두신 이유가 있나요?산업용재 협회는 우리나라 공구 및 산업자재 유통사업에 종사하고 있는 사람들의 권익을 대변하는 중소기업중앙회소속 소상공인단체예요. 산업용재업계 종사자들의 사업을 위한 유익한 정보를 제공하고, 친목 도모 및 교육, 복지증진 등을 위한 다양한 사업을 수행하고 있죠. 저는 그 협회에서 발간하는 월간지의 기자로 일했어요. 우리나라에서 산업에 전반한 공구, 자재 등을 취급하는 소상공인들을 인터뷰하는 일이 주된 업무였죠. 청계천의 공구상가를 비롯해 전국에 분포된 기계산업단지를 돌아다니며 기술공 및 업계 종사자 분들을 많이 만났었어요. 6.25 전쟁이후, 불모지에 가까운 우리나라 산업계에 쓸만한 물건이라면 무엇이든 발품을 팔아 세일즈를 하며 녹록치 않은 인생을 살아오신 분들이 대부분이었죠. 이분들의 사연을 하나하나씩 듣게 되면서 사람을 더 잘 이해할 수 있게 됐고, 그들의 소소한 일상과 사업적 노하우를 전달할 수 있게 되서 큰 보람을 느꼈어요.Q3. 그럼 어떻게 양조를 시작하게 되셨나요?개인적으로 힘든 일이 있어서 여러가지 취미 활동을 시작한 시기가 있었어요. 처음에는  ‘달리기’를 시작 했었는데 달리면서 다시 에너지를 찾을 수 있어서 굉장히 즐거웠어요. 수요일마다 남산을 달리고, 여러 러닝 대회에 참가하고 완주하면서 뿌듯함을 느꼈죠. 땀과 함께 스트레스도 씻어 날아가는 느낌! 가족들도 모두들 운동을 좋아해서 엄마는 핸드볼 선수, 아빠는 태권도 유단자, 오빠는 배구 선수 거든요. 그렇게 한동안 달리기로 스트레스를 풀다 원래 무언가를 ‘만드는’ 일을 좋아 했으니까 요리도 배워보자 해서 수수보리 아카데미의 전통주 양조 수업을 듣게 되어 본격적인 양조를 시작했어요. 100가지가 넘는 꽃을 손수 따서 빚은 ‘백화주’를 마셔보고 꽃밭에 빠지는 듯한 황홀한 경험을 했거든요. 그러던 어느날 수수보리에서 맥주 양조 수업도 듣게 됐죠. 그런데 맥주를 빚는게 너무 재밌어서 어느 순간 제가 모든 월급을 ‘맥주 양조’에 쓰고 있다는 것을 깨달았어요. 월급을 받는대로 맥주 양조 장비, 맥주 양조 재료 등등을 잔뜩 샀거든요. 특히 전통주와 맥주를 접목해보려고 인삼 등등의 재료도 구매하고 그랬죠. 또 술을 빚으면서 각각의 술이 참 “사람 같다” 라는 생각을 하게 되었어요. 좋아하는 친구들 마다 각자의 향기가 있듯이, 술도 다 자신만의 향기가 있는거죠. 곁에 두고 싶은 사람, 그리운 친구 그런 사람 같은 술을 빚고 싶어 양조를 더 열심히 하게 됐어요.Q4. 전통주 양조로 시작하셨다가, 맥주로 넘어오신 이유가 궁금하네요. 이제 전통주는 안만드시는건가요? 전통주도 계속 만들어요! 아직도 집에서 막걸리 등 전통주를 만들고 있어요. 실패한 막걸리로 식초 등을 만들기도 하는데, 집안 곳곳에 젖산균이 퍼져서 맥주를 만드는 족족 시어져 버리는 경우도 있었죠 (하하). 그리고 한달에 한 번씩 수수보리에서 같이 공부했던 친구들이랑 고서를 보고 잊혀진 레시피 등을 되살려서 양조를 하고 있어요. 연잎이 들어간 전통주를 빚기도 하고, 여러 다양한 시도를 하고 있죠. 전통주에서 맥주 양조로 넘어온 이유는 맥주가 더 ‘재밌고, 반항적이며, 또라이 같은 시도’를 더 많이 할 수 있기 때문이에요. 전통주를 빚는 일이 고고하고, 아름답고, 단아하다는 이미지가 있는 반면 맥주는 더 자유롭죠. 현실적인 이야기를 하자면, 일본의 전통주 등은 누룩들이 철저하게 정량화, 과학화 되어 관리되는 반면 우리나라는 많은 비법들이 ‘구전’에 의지해 계승되어 오다 보니 미묘한 ‘손맛’ 등을 살리는 일이 힘든 것도 있어요. 정량화, 계량화 되어 오지 않은거죠. Q5. 그렇다면 일종의 공기업이었던 산업용재 협회를 나와서 본격적으로 ‘양조’ 쪽에 커리어를 쌓게된것은 어떤 계기였나요?맥주양조를 하면서 집에서 맥주를 빚는 ‘홈브루어(home brewer)’들이랑 많이 친해졌어요. 홈브루어 대부분은 외국인들이었구요. 그런데 어느날 그 중 한 친구가 더부스에서 브루어(brewer, 양조사)를 찾는데 같이 지원하지 않겠냐고 하더라고요. 그래서 대전에서 영어강사로 일하던 그 외국인 친구와 함께 밑져야 본전이라고 작년 6월쯤 함께 더부스에 지원하게 되었죠. 그 친구도 사실 한국에 오기 전에는 보스턴의 꽤 유명한 브루어리의 브루어였어요. 사실  저에게는 공기업의 가장 큰 혜택인 ‘노후 연금’도 차곡차곡 쌓이고 있었는데 그걸 버리고 더 불안정한 ‘양조사’의 삶을 선택하는게 쉬운 일은 아니었어요. 20대라면 덜 고민했을텐데…. 그러다 이렇게 시간이 더 지나고 나이가 더 들으면 다시는 이런 도전을 할 수 없다는 생각이 들었어요. 그래서 마음을 굳혔죠. 그 친구는 더 곰곰이 생각해보니 미국에서 처럼 브루어의 삶도 그립지만, 고등학교 선생님이 적성에 잘 맞고 아이들과 정을 많이 쌓아 지금 하고 있는 일을 그만두기에는 어렵다는 결정을 내렸었고요. 그래서 최종적으로는 저만 더부스의 브루어가 되었죠. 그리고 그 시점에 더부스 양조팀에는 이미 대인님이 있었고, 지금 브루마스터인 크리스가 나중에 합류하게 되었죠.Q6. 막상 브루어가 되었을때, 기분이 어떠셨어요?집에서 맥주를 빚는 것에서 벗어나 ‘더 많은’ 양의 맥주를 빚어야 되는 상황은 솔직히 익숙치가 않았어요. 곡물을 옮기고, 붓고 하는 육체 노동에 매일 몸살을 앓았죠. 한 3개월 내내 파스를 온몸에 붙이고 살았고, 새벽에는 급작스러운 근육경련에도 시달렸죠. 나중에는 파스가 안듣더라니까요? 파스가? 이제는 몸에 익어서 괜찮아요. 세상에 쉬운일이 없죠. (하하하하) 육체적 어려움 말고도 장비 익히기, 이론을 실제 적용하여 양조하기, 가스 내압 등등 중요한 요소들을 모두 숙지하는 일이 쉽지 많은 았거든요.Q7. 지금은 힘든건 좀 덜 하신가요?이제 적응이 돼서 육체적으로 힘든건 거의 없어요. 다만 지금 힘든건 공부해야 하는것이 매우 많다는것? 그리고 브루어리에서 하나부터 열까지 신경써야 할 것들이 매우 많아요. 맥주 상태 확인, 맥주 재고 관리, 재료 재고 관리를 철저하고 완벽하게 해야하죠. 또 맥주가 발효 음식이다 보니까 잡균들이 번식하지 못하게 항상 청결에 신경을 써야해요. 장비를 깨끗하게 소독하고 청소하는 등 여러가지를 항상 함께 신경써야하죠. 멀티태스킹이 참 쉽지 않네요!(웃음) 그렇지만 이 모든일을 익숙하게 할 수 있도록, 판교 브루어리의 체계를 잡아나가고 있어요. Q8. 양조를 할 때 언제 가장 기쁘신가요?맛있는 맥주를 만드는 과정은 언제나 항상 행복해요. 그리고 세계 어디에 내놓아도 뒤지지 않는 최고의 브루마스터인 크리스 밑에서 일한다는 엄청난 자부심이 있죠(주미님의 눈이 빛난다). 맛있는 맥주가 가장 중요하다고 생각하는 더부스의 경영 철학 덕에 재료를 아끼지 않고 팍팍 넣으며 여러가지 다양한 실험을 할 수도 있고요. 너무나 사랑하는 맥주를 만들고 있다는거 자체가 행복이죠. 돈도 벌면서 진짜 좋아하는 일을 하고 있다는게 완전 행복해요.Q9. 주미님의 열렬한 맥주 사랑이 느껴집니다. 맥주 이야기를 할때 눈을 완전 반짝반짝 빛내시네요. 양조를 하지 않는 날에는 어떤 일을 하세요?브루잉을 하지 않는 날에는 러닝을 합니다. 아까 이야기했듯이, 수요일마다 남산을 달리고 있어요. 땀 나게 달리고 나면 온몸의 스트레스가 싹 씻기는 기분이에요. 그리고 러닝 대회에 나가서 1등을 하지 못해도 참가하고 나서 완주 메달을 받으면 매우 뿌듯하죠. 친구들을 만나서 노는것도 좋아하고요!Q10. 주미님이 가장 좋아하는 맥주가 궁금합니다. 브루어가 좋아하는 맥주는 특별 할 것 같아요!제 인생 맥주? 제 인생맥주는 인디카에요. 기자 생활 할 때 스트레스를 풀기 위해 항상 마셨던 맥주죠. 하루의 스트레스를 완벽하게 씻어줬던 제 첫번째 크래프트 비어니까요. 물론 지금 제 최고의 맥주가 인디카는 아니지만 감정적으로 애착이있죠. 지금 가장 좋아하는 브루어리는 미국의 러시안 리버이고, 더부스 맥주중에 가장 좋아하는 맥주는 에라이 IPA에요. 호밀에서 비롯된 알싸한 느낌 그리고 몰트에서 비롯된 은근한 캐러맬향이 조화롭게 어우러지죠. 내가 만들어도 정말 맛있다고 감탄하게 되더라고요. (하하하하) 그리고 페일에일을 만들려다가 실수로 만들어졌던 쉼표 세션 IPA도 맛있게 잘 만들어줬죠. 사실 온도를 잘못 맞춰서 만들어진 맥주였는데 많은 분들도 맛있게 마신것 같더라고요.맞아요! 세션 IPA 맛있었어요. 투올의 롱타임노씨도 실수로 오래 끓여 탄생한 맛있는 맥주죠. 때로는 실수를 통해 좋은 비법이 발견되기도 하나봐요 (웃음).Q11.양조를 하시면, 맥주를 많이 마시게 되시나요?하루에 마시는 맥주는 약 12oz 컵으로 세잔 정도에요(약 1리터 가량). 더부스 맥주 말고 다른 맥주도 많이 먹어봐야 되긴 하는데, 체력적으로 힘들어서 초반보다 다른 맥주를 많이 못마시고 있네요. 워낙 다양한 시도를 많이 하고 있어서 맥주 맛볼 일이 많거든요. 정말 맥주를 공부하려면 바틀샵에 들러서 스타일별로 사서 맛을 기록하거나 하는 노력을 해야 되는데 아직은 어렵네요. 브루어리가 이제 막 자리가 잡혀가는 상황이라 더 여유가 없는것 같아요. 우선 브루어리의 양조 스케쥴의 체계를 완벽하게 잡아가는것이 현재의 가장 중요한 목표거든요.Q12. 마지막으로 하실 말씀이 있으신가요?우리나라의 크래프트 비어 시장은 아직 초기 성장 단계잖아요? 맥주 시장이 잘 성장 하는데 도움이 될 수 있도록 더 맛있는 맥주를 만들고 싶어요. 내가 만든 맛있는 맥주를 마시고 사람들이 웃어줄 때 가장 기분이 좋거든요! 다만 칭찬보다 더 중요한건 ‘쓴소리’ 라고 생각해요. 쓴소리를 해주시는 분들의 피드백을 통해, 더 맛있는 맥주를 만들어 갈 수 있으니까요. 다만 맥주맛에 대한 ‘쓴소리’를 해주실 때 단순한 비방보다는 도움이 될만한 건설적인 피드백을 주셨으면 좋겠어요. 맥주덕후분들! 우리나라에서 더 맛있는 맥주를 먹고 싶다면, 브루어가 들었을 때 단순히 의기소침 해질 수 있는 코멘트를 주시기 보다는 건설적인 마음의 쓴소리를 많이 해주셨으면 좋겠습니다. 잘못된 점은 꼭 지적해주시고, 거침없이 잘 이야기 해주세요. 다만 근거없는 비방은 서로 나누지 않았으면 좋겠습니다. 이제 막 커나가는 한국 크래프트 비어 시장, 게다가 대다수의 재료를 전량 수입에 의존해야 하는 열악한 환경에서 더 잘 발전해나가려면 많은 피드백과 도움이 필요하다고 생각합니다. 그리고 맥주 덕후들의 역할은 아주 크죠! 맥주 덕후들이 주변 사람들에게 맥주를 추천해 줄 때 보다 더 자세한 지식을 전달해주고, 무작정 “어디는 맛있고, 어디는 맛없고” 이런식의 정보보다는 서로 다른 맥주의 맛을 설명해준다던지 하는 지식을 주위의 다른 사람들에게 많이 전달해주었으면 합니다. 맥주맛좀 “아는” 사람들이 더 노력해야죠!주미님을 인터뷰 하는 내내 기분 좋은 에너지가 넘치는 기분이었어요. 더부스 판교 브루어리/서울 더부스 매장에서 주미님이 만든 맛있는 맥주를 너무나 사랑하는 한 사람으로서, 항상 감사드립니다!#더부스브루잉컴퍼니 #팀원소개 #팀원인터뷰 #팀원자랑 #기업문화 #조직문화 #사내문화
조회수 2822

Radix? Redis!

얼마전부터 antirez twitter에서 radix tree 관련 트윗이 올라왔습니다. 얼마 지나지 않아 antirez가 radix tree를 구현한 rax 프로젝트를 공개하고 redis의 cluster hash_slot의 저장구조를 radix tree로 수정 되는것을 보았습니다.그동안 antirez의 코드 읽으면서 배우는 게 많았고, 자료구조에 관심이 많아서 살펴보기 시작했습니다. radix tree를 왜 구현 했는지, 어떻게 구현쟀는지 알아보고 radix tree를 redis에 어떻게 적용하였는지도 알아보겠습니다.antirez는 redis의 hash-slot -> key 구조에서 중복으로 인한 메모리 사용을 줄이기 위해 radix tree 를 만들었다고 합니다. 이 포스트에선 rax를 적용시킨 redis cluster로 이야기를 진행 하겠습니다.“현재는 hash-slot -> key에만 사용되지만 추후에는 다양한 곳에 사용 예정”이라는 트윗redis cluster?redis에는 cluster 기능이 있습니다.6대 이상의 redis 노드를 cluster 구성하면(최소 leader 3대, follower 3대 구성해야 cluster 가능) 16384개의 hash_slot이 노드 갯수에 맞게 분배가 됩니다. 즉 3대의 leader로 cluster 구성하면 각각의 leader는 0 ~ 5460, 5461 ~ 10922, 10923 ~ 16383 hash_slot을 나눠 가집니다.cluster 구성 후 client가 데이터 저장/삭제/조회 명령어를 redis server에 전송할 때 마다 key의 hash값을 구하고 어떤 leader hash_slot에 포함되는지 찾습니다.# example 127.0.0.1:7000> set hello world # hash_slot = crc16("hello") & 0x3FFF 계산된 값이 현재 접속한 leader의 hash_slot 범위에 있다면 그대로 실행 되지만 다른 leader의 hash_slot 이라면 에러를 발생하고 다른 leader로 이동하라고 힌트를 줍니다.cluster 구성 후에 노드를 추가 하거나 제거 할 경우 각 leader의 hash_slot을 재분배 하고, hash_slot에 맞게 key도 재분배 되어야 합니다. 단순하게 생각하면 leader의 hash_slot 재분배한 후 모든 key를 재계산하고 hash_slot에 맞는 leader에 할당 하는 겁니다.[현재까지 저장된 keys].forEach(v => { hash_slot = crc16(v) & 0x3FFF // leader에 할당된 hash_slot에 맞게 분배 }) 하지만 antirez는 redis Sorted set 데이터 타입의 구현체인 skiplist 을 이용하여 문제를 풀었습니다. skiplist는 member와 score를 저장하고, score를 기준으로 정렬합니다. skiplist의 member에는 key를 저장하고 score에는 key의 hash_slot을 저장합니다.(변수명 slots_to_keys)slots_to_keys 정보는 cluster 구성된 모든 노드가 저장합니다. 이후 재분배가 필요해지면 16384개 hash_slot을 leader 갯수에 맞게 재분배 하고 slots_to_keys에 저장된 “key:hash_slot” 정보를 가지고 해당 hash_slot의 key를 조회 및 재분배 합니다. 즉 slots_to_keys에 이용하여 재분배시 발생하는 계산을 없앤것입니다.잘 했구만 뭐가 문제냐?redis에 key가 추가/삭제 될때마다 slots_to_keys에 데이터가 저장되고 지워집니다. redis에 저장되는 key 갯수가 증가 할수록 slots_to_keys의 크기도 커짐을 의미 합니다.(※ 메모리 사용량)또한 leader 갯수에 맞게 16384개 hash_slot을 leader에 재분배하고, 각 hash_slot에 맞는 key를 찾고 할당 합니다. 예를들어 slots_to_keys에서 score 0인(hash_slot 0을 의미) member를 조회해서 0번 hash_slot에 할당, score 1인 member를 조회해서 1번 hash_slot에 할당 하는 방식으로 0 ~ 16383 hash_slot을 진행합니다.앞에서 말한 hash_slot에 속한 key를 조회 하는 GETKEYSINSLOT 명령어가 있는데 여기에 이슈가 있습니다.cluster GETKEYSINSLOT slot count # slot: hash_slot 번호 # count: 특정 hash_slot에서 조회할 key 갯수 # example 127.0.0.1:7000> cluster GETKEYSINSLOT 0 3 # 0번 hash_slot의 key를 3개 조회한다. "47344|273766|70329104160040|key_39015" "47344|273766|70329104160040|key_89793" "47344|273766|70329104160040|key_92937" 사용자가 특정 hash_slot에 몇개의 key가 저장 되었는지 모르기때문에 count에 Integer.MAX 를 대입하는데, redis는 hash_slot에 실제로 저장된 key 갯수와는 상관없이 client가 전달한 count만큼의 메모리를 할당합니다.} else if (!strcasecmp(c->argv[1]->ptr,"getkeysinslot") && c->argc == 4) { /* cluster GETKEYSINSLOT */ long long maxkeys, slot; unsigned int numkeys, j; robj **keys; // ... 명령어의 4번째 인자를 maxkeys에 할당, 즉 사용자가 입력한 count if (getLongLongFromObjectOrReply(c,c->argv[3],&maxkeys,NULL) != C_OK) return; // ... keys = zmalloc(sizeof(robj*)*maxkeys); numkeys = getKeysInSlot(slot, keys, maxkeys); addReplyMultiBulkLen(c,numkeys); for (j = 0; j < numkeys>zmalloc maxkeyscluster GETKEYSINSLOT unnecessarily allocates memory그래서 메모리도 적게 차지하면서(압축 가능) key와 key의 hashslot을 효율적으로 저장 및 조회가 가능한 자료구조가 필요했고 antirez는 radix tree를 선택합니다.※ 뜬금 없는데 2012년, redis 자료형에 Trie를 추가한 P/R이 생각났습니다.radix tree 구현한 rax 알아보기시작하기전 radix tree (Wikipedia) 위키 페이지의 그림을 보고 감을 잡은 후에 아래를 보시면 잘 읽힙니다.자! 이제부터 rax의 주석과 코드를 보면서 어떻게 구현됐는지 알아보겠습니다.Noderax의 노드 구성은 다음과 같습니다.typedef struct raxNode { uint32_t iskey:1; /* Does this node contain a key? */ uint32_t isnull:1; /* Associated value is NULL (don't store it). */ uint32_t iscompr:1; /* Node is compressed. */ uint32_t size:29; /* Number of children, or compressed string len. */ unsigned char data[]; } raxNode; 노드의 정보를 담고있는 32 bit(iskey, isnull, iscompr, size)와 key/value 그리고 자식 노드의 포인터를 저장하는 unsigned char data[]가 있습니다. 특이한 점은 key/value를 동일한 노드에 저장 하지 않고 key가 저장된 노드의 자식 노드에 value를 저장합니다.※ 사진 출처위 그림을 예로 32 bit 정보가 어떤걸 의미하는지 알아보겠습니다.iskey는 노드가 key의 종착역(iskey:1)인지 중간역(iskey:0)인지 나타내는 flag입니다. 1, 3 노드는 iskey:0 이고 2, 4, 5, 6, 7 노드는 iskey:1이 됩니다.isnull은 value의 null 여부를 표시합니다. unsigned char data[]에 key/value 그리고 자식 노드의 포인터를 저장하므로 value를 찾으려면 계산이 들어갑니다. 불필요한 연산을 줄이기 위해 만든 필드 같습니다.Trie는 각 노드에 한글자씩 표현 하지만 Radix는 압축을 통해 한 노드에 여러 글자 표현이 가능합니다. 이를 나태내는 플래그 iscompr 입니다. 노드가 압축된 노드(iscompr:1)인지 아닌지(iscompr:0)를 나타냅니다.size는 iscompr 값에 따라 의미가 다릅니다. iscompr이 1이면 저장된 key의 길이를 의미하고 iscompr이 0이면 자식노드의 갯수(저장된 key의 갯수)를 의미합니다.위 4개 정보를 이용해서 한 노드의 크기를 구하는 코드는 아래와 같습니다.#define raxNodeCurrentLength(n) ( \ sizeof(raxNode)+(n)->size+ \ ((n)->iscompr ? sizeof(raxNode*) : sizeof(raxNode*)*(n)->size)+ \ (((n)->iskey && !(n)->isnull)*sizeof(void*)) \ ) ※ 노드에 value 주소를 저장하거나, 마지막 자식 노드 포인터를 알고 싶을때 사용합니다.FindraxLowWalk 함수를 이용해 key가 존재 하는지 판단합니다.size_t raxLowWalk(rax *rax, unsigned char *s, size_t len, raxNode **stopnode, raxNode ***plink, int *splitpos, raxStack *ts) rax에 “ANNIBALE” -> “SCO” -> [] 로 저장 되어있을때 어떤 값을 리턴하는지 알아보겠습니다.*s 가 “ANNIBALESCO”이고 len이 11 인 경우# splitpos: 0, return value: 11 "ANNIBALE" -> "SCO" -> [] ^ | *stopnode *s가 “ANNIBALETCO”이고 len이 11인 경우# splitpos: 0, return value: 9 "ANNIBALE" -> "SCO" -> [] ^ | *stopnode *s의 길이 len과 return value가 같다면 rax에 key가 존재하는 것입니다. *s의 길이 len과 return value가 다른 경우 어디까지 매칭됐는지 보여주는 return value와 어떤 노드에 어디까지 일치했는지 표현하는 *stopnode, splitpos를 통해 추가 정보를 얻을수 있습니다.InsertraxLowWalk 함수를 이용해서 저장할 위치를 찾습니다. (*stopnode, splitpos, return value)1번에서 구해진 데이터를 이용해서 새로운 노드 생성 및 링크를 연결합니다.rax에 “ANNIBALE” -> “SCO” -> [] 상태에서 “ANNIENTARE”를 저장하는 과정입니다.1. raxLowWalk 함수를 이용하여 저장할 위치 탐색 splitpos: 4, return value: 4 "ANNIBALE" -> "SCO" -> [] ^ | *stopnode 2. *stopnode, splitpos 데이터를 이용하여 노드 분리 "ANNI" -> "B" -> "ALE" -> [] 3. iscompr: 0인 노드 "B"를 기준으로 새로운 key 저장 ("B"와 "E"는 같은 노드) |B| -> "ALE" -> [] "ANNI" -> |-| |E| -> "NTARE" -> [] RemoveraxLowWalk 함수를 이용해서 저장할 위치를 찾습니다. (*stopnode, splitpos, return value)1번에서 구해진 데이터를 이용해서 노드 제거 및 compress가 가능다면2가지 경우가 있습니다.마지막 노드만 iskey: 1이고, 연속으로 iscompr:1인 노드가 된 경우마지막 노드만 iskey: 1이고, iscompr:1 -> iscomplr:0 -> iscomplr:1 노드 구조가 된 경우입니다.첫번째 경우를 알아 보겠습니다. rax에 “FOO” -> “BAR” -> [] 상태에서 “FOO”를 지우는 과정입니다.1. raxLowWalk 함수를 이용하여 저장할 위치 탐색 splitpos: 3, return value: 3 "FOO" -> "BAR" -> [] ^ | *stopnode 2. 해당 key 삭제, 여기서는 자식노드가 있으므로 노드 삭제는 하지 않고 노드의 iskey: 0으로 세팅 "FOO" -> "BAR" -> [] 3. compress가 가능한 경우 진행 "FOOBAR" -> [] 두번째 경우를 알아 보겠습니다.0. "FOOBAR"와 "FOOTER"가 저장된 상황입니다. FOOTER를 지우는 경우입니다. |B| -> "AR" -> [] "FOO" -> |-| |T| -> "ER" -> [] 1. raxLowWalk 함수를 이용하여 저장할 위치 탐색 splitpos: 0, return value: 6 |B| -> "AR" -> [] "FOO" -> |-| |T| -> "ER" -> [] ^ | *stopnode 2. 해당 key 삭제 "FOO" -> "B" -> "AR" -> [] 3. compress가 가능한 경우 진행 "FOOBAR" -> [] cluster 정보는 어떻게 저장되나?기존 skiplist 자료구조를 이용했던게 어떻게 변경 되었는지 알아보겠습니다.server.cluster->slots_keys_count[hashslot] += add ? 1 : -1; if (keylen+2 > 64) indexed = zmalloc(keylen+2); indexed[0] = (hashslot >> 8) & 0xff; indexed[1] = hashslot & 0xff; memcpy(indexed+2,key->ptr,keylen); if (add) { raxInsert(server.cluster->slots_to_keys,indexed,keylen+2,NULL,NULL); } else { raxRemove(server.cluster->slots_to_keys,indexed,keylen+2,NULL); } 먼저 slots_keys_count 변수를 이용하여 각 hash_slot의 key 갯수를 저장합니다.그리고 key는 hash_slot(2 byte) + key, value는 NULL로 rax에 저장하여 특정 hash_slot에 속한 key 조회를 쉽게 만들었습니다.마치며rax 구현과 rax가 어떻게 redis에 적용됐는지 보면서 오랜만에 재밌게 코드를 읽은것 같습니다. 개인적으로 데이터 관련 유용한 무언가를 만드는게 목표인데, 이런 좋은 코드들을 하나 둘씩 제것으로 만드는것도 과정이라 생각하며 진행했습니다.앞으로 rax가 redis에서 어떻게 쓰일지 흥미롭고, Redis를 Saas 형태로 제공하는 업체들이 언제 적용할지도 궁금합니다.긴 글 읽어주셔서 감사합니다.cluster, rax 관련 antirez twitterRedis cluster Insertion cluster Issuesame amount data hash table vs radix treehashset + ziplist -> radix tree + listpack 1/5replace Hashset with Radix treeraxNode에서 사용한 flexible memberflexible memberrax 를 이용한 Redis Streams(2017.12.17일 업데이트)Redis Stream#잔디 #토스랩 #JANDI #기술스택 #도입후기 #Redis #인사이트
조회수 1663

자바스크립트에대해서

안녕하세요. 크몽 개발팀입니다.오늘 저는 좀 심오한 주제를 다뤄보려고합니다.이번에 제가 다룰 주제는 ‘자바스크립트’라는 언어입니다.자바스크립트라는 언어와 자바라는 언어에 대해서 혼동을 하는 경우가 많은데요,자바와 자바스크립트는 완전히 다른언어입니다. 쉽게말해서 자바는 서버를 구축하는 부분을 주를 담당하고,자바스크립트는 화면을 구성하는 부분에서 사용되는 프로그래밍 언어라고 보시면 될 것 같습니다.(자바스크립트의 이름을 만들 당시에 자바라는 언어가 유행을 해서 자바스크립트라고 이름을 지었다고 하네요.원래 이 언어의 이름은 라이브 스크립트입니다.)물론 자바스크립트로 서버를 구축을 할 수도 있습니다.(node.js라고하는 플랫폼입니다. 자바스크립트를 이용하여 서버를 구축할 수있는 플랫폼입니다.자세한 사항은 책이나 위키피디아를 참고하시면 좋을 듯 합니다.)각설하고,아무튼 자바스크립트라는 언어에 대해서 좀더 자세히 알아보겠습니다.자바스크립트라는 언어를 알기 위해서는 일단 스크립트라는 것이 무엇인지에 대해 좀더 알아야 합니다.위키피디아에 따르면 스크립트 언어란,'응용프로그램과 독립하여 사용되고 일반적으로 응용프로그램의 언어와 다른 언어로 사용되어최종사용자가 응용프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 해준다.' 라고 정의하고 있습니다. 어렵지요? 쉽게 말하면 연극에서 ‘스크립트’라는 것에 서 유래 되었다고 하고, 그뜻이 연극에서의 시나리오, 각본을 의미합니다. 그 의미를 그대로 적용하면 ‘대본, 시나리오만 제공하면 알아서 작동한다.' 는 그런 뜻이지요.대충 감이 잡히셨나요?자바스크립트는 TIOBE 라는 소프트웨어 회사에서 발표한 2014년 프로그래밍 언어순위에서도 상당히 상위권에 차지를 하고있습니다.그만큼 많이 사용이 된다는 의미겠지요.매우 좋은 것처럼 보이지만 자바스크립트가 만만한 언어는 아닙니다.제가 듣기로는 ‘자바스크립트는 악마의 언어’라고 불린다고 들었습니다.그렇게 불리는 이유는 그만큼 언어가 유연하기때문입니다.조금전에 언급했듯이 연극에서의 대본과 시나리오를 프로그래머가 직접 만들어야한다는 것입니다.그만큼 프로그래밍하기 쉽지 않다는 것이겠지요.자바스크립트는 단점이 바로 장점입니다.'유연하다는 것' 때문에 사람들의 입맛에 맞게 커스터마이징을 할 수있다는 것이고웹상에 이미 프로그래머들이 만들어 놓은 많은 라이브러리가 있습니다.우리는 이걸 잘 이용하면 되겠지요?좀 더 자바스크립에 대해서 자세히 알고싶다면 ‘javascript inside’라는 책을 참고하여 공부해보시면 좋을 듯 하네요. ---------------------------------------------------------------------------------------------------저는 크몽 개발팀의 Sean이었습니다. #크몽 #개발자 #개발팀 #팀원소개 #기업문화
조회수 2261

스포카에서 쓰는 오픈소스와 오픈소스 라이센스 (1)

안녕하세요. 스포카 프로그래머 박종규입니다. 이번 시간에는 스포카에서 쓰고있는 클라이언트 측 오픈소스와 그 오픈소스가 어떠한 라이센스가 적용이 되었는지 알아 보겠습니다.오픈소스(Open Source)먼저 간략하게 오픈소스의 정의에 대해서 짚어가도록 하겠습니다. 오픈소스는 소스코드를 외부에 공개하여 누구든지 제한없이 소프트웨어를 쓰고 소스코드를 볼 수 있는 소프트웨어를 말합니다. 통상적으로 오픈소스 소프트웨어를 오픈소스라고 부르기도 합니다. 대표적인 오픈소스로는 우리가 많이 쓰는 안드로이드OS와 크로미움 브라우저를 볼 수 있죠.프로젝트에 오픈소스를 적용?그렇다면 오픈소스의 정의도 알았고 제한없이 쓸 수도 있다고 하고 이렇게 많은 장점이 있는 오픈소스를 우리회사 프로젝트에 한 번 도입해볼까?라는 생각을 가지신 분들이 있겠지만 잠시만 기다려 주시길 바랍니다. 이러한 오픈소스는 오픈소스 라이센스라는 일종의 저작권이 적용이 되어 있어서 그 라이센스를 준수 해야합니다.오픈소스 라이센스(Open Source License)오픈소스 라이센스의 정의를 간략하게 보면오픈소스 라이센스는 오픈소스SW 개발자와 이용자간에 사용 방법 및 조건의 범위를 명시한 계약을 말한다. 따라서 오픈소스SW를 이용하기 위해서는 오픈소스SW 개발자가 만들어놓은 사용 방법 및 조건의 범위에 따라 해당 SW를 사용해야 하며, 이를 위반할 경우에는 라이선스를 위반함과 동시에 저작권 침해로 인해서 이에 대한 처벌을 받게 된다.라고 나와 있습니다. 즉 오픈소스이긴 하지만 오픈소스에 적용된 라이센스를 준수하지 않는다면 법적인 처벌을 받는다는 거죠. 그렇기 때문에 프로젝트에 오픈소스를 적용하려면 제일 먼저 라이센스를 확인해야 합니다.스포카 클라이언트에서는 어떠한 오픈소스를 쓰고 있을까?현재 스포카의 클라이언트측에서 사용하고 있는 오픈소스는 다음과 같습니다.jQueryLESSBackbone.jsD3.jsDataTables.js그럼 간략하게 이 오픈소스가 어떠한 역할을 하는지 간략하게 알아보겠습니다.jQueryjQuery(제이쿼리)는 브라우저 호환성이 있는 HTML 속 자바스크립트 라이브러리이며 클라이언트 사이드 스크립트 언어를 단순화 할 수 있도록 설계되었습니다. 즉 자바스크립트를 좀 더 편하게 쓸 수 있도록 개발된 라이브러리이죠.LESSLESS는 css를 동적으로 쓸 수 있게 해주는 자바스크립트 라이브러리 입니다. 기존 css에서 제공하지 않는 변수 및 연산식을 제공하기 때문에 코드를 재사용 할 수 있을 뿐만 아니라 개발시 소요되는 시간을 줄여줍니다. *.less로 개발된 코드는 less 컴파일러를 통해 *.css로 변환이 되어 클라이언트 페이지에 적용됩니다.Backbone.jsBackbone.js는 자바스크립트를 MVC 패턴으로 개발할 수 있게 도와주는 자바스크립트 라이브러리입니다.D3.jsD3.js는 데이터를 우리가 쉽게 볼 수있게 다양한 차트, 표, 그림으로 표현 할 수 있도록 기능을 제공해주는 자바스크립트 라이브러리입니다.DataTables.jsDataTables.js는 table를 만들어주는 기능을 제공하는 자바스크립트 라이브러리입니다.그렇다면 위 오픈소스에는 어떠한 라이센스가 적용되어 있을까?위의 오픈소스에 적용되어 있는 라이센스를 살펴보면jQuery : MIT, GPLv2LESS : apache license 2Backbone.js : MITD3.js : BSDDataTables.js : BSD, GPLv2같은 라이센스가 적용이 되어 있습니다. 그럼 하나씩 살펴보도록 하죠.듀얼라이센스먼저 jQuery와 DataTables.js에는 다른 오픈소스와 다르게 라이센스가 두개가 적용이 되어 있는 것을 볼 수 있습니다.이것을 흔히 듀얼라이센스라고 하는데 이 라이센스는 오픈소스를 쓰는 사용자가 두개의 라이센스중에서 하나를 선택해서 쓸 수 있는 라이센스입니다. 예를 들면 jQuery를 쓰는 사용자는 GPL 라이센스를 적용을 할 수도 있고 MIT 라이센스를 적용해서 쓸 수 있다는 뜻이죠.GPL 라이센스jQuery와 DataTables.js에 적용되있는 GPL라이센스에 대해서 알아 보겠습니다. GPL라이센스는 오픈소스에 가장 많이 적용된 라이센스 중에 하나입니다. 이 라이센스는 자유소프트웨어재단에서 만든 라이센스로 이 라이센스를 가진 오픈소스를 이용하여 응용 프로그램을 개발하는 경우에는 GPL라이센스가 적용이 됩니다. 그리고 GPL라이센스는 3가지의 버전이 있습니다.GPLv1GPL의 버전 1은 1989년 1월에 발표되었다(GPLv1 전문). 이것은 자유 소프트웨어에서의 두 가지 중요한 자유를 보장해 주었는데, 하나는 프로그램의 소스코드를 공개하지 않은 채 바이너리 파일만 배포하는 것을 막는 경우로 이것을 막기 위해 GPLv1에는 프로그램을 GPLv1로 배포할 때는 사람이 이해하기 쉬운 소스 코드를 같이 배포해야 한다는 조건이 들어갔다. 두 번째 문제는 프로그램에 추가적인 제약을 걸 가능성이 있다는 점이었고, 이를 막기 위해 GPLv1 프로그램을 수정한 프로그램은 원래 프로그램과 마찬가지로 GPLv1을 따라야 한다는 조건이 들어갔다.GPLv2자유 소프트웨어 재단(OSF)에서 만든 자유 소프트웨어 라이선스다. 미국의 리처드 스톨만(Richard Stallman)이 GNU-프로젝트로 배포된 프로그램의 라이선스로 사용하기 위해 작성했다. ‘① 컴퓨터 프로그램을 어떤 목적으로든지 사용할 수 있다 ② 컴퓨터 프로그램의 복사를 언제나 프로그램의 코드와 함께 판매 또는 무료로 배포할 수 있다 ③ 컴퓨터 프로그램의 코드를 용도에 따라 결정할 수 있다 ④ 변경된 컴퓨터 프로그램 역시 프로그램의 코드와 함께 자유로이 배포할 수 있다’라는 네 가지 조항을 명시하고 있다. 대부분의 소프트웨어에 대한 라이선스는 소프트웨어를 공유하거나 수정할 수 있는 자유를 금지하기 위 고안되었다. 반면에 GNU 일반 공중 라이선스는 자유 소프트웨어를 공유하고 수정할 수 있는 자유를 보장하기 위해 의도되었다. 즉, 소프트웨어가 사용자 모두에게 자유롭게 이용될 수 있도록 하는 것이다. 이 일반 공중 라이선스는 자유 소프트웨어 재단의 소프트웨어 대부분을 비롯하여, 저작자가 이 라이선스의 사용을 지정한 기타 모든 프로그램에 적용된다. (자유 소프트웨어 재단의 소프트웨어 중 일부는 이 라이선스 대신 GNU 라이브러리 일반 공중 라이선스가 적용된다.) 누구나 자신의 프로그램에 이 라이선스를 적용시킬 수 있다.GPLv3자유 소프트웨어 재단(FSF)과 이 재단의 GNU 프로젝트에 의해 배포되며 GNU 소프트웨어에 적용되는 공개 소프트웨어의 대표적인 라이선스 체계. GNU GPL이라고도 하며, 저작권(COPYRIGHT)의 반대라는 의미로 카피레프트(COPYLEFT)라고도 한다. 라이선스 사용료나 사용상의 제약 조건을 자유롭게 하여 소프트웨어 유통을 활성화하기 위한 의도에서 출발한 것으로 GNU 소프트웨어로 공개되는 원시 부호는 누구나 변경 또는 일반 공중 라이선스(GPL)로 재배포하고, 이를 이용하여 상업적 웹 사이트를 구축할 수도 있다. 그렇다고 저작권의 완전한 포기를 의미하는 것은 아니어서 GPL의 기본 원칙과 공개하는 측이 정의한 바를 충실하게 따르도록 되어 있다. 1990년대에 마련된 GPL V2.0에 이어 2005년에 V3.0이 발표되었다. GPL 버전 3은 2007년 6월 29일에 발표되었다. 2005년 후반에 자유 소프트웨어 재단에서 GPL의 세번째 판을 개발할 것이라고 발표했다. 바뀐 점 중에서 가장 중요한 4가지를 말하자면, 소프트웨어 특허에 대처하는 것, 다른 라이선스와의 호환성, 어떤 부분의 원시 코드와 무엇이 GPL이 포함되어야 하는 원시 코드를 구성하는지와 디지털 제한 관리(DIGITAL RESTRICTIONS MANAGEMENT)에 신경을 썼다.※참고GPL 라이센스가 적용된 오픈소스를 사용했다고 무조건 소스코드를 공개해야 하는 것은 아닙니다. 예를 들면 MySQL db를 이용하여 웹서비스를 개발해서 직접 서비스만 운영하는 경우 이것은 다른 곳에 배포하는 것이 아니므로 GPL 라이센스 의무사항이 적용되지 않습니다. 하지만 다른 곳에 제공하거나 파는 경우(쇼핑몰을 제작해서 파는 경우)에는 배포하는 것이 되므로 GPL라이센스가 적용이 됩니다. 따라서 이런 경우에는 상용라이센스를 구매해서 써야 합니다.MySQL에서 정의한 배포하는 대표적인 예는 다음과 같습니다.MySQL을 포함하고 있는 소프트웨어를 고객에게 팔아 그 소프트웨어를 고객이 소유한 장비에 설치하는 경우고객이 소유한 장비에 기본적으로 MySQL을 설치해야하는 소프트웨어를 파는 경우MySQL을 포함하고 있는 하드웨어 시스템을 고객에게 팔아서 고객이 있는 곳에 설치하는 경우MIT 라이센스MIT 라이센스는 MIT 공과대학교에서 학교 학생들의 소프트웨어 학습을 돕기 위해서 개발한 허가서입니다. 이 라이센스는 강력한 조항이 없어서 MIT 라이센스가 적용된 오픈소스를 이용하여 응용 프로그램을 개발할 시에 응용 프로그램을 오픈소스로 해야할 필요도 없고 소스코드를 공개할 의무가 없습니다. 또 상업적인 제한도 없습니다. 다만 응용 프로그램에 MIT 라이센스라고 표시와 라이센스 사본을 첨부만 해주면 됩니다.BSD 라이센스버클리의 캘리포니아 대학에서 배포하는 공개 소프트웨어의 라이선스입니다. BSD 라이센스는 자유소프트웨어 자작권의 하나로 BSD 계열 소프트웨어를 포함한 많은 프로그램에서 사용하고 있습니다. 이 라이센스는 라이센스라고 할 수 없을 만큼 미약해서 아무나 수정하고 배포하고 소스코드를 공개해야 할 의무가 없습니다. MIT 라이센스와 마찬가지로 라이센스 표시만 해주면 됩니다.Apach license 2아파치 라이센스는 아파치 소프트웨어 재단에서 만든 라이센스입니다. 이 라이센스 또한 MIT,BSD와 마찬가지로 소스코드 공개의 의무는 발생하지 않습니다. 하지만 “Apache”라는 이름에 대한 상표권을 침해하지 않아야 한다는 조항이 있어서 BSD라이센스보다 법적으로 완결된 내용을 담고 있습니다. 라이센스의 표시와 아파치 소프트웨어 재단에 개발된 소프트웨어라는 것을 밝혀야 합니다.참고한국저작권위원회위키백과KLDPwikiGNU공개SW포털MySQL KOREAKLDP 오픈소스라이센스가이드오픈소스 라이센스 비교표#스포카 #운영 #개발 #오픈소스 #개발자 #개발팀 #꿀팁 #인사이트 #조언
조회수 917

마케터의 인생을 편하게 해줄 앱 키워드 성과 자동분석

키워드 성과 자동분석은 ‘원래 당연히 되는 기능 아님?’이라고 생각하실 수도 있지만 상황이 조금 달라졌습니다. 유저가 키워드 광고를 클릭하고 데스크탑 또는 모바일 홈페이지로 이동했다면 이 케이스는 ‘당연히’ 자동 분석이 됩니다. 그러나 키워드 광고를 클릭했는데 앱스토어 또는 앱 실행으로 연결된다면? 분석이 되게 만들 수는 있지만 ‘자동분석’은 불가능입니다.‘그 정도는 수작업으로 분석해도 괜찮겠네’라고 생각하시는 분들이 있을 것 같습니다. 분석 시스템 개발을 업으로 하는 저희 역시도 처음엔 그렇게 느꼈었으니 말이지요. 그러나 실무에서의 몇가지 케이스를 접하고 나서 완전히 잘못된 생각이었다는 것을 알게 되었습니다. 와이즈트래커가 키워드 성과 자동분석을 개발한 계기이기도 합니다. Unhappy Case 1 – 모빌리티 앱대리운전이나 카쉐어링 등의 모빌리티 분야는 불가피하게 앱을 통해야 제대로된 서비스를 이용할 수 있습니다. 스마트폰의 GPS를 이용해서 위치정보를 파악해야 하기 때문이죠. 상황이 이렇다 보니, 모바일에서 네이버 키워드 광고를 클릭하면 실제 서비스로 연결되지 않고 앱 설치를 권유하는 브릿지 페이지로 이동하는 경우가 많습니다. 이 광고의 KPI는 앱 설치와 앱에서의 전환이 되겠지요.문제는 각각의 키워드가 얼마만큼의 앱 설치를 만들어 내는지 자동분석이 되지 않는 다는 점입니다. 자동으로 안되니 수동으로 해야지요. 키워드마다 트래킹 URL을 입력하는 식으로 말입니다. 키워드가 100개 이내라면 할만 할 텐데, 이게 수백 개 단위가 되면 정말이지 혼자서는 감당을 못합니다. 차라리 인형 눈알을 붙이고 말지요. 그런데 그것이 실제로 일어났습니다.교양 있게 표현하면 Brute-force 알고리즘, 시쳇말로 노가다. 중간에 하나만 틀려도 폭망이다.우선 트래킹 URL을 600개 생성합니다. 이 URL을 키워드에 붙여넣고 저장하는 작업을 또 600번 합니다. 도합 1200번의 노가다 끝에 ‘다시는 이 미친 일을 하기 싫다’는 생각이 가장 처음 들었다고 합니다. 이런 말도 안되는 일을 피해갈 방법이 없을지 문의를 주셨고 와이즈트래커는 뚝딱뚝딱 기능을 개발했습니다. Unhappy Case 2 – 이커머스 앱검색어에 가장 민감한 분야가 이커머스일 것입니다. 기본적으로 상품의 개수만큼 키워드가 늘어납니다. 게다가 최근에는 ‘미세먼지 마스크 추천’이나 ‘가성비 좋은 발렌타인데이 선물’처럼 구문을 검색하는 경우가 늘고 있습니다. 이제는 구문 단위로 대응해야 해서 관리하는 키워드가 늘어날 수 밖에 없는 구조입니다. 키워드가 늘어나면 광고비도 비례해서 증가할 것입니다.이렇게 키워드 광고가 엄청나게 많다 보니, 광고를 통해 모바일웹으로 들어와서 상품만 살펴보고 실제 구매는 추가 할인을 받기 위해 앱에서 끝내는 유저도 있을 것 같습니다. 그런데 어떤 키워드가 유저를 앱으로 많이 이동시키는지 알 수 없다는 것이 현업에서의 고민이었죠. 이것만 알아낸다면 “키워드 광고 성과가 이렇게 높습니다. 저를 전적으로 믿으셔야 합니다.”라고 할 수 있는데 데이터가 없다는 것이 문제였습니다.‘앱에서 구매하면 할인’을 보고 웹에서 앱으로 넘어가는 경우, 얼마나 될까?이커머스 고객사에 키워드 자동분석을 적용한 결과는 아주 인상적이었습니다. 전체 앱 인스톨 중 약 7% 정도가 웹 광고를 통해 발생하고 있었으며, 이 중 80%는 검색 광고의 영향을 받는 것으로 나왔으니까요. 인스톨을 7% 정도 늘리기 위해서 증액해야 하는 광고비를 생각하면 결코 무시할 수 있는 수준이 아니라는 이야기. 게다가 이렇게 유입된 유저의 약 10%가 구매고객으로 전환했으니 그야말로 대박이었죠. 자동분석은 이렇게 동작해요내용은 꽤 단순합니다. 자동분석이기 때문이죠. 실무자가 할게 없습니다. 자동분석이니까요!1. 유저가 네이버에서 ‘마스크’를 검색했습니다. 파워링크에 광고들이 떠있는데요, 이 중에서 쿠팡을 클릭했습니다. 2. 키워드 광고를 클릭하니 쿠팡 모바일웹으로 연결 됐습니다. 화면 하단에 ‘앱 할인’ 배너가 있네요. 이걸 클릭합니다.2-1. 만약 ‘앱 할인’ 배너를 눌렀는데 단말기에 앱이 없는 상태라면? 앱을 설치할 수 있는 스토어로 넘어가게 되죠. 앱을 설치하고 실행합니다. 3. 앱을 실행하니 ‘마스크’ 화면이 나옵니다. 이제 상품들을 살펴보면 되겠네요. 정리하자면 [네이버에서 ‘마스크’ 키워드 광고 -> 모바일웹 -> 앱 설치]로 이어진 케이스입니다. 이 과정에서 1건의 앱 설치가 발생했지요. 마케터가 아무런 설정을 하지 않아도 와이즈트래커는 이 상황을 [‘마스크’ 키워드를 통한 1건의 앱 설치]로 ‘자동분석’합니다. 가만히 있어도 리포트에 데이터가 착착 쌓입니다. 우리가 만들었지만 신박하군요! 손발이 편안한 마케팅을 위하여마케팅 오토메이션 솔루션의 수준이 높아져서 그것이 대중화되면 분명 지금보다 손이 덜 가는 환경에서 실무를 진행할 수 있을 것입니다. 그때가 될 때 까지는 머리 속에서 행복회로를 굴리며 버티는 정신이 필요할지도 모르겠습니다.그렇다고 하더라도 수백개 키워드에 일일이 트래킹 URL을 박아 넣는 일은 지금이라도 사라져야 합니다. 위의 두가지 사례와 비슷한 문제가 있다면 와이즈트래커에 알려주세요!
조회수 1810

잔디의 새싹 같은 안드로이드 개발자 Gary를 만나다.

맛있는 인터뷰 : 안드로이드 개발자(Android Developer) Gary 편집자 주잔디와 함께 하는 멤버는 총 35명. 국적, 학력, 경험이 모두 다른 이들이 어떤 스토리를 갖고 잔디에 합류했는지, 무슨 일을 하고 있는지 궁금해하는 분들이 많습니다. 잔디 블로그에서는 이 궁금증을 해결해 드리고자 ‘맛있는 인터뷰’를 통해 ‘잔디’ 멤버들의 이야기를 다루고 있습니다.인터뷰에서 가장 기초적인 질문. 예상하신 자기소개 부탁한다.G : 잔디 개발자 중 제일 어린! 핵심 키워드다. 강조 부탁한다. 가장 어린! 안드로이드 플랫폼 개발을 맡은 Gary다(이하:G). 잔디 입사한 지는 9개월 되었다. 특별한 일 없이 정말 열~! 심히 개발만 했다. 일주일 전부터 식당 선택을 강요(?)했다. 이 식당을 선택한 이유는 무엇인가?G : 음식이 푸짐하게 나오기도 하지만 조명이 좋다. 인터뷰 중 사진을 찍는다고 들었는데 그 사진이 예쁘게 나올 것 같아서 선정했다. 게다가 음식이 정갈하다. 안에 룸도 있어서 회식하기도 좋다. 내 입이 복잡하질 않아서 뭘 먹어도 다 맛있다. 어차피 다 맛있는 거 사진이라도 잘 나와야 한다 싶어서 선택하게 되었다. 잔디에 들어오게 된 계기는?G : 모집 공지가 뜨길래.. 농담이다^^; 전 직장과의 시스템이 다른, 자체 서비스를 하는 회사에 가보고 싶었다. 전 직장에서는 기획, 서버, 디자인, 개발을 각각 다른 회사에서 진행했다. 내가 속한 회사는 개발만 진행했다. 처음부터 끝까지 한 곳에서 서비스하는 회사를 가보고 싶었다. 또한, 기술 스택이 너무 좋았다. 이를 통해 앞으로 나의 실력이 일취월장할 수 있겠다는 생각이 들었다. 9개월 동안 많이 발전한 것 같은가?G : 상당히 많이 발전했다. 어떤 부분에서 발전한 것 같은가?G : 이전 회사에서는 일정에 쫓기다 보니 개발 자체에서 설계라는 게 없었다. 손 가는 데로, 일단 만들고 보자라는 식으로 신기술이고 뭐고 공장처럼 찍어내는 것이 일이었다. 하지만 잔디는 다르다. 2주 단위로 생각을 통해 설계도 해보고 ‘객체지향 설계 5대 원칙’ 등 다양한 사항을 고려해보며 많은 고민 끝에 개발하는 것이 너무 좋다. 이를 통해 개발자로서 더욱 성장한 것이 느껴진다. 이전 회사보다는 일찍 퇴근하는 편인가?G : 이전 회사는 철야, 야근 거의 매일 했다. 입사한 지 9개월 정도 되었는데 이제야 사람답게 사는 것 같다. 그동안은 짐승인 줄 알았다. 일어나면 출근하고 퇴근하면 자고. 9개월 동안 사람답게 살면서 잠도 푹 잤다. 몸이 편해지면 사람 얼굴이 확 산다고 하던데 생긴 건 나아지지 않더라. 옛말도 틀린 말이 있나 보다. (하하) 주말엔 뭐하시는가?G : 집돌이 성향이라 집에 있는 경우가 많다. 밖에 나가면 이웃 주민들과 소통하기도 한다. 지금 사는 곳은 취업한 지 얼마 안 된 사회초년생들에게 국가에서 주는 ‘행복주택’이라는 곳이다. 그곳엔 대부분 사회초년생이라 연령대가 20대 후반에서 30대 초반 정도 된다. 그분들과 소통을 하며 지내고 있다. 나이가 비슷하니 공감대 형성도 되고 행복주택에서 행사 같은 걸 많이 해서 문화생활 영위하는 듯하다. 말 그대로 사람 사는 듯한 느낌이다. 서울 집값이 너무 비싸다. 행복주택은 저렴한 편인가?G : 다른 원룸에 비교하면 저렴한 편이다. 보증금이 들어가지만, 월세는 10만 원 전후다. 서울에서 월세 10만 원 전후라면 저렴한 편 아닌가? 사회 초년생분들께 추천한다. 이웃들도 좋고 문화생활도 하고. 엄청나지 않은가? 신청 후 당첨이 되어야 하지만 당첨되기 쉬운 편이다. 꼭 한번 도전해봐라. 처음 들어왔을 때 잔디는 어땠는가?G : 사실 처음 들어왔을 때 사무실이 시끌벅적하며 소통이 아주 활발할 줄 알았다. 그런데 딱 들어오니 어?! 음? 오?!… 조용하다. 진짜 활발한 곳은 따로 있었다. 목소리가 아닌 손가락으로 얘기하는 곳. 잔디 앱이었다. 사무실 자체는 너무 조용한데 잔디 앱 안에서 매우 활발하다. 아이러니하지만 의사소통은 아주 활발했다. 잔디의 생활 중 가장 마음에 드는 문화는?G : 영어 이름을 사용하며 상호 간에 존중하는 문화다. 30년 동안 한글 이름으로만 살았는데. 회사만 오면 Gary라고 부른다. 첨엔 이게 날 부르는 건지도 잘 몰랐지만 익숙해지니 너무 좋다. 수평적인 관계의 시작이 무엇인지 알게 되었다. 이전 회사와는 다르게 잔디에서는 수평적인 관계여서 의견 개진이 편했다. 의견을 나눌 수 있다는 것이 너무 좋았다. 물론 손끝으로 얘기하지만:D 감정표현도 이모티콘으로 한다. 표정은 무표정이지만 손가락은 웃고 있달까? 내 얼굴은 무표정인데 프랑키 (파랑몬스터 캐릭터)가 웃어준다. 이젠 오프라인으로도 소통이 되었으면 한다. 사무실 밖에선 말이 많으신 분들인데. 사무실만 들어오면 조용하시다. 손으로 말하고 계시니까. (웃음) 회식은 자주 하는가?G : 팀마다 다른 것 같다. 팀 내에서 석 달 치 회식비를 모아서 한 번에 하던가 쪼개서 자주자주 하던가. 어차피 쓰는 돈은 같으니까. 이루고 싶은 꿈이 있다면?G : 백수가 되고 싶다. (비장) 충분한 불로소득이 있는. 소득과 상관없이 내 맘대로 살 수 있는 그런 백수가 되고 싶다. 회사를 가고 싶으면 회사를 가고 사업을 하고 싶으면 사업을 하는 그런 백수(하하). 사실 프로그래머로서 직업을 정했을 때는 최고의 프로그램을 만들어보는 게 꿈이었다. 또한, 안드로이드로 시작했으니 구글에서 종지부를 찍자! 이런 꿈을 꾸었다. 그런데 이전 직장이 너무 힘들었나 보다. 꿈이 변했다. 백수로. 하루는 7개월 정도 만에 칼퇴근하고 집에 갔더니 어머니께서. “너 잘렸냐?”라고 물어보시더라. 그땐 내 회사 생활에 문제가 있구나 싶었다. 백수는 아니지만 일과 삶의 밸런스가 맞는 삶을 살고 싶다. 다음 인터뷰어에게 하고 싶은 질문이 있나?G : 회사 내에 다른 팀원들과 지금 먹고 있는 음식을 같이 먹을 수 있다면 누구랑 같이 먹고 싶은가?#토스랩 #잔디 #JANDI #팀원소개 #인터뷰 #기업문화 #조직문화 #사내문화 #팀원자랑
조회수 1047

[인터뷰] 내 입맛에 맞게, 내가 차린 회사! 미미박스 CEO 디노의 인터뷰 by Sellev

안녕하세요!미미박스의 소식을 전해주는 Ava입니다!오늘은 미미박스의 CEO인 디노(하형석)의 인터뷰를 여러분께 소개해드리려고 합니다. 바로 며칠 전 영감을 주는 인터뷰가 가득한 SELLEV에 디노의 인터뷰가 올라왔는데요.매일매일(출장이 있으실 때 빼고) 만나는 디노이지만이렇게 또 CEO의 생각을 접하게 되니어떻게 오늘 하루를 보내야 할지 다짐을 한 번 더 하게 되네요!그럼 디노가 영상에서 어떤 이야기를 나눴는지 간단히소개 드리겠습니다! #동기부여흔히 실리콘밸리에 있는 기업들을 떠올리면 '복지', '자유' 등을 떠올리는데요.디노가 느낀 실리콘밸리는 자기 동기부여를 통해 일하는 사람들로 꽉 찬 곳이었다고 합니다.이를 보고 위기의식을 느낀 디노는 '우리도 자기 동기부여를 통해 일할 수 있는 회사'를 만들자고 하게 된 것이죠.#창업 계기 '오직 일에만 집중할 수 있는 회사'국내 회사의 문화들을 보면서 디노는 '일에만 집중할 수 있는 회사'를 가고 싶었다고 합니다.하지만 국내에는 그런 회사가 없지 않을까? 하는 생각을 했고, 결국 자신이 꿈꾸는 회사를 직접 창업하게 된 것이죠!#리더십리더십은 경력, 직급, 직책에서 나오는 것일까요?디노는 '오늘 입사한 인턴도 미미박스에 새로운 비전을 제시할 수 있다'고 얘기합니다.그렇게 미미박스는 '반란을 꿈꾸는 사람들'이 모이게 된 것이죠!리더십에 가장 중요한 것은 확고한 철학 아닐까요? #당장 실행하세요'당장 실행하세요'미국에 진출하게 된 것도, 이렇게 미미박스가 성장하게 된 것도 이런 디노의 철학을 바탕으로 나온 결과물이라는 생각이 들어요. 실제로 디노는 만나고 싶은 사람이 있으면 SNS를 통해 물어보고 연락한다고 합니다.고민하고 정의하는 것보다 먼저 실행하는 것! 그것이 영감이 되고 경쟁력이 되지 않을까요?이렇게 디노의 이야기를 만나보았습니다. 여러분은 어떤 생각이 드시나요!?여러분도 오늘 만나고 싶었던 사람이 있다면,혹은 해보고 싶었던 일이 있었다면 작은 것이라도 한번 실행해 보는 건 어떨까요. 
조회수 3765

[컬리에서의하루] 꿈의 주방에 사는 여자들 #스타일링팀 편(푸드스타일리스트의 하루)

 요리에 아무리 관심이 없는 사람이라도, ‘나도 요리하고 싶다’ 라는 마음을 들게 해주는 꿈의 주방이 있다. 바로 마켓컬리의 스튜디오! 북유럽 스타일의 넓은 아일랜드 식탁부터 오밀조밀한 식기, 근사한 냄비 세트가 골고루 갖춰진 선반, 상상하는 어떤 요리도 문제 없이 소화해줄 다양한 조리도구와 빈티지부터 모던풍의 커틀러리까지! 누구나 꿈꾸는 꿈의 주방, 그런 꿈의 주방에서 하루하루를 보내는 컬리의 푸드스타일리스트의 하루는 어떨까? 꿈의 주방에 사는 그녀들의 하루 이야기, 지금 만나 보자.market.kurly.com9AM안녕하세요!컬리의 푸드스타일리스트,지원&다인입니다꿈의 주방! 컬리 스튜디오 좀 소개해 주세요(다인) 이곳은 컬리의 상품 사진을 찍는 스튜디오이자 키친인 공간이랍니다. 꿈의 주방이 맞는지는 잘 모르겠지만 ^^ 요리하고 싶어 지는 주방이라고나 할까요?(다인) 주로 촬영 장소로 활용하다 보니 촬영소품으로 활용하기 위한 각종 조리도구부터 식기들이 모여 있어요. 식기 가짓수도 정말 다양하고, 출처 역시 다양하답니다. 컬리의 인스타그램 채널 통해서 식기를 물어 보시는 분들도 종종 있으세요!(지원) 그리고 MD님들께서 신제품을 오픈하기 전 직접 요리도 해보고 팀원들과 나눠 먹는 키친의 역할을 하기도 해요. 점심시간에는 도시락을 싸온 팀원들이 데우거나 새로 요리를 하면서 미식을 즐기는 공간이기도 하고요! 컬리스럽죠? ^^컬리의 푸드스타일리스트 분들의 촬영 당일 아침은 언제 시작되나요?(지원) 컬리의 출근 시간은 아침 10시지만, 촬영 날에는 누끼* 촬영이 오전 중에 진행되기 때문에 누끼 촬영을 담당하시는 분들은 아침 9시에 미리 출근해서 준비를 시작해요.누끼란? 제품을 자세히 보여주기 위한 정보성 사진(다인) 누끼 컷만 보면 간단해 보이지만 사실 쉽지 않은 촬영이거든요. 전날 밤부터 준비를 시작해도 오전에 시간이 부족해요.누끼 촬영이 왜 어렵나요?(다인) 눕혀서 찍어야 하는 상품과 세워서 찍어야 하는 상품을 분리하고, 크기도 고려하고 패키지부터 속까지 모두 상세하게 찍어야 하기 때문에 오전부터 누끼 촬영을 진행하다 보면 점심도 거르고 촬영을 진행할 때도 많아요, 흑흑.(지원) 그래도 간혹 촬영하느라 조리한 음식들을 촬영이 끝나면 먹기도 해요! 소소한 재미들? ^^컬리의 누끼 촬영 컷촬영을 준비하기 위해 어떤 과정들이 있나요?(다인) 촬영 품목이 정해지면 어떤 식으로 촬영할 지에 대한 시안작업을 진행하고, 관련 팀원들이 모여 함께 의견을 나눠요. ‘어떻게 찍을까, 어떤 컨셉으로 할까, 어떤 이야기로 풀어볼까’ 함께 논의하고 나면 정리된 내용들을 토대로 촬영 소품 준비와 식재료 준비를 시작하죠. (지원) 소품을 준비하는 부분이 가장 시간이 많이 걸리는데요. 컨셉과 가장 가까운 소품들을 준비하기 위해 주말에도 인터넷으로 주문하거나 오프라인을 찾아다녀요. 구체적으로 어떻게 스타일링을 할지 자세하게 구상도 해보고, 디테일 측면에 대해서 계속 머릿속에서 고민하는 것 같아요.  (다인) 맞아요. 서로 자기가 담당한 상품의 촬영 컷에 대해서 고민하면서 소품을 어디서 구할지, 어떻게 준비할지도 구상을 하죠.  (지원) 촬영 3일 전에는 준비가 오래 걸리는 소품을 사러 다녀요. 나무 상판을 사러 가거나, 소품을 대여하러 가거나 하면서 촬영 준비를 몇일 동안 하죠.  (다인) 간혹 톱질을 하기도 하고, 호호호호. 페인트칠도 하면서, 호호호호.톱질이나 페인트칠이요?(다인) 네. 촬영에서 배경이 참 중요한 역할을 맡고 있는데요. 딱 필요로 하는 컬러와 느낌을 연출하는 배경을 구하기는 쉽지가 않아서 자체적으로 상판을 구매해서 직접 만드는 경우도 있어요. 주문한 나무 상판이 너무 길면 톱질도 해서 크기를 맞추기도 해요. 푸드스타일리스트라고 요리만 하고 예쁘게 플레이팅만 할 줄 아셨죠? 하하하하직접 톱질을 할 만큼 배경이 중요한 이유는 무엇인가요?(지원) 저는 사진을 찍을 때 가장 중요한 게 두 가지가 있는데 그게 바로 ‘배경’과 ‘빛’이라고 생각해요. 물론 요리를 얼마나 완성도 있게 하느냐 도 중요하지만 ‘배경’과 ‘빛’의 요소에 따라 느낌과 아우라가 연출이 되기 때문에 전체 촬영에서 척추 같은 역할을 한다고 할까요? 그래서 조금 더 수고스럽고 손이 많이 가더라도 딱 맞는 배경을 찾기 힘들 때는 직접 만들면서까지 촬영을 해요. 또 다양한 컷을 연출하기 위해서는 배경이 다양해야 가능하기 때문에 직접 만드는 경우도 있어요.(다인) 저희가 찍는 상품들이 음식이다 보니 너무 똑같은 배경만 반복되거나 컨셉이 동일하다면 자칫 지겨워질 수도 있잖아요. 그리고 각 음식마다 담고 있는 식탁 위에서의 역할이나 목적, 분위기가 다르기 때문에 제대로 그 음식을 조명해주기 위해서는 톱질도 마다하는 거지요.컷 하나 하나에 대한 정성이 정말 남다른 것 같아요. 컬리의 사진들이 남다를 수 있는 이유는 무엇일까요?(다인) 아무래도 디테일인 것 같아요. 예를 들어 쭉 상품들을 늘어놓고 찍으면 심심하잖아요. 그럼 서로 다르게 높이를 둬서 입체감을 주는데, 높이를 다르게 하는 이유가 ‘허전해서’가 아닌 이 사진 자체에 스토리가 있기 때문에 그 스토리 상의 이유로 높이감을 자연스럽게 연출하려고 노력해요. 그러다보니 구성안 회의 때 그 스토리가 무엇이 될 수 있을까 서로 고민하면서 ‘왜’에 대한 이야기를 만들죠. 결론적으로는 촬영을 진행하기 전 엄청난 고민과, 논의, 그리고 준비가 있기 때문에 디테일이 살아난다는 점?스토리라고 하면 어떤 스토리인가요?(지원) 음, 사진 자체에서 납득이 되는 요소들? ‘사진을 보았을 때 왜 이걸 여기에 놓여져 있는건지’에 대한 이유를 만드는 거죠. (다인) 그냥 아무거나 갖다 놓고 찍을 수 있잖아요. 좀 허전하다 싶으면 대충 아무 국자를 갖다 놓거나 그릇을 갖다 놓고 채울 수도 있는데, 저희는 항상 ‘왜’에 대해서 고민하거든요. 소품 하나하나에 이유를 담기 위해서 스토리를 구상하는 거죠. (지원) 가령 케이크를 촬영하는데 옆이 심심하다고 유리잔을 갖다 놓지 않는 거죠. 케이크를 친구들과 나눠 먹는다고 상상을 했을 때 어떤 연령층의 친구들이 모여 있는 걸까? 누군가의 생일일까? 누군가의 브라이덜 샤워일까? 이들은 어떤 음료를 좋아하는 사람일까? 그럼 그 음료에 어울리는 잔은 무엇일까? 이렇게 고민을 거듭한 끝에 그 상황에 딱 맞는 음료를 결정하고 잔을 선택하고 그 컷에 소품으로 놓여지는 거에요. 그 상황과 이 화면에 맞는 온갖 계산들을 엄청나게 하는 거죠. (다인) 머리도 써야하고, 톱질도 해야하고. 쉽지 않은 직업이죠. 하하하하 (지원) 상황에 대한 이해가 필요하다 보니 촬영 전에 회의를 많이 하고, 대화도 많이 하고, 고민도 많이 하고, 이런 저런 계산들을 엄청나게 하고. 그러한 디테일에 대한 고민들이 컬리룩을 만들게 해주는 힘이죠. 배경 외, 소품 준비는 어떻게 진행되나요?(지원) 고속터미널 지하상가부터 이태원 앤틱거리, 소품샵이나 편집샵 등 다양하게 돌아다니면서 소품을 빌리기도 하고 구매하기도 해요. 얼마전에는 다인님이 영국으로 출장 가서 직접 소품을 구매해오기도 하셨어요.영국이요?(다인) 네, 얼마전에 영국으로 출장을 다녀왔어요. 두가지 이유가 있었는데, 첫번째는 ‘기물 구입’. 한국에서 대여 비용이 영국에서는 구매 비용이어서, 장기적으로 보았을 때는 기물을 구입하기 위해서 다녀왔고요. 두번째는 ‘패키지나 리빙 제품’ 조사차 다녀왔어요. 해외 시장에서의 패키지 디자인 등을 참고하기 위한 목적도 있었고요. 영국이 프랑스보다 작은 규모의 플리마켓 같은 시장이 다양하더라고요. 프랑스는 굵직굵직하게 있다면, 영국은 소소한 곳이 많은 편? 플리마켓부터 백화점까지 꿈의 주방을 채우기 위해 열심히 돌아다녔답니다.(지원) 아무래도 저희는 디테일을 신경쓰다 보니 소품 하나하나가 무척 소중하거든요. 영국에서 가져온 소품들을 보면 작은 커틀러리부터 기계 부품까지 다양해요. 아무래도 여러 상황들을 연출해야 하니까 최대한 다양하게! 그리고 스토리를 담을 수 있는 소품들을 구매했어요.컬리룩을 완성하게 하는 힘은 다름 아닌 ‘디테일’. 사진 하나 하나에 스토리를 담고 이 사진 속 음식을 즐기는 사람들을 상상하고 그들이 사용할 법한 소품을 구상하기까지. 하나의 사진이 완성되는 데에는 수많은 시간과 고민과 노력들이 숨어 있었다.3PM점심식사도 잊은 오후, 지금은 어떤 촬영이 진행되고 있나요?(다인) 곧 오픈 예정인 냉동 무화과 촬영하고 있어요. 급속 냉동 시켜서 맛과 영양이 그대로 살아있는 냉동 무화과를 어떻게 즐기실 수 있을지 소개 드리기 위한 컷을 촬영 준비 중이에요.촬영 직전에 어떤 준비들이 있나요?(다인) 먼저 촬영을 진행하기 전에 준비한 식재료를 1차적으로 플레이팅을 해요. 구성안 회의에서 잡았던 레시피나 맛있게 먹는 팁, 함께 즐기면 좋은 식재료 등을 중심으로 셋팅을 하죠. 그러고 나면 촬영 테이블로 옮겨서 거기서 최종적인 셋팅을 완성하죠. 키친크로스나 커틀러리 등도 사전에 모두 계산해 두었던 소품들이어서 촬영 직전에는 구상해둔 셋팅을 이리저리 놓아보며 최종적으로 자리를 잡아요.그러고 포토님이 촬영해주시면, 최종 결과물을 보며 수정할 부분을 수정하고, 소품을 바꿔야겠다 싶으면 대체하기도 하면서 OK컷을 뽑아내요.냉동 무화과 최종 완성컷식재료를 촬영하다 보면 어려운 부분이 있을 것 같아요.(다인) 음식 촬영은 전날 준비를 많이 하지 못해요. 조리 직전에 자르거나 볶거나 끓이거나 해야 되는 특성 상, 촬영 당일 동시에 많은 것을 진행해야 하는 것이 어렵죠.(지원) 그리고 직접 조리부터 플레이팅까지 해보지 않으면 그 완성이 어떤 그림이 될지 정말 모르잖아요. 최대한 머리속에서 꼼꼼히 상상하고 계산해서 식재료를 준비하고 색감이며 부피감이며 느낌이며 모두 사전에 계산을 완벽히 해야한다는 점?  (다인) 식재료다보니 어려운 점도 있지만 나름 재미난 에피소드도 생겨날 때가 많아요. 특히 생물을 촬영할 때? 생물이라고 하면 랍스터나 킹크랩처럼 컬리에서 소개 드리는 수산품들을 말하는데요. 그런 생물 촬영이 있는 날은 마치 사람 모델처럼 킹크랩이나 랍스터도 촬영을 대기하고 있어요. 살아있는 채로!! 그래서 저희가 재미삼아 이름을 지어 주기도 해요, 하하하하.이름이요??(지원) 크기가 어마어마했던 랍스터는 ‘안토니오’, 킹크랩은 크고 작은 형제가 왔었는데 큰 킹크랩은 ‘세바스찬’, 작은 킹크랩은 ‘산체스’. 문제는 이름을 붙여주니까 애틋해지는 거에요.촬영을 하다 보면 이제 삶기도 해야하고, 조리법을 설명해 드리기 위한 컷을 위해 칼로 찌르기도 해야하는데 차마 그럴 수가 없는 거에요. 그래서 사실 칼을 살짝 걸치기만 하고 촬영을 했답니다. 흑흑7PM퇴근 시간도 잊은 스튜디오 현장. 촬영된 컷은 어떻게 홈페이지로 실려지는 건가요?(다인) 촬영이 끝나면 사진들을 정리하고, 선택된 사진을 디자이너분들께 전달 드리면 디자이너분들과 에디터 분들이 컨텐츠로 만들어 상품 오픈에 맞춰 홈페이지로 올라가요. 정성스럽게 찍은 사진이 홈페이지를 통해 고객님들께 인사드리게 되면 참 뿌듯하고 톱질하던 수고도 잊게 된답니다 ^^촬영이라는 일이 어마어마하군요. 컬리 고객님들께서도 집에서 예쁜 스타일링부터 플레이팅까지 도전해보고 싶으신 분들이 많으실 것 같아요! 그런 분들을 위한 팁이 있다면?(지원) 집에서 할 수 있는 선 중심으로 팁을 드린다면, 우선 ‘밋밋하다’싶으면 천을 한번 깔아보셔도 좋아요. 은은하고 자연스러운 느낌을 연출할 수 있거든요. 그리고 무엇보다도 배경과 빛. 배경과 빛만 잘해도 정말 80% 보장되거든요.  (다인) 빛도 형광등보다는 자연광이 훨씬 느낌을 잘 연출해줘요. 그림자가 져도 자연광에서 그림자 진 것이 더 분위기 있거든요. 창가에 자리만 잘 잡고 음식을 촬영하시는 것만으로도 충분히 훌륭한 사진을 얻으실 수 있답니다. (지원) 디저트의 경우에는 한 입 먹은 듯한 느낌이 사진을 찍으면 예뻐요. 그냥 툭 두지 마시고 한 입 스푼으로 푹 퍼주거나 그릇에 한 조각 옮겨 담아도 좋을 것 같아요!푸드스타일리스트의 일상 사진도 궁금해요~ 일이 아닌 취미로 찍는 사진들은 어떤가요?(다인) 아무래도 제 멋대로..? 하하하하 쑥스럽지만 몇 컷 보여드릴게요!(지원) 자연스럽게 찍는 사진을 좋아하는 것 같아요. 부끄럽네요, 갑자기! 하하하하마지막으로 전하고 싶은 이야기(지원) 다른 상업적 사진들은 인위적으로 사진을 찍고는 하단에 ‘위 이미지는 연출된 이미지입니다.’이런 말을 쓰잖아요. 저희는 정말 거짓없이 고객님께서 받으시는 상품 그대로를 가지고 사진을 찍어요. 더 먹음직스럽게 색소를 타거나, 양을 늘리거나 하지 않아요. 거짓되지 않은 사진을 찍으려고 노력하고 있답니다. (다인) 맞아요. 정보를 그대로 담은 사진을 찍기 위해 열심히 노력하고 있답니다! 그러니 컬리 사진 많이 믿어 주시고 예쁘게 봐주세요 ^^어떤 의미에서 촬영 당일은 전쟁과도 같다. 조리와, 플레이팅과, 촬영이 동시에 진행되다 보니 땀 닦을 시간도, 밥 먹을 시간도, 힘들다는 생각을 할 틈도 없다는 그녀들. 몇 날 몇 일을 소품을 구하기 위해 발품을 팔고, 톱질을 하며 촬영을 준비하고 촬영 당일에는 시간을 잊은 블랙홀 같은 꿈의 주방에서 한 컷 한 컷 정성스레 촬영한다. 포크 하나 정도는 신경 쓰지 않아도 될 법 한데 컬리 사진은 ‘디테일이 생명’이라고 말하는 그녀들. 그런 그녀들이 있기에 컬리의 사진 하나 하나가 생명이 담긴 마냥 생생하고 남다를 수 있는 것이 아닐까? 더욱 노력해서 커머스 사진의 새로운 기준이 되고 싶다 말하는 그녀들. 그녀들의 행보가 더욱 기대된다.#마켓컬리 #팀원소개 #팀원인터뷰 #팀원자랑 #기업문화 #조직문화
조회수 932

'느낌적인 느낌' 디자인 대공략집

디자인 오더를 받을 때 디자이너님들께서 생각하셔야 하는 부분이 있습니다. 대개 클라이언트가 '이런 느낌으로 해주세요..' 라고 하는 건 대부분 뻥입니다!여기서 뻥이라고 함은, 의도적인 거짓말이 아니예요. 사실 사람들은 무엇을 어떻게 바꾸고싶은지 잘 모르는 경우가 많거든요. 그래서 자신이 원하는 것을 표현하는 과정에서 자꾸 어긋난 포인트를 잡게 되는 거예요. 이 때 본래의 취지와 니즈에서 벗어난 단어와 추상적인 표현들이 입밖으로 나오게 되죠. 대부분 이 표현들은 지나치게 뭉뚱그려져 있거나, 상징/연상되어 있는 경우가 많습니다. 생각과 표현의 괴리로 인한 '거리감' 이라고 말하는 편이 적절하겠네요.   인사이드아웃을 보신분들은 잠시 기억을 되새겨 볼까요. 기쁨이와 빙봉, 슬픔이가 무의식의 세계로 떨어진 이후 잠깐 '추상화'의 과정을 거칩니다. 그들은 점점 2차원 평면이 되었다가, 도형이 되고, 이내 본래의 형체를 알아보기 힘들정도로 단순해지기 시작합니다.그렇죠 바로 이 과정입니다. 대부분 사람들은 어떠한 기억을 구체적인 정보보단 이처럼 추상화과정을 거쳐 단순하게 기억합니다. 이를테면 국물을 입에 넣는 순간 용이 승천하고 눈앞에 美味가 떠올랐다고 해볼께요. 사실 그 맛을 느낄 때는 단짠, 얼큰, 시원, 들깨의 고소함, 육수의 진함, 향기, 빛깔, 식감 등등 온갖 다양한 정보들이 미뢰를 통해 뇌에 전해졌을 겁니다. 하지만, 1시간이 지난 후 머리가 기억하는 정보는 그냥 '맛있다.' 일 뿐이죠. 조금 더 정확하게 기억하자면 '존나 맛있다.' 정도랄까요.반대로 기억의 인출과정도 이 추상화된 개념을 꺼내는데에서 시작합니다. 사람은 구체적인 정보를 통째로 꺼내는 것이 아니라, 추상적인 단어를 하나 꺼낸 다음 그 위에 정보를 덧붙이기 시작합니다. 문제는 바로 이 과정에서 과연 올바른 정보들이 덧붙느냐...? 하는 것이죠.세련되면서도 빈티지한 느낌..이란 이상한 표현이 나오는 것은 이러한 정보의 전후관계에서 비롯됩니다. 뭔가 세련된 느낌이 되었으면 좋겠는데, 뒤에 딸려오는 정보들은 또 뭔가 베네딕트 컴버배치가 주연일 것 같은 영국 수사물의 고전적이고 클래식 양식이 합쳐졌으면 하는 거죠. 사람들은 생각보다 표현에 많은 단어를 쓰는 것에 익숙하지 않습니다. 우리는 살아가면서 사용하는 단어만 계속 사용하기 때문이죠. 우리가 쓰는 단어가 시각정보를 모두 표현하기에 부족하다보니 그냥 이것도 빈티지고 저것도 빈티지고 너도 빈티지 나도 빈티지가 되는 겁니다. 그냥 대강 비슷한 단어를 가져다가 붙이는거죠.내 생각 나도 몰라.클라이언트가 말한 빈티지를 '빈티지'라는 단어 그대로 해석하면 우주적혼란과 역사적인 고통을 경험하게 됩니다. 도대체 저 사람의 머릿속에 무엇이 떠올랐기에 그걸 빈티지로 퉁쳤을까? 를 바라보는 것이 먼저죠.도대체 저 사람의 머릿속에 무엇이 떠올랐기에 그걸 빈티지로 퉁쳤을까?를 바라보는 것이 먼저죠. 디자인 오더에는 유독 '~한 느낌' 이란 단어가 많이 쓰입니다. 그런 느낌을 주려고, 이런 느낌을 내주세요, 저 느낌처럼 가주세요... 등등. 추상적인 단어는 여러 감각들이 느꼈던 정보를 한꺼번에 담고 있습니다. 그런데 그걸 시각정보로 국한시키려니, 머리가 아파지기 시작하죠.예를 들어 내가 어제 갔던 그 예쁜 카페의 느낌을 포스터에 담고 싶은 거예요. 카페에서의 경험은 향기, 행동, 맛, 분위기, 소음, 느낌, 조명, 인테리어 등등 굉장히 다양한 감각의 집합입니다. 그런데 그걸 시각 하나로 압축시키려고 하니 말이 막히고 어려워집니다. 적당한 단어도 생각나지 않죠. 자세히 설명하기도 힘들구요. 그냥 대충 '감성적인 느낌' 이라고 축약해버리는 거예요. 문제는 정작 '감성적인 느낌이 뭔데요?' 라고 반문하면 또 그게 뭔진 잘 모르겠다는 것이죠. 이처럼, 사람은 자신의 경험을 언어로 설명하는 데 익숙하지 않습니다. 생각보다 훨씬 더 많이요. 훨씬!! 훨어어어어얼씨니이이인!!!!말로 표현을 못하겠지만 그런 느낌... '느낌' 이란 건 굉장히 구체적인 어떤 정보를 꺼내기위한 큰 그릇과도 같습니다. 문제는 그 정보가 나오기 전 그릇부터 나온다는 점이죠. 심지어 가끔 엉뚱한 그릇이 튀어나오면, 원래 꺼내려던 정보가 아닌 그릇에 맞는 정보가 느닷없이 등장하기도 합니다. 오늘은 그 그릇과 정보에 대해 알아보도록 합시다요.1. 감성적인 느낌명조체폰트와 히끄무레한 파스텔톤 색, 아웃포커싱되어 있는 뭔지 잘 모르겠는 사진들. 흔히 언스플래쉬나 Life of Pix, 또는 얼라우투에 올라올 듯한 사진이 합쳐진 느낌의 디자인을 의미합니다.막 이런 일본스럽고, 세로쓰기가 좀 있는데 명조명조한 느낌에 희뿌연 배경에 피사체 하나 덜렁있는 사진과 막 그런 것들있잖아요. 감성적인 느낌은 밝은 톤과 어두운 톤이 있는데, 클라이언트에게 위와 같은 밝은 톤 감성레퍼런스와이런 어두운 톤의 감성레퍼런스가 있습니다. 흔히 감성적이다...라고 하는 건 '정적인' 느낌을 많이 의미해요. 뭔가 카만히 바라보며 한떨기 눈물이 흐를 것 같은 감정의 여백과 임을 향한 그리움이 느껴지는 그윽한 느낌을 원하는 거죠. 그러니 뭔가 사람이 서있는 사진이나, 풍경사진, 사물 하나만 클로즈업 사진을 활용하시고, 명조체와 세로쓰기를 사용해보도록 합시다.2. 심플한 느낌심플하게 해달래서 진짜 심플하게 해주면 왜 이렇게 허하냐? 라는 불만이 돌아옵니다. 아니 심플하래 해달래서 심플하게 했는데 이게 왜 이렇게 심플하냐라고 하시면 제가 홍시를 먹은 것도 아니고 도대체 우라질.... 스럽겠지만. 클라이언트의 심플에는 한 가지 말하지 않은 전제조건이 있습니다.'내가 원하는 것을 다 넣으면서' + 심플심플한 느낌이란 건 디자이너가 생각하는 그것과는 다릅니다. 대개 일반인들의 심플은 "정렬이 챡챡 잘되어있는 상태" 를 의미합니다. 10개의 내용이 있다면 오른쪽에 조금, 왼쪽에 조금, 가운데에 조금...이것이 아니라. 그냥 왼쪽에 10개가 다 뭉쳐있는 거죠. 같은 폰트와 같은 모양으로 말이예요. 그리고 그림과 텍스트의 영역이 딱 분리되어 있으면 '아 심플하다' 라고 생각해요. 위 이미지처럼 말이예요. 그냥 정렬과 정돈이 잘 되어있는 상태를 '심플하다.' 라고 표현하는 경우가 많았습니다. 여백이 얼마나 있건 뭐 그건 중요하지 않아요. 내용이 얼마나 복잡하고 카테고리가 많냐 이것도 중요하지 않아요. 사업내용이 200개인 사업체입장에선 100개 내용은 '심플한 것' 이거든요. 그러니 심플의 기준은 상대방의 머릿속이 얼마나 복잡하냐에 따른 상대적인 것입니다. 위계맞춰서 챡챡 내용 왼쪽정렬해주도록 합시당.3. 빈티지한 느낌각진 영어폰트를 큼직하게 쓰고 노란색 톤을 쓰자는 얘깁니다. 가끔 세리프영문폰트를 써달라는 의미이기도 합니다. 그것도 아니라면 크라프트 종이 느낌의 누런 텍스쳐를 넣어봅시다. 노란색톤을 쓸때에는 회색톤을 함께 써주면 치직거리는 골드스타 TV앞에 모여 안테나를 잡고 있던 어릴 적의 향수를 되살릴 수 있습니다.빈티지하지만 세련된 느낌4. 모던한 느낌회색과 더불어 가늘디 가는 Light 폰트를 써달란 얘기입니다. 면과 선중에 선을 활용해보도록 합시다. 가늘디 가는 2px짜리 흰색 선을 써주면 키야아..소리가 나오면서 백두산 박수를 자아낼 수 있습니다.이런느낌으로다가5. 화려한 느낌화려....를 장식하는 건 컬러입니다. 요소보단 색감이 훨씬 강합니다. 오죽하면 무궁화 삼천리 화려강산에서 화려는 산세와 지형지물을 뜻하는게 아니라 오조오억개의 무궁화삼천리를 뜻하는 말 아니겠습니까. 그렇다고 원색을 쓰는 건 싸우자는 얘기이므로, 포인트 컬러와 서브컬러 3개정도를 알록달록하게 배치해보도록 합시다.6. 화려한데 심플한 느낌응용해볼까요. 물론 그냥 들으면 얼간이같은 표현이지만, 곰곰히 생각해봅시다. 화려는 컬러를 다양하게 쓰는걸 말하고, 심플은 잘 정돈된 걸 의미해요. 그럼 다양한 컬러를 쓰면서 정렬선을 잘 정리해달란 얘기입니다. 아래의 그림같은 느낌적인 느낌이랄까요.7. 빈티지한데 모던한 느낌마찬가지로 모르고 들으면 얼뱅충이같은 말이지만, 빈티지는 노란색+회색톤을 써달라는 거고, 모던은 가는 폰트와 선을 써달라는 얘기입니다. 특히 굵은 폰트와 가는 폰트를 잘 섞어서 쓰면 빈티지한테 모던한 비밀의 열쇠를 풀 수 있습니다.빈티지한테 모던함...8. 현대적인 느낌굵은 영문폰트와 강렬한 명암대비로 표현해달라는 그런 얘기입니다. 팝아트느낌을 줘도 좋습니다. 채도와 대비를 찐하게! 빡. 줘보도록 합시다. 특히 빨간색계열에 조금 어둡게시리 버건디한 느낌을 주면 검정과 조합이 기가 맥힙니다. 현대적인 색상이 뭔지 모르겠다 싶으면 요즘 출시되는 스마트폰의 색상을 관찰해봅시다. 뭐 이상하게 울트라 바이올렛이랄지, 코랄핑크랄지, 샤이니펄 그레이랄지... 이상한 이름을 달고 나오는 스폐셜에디션 컬러들이 현대적인 색상입니다.9. 그런 느낌 있잖아요.어제 핀터레스트에서 본 그 시안입니다. 함께 노트북을 켜고 핀터레스트에 뭐라 검색하셨는지 물어봅시다.10. 아..그 딱 강렬한 느낌.뭔가 하나를 아주 크으으으게 키워달란 얘깁니다.11. 엣지 있는 느낌어떤 요소하나에 포인트 컬러를 넣어달란 얘깁니다. 또는 클라이언트가 원하는 어떤 요소(리본이랄지, 반짝이랄지, 텍스쳐랄지..뭐든)하나를 거기에 꼭 넣어야겠다는 강력한 의지의 표현입니다.12. 차분한 느낌텍스트의 좌측하단 정렬13. 발랄한 느낌프리픽과 셔터스톡의 벡터이미지를 구매해라.14. 귀여운 느낌팬톤컬러를 사용해달라. 크리미한 느낌으로다가. 그리고 모서리를 둥글게 해달라. 폰트는 HG꼬딕씨15. 강조된 느낌폰트를 굵게, 키워달라. 적어도 1.5배 이상의 크기로 키워라. 또는 보색의 박스를 씌워라.16. 고급스러운 느낌예식장에 주로 쓰이는 필기체 영문 세리프 폰트와 금색 포인트컬러를 써달라. 테두리에 선을 넣어라. 블랙은 매트한 느낌의 R45, G45, B45 컬러를 써라.17. 디테일이 살아있는 느낌어딘가에 깨알같은 요소를 넣어달란 얘기인데, 주로 화살표, 불렛포인트, 박스, 하단바 등에 뭔가 깨알같은 무언가를 넣어달라는 얘기입니다. 주로 화살표를 선으로 세련되게 바꾸면 디테일한 느낌이 삽니다.18. 킨포크느낌가운데정렬, 채도살짝 날린 사진을 쓰고, 사진 밑에 텍스트를 써달라는 얘깁니다.19. 병맛느낌충주시 고구마 포스터나 에듀윌 B급 포스터 만들어달란 얘깁니다. 개인적으로 극강의 난이도라고 생각합니다. 혹시 이걸 요구한 곳이 공공기관이거나, 나이가 지긋하신 분이라면 요즘 유행하는 것들중에서 1,2달정도 약간 지난 것들을 써보도록 합시다. 오지고 지리고 렛잇고라던지, 전화 아이받니?, 영미이이!!~ 이런걸 넣어달란 얘기...랄까요.20. 키치한 느낌키치한 워딩을 써달라는 얘깁니다. 사실 키치라는 건 독일어로 '조악하고 뒤떨어진 요소'를 나타내는 미학용어이지만, 현재는 B급감성이 있지만 센스있고 재빠른 감각의 디자인 또는 그러한 표현을 의미하는 것으로 조금 바뀌었습니다. 보통 키치함! 하면 떠오르는 몇몇브랜드가 있는데. 배민이랄지, 피키캐스트라던지, 좋은부탄....(?) 등... 이거든요. 하지만 이들의 키치함은 디자인 자체보단 워딩과 이미지의 절묘한 조합과 허를 찌르는 기획에서 비롯되는 경우가 많습니다. 때문에 이러한 키치한 느낌을 만들어달라고 했을 땐 사실 아이디어 요정이 되어주세요~~라는 무리하면서도 돈이 많이 드는 부탁인 셈이죠. 그러니 계약서를 다시 쓰도록 합시다....Aㅏ...뭐 더 많이 있겠지만..힘들어서 못쓰겠네요. 사실 위에 말씀드린 게 뭐 정답은 아닐 겁니다. 말 그대로 느낌이란 건 사람마다 인식하는 것들에 따라 큰 차이가 생기는 부분이니까요. 상대방이 정확히 머릿속에 뭘 떠올리고 '그 느낌'을 얘기했는지 찾는 것이 중요하죠. 말씀드린 부분은 지극히 개인적인 경험에서 비롯된 것이니 참고용으로만 부탁드립니다.더불어 사람은 언어에 구속되는 경향이 굉장히 강합니다. 원래는 '좀 더 밝은 톤' 을 말하려고 했는데,그게 잘 생각이 나지 않아서'좀 더 부드러운 톤' 이라고 말했다고 해볼께요.머릿속에선 명도를 높이는 걸 그렸겠지만, 입으로 '부드러운 톤' 이란 단어가 나온 순간부터 명도는 온데간데 사라지고 없습니다. 부드러운 톤!!..이 입밖으로 나왔고 내 귀에 들리는 순간 내가 원하는 건 '부드러운 톤' 이 되는 거죠.내 희망사항이 명확하지 않고 두루뭉술할 때엔 아무말이나 내뱉게 되는데 그 아무말이 다시 생각을 지배하는 놀라운 순환구조를 보여주는 거예요. 디자이너는 그 순환구조 사이에서 정신을 바짝 차려야 해요. 자칫 말이 생각을 부르고, 생각이 다시 이상한 말을 부르는 마법의 다차원세계에서 도르마무 마냥 영원의 속박을 경험할 수 있으니까요.상대의 표현은 어디까지나 표현일 뿐 그게 팩트가 아니란 사실을 잘 기억해두도록 합시당~. 도대체 저 표현뒤에 숨겨진 진짜 기억은 무엇인지를 캐내는 것이 또한 디자이너의 역할이라고 할 수 있겠어요. 디자이너는 상대의 욕망을 구현해내는 사람이기도 하니까요 :)즐디자인.

기업문화 엿볼 때, 더팀스

로그인

/