여러 회사를 거치며 서비스를 론칭&운영해보니 좋은 제품을 만들기 위해서 개발팀에 필요한 인재상이 무엇인지 눈에 보이기 시작했다. 이번 글에서는 개발자 인재상에 대해 이야기를 해 볼 생각이다. 주변을 둘러보면 여기 제시되는 모든 덕목을 갖춘 사람도 있고, 일부분만 해당하는 사람도 있다. 하지만 적어도 하나 이상은 필수 조건으로 꼭 해당이 되어야겠다. 참고로 글은 생각나는 대로 작성했기 때문에 나열된 순서가 우선순위(중요도)를 나타내지는 않는다. 글을 읽고 본인은 어떤 사람인지 생각해보면 좋다. # 다방면으로 얕지만 넓게 아는 사람 그야말로 여러 분야에서 통찰력이 있는 사람이다. 본인의 업무를 제외하더라도 아는게 많아서 여기저기 도움을 주는 인재상. 예를 들어 프런트 개발자가 퍼블릭 클라우드 인프라에 대한 ..
리눅스 시스템은 시리얼 포트를 통해 모니터 출력을 제공한다. 직렬 포트로 직역해서 사용하기도 하는데 대충 아래 그림과 같이 생겼다. 아마도 예전 CRT 모니터쯤에서 흔히 봤음직한 포트인데, 이 단자를 통해 리눅스 시스템의 터미널로 접근이 가능하다. putty나 SecureCRT 같이 SSH, Telnet을 지원하는 터미널 에뮬레이터에는 serial port옵션도 제공을 하니 많이들 사용하는 방법이다. 시리얼 포트는 기기에 일반적인 통신이 불가능한 상태에서 사용하게 된다. 보통 공장초기화 상태의 기기나, sshd, telnetd 같은 데몬이 정상적으로 서비스되고 있지 않아서 기기에 접속이 불가능한 경우에 사용하면 용이하겠다. 클라우드로 세상이 바뀌어가면서 시리얼 포트는 점점 잊혀갔지만 여전히 필요한 순간들..
장마 때문에 빗소리가 우렁찬 밤에 위대한 역사를 읽어내려갔다. 속독했다고는 하지만 주말 한 시간이 눈 깜짝할 사이에 사라졌다. 한빛미디어에서 내놓은 유닉스의 탄생이 바로 그 원인이다. 십수년간 IT 업계에서 커널 개발을 시작으로 대부분의 시간을 백엔드 개발, 인프라와 보냈다. 그리고 그 중심에는 항상 *NIX가 있었다. 그리고 개인적인 관심으로 *NIX 관련해서 여러 문헌을 읽었지만, 이 책은 인터넷에 돌아다니는 모든 관심사의 종합 본이다. 저자인 브라이언 커니핸은 30년 동안 벨 연구소의 컴퓨팅 과학 연구 센터에서 일했는데 그가 지켜본 역사를 이 책에 녹여냈다. 어쩌면 자서전처럼 보일지도 모르는 책이지만 덤덤하게 이야기하는 역사에 소름이 끼칠 지경. 그의 과거 행적을 현재의 내가 누리고 있다. 근래에 ..
2019년 11월 GA 된 Cloud Run에 대한 이야기를 해볼까 합니다. GCP에는 이미 서버리스에 한축을 담당하는 Cloud Functions가 GA 되었음에도 여전히 부족한 게 사실입니다. 자체적으로는 꽤 쓸만할지 모르겠으나 타사의 서버리스를 사용해본 유저라면 여러 가지로 불편한 게 사실이죠. 더욱이 앞질러가고 있는 서비스(이를테면 AWS)를 흉내 내는 듯한 모양새는 어쩔 수 없는 후발주자의 모습이었습니다. - 관련 글 : Cloud Functions, 이래서 베타다 그러던중 Cloud Next 2019에서 Cloud Run이 소개되었고 서버리스의 새로운 장을 여는 느낌이었습니다. 컨테이너 기반으로 동작하기 때문에 이식성이 좋고 기존에 도커와 같은 툴에 익숙하다면 진입장벽이 한없이 낮습니다. Cl..
한빛미디어 리뷰어 프로그램을 통해 전달받은 팀 개발을 위한 Git・GitHub 시작하기 책은 아주 재미있다. 오래전부터 공식 도큐먼트를 통해 충분히 봐온 명령어, 그리고 특히 현업에서 사용하고 있는 친근한 명령어와 사이트(GitHub)를 이 책은 어떻게 표현하고 있을까. 이 책은 표지에서 표현하는 것처럼 GUI 환경을 통해 친숙하게 접근하고, CLI 환경으로 실제 어떤방식으로 동작 하는지 잘 설명하고 있다. 아마 레포지토리를 처음 사용하는 개발자에게는 최고의 선물이지 않을까? 다만 아쉬운 부분이 있다면 책에서 다루는 GUI 부터가 생소한 사람이라면 ... 아 아니다. 애초에 모든 독자층을 커버 하기란 쉽지 않으니까. 특히 풀컬러로 구성되어 있는 이 책의 친절함은 많은 뉴비 개발자에게 단비와 같을 것이다...
! 앱피움 소개, 설치 방법을 가이드하는 글이 아닌, 조직에 도입하면서 겪은 경험을 일기처럼 써 내려간 글입니다. 글 중간중간 가볍게 적은 내용에서 인사이트를 얻으실 수 있기를 바랍니다. 앱 테스트 자동화를 알아보다 보면 엷은 물줄기가 호수로 모이듯이 결국 앱피움(appium)이라는 오픈소스 테스트 자동화 프레임워크로 귀결된다. 이번에 QA 조직에서 테스트 자동화를 도입할 수 있도록 가까운 곳에서 지원하며 익힌 내용을 두서없이 기록해본다. 이미 인터넷에는 앱피움의 소개 글이나 설치 방법들을 어렵지 않게 찾아볼 수 있는데 정작 이것으로 무엇이 가능하고, 어떻게 활용되는지에 대한 글은 부족해 보인다. 아니, 어쩌면 이미 얕게 충분히 살펴본 사람들의 글이라서 지식의 저주[1]에 빠져 내용 전달이 부실하게 느껴..
한빛미디어를 통해 발간된 번역서 "배워서 바로 쓰는 스프링 부트2" 책을 리뷰 이벤트를 통해 받아보게 되었다. 재미있는 배경이 있는데 본인이 최근에 맡은 신규 프로젝트가 스프링으로 구성되었고, 덕분에 스프링을 처음 접하게 되었다. 그 후로 스프링 개발을 5개월 정도 하고 다른 업무(PM)를 진행하게 되어 스프링에 대한 감을 잃어가고 있었다. 원래 빠르게 익힌 것은 빠르게 잊게 된다는 말처럼 실무에서 실력자들(십수 년 자바&스프링으로 개발을 해오신 고수들)에게 어깨 넘어 배웠던 내용들이 머릿속에 오래 남아있지 않았던 것 같다. 아무튼, 다시 스프링을 통해 업무를 처리하고 감을 되찾아야겠다고 생각하는 찰나에 이 책을 만나게 되었다. 이 책을 처음 본건 페이스북 광고를 통해서인데, 댓글에 작성되어 있던 비판적..
2018년 10월쯤부터 2020년 5월까지 퍼블릭 클라우드의 커뮤니티 오거나이저로 활동을 해왔다. 공식적인 활동이기 때문에 클라우드 운영사의 지원을 받아 다양한 행사를 진행해보는 등 여러 가지 경험을 쌓을 수 있었다. 약 1년 6개월. 짧다면 짧고 길다면 긴 여정을 돌이켜보며 미래의 나를 위해 추억하고 정리해 본다. 두서없이 작성한 글이라 누군가 불편을 느끼지 않기를 바란다. 그런 의미로 소속에 대한 상세한 언급은 피했다. 일단 퍼블릭 클라우드의 커뮤니티 오거나이저라고 하면 클라우드 기술을 널리 알리기 위해 기술 스터디, 콘퍼런스 등을 주최 함으로써 이쪽 생태계에 기여하는 역할을 수행하는 사람이라고 정의할 수 있다. 이외에도 다양한 활동이 있지만 핵심가치는 생태계 기여이다. 그리고 댓가가 없는 활동이다 ..
본인은 인공지능 스피커의 가장 큰 사용성은 음악 재생이라고 생각한다. 그런 면에서 현재 멜론을 구독하고 있기 때문에 인공지능 스피커를 구입한다면 카카오에서 판매되는 카카오 미니 등을 구매하는 게 맞지만 멜론에 굉장히 실망하고 있는 요즘 카카오 인공지능 스피커를 살 이유가 없다. 더욱이 멜론을 구독하고 있지만 정작 한 달 재생 시간은 1시간 미만... 애플 뮤직이나 유튜브 뮤직으로 옮겨가는 것도 생각했지만 자주 듣는 앨범 설정하는 게 귀찮아서 망설이고 있었다. 그러던 중에 구글에서 인공지능 스피커의 점유율을 높이려고 유튜브 프리미엄 고객 대상으로 구글 홈 미니를 공짜로 잔뜩 풀었다. 덕분에 중고 시장에는 값싼 매물이 넘쳤고 이 기회에 한번 써보자며 구글 홈 미니를 구입하게 됐다. 싼 맛에 한번 써보자는 심..
오늘의집, 스타일쉐어, 당근마켓, 인스타그램, 틱톡 이 앱들의 공통점은 1) 고객이 업로드한 이미지가 곧 메인 상품인 서비스이고 2) 사용자가 앱 내에 머무르는 시간이 경쟁의 척도가 될 수 있는 서비스라는 점이다. 사용자가 앱에 오래 머물게 하려면 여러 요소들이 충분히 흥미로워야 되고 피로감을 주지 않아야 한다. 이걸 풀어보면 사용자에게 익숙한 UX를 제공하던지 앱을 쉽게 사용할 수 있어야 한다는 뜻이다. 또한 앱 내 모든 로딩과 반응 속도는 200ms 안으로 처리해서 사용자에게 피로감을 주지 말아야 한다. 눈을 깜빡이는 200ms 동안 계속 이미지 로딩하는 화면이 보이고 있다면 고객님은 금세 따분함을 느끼게 된다. 상품 목록을 쇼핑할 때 엄지 손가락으로 한번 스크롤하고 다음 스크롤을 위해 엄지가 스크린..
"개발 7년차, 매니저 1일차"는 한빛미디어 리뷰 이벤트 덕분에 받아보게 된 매니저에 대한 책이다. 이 책이 굉장히 흥미로운 점은 개발자가 매니저 역할로 돌아서면서 심리적으로 두려워하는 부분, 우려하는 포인트 그리고 역할 등에 대해서 잘 표현하고 있다는 점이다. 가령 매니저가 정말 개발자의 무덤인지, 팀을 위해 무엇을 해야 하는지, 갈등은 어떻게 해소해야 하는지와 같은 이야기가 잔뜩 실려있다. 특히, Tech Lead, Manager, Team Lead, Tech Manager, CTO 역할에 대해 다시 한번 생각해볼 기회를 준다. 그리고 각 위치에 따라 결정해야 하는, 혹은 맞이하게 되는 미션과 방향을 해소해주는 아주 재밌는 책이다. 예를 들어 단순히 "매니저가 됐으면 1 on 1을 해야 한다"에서 끝..
스마트폰 보급과 함께 하루에도 셀 수 없을 만큼 많은 앱이 출시되고 사라지는 세상이 되었다. 개인이 큰 욕심 없이 설렁설렁 출시하는 경우도 있지만 조직적으로 많은 사람들의 노력과 결실로 세상에 출시되는 앱도 많다. 대기업부터 작은 벤처 규모의 스타트업까지 많은 사람들이 대박을 꿈꾸며 서비스를 출시하는데 오늘날 이런 경쟁에서 이기려면 어떤 전략이 필요할까? 이번 글에서는 성공을 위한 최소한의 조건에 대한 너무나 당연한 이야기를 해보려고 한다. 대부분의 신생 스타트업을 살펴보면 팀을 꾸릴 때 가장 먼저 찾는 게 개발팀이다. 그만큼 서비스의 승패에 가장 밀접하게 맞닿아 있다고 볼 수 있는데 뛰어난 개발자들을 잔뜩 모았다고 서비스가 성공할까? 물론 여타의 경우보다 가능성이 높은 건 사실이다. 이 경우에는 클라이..
패키지를 다운로드 받아서 npm install 시켰는데 아래와 같은 오류가 발생했다. $ npm install > fsevents@1.2.11 install /Users/jybaek/work/foo/client/node_modules/fsevents > node-gyp rebuild xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer direct..
요즘 한참 쿠버네티스에 딥-다이브 하기 위해서 여러 가지 책을 닥치는 대로 읽고 있는데 마침 한빛미디어에서 리뷰를 제안한 책이 쿠버네티스 관련된 책이었다. 제목이 거창하지만 입문하는 사람도 충분히 읽을 수 있을만한 책이라고 생각된다. 컨테이너란 무엇인지부터 천천히 알아보고 쿠버네티스의 발전 배경에 대해서도 다룬다. 클라우드 네이티브 데브옵스라는 이름에 걸맞게 GCP, AWS, Azure 등에서의 쿠버네티스도 가볍게 설명해주고 있으며 관리를 위해 알아야 하는 파드, 클러스터, 스케줄러, 디플로이먼트 등 용어를 하나씩 실습을 통해서 익힐 수 있도록 해준다. 파드 : 하나 이상의 컨테이너 그룹으로 구성된 쿠버네티스 오브젝트 클러스터 : 여러 대의 물리적인 서버를 묶어놓은 상태 스케줄러 : 노드에서 아직 실행되..
# History 집에서 SK브로드밴드를 사용하고 있고 핸드폰이나 노트북, 아이패드 등 무선 기기들은 iptime 공유기를 통해서 사용하고 있다. 초반에 인터넷을 들여놨을 때는 속도가 느리다는 걸 못 느끼고 있었는데 시간이 지날수록 사용하지 못할 정도로 속도가 떨어졌다. 참고로 집에서 인터넷을 사용할 일이 많지 않으니까 저렴한 100MB 회선을 사용하고 있다. 시간이 지나고 도저히 안되겠다는 생각으로 브로드밴드에 전화해서 더 높은 등급의 회선으로 변경하려고 했지만... 현재 거주 중인 아파트에 기가랜은 들어오지 않는다고... 아무튼, 이렇게 된 이상 더 나은 환경을 만들기 위해 나서야겠다. IT 경력이 십수년인데 신호 증폭기라도 만들어야 하지 않겠냐는 생각으로 고민을 시작했다. 사실 100MB 회선은 가..
우한 폐렴이 2020년 구정부터 세계적으로 난리다. 우리나라의 경우 특정 종교집단이 바이러스를 퍼 날라 온 나라를 바이러스 공포에 몰아넣었다. 한국을 입국 불가 국가로 지정한 나라도 생기는 걸 보면 확실히 이번 바이러스의 영향력이 실감된다. 이미 몇 백 원 하던 마스크는 열 배 가까이 가격이 올랐고 생필품 사재기까지 부분적으로 시작되고 있다. 그만큼 이번 코로나 19의 전염성은 지난 사스나 메르스보다 강력하다. 미세먼지가 극성이던 지난겨울에도 마스크를 착용하고 있는 행인들이 많지 않았는데 이제는 90% 이상은 마스크를 착용하는 듯하다. 각설하고 이번 사태로 인해서 SK, 카카오, 쿠팡 등 대기업부터 중견기업, 스타트업까지 많은 기업들이 근무 형태를 재택근무로 돌리고 있으며 본인이 현재 재직하고 있는 회사..
Paypal 결제를 연동할 때 복수의 상품(장바구니)을 구매하는 경우에는 다음과 같이 item_list를 사용하면 된다. 아래 소스코드는 페이팔에서 제공하는 샘플 예제이다. curl -v -X POST https://api.sandbox.paypal.com/v1/payments/payment \ -H "Content-Type: application/json" \ -H "Authorization: Bearer Access-Token" \ -d '{ "intent": "sale", "payer": { "payment_method": "paypal" }, "transactions": [ { "amount": { "total": "30.11", "currency": "USD", "details": { "subt..
개인적으로 공부한 내용을 정리하고 있는 글입니다. 글에 잘못된 부분이 있다면 인상을 쓰기보다는 제가 상처받지 않도록 부드럽고 자유롭게 의견 부탁드립니다. :-) # 마스터, 노드, 파드(pod) 개념 잡기 쿠버네티스의 가장 큰 핵심 기능은 컨테이너 오케스트레이션이다. 여러 개의 컨테이너의 상태를 확인하고 관리한다는 의미인데 트래픽의 증가 처럼 리소스가 더 필요한 상황이 되면 컨테이너를 증설(일종의 스케일-아웃 / 수평 확장)하기도 하고, 비정상 상태에 빠진 컨테이너를 종료하거나 새로운 컨테이너를 생성하는 등의 역할을 수행한다는 개념이다. 오케스트라에서 지휘자가 단원들을 지휘 하듯이 말이다. 이렇게 컨테이너를 오케스트레이션 가능하게 만드는 첫 번째 개념이 컴포넌트 집합이라고 할 수 있겠는데 바로 "마스터 ..
해외 문자를 발송하기 위한 솔루션을 리서치해보니 국내외로 여러 업체가 있는데 국내 업체는 영 탐탁하지 않은 구석이 있었다. 기본적으로 서비스의 얼굴이 되는 홈페이지 자체가 HTTPS를 지원하지 않는 곳도 있는데, 이런 경우에는 해당 업체에 대한 신뢰도가 확 떨어진다. 그리고 DB - AGENT 방식으로 지원하는 곳은 일단 탈락. 발송 인프라 관리의 주체가 유저가 되어서는 안 된다. 이건 혹여라도 AGENT 문제로 장애가 발생하면 입증하는 것도 골치 아프기 때문이다. DB에 문제가 생겼을 때는 더 피곤한데 그 책임이 온전히 우리한테 있게 되니 최소 이중화 구성까지 신경써야 한다. 이러한 이유로 서비스 전체 인프라가 솔루션 업체에서 관리 되는 곳을 찾는게 좋다. 그런 면에서 봤을 때 이런 부류의 서비스를 제..
데이터베이스 연결 도구로 그동안 Sequel Pro를 사용해오고 있었는데 프로그램이 죽어도 너~무 잘 죽습니다. 프로그램이 툭하면 멈추고 종료되는 현상 때문에 업무 때문에 마음 조급할 때는 한없이 스트레스를 받고는 했는데요, 아무튼 Mac 스럽게 깔끔한 GUI가 마음에 들어서 버텨보려고 했으나 이제 그 한계가 찾아온 듯해서 대안으로 DBeaver라는 툴을 사용하기로 했습니다. Sequel Pro의 경우에는 MySQL 서버만 연결할 수 있고 PostgreSQL 연결을 위해서는 다른 도구를 사용해야 했습니다. 예를 들면 PSequel 같은 도구를 말이죠. Sequel Pro와 상당히 유사한 UI 때문에 적응하는데 어려움은 없지만 MySQL과 PostgreSQL 두 종류의 데이터베이스를 사용하려면 클라이언트 ..
- Total
- Today
- Yesterday