스토리 홈

인터뷰

피드

뉴스

조회수 2614

Next.js 튜토리얼 8편: 컴포넌트 스타일링

* 이 글은 Next.js의 공식 튜토리얼을 번역한 글입니다.** 오역 및 오탈자가 있을 수 있습니다. 발견하시면 제보해주세요!목차1편: 시작하기 2편: 페이지 이동 3편: 공유 컴포넌트4편: 동적 페이지 5편: 라우트 마스킹6편: 서버 사이드 7편: 데이터 가져오기 8편: 컴포넌트 스타일링 - 현재 글9편: 배포하기개요지금까지 컴포넌트를 스타일링 하는 것을 미뤄왔습니다. 그러나 이제는 몇 가지 스타일을 적용해볼만 합니다.React 애플리케이션에는 컴포넌트를 스타일링 할 수 있는 여러가지 기술들이 있습니다. 크게 두 가지 방법으로 분류할 수 있습니다:1. 전통적인 CSS 파일 기반의 스타일링 (SASS, PostCSS 등)2. CSS in Js 스타일링 결과적으로 전통적인 CSS 파일 기반의 스타일링(특히 SSR)은 실용적인 문제가 많아 Next.js에서 스타일을 지정할 때는 이 방법을 사용하지 않는 것이 좋습니다. 대신 CSS in JS 방법을 추천합니다. 이 방법은 CSS 파일들을 불러오는 것보다 개별적인 컴포넌트 스타일링 할 때 사용 할 수 있습니다.Next.js는 styled-jsx라는 CSS in JS 프레임워크를 미리 설치해두었습니다. 컴포넌트에 이미 익숙한 CSS를 작성할 수 있습니다. 이 CSS는 해당 컴포넌트에만 적용되며 심지어 하위 컴포넌트에도 적용되지 않습니다.이는 CSS가 범위가 있음을 뜻합니다.styled-jsx를 어떻게 사용할 수 있는지 살펴봅시다.설치이번 장에서는 간단한 Next.js 애플리케이션이 필요합니다. 다음의 샘플 애플리케이션을 다운받아주세요:아래의 명령어로 실행시킬 수 있습니다:이제 http://localhost:3000로 이동하여 애플리케이션에 접근할 수 있습니다.home 페이지 스타일링하기home 페이지(pages/index.js)에 스타일을 추가해봅시다.간단히 pages/index.js를 다음과 같이 변경해주세요:   <style jsx> 엘리먼트를 살펴봅시다. 이것은 CSS를 작성하는 곳입니다.코드를 바꾼 후 블로그 home 페이지는 다음과 같이 보일 것입니다:위의 코드에서 스타일 태그 안에 직접 스타일을 작성하지 않고 템플릿 문자열 안에 작성하였습니다.템플릿 문자열({``}) 없이 직접 CSS를 작성해봅시다:어떤 일이 일어날까요?- 아무 일도 일어나지 않는다.- 새로운 스타일이 적용된다.- "문법 에러: 기대되지 않는 토큰"이라는 에러가 발생한다.- "허용되지 않는 스타일 제공자"라는 에러가 발생한다.스타일은 템플릿 문자열 안에 위치해야 합니다styled-jsx는 babel 플러그인을 통해 동작합니다. babel 플러그인은 빌드 과정에서 모든 CSS를 분해하고 적용합니다. (스타일이 추가 시간 없이 적용됩니다)styled-jsx 내에 제약 조건을 제공합니다. 나중에 styled-jsx 안에 동적 변수를 사용할 수 있습니다. 이것이 스타일을 템플릿 문자열 ({``}) 안에 작성해야하는 이유입니다.스타일과 중첩된 컴포넌트home 페이지에 작은 변화를 만들어봅시다. 다음과 같이 링크 컴포넌트를 분리시켰습니다:    import Layout from '../components/MyLayout.js'   pages/index.js 안의 내용을 위와 같이 수정해봅시다.무슨 일이 일어나나요?- 아무런 일도 일어나지 않는다.- 링크가 아닌 h1만 스타일이 적용된다.- 페이지에 에러가 발생한다.- 콘솔에 에러가 발생한다.중첩된 컴포넌트에는 적용되지 않습니다위의 코드를 실행하면 다음과 같이 보입니다:보다시피 CSS는 하위 컴포넌트 내부의 엘리멘트에는 적용되지 않습니다.styled-jsx의 특징은 더 큰 애플리케이션에서 스타일들을 관리할 때 도움이 됩니다.이 경우에는 하위 컴포넌트에 직접 스타일을 적용해야 합니다. 지금 상황에서는 링크 컴포넌트에 직접 스타일을 적용해야 합니다:다른 방법로는 global selectors을 사용할 수 있습니다.전역 스타일때때로 하위 컴포넌트 안의 스타일을 바꿔야 합니다. 일례로 React에서 마크다운을 사용하는 경우가 있습니다. post 페이지(pages/post.js)에서 볼 수 있습니다.post 페이지는 전역 스타일이 유용하게 쓰일 수 있는 곳입니다. styled-jsx를 사용하여 몇 가지 전역 스타일을 추가해봅시다. pages/post.js에 다음과 같은 내용을 적용해주세요.다음 내용을 적용하기 전에 npm install --save react-markdown 명령어를 통해 react-markdown 컴포넌트를 설치해주세요. 무슨 일이 일어나나요?- 아무런 일도 일어나지 않는다.- 마크다운 컨텐츠에 스타일이 적용된다.- 페이지에 에러가 발생한다.- 콘솔에 에러가 발생한다.전역 스타일이 동작합니다전역적으로 스타일이 적용되므로 잘 동작합니다.이 기능은 매우 유용할 수 있지만 항상 전역 prop 없이 스타일을 작성하길 추천합니다.여전히 일반적인 스타일 태그보다 좋은 방법입니다. styled-jsx를 사용하면 필요한 모든 접두사와 CSS 유효성 검사가 babel 플러그인 내부에서 수행되어 추가적인 런타임 오버헤드가 없습니다.다음엔 무엇을 해야할까요이 편에서는 styled-jsx의 표면만 다루었습니다. 더 많은 것들을 할 수 있습니다. styled-jsx Github 저장소에서 더 많은 내용을 참고하세요.Next.js에서 꽤나 괜찮은 다른 스타일링 방법들이 있습니다. 이 부분도 같이 참고해주세요.#트레바리 #개발자 #안드로이드 #앱개발 #Next.js #백엔드 #인사이트 #경험공유
조회수 921

Our First Gaming Memories

You’ve made it to our first blog post! Thank you.We are excited to introduce you to our team by showcasing some of our first video game memories that made us the passionate gamers we are today.We come from so many different countries and backgrounds, each influencing the types of games we got to know and love.Even though joysticks are a distant memory of the past, the SEGA logo or Pacman’s distinct “Waka Waka” are still nostalgic sounds for many of us. Whether we were bonding with friends and family or learning a new skill, video games have influenced each of us in a variety of ways.What was your first gaming memory? Share in the comments below! Battle City Battle City for NES remade as a flash game. Source: Emulator “The first videogame I have ever played is Battle City for the NES. I remember playing it with my older brother and it was one of the few videogames I could beat him at (hurray). Actually, I played it so much that I still distinctly remember the sound of the tank bullets against iron walls! I also loved it because it had a construction mode, in which you could create your own battlefields: I always made ones with only water and green cover, so that I could easily sneak behind my brother and win!”- Beatrice, Italian Translator.Super Mario Bros 2 Characters in Super Mario 2 have the ability to throw objects. Source: Wikipedia “My mom trained horses when I was young; my afternoons and weekends were spent with animals in stables and pastures. A family with a boy my age lived in a house attached to the stable we most often visited, and one day he invited me in to play with his NES. He showed me Super Mario Bros. 2, and within a few minutes I was so eager to play I almost begged for it to be my turn. That summer I ran a lemonade stand in my neighborhood so I could buy my own system.” - Alexis, PM Team Lead.Tetris An original version of Tetris. Source: Flickr “Back when I was 10 years old, I remember playing Tetris and I was completely addicted to the game. I would play nonstop for hours. Then came Prince of Persia and Dune, which I could never finish. It was so complicated and had so many enigmas that we just never got to the end. Of course there was no way to look it up online so you’d have to buy PC magazines, which we never had enough money for!” - Marie, CEO.World Cup 90 Similar to soccer, World Cup 90 featured fun moves like the "super shot". Source: Wikipedia “Being the youngest of 3 siblings (one brother who was a games nerd and actually bought video game magazines in the early 90s), I came across videogames so early in life that I can’t remember the very first moment I played. Most certainly, I was playing NES with them. We had a cartridge for the Nintendo with 3 games on it: Super Mario Bros, Tetris and World Cup 90. As the only multiplayer game, we played WC 90 excessively. It was great fun shooting balls intentionally at the opponents to knock them out and to do "Super Shots" that teared through their entire defense and the net of the goal, too... Great fun. Plus, there were small pictures for every national team that reflected their home country. This taught me about the world (Netherlands = windmills and tulips) and that people’s eyes pop out when you body check them hard.” - Christoph, Coordinator/German Translator.Tomb Raider A more updated Lara Croft from Tomb Raider 2013. Source: Flickr “The first video games I ever played were floppy disc games such as Spacewar! or Prince of Persia. However, the best gaming memory I have from my childhood is when my grandfather got me a PlayStation and a bunch of games for my birthday, including Tomb Raider. It was the first game that I played that was a bit scary but it was so much fun I didn't leave my room for days!” – Irene, Business Developer.The Legend of Zelda The 1998 Legend of Zelda title screen. Source: Wikipedia “I remember exploring a weird little world and finding lots of hidden stuff everywhere. Bombing walls, burning bushes, finding hidden people and treasure. Also running away from bats!” - Wolfgang, PM/Localization Engineer.Mortal Kombat Reptile and Kitana fight it out. Source: Flickr “The first video game I ever played (as opposed to just watching my older brother play) was Mortal Kombat - with my brother, unsurprisingly. I had the time of my life flunking "Test Your Might" strength checks, beating him as the only female character by repeatedly swiping his legs until he figured out that he really did need to block, and losing miserably on all other characters. The one and only fatality we collectively achieved was performed by me mashing random buttons. We never did figure out what exactly I pressed.” - Sandra, Linguistic Editor.Pink Panther The Pink Panther finds himself in London. Source: Old Games “Playing the point and click Pink Panther games on PC, especially The Pink Panther: Passport to Peril where the Pink Panther goes to China, England, Bhutan etc. The game was quite intricate with mysteries to solve and fun facts about each country. Still a fan of the Pink Panther to this day.” - Camilla, Regional Director, Asia.Super Mario Land 2 Original version of the SD card. Source: Flickr “The first videogame I remember playing was a mini 4WD racing game for GameBoy, the title of which I can't recall. Not the most intuitive game for a 6-year-old, I hated it at first! Then I got Super Mario Land 2 and it was love at first sight. Cool levels, funny music, fun and challenging. The first of many Mario (or Wario) themed games I've played so far!” - Francesco, Coordinator/Italian Translator.Vegi Vegi game has a similar look to the popular game Snake. Source: UV List “The first video game I played was called "Vegi" and it would run on MS-DOS when I was about 6 or 7 years old. It was some kind of hybrid of "Snake" and a good puzzle game. Looking back, it was super simple but it got me absolutely excited whenever I completed a level without biting myself.” - Katrin, Senior Coordinator, German Translator. 
조회수 879

브랜드, 기억되고 생각나다.

성공한 은사님께서 그런 말씀을 해 주셨습니다. '딱 한번만 성공해라.' 이 말은 나의 분야에서 남들이 기억할만한 일을 하면, 후에는 비슷한 일이 있을때 사람들이 나를 기억하게 된다는 말입니다. 브랜드도 다르지 않습니다. 내가 만든 브랜드가 사람들에게 '딱 한번만 기억'되면, 당신의 브랜드는 성공의 길에 들어서게 되는 것입니다.사람들의 기억에 남는 브랜드가 되기 위해 즉, 효과적인 브랜드 마케팅을 하기 위해 우리는 무엇을 알아야 할까요?#1. 고객에게 기억 될 단 하나의 이미지를 어필하라!자기 PR의 시대, 무한경쟁사회에서 우리는 내가 어떤 부분이 남들과 다른지 이야기합니다. 연예인들도 자신만의 '캐릭터'를 만드는 것이 성공을 결정짓는다고 말합니다. 이론적으로는 간단한 이야기이지만 실제 고객사와 대화를 나눠보면 사정이 다릅니다.브랜드의 경쟁력을 분석하기 위해 실제 사업가에게 '마케팅시 어떤 메시지를 넣을까요?' '이 브랜드가 어떤 이미지로 기억되었으면 하나요?' 물어보았습니다. '우리는 가격이 저렴하니까 그 내용을 좀 넣어주세요.''비슷한 효능의 제품들 중에 월등히 싼 것인가요?''아뇨, 싼 편에 속해요.''우리 제품이 좋은 제품으로 알려졌으면 좋겠어요.''원료가 좋은가요? 디자인이 좋은가요? 어떤 부분이 좋은가요?''원료가 좋아요. 저희 정말 열심히 만들었거든요.''경쟁사랑 비교해서 차별화 될만한 수준인가요?''비슷하긴 한데, 꽤 좋은 편이예요.'열정적인 사업가들은 제품이나 서비스를 만들 때, '좋은 것'을 만드려고 노력합니다. 물론 저렴한 가격에 좋은 제품을 만드는 것은 무엇보다 중요합니다. 하지만, 시장에 내 놓았을 때(제품이나 서비스의 경쟁사가 존재하는 시장) 이 브랜드를 기억할 수 있는 혹은 기억하고 싶게 만드는 이미지를 생각하지 않는 것 같습니다. 수십년이 지나고 세대가 변해도 사람들의 기억속에 존재하는 브랜드를 보면, 그들은 단 하나의 메시지를 말합니다.<출처 : www.complex.com/sneakers/>나이키는 불가능에 도전하는 스포츠맨 정신인  'JUST DO IT'을 말해왔고, 애플은 다름'Think different'를, 전 세계인이 아는 코카콜라는 red컬러와 '언제나', '상쾌함', '진정한 맛'을 강조해 왔습니다. 당신의 브랜드가 사람들에게 오래 기억되었으면 한다면, 우선 '하나의 메시지'로 시작하세요!#2. 품질 그 이상의 경험을 전달하다.한 브랜드를 사람들이 찾고 오랫동안 좋아하려면 품질이 물론 중요합니다. 사회, 교육, 기술의 발달로 대부분의 회사들이 일정 수준 이상의 제품과 서비스를 내놓고 있습니다. 극단적으로 '저렴한 가격에 꽤 쓸만한 제품을 만드는' 다이소 같은 기업이 등장하면서 품질은 차별화의 수단이라기 보다 브랜드의 필요조건이 되어가고 있습니다.이제는 가성비를 위한 소비 보다는 소비를 통해 나를 표현하고, 소비에 의미를 두려고 하며, 감정을 위한 소비를 합니다. 때문에, 이제는 브랜드에서 '나를 표현하기 위한 옷'이나 '굿즈', '행복을 나눠주는 00패키지'등의 가치나 의미, 경험에 집중해야 합니다.KOOVS의 사이트는 고객참여를 통해 사이트내의 고객 경험을 완성 하기도 하며,<출처 : www.card-gorilla.com>현대카드처럼 제품 자체에 변화를 주어 새로운 경험을 전달하기도 합니다.품질 외에 온라인이나 마케팅 프로모션, 오프라인 등으로 고객들이 경험할 수 있는 요소들이 함께한다면 당신의 브랜드의 성장을 도울 것 입니다.#3. 고객에게 반응하고, 살아있는 브랜드로 만들자!웨딩홀 투어를 했었습니다. 약 한달정도 시간이 날 때마다 돌아다녔는데, 대부분이 쓸만해 보이는 홀을 리모델링 한다고 하였습니다. 그 중에서는 트렌드에 맞춰서 전체를 바꾼다는 홀도 있었고, 필요한 부분만 선택적으로 분기별로 바꾼다는 홀도 있었습니다. 그런데 왜 그런지 트렌드에 맞춰서 전체를 바꾼다는 홀보다'신랑 신부님들의 의견을 듣고 락커를 추가하고, 버진로드를 대리석으로 바꾸려고 준비하고 있어요. 블랙 컨셉이나 조명은 좋아하시는 분들이 많아서 유지하고, 부분적으로 조금씩 변화를 주려고 합니다.'라고 말한 상담원의 말이 와 닿았습니다. 손님 한사람 한사람의 이야기를 귀 귀울여 듣고 언제든지 유연한 자세로 변화하겠다는 느낌을 받았던 것 같습니다.지금 좋은 것도 내일이 되면 옛 것이 되기 때문에, 주변에 쇼핑몰로 성공한 젊은CEO는 주1회 사용자의 행동흐름을 분석하면서 UI에 조금씩의 변화를 주고 있다고 합니다. 지금 좋다고 그 상태를 고수하는 것 보다는 끊임없이 고객의 이야기를 듣고 상황에 맞춰서 변화하려는 자세가 필요합니다.  <출처 : uxd-trend blog>레터링 느낌의 브랜드 이미지를 고수하면서 시대에 맞춰 조금씩 변화만 준 코카콜라 로고처럼 브랜드의 서비스, 제품, 이미지등에 대한 고객의 반응을 매 순간 체크하면서 변화할 수 있는 브랜드가 되어야 합니다.'이건 특별한 서비스야' 하면서 사업을 만들었는데, 금방 후발주자가 비슷한 서비스를 출시합니다. 그래서 스타트업 시장에서 투자자들의 단골 질문이 후발주자에 대한 대응을 어떻게 할 것인가? 입니다. 이때, 가장 중요한 것은 브랜드입니다. 배달의 민족은 우후죽순 생기고 있는 후발주자에도 불구하고 고유한 브랜드 아이덴티티로 현재에도 1위를 지키고 있습니다. 반대로 소셜커머스의 첫 시작은 티몬 이었으나 쿠팡의 로켓배송 브랜드 전략으로 선발주자를 앞지르는 사례도 있었습니다.지금 당장 공격적인 마케팅으로 갑작스럽게 성과를 올릴 수는 있겠지만, 우리는 이러한 마케팅 방법을 좋아하지 않습니다. 지속적이고 오래도록 기억되고 사랑받으려면 당신의 브랜드가 가진 고유한 가치를 바라보았으면 좋겠습니다. 오피노 자세히 보러가기
조회수 180

너 나한테 감정 있니?

너 나한테 감정 있니? 라는 말이 "너 나한테 불만 있니?"라는 말과 동일시되는 이유가 무엇인지 생각해본 적 있나요? 사람이라면 감정이 있는 것이 당연한 건데, 우리는 왜 "이 감정이 내 감정이다." 말을 못 하고 끙끙 앓다가 화병까지 걸려서 몸져눕는 지경까지 오게 된 걸까요. OECD 국가 중 자살률이 10년째 최고인 이유는 우리 사회가 감정을 표현하는 것을 터부시 해온 결과는 아닐까요?  당신은 지금 어떤 기분인가요? 화병 : 명치에 뭔가 걸린 느낌 등 신체 증상을 동반하는 우울증의 일종으로 우울과 분노를 억누르기 때문에 발생한 정신 질환 (출처: 서울대학교 병원 의학정보)술로 풀고 담배로 삭이고... 화병만 남은 직장인들 - 세계일보 직장인 조기퇴사 '박봉'.. 화병 스트레스 심각 - 한국경제 TV화병 환자 14%는 20대.. 불안·우울증도 과거보다 늘어 - 한국일보그냥 화를 내세요.. 한국인의 화병? - 브리지 경제'화병'이니 참는다고요? 여성 사망원인 1위예요 - 여성신문꽃다운 20대직장인 디자이너 시절독불장군 같았던 사장님께 혼나고 돌아와서 혼자서 스트레스를 어쩌지 못하고 있을 때, 불현듯 제 머릿속을 스치고 지나간 영화가 있었습니다.  몬스터주식회사, 다 네 덕분이야. (출처 : 몬스터주식회사 영화포스터)"몬스터로도 주식회사를 만드는데... 스트레스로 주식회사를 만들어보면 어떨까? 그 회사에서는 나처럼 고통받는 직장인들을 위해서 스트레스를 풀 수 있는 상품을 만드는 거야! 어때? 멋지지 않아????"  그렇게 나처럼 고통받는 직장인들을 위해 스트레스를 해소하는 상품들을 만들겠다고 결심한 지 5년 후, 저는 정말로 스트레스 컴퍼니를 설립하였습니다.그러나 사실 저는제 감정을 숨기지 못합니다.김구라님 (출처 : 라디오스타)표현하지 않으려 해도 시도 때도 없이 드러나는 표정 때문에 어찌할 도리가 없을 때가 많지요. 그렇게 본다면 저는 감정을 표현하는 사람이 맞습니다만, 아무런 설명 없이 표정만으로 감정을 전달하는 것이 얼마나 많은 오해를 불러오는지 모릅니다. 그래서 우리는 '포커페이스를 유지해라' '감정을 드러내지 않는 것이 프로다'라는 말들을 당연하게 받아들였는지도 모르겠습니다.분노하는 차인표님. (출처: SBS 대물) 그런데 우리는 화가 나면 화가 났다는 감정만 표현할 뿐, 내가 왜 화가 났는지, 어떻게 하면 화가 풀릴 수 있는지 를 이야기하지 못합니다. 우리는 그러한 소통 방법을 배운 적이 없기 때문입니다. 그렇지만 자신의 감정을 상대에게 올바르게 표현하지 않으면, 오해가 쌓이게 됩니다. 세상을 뒤집어 놓을 것 같이 큰 문제들도 알고 보면 사소한 일들에서부터 비롯되었다는 사실은 많은 생각을 하게 합니다.그래서 감정을 표현하자는 거야? 말자는 거야? 표현하자는 겁니다어떻게? 잘스트레스컴퍼니의 내편 감정 카드. 말로 하기 힘들 떄 카드로 내 마음을 표현해요.내가 지금 힘들구나.내가 지금 슬프구나.내가 지금 화가 나는구나.감정이라는 것은 살아있는 생물과 같아서 억누르려고 할수록 더 튀어나와서 나를 괴롭히지만, 마음에 들어온 감정들을 거부하지 않고, 그럴 수 있다고 인정해주는 것만으로도 마음이 편안해질 수 있습니다. 어떤 감정도 나쁜 감정은 없으며, 모든 감정에는 이유가 있습니다. 나를 찾아온 감정을 회피하지 말고, 무시하지도 말고 온전히 받아들여주세요. 티벳여우가 너무 귀여워 그만... 출처를 알 수 없었습니다;; 감정을 받아들이면, 내가 진짜 원하는 것이 무엇인지 알 수 있습니다. 내가 화가 났다면, 분명 무언가가 불만족스럽다는 건데, 그렇다면 그것이 무엇인지를 찾아서 채워야만 그 감정이 해소될 수 있기 때문입니다. 그냥 화만 내는 것으로는 해결되지 않습니다. 보통 사람들이 화가 날 때는 중요하게 생각하는 것들이 훼손되었을 경우가 많습니다. 누가 땅바닥에 쓰레기를 버리는 것만 봐도 화가 나는 사람이 있는데, 그런 사람들은 정의감을 중요하게 생각하기 때문입니다. 그래서 나를 화나게 하는 것들만 잘 살펴봐도 내가 무엇을 중요하게 생각하는 사람인지 알 수 있게 됩니다. 이렇게 내가 중요하게 생각하는 것들이 모여서 가치관을 이루게 되고, 내가 중요하게 생각하는 가치에 부합하는 삶을 살아야 행복할 수 있습니다. 그래서 저는 항상 스트레스 해소 강의 시작 전에 내편 감정 카드로 지금 나의 기분과 가장 닮은 감정 카드를 고르게 한 후, 워크지를 통해서 내 감정 밑에 숨어있는 진짜 욕구를 찾아보는 활동을 진행합니다. 감정은 내가 진짜 원하는 것을 찾을 수 있도록 도와주는 신호이기 때문입니다. 나의 감정 밑 욕구를 찾아보는 오늘의 감정 워크지  도레이 첨단소재 기업 강의에 참석하신 분의 감정 워크지 당신은 당신이진짜로 원하는 것이무엇인지 알고 있나요?내가 진짜 원하는 것을 아는 것은 특별히 더 힘겨운 일입니다. 분명 내가 원한다고 생각했던 일이 해봤더니 원하는 것이 아니었다는 사실을 깨달을 수도 있고, 사실은 내가 원하는 것이 아니라 부모님이 원하는 것이거나, 아니면 남들이 좋다고 하니까, 다들 그렇게 사니까 나도 그렇게 해야 할 것 같아서 원하게 된 것인지도 모릅니다. 그렇다면 오늘 잠들기 전, 나 자신에게 질문을 던져보세요. 나를 화나게 하는 것들은 무엇인지, 그리고 내가 진짜로 원하는 것은 무엇인지 말입니다. 그렇게 한 발짝씩 자신에게 다가가보세요. 조금씩 내가 보일거예요.  내편 감정 카드, 워크지는 스트레스컴퍼니샵에서 구매 가능합니다. ⓒ스트레스컴퍼니-무단 전재-재배포 금지 #스트레스컴퍼니 #심리스타트업 #스트레스관리 #서비스소개 #제품소개
조회수 763

HHI 사람들 - “내겐 너무나 특별한 사보”

- 최지순 기장, 30년간 모아 “사보는 제 회사생활의 추억이자,안부를 전하는 편지였습니다” 현대중공업 최지순 기장에게는 특별한 보물이 있습니다. 그건 바로, 집 한 편에 회사의 역사와 자신의 추억이 오롯이 담긴 ‘사보’입니다.30살도 더된 사보부터 지난달에 나온 따끈따끈한 신간까지 총 350여권에 달하는 사보가 연도순으로 정리돼 있더라고요.  그가 사보와 첫 인연을 맺은 건 1988년 무렵입니다.초등학교 시절 은사(恩師)님이 강원도 정선의 한 분교에서 근무하신다는 소식을 접했는데요.같은 강원도(강릉) 출신인 최 기장은 동향의 산골 학생들에게 너른 바다와 웅장한 선박 건조현장을 소개하고 싶어 매월 사보를 1~2권씩 보내기 시작했대요. 그는 “회사 소식과 교훈적인 이야기, 생활 정보들로 가득해, 당시 10여명의 학생들이 사보를 닳도록 읽는다는 말에 매우 뿌듯했다”고 말했습니다. 최 기장은 고향 친구들을 만나는 날이면 그들에게 한 권씩 사보를 선물했어요. 그렇게 함으로써 울산에서의 건강하고 자랑스러운 삶을 친구들에게 알려줬어요.△최지순 기장은 2015년 4월호에 '한마음회관 아코디언 동호회' 기사에 자신의 사진이 실린 일이 가장 기억에 남는다고 말했습니다.  올해 정년퇴직이라는 최지순 기장. 그의 근속연수는 32년에 달하는데요.앞으로도 사보가 현장 곳곳의 생동감 넘치고 가슴 따뜻한 이야기들을 계속 전해주기를 바란다고 당부하며, 저희와 작별인사를 나눴답니다. 넵~! 44년 전통의 ‘현대중공업 사보’와 함께, 저희 블로그도 더더욱 분발할게요.#현대중공업 #조직문화 #기업문화 #사보 #공채정보 #직무정보 #구성원인터뷰
조회수 1146

[맛있는 인터뷰 1] 잔디의 든든한 리베로, 백엔드(Back-end) 개발자 John을 만나다

[맛있는 인터뷰 1] 잔디의 든든한 리베로, 백엔드(Back-end) 개발자 John을 만나다                                    잔디의 든든한 수문장, John         스타트업(Startup)의 경우, 구성원들과 회사가 그 운명을 같이하는 것 같다.         개개인의 발전이 곧 회사의 발전으로 이루어지기 때문이다.           – John Kang, 잔디 개발팀편집자 주: 잔디에는 현재 40명 가까운 구성원들이 일본, 대만, 한국 오피스에서 일하고 있습니다. 국적, 학력, 경험이 모두 다른 멤버들. 이들이 어떤 스토리를 갖고 잔디에 합류했는지, 잔디에서 무슨 일을하고 있는지 궁금해 하시는 분들이 많았습니다. 이에 잔디 블로그에서는 매주 1회 ‘맛있는 인터뷰’라는 인터뷰 시리즈로 기업용 사내 메신저 ‘잔디’를 만드는 사람들의 이야기를 다루고자 합니다. 인터뷰는 매주 선정된 인터뷰어와 인터뷰이가 1시간 동안 점심을 함께 하며 다양한 이야기를 나누며 진행됩니다. 인터뷰이에 대해 궁금한 점은 댓글 혹은 이메일([email protected])을 통해 문의 부탁드립니다.안녕하세요, John! 맛있는 인터뷰의 첫 대상자가 되셨어요. 오늘 저희가 먹을 ‘맛있는 메뉴’는 무엇인지 설명해주세요.– 생선구이 어떠세요? 고등어와 연어 요리가 맛있는 집이 국기원 쪽에 있는데요. 비즈니스 팀의 YJ가 버디런치*때 데리고 갔던 곳인데 테이스티로드에도 나오고 꽤 맛있어요.*버디런치(Buddy Lunch): 잔디에서는 매주 금요일 점심 제비뽑기를 통해 짝을 지어 점심을 먹는 버디런치를 실행 중이다                                맛있는 인터뷰 시작 전, 인증샷 한장~!자기소개 부탁드려요.– 잔디의 백엔드(Back-end)를 맡고 있는 John입니다. 잔디에 합류한 건 반년쯤 된 것 같네요. 2014년 9월에 합류했어요. 남중-남고-공대-군대-IT회사까지 소위 ‘솔로계의 엘리트 코스’를 밟고 있는 개발자입니다. 고향은 대구이구요, 서울말을 제 2외국어로 사용하고 있습니다. 회사에서는 서울말을 하고 있지만 고향 친구들을 만나면 자동으로 사투리가 나옵니다. (하하)잔디에는 어떻게 합류하시게 됐는지?– Justin(CTO)과 YB(COO)와 함께 패스트트랙에서 창업 관련 수업을 들었어요. 그때 Justin이 농담처럼 나중에 함께 일하자 했는데 정말 이렇게 부를 줄 몰랐네요.잔디의 어떤 점에 이끌리셨나요?– 잔디라는 서비스도 매력적이었고, 함께 일할 사람들도 매력적이었어요. 개발하면서 직접 만들어보면 재미있겠다고 생각을 한 것이 있었는데 잔디가 바로 그런 서비스였어요. 게다가 함께 일할 사람들이 너무 좋았어요. 프로덕트 아이디어도 중요하지만 함께 일할 동료도 정말 중요하다고 생각해요.  몇 년 전 사업을 구상했던 적이 있는데 아이템에 대한 이견차이로 결국 무산되었던 경험이 있어요. 그 당시 연애하다 헤어진 것과 맞먹는 상실을 겪었는데요. 이런 경험이 있다 보니 뜻이 맞는 동료들이 중요하구나를 뼈저리게 느꼈어요.잔디에서의 역할이 백엔드라 하셨는데 조금 더 자세히 설명해 주실래요?– 용어가 어렵죠? 제가 하는 백엔드 업무는 사용자가 직접 눈으로 보거나 경험하는 부분이 아닌 그 뒤의 처리 과정을 담당하는 일이에요.눈에 보이지 않는 부분이요?– 쉽게 말하면 잔디를 통해 메세지를 보내면 그게 끝이 아니거든요. 메세지를 서버에 저장하고 처리해서 받는 사람에게 잘 전달되도록 해야 해요 그걸 가능하게 만드는 거죠. 잔디에선 MK와 함께 일을 하고 있어요. 업무 특성상, 안드로이드 개발자, 아이폰 개발자와도 함께 일하고 있죠.성과가 눈에 잘 보이지 않는 업무인 것 같아요.– 사실 프론트엔드(Front-end)에 비해 그런 편이죠. 백엔드와 프론트엔드 업무를 모두 해봤는데 각기 장단점이 있어요. 백엔드는 성과가 잘 안 보이는 반면 프론트엔드는 누구나 오류를 지적 할 수 있거든요.둘 다 경험이 있다고 하셨는데 어떤 쪽이 더 재미있으세요?– 어렵네요. 백엔드를 하다 지칠 땐 프론트엔드가 생각나고 프론트엔드 일을 하다 지칠 땐 백엔드가 생각나요. 지금은 백엔드에 만족하고 있어요.지금 하고 계신 업무를 좋아하시는 것 같단 생각이 드네요.– 그래 보여요? 사실 적성에 맞는 것 같아요. 모든 일이 그렇겠지만 프로그래밍은 꾸준히 발전하지 않으면 도태되기 십상이에요. 그러다 보니 계속해서 공부하게 되는 것 같아요. 저뿐만 아니라 잔디의 다른 개발자 분들도 꾸준히 공부를 하고 있고 스터디도 열심히 참여하고 있어요.바쁜 가운데 꾸준히 공부를 하신다니 인상적이네요.– Startup의 경우 구성원들과 회사가 그 운명을 같이하는 것 같아요. 개개인의 발전이 곧 회사의 발전으로 이루어지니까요. 그러니 열심히 할 수밖에 없죠.                                 오피스 근처 커피숍에서 커피 한잔!취미가 있으시다면?– 몸으로 하는 활동을 즐겨서 하고 있어요. 헬스, 조깅, 윈드서핑을 좋아해요. 한동안은 등산도 즐겨했지만 친구들이 하나둘 결혼하고 나니.. 점점 모임이 뜸해지더라고요. 일을 하면서 체력관리는 필수인 것 같아요. 어릴 땐 몰랐지만 체력관리를 하지 않으면 자기도 모르는 사이 배가 조금씩 조금씩 나오는 것 같아서..주로 혼자 하는 운동들이네요.– 정말 그렇네요? 앞으로 여유가 생긴다면 다이빙이나 서핑, 암벽 등반을 해보고 싶어요. 그리고 가능할진 모르겠지만 올해 안에 휴가를 내서 발리에 가서 서핑도 즐겨보고 싶고, 돈을 많이 벌면 레이싱도 해보고 싶어요.시간이 벌써 이렇게 됐네요. 끝으로 레이싱 얘기가 나와서 여쭤보는데 혹시 드림카가 있으신가요?– 페라리요. 잔디가 성공해야 드림카를 소유할 수 있겠죠?1시간 동안 진행된 ‘맛있는 인터뷰’를 통해 좀 더 자세히 알게된 John. 이번 인터뷰를 음식에 비유하자면 진하고 담백한 사골국 같았습니다. 개발자로서의 자부심과 일에 대한 애정이 남다른 John을 보며 조금이나마 개발팀을 머리에 그려볼 수 있었습니다. 앞으로 매 주 진행될 잔디 멤버들과의 다른 인터뷰들도 기대해주세요!#토스랩 #잔디 #JANDI #개발자 #백엔드 #개발팀 #팀원소개 #팀원인터뷰 #팀원자랑 #조직문화 #기업문화 #사내문화
조회수 924

[퍼포몸쓰 일상] #0 어쩌다 슬라운드

다니던 회사를 그만두고 한 달 정도 방황했다. 친구들의 동업 제안, 머릿속을 맴도는 사업 아이디어, 이런저런 스카우트 제의. 무엇하나 쉬운 게 없다고 생각했다. 핑계처럼 로켓펀치를 켜고 뻑뻑한 눈알 위를 겉도는 채용공고를 훑었다.딱 하나, 홈에 덜컥 걸리는 느낌이 들었다. 저녁 8시 40분. 입사 지원하고 두 시간이 채 지나지 않아 전화가 걸려왔다. 당황과 반가움 중간 어딘가의 감정을 안고 통화했던 기억이 난다. 그들이 찾던 포지션이 신기할 정도로 나와 맞아떨어진다는 데서 오는 반가움. 굉장히 빠른 액션에서 오는 당황. 전화받고 이틀 후 오전 11시로 인터뷰 약속이 잡혔는데 재밌는 건 그 날이 일요일이었다는 거다. 많은 인터뷰를 봤지만(인터뷰어로서, 인터뷰이로서) 주말 오전 인터뷰는 처음이었다. 좋고 나쁨을 떠나서 나에겐 이례적인 일이라 가벼운 마음으로 갈지, 진중한 마음으로 갈지 갈팡질팡했다.일요일 오전 11시.매트리스 업계의 적폐를 바꾸고 싶다던 두 남자와 만나 가장 먼저 한 이야기는 폴리에스테르 빨대에 관해서였다. 거북이의 콧구멍에서 빨대를 뽑아내는 영상 속 거북이가 얼마나 쾌감에 젖은 표정을 지었는지가 우리의 첫 이야기 소재였다. 아무도 어색해하지 않고 첫 만남에서 그런 이야기부터 시작했다는 게 지금도 조금 어처구니가 없지만 우리는 꽤 진지하게 이야기를 이어나갔다.다른 건 모르겠고, 제품 하나는 잘 만들고 싶었다던 그들은 고맙게도 내가 개인적으로 끄적이던 콘텐츠들을 너무나 마음에 들어했다. 반대로 난 짧은 대화에서도 묻어 나오는 그들의 제품에 대한 자부심과 전문성, 열의가 좋았다. 난 내 길지 않은 커리어의 대부분인 4년 반 정도를 스타트업에서 보냈다. 그래서 초기 스타트업이 멤버의 유능함과는 별개로 얼마나 고단한 길을 걷는지 잘 알고 있다.'그동안 쉼 없이 고생했으니 이번엔 좀 편하게 일하자''일단 돈 많이 주는 곳으로 가자''이름이 알려진 곳으로 가자'이직 고민을 하면서 머릿속을 가득 메웠던 생각들은 결국 사람 앞에 스러졌다. 초기 스타트업에서 굴러다녔던 경험만큼, 능력 있고 좋은 사람들과 같이 일하는 즐거움을 알기에 두 명의 founder와 이야기하면서 다시 한번 가족을 생각하지 않는 이기적인 결정을 내렸다(부모님, 장모님, 마누라 죄송합니다).一切有爲法 如夢幻泡影 如露亦如電 應作如是觀스타트업을 하면서 가장 많이 떠올리는 문구다(참고로 교회 다닌다). 현실의 꿈이 비록 손에 잡히지 않더라도 꿈을 빚기 위해 그렇게 난 슬라운드에 콘텐츠 마케터로 합류했다.  
조회수 1375

우리는 인연이 아닌가 봐요

콜라보레이션!스타트업들 간의 협업은언뜻 멋져 보인다.취지도, 명분도뭔가 그럴듯해 보인다.우리가 강한 경쟁자를 상대하기에부족한 것들을 같은 처지의 스타트업끼리뭉쳐 이겨낼 수 있을 것 같다.이론상 참 좋은 연합이다.(출처: 만화책 "드래곤볼카이" 중에서 퓨전합체)그런데 실제로는 어떠할까?나도 콜라보레이션의 취지는 좋게 생각한다.분명 장단점이 있고,콜라보를 통해 서로 시너지를 낸 선례들도 있다.근데 그게 그냥 "같이 합시다"라고 뭉친다고잘 되는 게 아니라더 신경 쓰고, 양보하고, 신뢰해야 하며,에너지가 많이 소비되는 형태이다.부족한 것은 상대방이 채워줄 것 같지?아니, 상대방도 너를 의존하고 있고,너에게 기대하는 바가 크기에제대로 뭉치지 않으면오합지졸 당나라 군대가 돼버리기 쉽다.우리 함께 연합해서 Win-win 하자고?괜히 어설프게 연합하다간함께 Lose-lose 할 수도 있다.무작정 뭉친다고 강해지는 게 아니다.오히려 서로에게 악영향이 되고,서로에게 감정만 상할 수도 있다.그럼 콜라보레이션은어떻게 해야 제대로 운영될 수 있을 까?1. 리더가 필요하다.양 무리에도 리더가 있다.둘 이상의 콜라보에서 동등한 의사결정이이상적으로 보일지는 몰라도업무를 수행하는 데 있어서 누군가는 전체 연합을조율하고, 이끌어가야 할 보다 강한 리더십이 있어야 한다.스타트업들 간의 연합의 취약점은바로 체계가 없음이다.동등한 위치에서,평등한 의사결정을 꿈꾼다면평행선을 달릴 일도 많아진다.우리에게 시간이 넉넉하고,자금이 풍족하다며시장이 우리의 제품/서비스를 기다려 준다면그 사이에 우리 모두 웃음꽃 피우며좋은 게 좋다고 끝없는 토론의 장을 가질 수 있겠지.한정된 시간과늘 부족한 자금과눈 깜빡할 새 변하는 변덕스러운 시장을순간순간 체크해야 하는데...누군가는 앞서서 진두지휘를 해야 한다.이게 참 말이나 글로 적긴 쉬운 건데실제로 적용되는 건 어려운 일이다.이리저리 신경 쓰기엔창업자가 할 일이 참 많잖아.2. 목적이 명확해야 한다.콜라보로 우리가 얻을 수 있는 것이 무엇인지에 대한명확한 목표/목적이 있어야 한다.양보할 수 있는 부분은 무엇이고,물러 설 수 없는 부분은 무엇인지를 확실하게 알려야 한다.이게 어정쩡하면,뒤에서 아쉬운 소리가 나올 수밖에 없다.두 가지 문제가 있더라.일단 뭔가를 잘 정의를 못 내리는 문제.우리가 왜 콜라보를 해야 하고,무엇을 위해서 해야 하는지 그다지 선명하지 않았다.두 번 째는상대방의 목적이 무엇인지 모르겠더라.뭐 상생이라던가,파트너십이라던가 참 듣기는 좋은 말인데...그래서 어쩌라는 건지,뭘 어떻게 하자는 건지너무 두리뭉실하다 보니...결국 거절을 하였다.서로의 목적이 다르면,서로 딴 주판을 튕기게 되고,그 끝은 서로에 대한 원망과 후회가 남는다.그나마 서로의 목적이 다르다는 것을 알기라도 한다면의견을 조율하고, 협의를 할 수 있겠지만서로 무슨 목적을 가지고 있는지 관심이 없을 때도 있다.그보다 콜라보를 해야 할 자신들의 근거조차스스로 모를 때가 더 많다고 해야 하나?3. 서로 신뢰할 수 있어야 한다.상대방을 믿을 수 있느냐가 가장 큰 벽이다.스타트업과 스타트업 간의 협력은대표들끼리 쿵짝쿵짝 코드 맞춘다고 돌아가는 게 아니다.구성원들 모두가 공감하고커뮤니케이션이 원활해져야 하는데...더군다나 자주 만나지도 못 하고,어쩌다 이슈가 생길 때만서로 연락 주고받는다면콩가루 스타트업 연합이 되지 않을까?사실 우리에게도 몇 번인가 콜라보 제의가 들어왔었다.그중 두 번 진행을 해봤다.한 번은 Good case, 한 번은 Bad case처음에는 뭣도 모르고  바로 계약서 준비하려 한 때가 있었다.(상대 쪽 대표가 착하고, 좋아서...)분쟁의 소지를 미연에 방지하기 위해서계약서는 큰 도움이 되는 것은 사실이니까.하지만 다시 생각해보니계약서는 굳이 쓸 필요를 못 느끼겠더라.괜히 계약서에 싸인 잘 못 했다가,우리 멤버들이 고생은 고생대로 하고,우리 방향에서 벗어날까 봐하는 노파심이 들었다.그래서 우리는 콜라보 제의에크게 비중을 두지 않은 상태에서확인 작업을 한다.아주 작은 사소한 일을 함께 해 본다.그리고 일이 진행되는 과정을 확인한다.그러다 몇 번의 소소한 미팅이 동반되는작은 일을 같이 해 본다.그리고 결과적으로신뢰할 수 있는 상대라고 판단되면,계약서를 준비한다.최근에 두 곳과 이런저런 일로작은 일을 진행하고 있는데...글쎄...좀 시간과 거리를 두고더 신중하게 접근하고 있다.신뢰라는 것은갑자기 생기는 것이 아니라관찰과 행동에서 나오는 것이다.팀빌딩에 신중했듯이,협업도 신중해야 하고,확인해야 하고, 복기해야 한다.힘들 때,우리는 누군가를 의지하고 싶어 진다.외로울 때,우리는 누군가 공감해 줄 사람이 그리워진다.그러한 감성적인 이유는콜라보레이션의 타당성을 주지 못 한다.논리적이고 합리적인 타당성이 없는콜라보레이션은 서로에게 죄를 짓는 것이다.오랜만에 스타트업 대표들끼리식사를 한 적이 있다.그 자리에서 한 분이연합 이야기를 꺼내셨다.어떤 대표들은 박수를 치며 환호를 하였지만,어떤 대표들은 고개를 절레절레 흔들었다.(출처: 게임 삼국지10, 황건동란, 도원결의)삼국지의 유비, 관우, 장비의 도원결의에 대해지극히 현실적이고 냉철하게 상상해보자.뜬금없이 술 한잔 나누면서 뭉친 모습으로상상하고 있는 건 아니겠지?그들이 서로를 몰랐겠는가.유비가 누구이고, 어떤 상황에 놓여 있는지,관우는 어떤 사람이고, 무엇을 중요시 여기는지,장비는 성격이 어떻고, 무엇이 관심사인지...그리고 그들이 공통적으로 꿈꾸는 목적이무엇인지 제대로 나누지도 않은 채그냥 꽃잎 날리는 복숭아나무 아래에서술 한 잔 주거니 받거니 하며의형제를 맺었겠는가.서로 다른 환경에서다른 삶을 살아왔던셋이 모여 리더(유비)를 정하고,더 필요한 누군가(공명)를 영입하고,후원자와 병사들을 모으고황건적의 난이라는 시기적절한 타이밍에그들이 전면에 등장하지 않았던가.단지,동지애만으로,즉흥적인 분위기에 휩쓸려서,아는 사람들이니까,백지장도 맞들면 낫다니까이런 말도 안 되는 이유로연합하자는 것은다 죽자는 거다.혼자 가는 길보다는 같이 가는 길이더 좋을 거라 착각하지 말자.같이 가는 길이 같은 방향일 때,같이 가는 동료가 서로에게 도움이 될 때,동행이 의미있고, 행복한 길이 되는거지무작정 함께라고 꽃길이 되지 않는다.함께 동행한다고 안심했는데그 길이 낭떠러지로 향하는 길일 수도 있다.이 글을 쓰는 말미에 꼭 남기고 싶은 말이 있다.스타트업 간의 연합 또는 콜라보레이션이나쁘다는 주장으로 오해하지 마시라.어정쩡한 콜라보레이션을 피하자는 것이다.방향이 없는, 목적성이 없는, 신뢰가 없는그런 연합을 만들지 말라는 것이다.실제로콜라보레이션이 성공한 케이스는너무나도 많다.그들이 성공한 이유는서로에게 시너지를 줄 수 있는제대로 된 콜라보레이션이었기 때문이다.한 가지만 더 첨언하자면,우리가 좋은 스타트업과 함께 동행하길 원한다면,우리도 상대에게 좋은 스타트업으로 준비되어 있어야 한다.세상은 Give and Take!줄 것이 있어야 받을 것이 있고,우리에게도 무언가가 있어야상대방의 필요를 채워 줄 수 있다.오늘도스타트업 창업자 동지들을 응원합니다.#클린그린 #스타트업 #스타트업창업 #초기창업 #창업자 #고민 #응원 #인사이트
조회수 1177

레진 기술 블로그 - AWS Auto Scalinging Group 을 이용한 배포

레진코믹스의 서버 시스템은 잘 알려진대로 Google AppEngine에서 서비스되고 있지만, 이런저런 이유로 인해 최근에는 일부 컴포넌트가 Amazon Web Service에서 서비스되고 있습니다. AWS 에 새로운 시스템을 셋업하면서, 기존에 사용하던 PaaS인 GAE에서는 전혀 고민할 필요 없었던, 배포시스템에 대한 고민이 필요했습니다. 좋은 배포전략과 시스템은 안정적으로 서비스를 개발하고 운영하는데 있어서 필수적이죠.초기에는 Beanstalk을 이용한 운영에서, Fabric 을 이용한 배포 등의 시행착오 과정을 거쳤으나, 현재는 (스케일링을 위해 어차피 사용할 수밖에 없는) Auto Scaling Group을 이용해서 Blue-green deployment로 운영 중입니다. ASG는 여러 특징 덕분에 배포에도 유용하게 사용할 수 있습니다.ASG를 이용한 가장 간단한 배포는, Instance termination policy 를 응용할 수 있습니다. 기본적으로 ASG가 어떤 인스턴스를 종료할지는 AWS Documentation 에 정리되어 있으며, 추가적으로 다음과 같은 방식을 선택할 수 있습니다.OldestInstanceNewestInstanceOldestLaunchConfigurationClosestToNextInstanceHour여기서 주목할 건 OldestInstance 입니다. ASG가 항상 최신 버전의 어플리케이션으로 스케일아웃되게 구성되어 있다면, 단순히 인스턴스의 수를 두배로 늘린 뒤 Termination policy 를 OldestInstance 로 바꾸고 원래대로 돌리면 구버전 인스턴스들부터 종료되면서 배포가 끝납니다. 그러나 이 경우, 배포 직후 모니터링 과정에서 문제가 발생할 경우 기존의 인스턴스들이 이미 종료된 상태이기 때문에 롤백을 위해서는 (인스턴스를 다시 생성하면서) 배포를 다시 한번 해야 하는 반큼 빠른 롤백이 어렵습니다.Auto scaling lifecycle 을 이용하면, 이를 해결하기 위한 다른 방법도 있습니다. Lifecycle 은 다음과 같은 상태 변화를 가집니다.기본적으로,ASG의 인스턴스는 InService 상태로 진입하면서 (설정이 되어 있다면) ELB에 추가됩니다.ASG의 인스턴스는 InService 상태에서 빠져나오면서 (설정이 되어 있다면) ELB에서 제거됩니다.이를 이용하면, 다음과 같은 시나리오로 배포를 할 수 있습니다.똑같은 ASG 두 개를 구성(Group B / Group G)하고, 그 중 하나의 그룹으로만 서비스를 운영합니다.Group B가 라이브 중이면 Group G의 인스턴스는 0개입니다.새로운 버전을 배포한다면, Group G의 인스턴스 숫자를 Group B와 동일하게 맞춰줍니다.Group G가 InService로 들어가고 ELB healthy 상태가 되면, Group B의 인스턴스를 전부 Standby로 전환합니다.롤백이 필요하면 Standby 상태인 Group B를 InService 로 전환하고 Group G의 인스턴스를 종료하거나 Standby로 전환합니다.문제가 없다면 Standby 상태인 Group B의 인스턴스를 종료합니다.이제 훨씬 빠르고 안전하게 배포 및 롤백이 가능합니다. 물론 실제로는 생각보다 손이 많이 가는 관계로(특히 PaaS인 GAE에 비하면), 이를 한번에 해주는 스크립트를 작성해서 사용중입니다. 대략 간략하게는 다음과 같습니다. 실제 사용중인 스크립트에는 dry run 등의 잡다한 기능이 많이 들어가 있어서 걷어낸 pseudo code 입니다. 스크립트는 사내 PyPI 저장소를 통해 공유해서 사용 중입니다.def deploy(prefix, image_name, image_version): '''Deploy specified Docker image name and version into Auto Scaling Group''' asg_names = get_asg_names_from_tag(prefix, 'docker:image:name', image_name) groups = get_auto_scaling_groups(asg_names) # Find deployment target set future_set = set(map(lambda g: g['AutoScalingGroupName'].split('-')[-1], filter(lambda g: not g['DesiredCapacity'], groups))) if len(future_set) != 1: raise ValueError('Cannot specify target auto scaling group') future_set = next(iter(future_set)) if future_set == 'green': current_set = 'blue' elif future_set == 'blue': current_set = 'green' else: raise ValueError('Set name shoud be green or blue') # Deploy to future group future_groups = filter(lambda g: g['AutoScalingGroupName'].endswith(future_set), groups) for group in future_groups: asg_client.create_or_update_tags(Tags=[ { 'ResourceId': group['AutoScalingGroupName'], 'ResourceType': 'auto-scaling-group', 'PropagateAtLaunch': True, 'Key': 'docker:image:version', 'Value': image_version, } ]) # Set capacity, scaling policy, scheduled actions same as current group set_desired_capacity_from(current_set, group) move_scheduled_actions_from(current_set, group) move_scaling_policies(current_set, group) # Await ELB healthy of instances in group await_elb_healthy(future_groups) # Entering standby for current group for group in filter(lambda g: g['AutoScalingGroupName'].endswith(current_set), groups): asg_client.enter_standby( AutoScalingGroupName=group['AutoScalingGroupName'], InstanceIds=list(map(lambda i: i['InstanceId'], group['Instances'])), ShouldDecrementDesiredCapacity=True ) def rollback(prefix, image_name, image_version): '''Rollback standby Auto Scaling Group to service''' asg_names = get_asg_names_from_tag(prefix, 'docker:image:name', image_name) groups = get_auto_scaling_groups(asg_names) def filter_group_by_instance_state(groups, state): return filter( lambda g: len(filter(lambda i: i['LifecycleState'] == state, g['Instances'])) == g['DesiredCapacity'] and g['DesiredCapacity'], groups ) standby_groups = filter_group_by_instance_state(groups, 'Standby') inservice_groups = filter_group_by_instance_state(groups, 'InService') # Entering in-service for standby group for group in standby_groups: asg_client.exit_standby( AutoScalingGroupName=group['AutoScalingGroupName'], InstanceIds=list(map(lambda i: i['InstanceId'], group['Instances'])) ) # Await ELB healthy of instances in standby group await_elb_healthy(standby_groups) # Terminate instances to rollback for group in inservice_groups: asg_client.set_desired_capacity(AutoScalingGroupName=group['AutoScalingGroupName'], DesiredCapacity=0) current_set = group['AutoScalingGroupName'].split('-')[-1] move_scheduled_actions_from(current_set, group) move_scaling_policies(current_set, group) 몇 가지 더…Standby 로 돌리는 것 이외에 Detached 상태로 바꾸는 것도 방법입니다만, 인스턴스가 ASG에서 제거될 경우, 자신이 소속된 ASG를 알려주는 값인 aws:autoscaling:groupName 태그가 제거되므로 인스턴스나 ASG가 많아질 경우 번거롭습니다.cloud-init 를 어느 정도 최적화해두고 ELB healthcheck 를 좀 더 민감하게 설정하면, ELB 에 투입될 때까지 걸리는 시간을 상당히 줄일 수 있긴 하므로, 단일 ASG로 배포를 하더라도 롤백에 걸리는 시간을 줄일 수 있습니다. 저희는 scaleout 시작부터 ELB에서 healthy 로 찍힐 때까지 70초 가량 걸리는데, 그럼에도 불구하고 아래의 이유 때문에 현재의 방식으로 운영중입니다.같은 방식으로 단일 ASG로 배포를 할 수도 있지만, 배포중에 혹은 롤백 중에 scaleout이 돌면서 구버전 혹은 롤백 버전의 인스턴스가 투입되어버리면 매우 귀찮아집니다. 이를 방지하기 위해서라도 (Blue-green 방식의) ASG 두 개를 운영하는게 안전합니다.같은 이유로, 배포 대상의 버전을 S3나 github 등에 기록하는 대신 ASG의 태그에 버전을 써 두고 cloud-init 의 user-data에서 그 버전으로 어플리케이션을 띄우게 구성해 두었습니다. 이 경우 인스턴스의 태그만 확인해도 현재 어떤 버전이 서비스되고 있는지 확인할 수 있다는 장점도 있습니다.다만 ASG의 태그에 Tag on instance 를 체크해 두더라도, cloud-init 안에서 이를 조회하는 경우는 주의해야 합니다. ASG의 태그가 인스턴스로 복사되는 시점은 명확하지 않습니다. 스크립트 실행 중에 인스턴스에는 ASG의 태그가 있을 수도, 없을 수도 있습니다.굳이 인스턴스의 Lifecycle 을 Standby / InService 로 전환하지 않고도 ELB 를 두 개 운영하고 route 53 에서의 CNAME/ALIAS swap 도 방법이지만, DNS TTL은 아무리 짧아도 60초는 걸리고, JVM처럼 골치아픈 동작 사례도 있는만큼 선택하지 않았습니다.물론 이 방법이 최선은 절대 아니며(심지어 배포할때마다 돈이 들어갑니다!), 현재는 자원의 활용 등 다른 측면에서의 고민 때문에 새로운 구성을 고민하고 있습니다. 이건 언젠가 나중에 다시 공유하겠습니다. :)
조회수 726

[Buzzvil Culture] Buzzvil FUN Club

 “All work and no play make Jack a dull boy.”  이 격언은 사람이 온전히 성장하는데 있어서 열심히 배우는 것 만큼이나 잘 노는것도 매우 중요하다는 의미인데요. 이를 회사에 적용해보면 개개인이 주어진 업무에 최선을 다하는 것 만큼이나 회사에서 즐겁게 생활 하는 것이 개인과 회사의 성장에 중요한 역할을 한다는 의미로 볼 수 있습니다. 하지만 회사는 본질적으로 업무를 하는 곳이기에 직원들이 즐거워하는 회사를 만드는 것은 어쩌면 직원들이 열심히 일하는 회사를 만드는 것보다 더 어려운 일일지도 모릅니다. 버즈빌에는 그 쉽지 않은 일을 스스로의 손으로 이루어 가는 직원들이 있습니다. 직원의 입장에서 좀 더 즐거운 회사를 만들기위해 노력하는 버즈빌 펀클럽을 소개합니다! 버즈빌 펀클럽은 2014년 어느 날, “더 즐거운 버즈빌을 만들어 보자”라는 생각으로 5명의 버즈빌리언들이 의기투합하여 자생적으로 만들어졌습니다. 그 이후로 매달 있는 전체 회식의 다양한 프로그램은 물론 해외 오피스 직원들과 모두 함께 떠나는 글로벌 워크샵, 버즈빌리언들의 열정을 확인 수 있는 운동회, 한해를 마무리하는 송년회까지 다양한 행사들을 직접 기획하고 실행하며 더 즐거운 버즈빌을 만들기 위한 활동들을 계속해 오고 있습니다. 그동안 수많은 버즈빌리언이 펀클럽을 거쳐갔고 2018년 6월 현재에는 소속된 팀도, 하는 업무도 각양각색인 8명의 버즈빌리언들이 펀클럽의 멤버로 활동하고 있습니다.[Image] 이번달 회식 결정을 위한 펀클럽 회의   매달 1~2회 진행되는 펀클럽 회의는 더 새롭고 즐거운 버즈빌을 위한 다양한 의견들이 오가는 자리입니다. 이 회의가 더욱 의미가 있는 점은 회의 결과가 단순히 의견 제시에서 끝나는 것이 아니라 회사의 의사결정으로 이어지기 때문입니다. 매 달 진행하는 전체회식은 펀클럽회의에서 결정된 컨셉과 방향대로 진행하고 있고 지난 3월에 있었던 2018년 해외워크샵의 경우에도 워크샵 장소부터 숙소, 세부 일정, 단체 액티비티 등 다양한 부분에 펀클럽 회의에서 나온 의견들이 반영되었습니다. 이처럼 버즈빌리언들이 함께 어울리고 즐거운 경험을 할 수 있는 다양한 일들에 대한 고민들을 해나가는 곳이 바로 펀클럽이라고 할 수 있습니다. [Image] 야외 회식을 위한 장보기도 펀클럽의 몫   하지만 누군가를 즐겁게 한다는 것이 늘 좋은 일만은 아닙니다. 개성가득한 70여명의 버즈빌리언들이 모여있는만큼 모두가 즐거워 할 만한 행사를 기획하는 것도 쉽지 않은데다가 펀클럽 활동에 대한 특별한 혜택이 있는 것도 아니기 때문입니다. 그럼에도 불구하고 펀클럽이 계속해서 유지되는 이유는 무엇일까요? 그 이유의 중심에는 버즈빌 문화에 대한 주인의식이 있는게 아닐까 합니다. 우리가 원하는 버즈빌의 문화를 우리의 손으로 만들어 간다는 생각, 즐거운 회사는 누군가에 의해 만들어지는 것이 아니라 스스로 만들어 가야한다는 생각, 정말 좋은 사람들과 함께 더 재미있는 일들을 해보고 싶다는 생각들이 모여서 지금의 펀클럽을 그리고 지금의 버즈빌의 문화를 만들어 왔다고 생각합니다. 그렇기에 편클럽의 활동이 가지는 의의는 더 큽니다. 멤버들 스스로가 모여서 회사를 단순히 업무의 공간이 아닌 즐거움의 공간으로 만들어 나가려는 시도이기 때문입니다. 그리고 이런 시도들은 버즈빌 전체에 에너지를 불어넣는 일이기도 합니다. 앞으로도 적극적인 지원을 통해 펀클럽이 버즈빌의 문화로서 잘 정착되어 나가기를 바라봅니다. 다가오는 여름에도, 뻔하디 뻔한 회사생활을 Fun하게 만들어 가려는 버즈빌 펀클럽의 활약을 기대해 주세요 ! 
조회수 732

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

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

기업문화 엿볼 때, 더팀스

로그인

/