11월 6일에 있었던 AWS Dev Day 2018에서 들었던 내용 중, 기억할만한 것 몇가지를 정리해보려고 한다. 발표 자료가 공유되면 그때 정리하려고 했는데, 생각보다 늦게 공개되는 모양이다. 그래서, 별 내용은 없더라도 머릿속에 조금 더 남아있을 때에 남겨본다.

딥러닝 서비스에 쓰이는 GPU 인스턴스 비용 효율을 위한 스팟(Spot) 활용기

  • "콴다" 서비스를 운영한 경험 공유
  • 컨테이너 환경을 사용하기 위해서 nvidia-docker를 사용
  • 사실 GPU 비용은 비싸서 온프레미스 환경이 더 저렴할 수도 있음.
    • 온프레미스에 배포하고 피크 타임 시에만 클라우드 사용하는 것도 방법.
    • 컨테이너 이미지를 보유하고 있으면 환경이 문제되지 않음.
  • 인스턴스 체크만으로는 확장에 필요한 지표로 삼기 어려워서 서비스 처리 상태 지표를 추가로 사용함.
  • 스팟 인스턴스 활용
    • 스팟 인스턴스가 죽는 경우에는 온디맨드 인스턴스 배포
    • 스팟 인스턴스 종료 2분전 상태를 확인해서 온디맨드 인스턴스 시작하는 도구 필요함.

Apache MXNet/Gluon으로 쉽고 빠르게 구현하는 딥러닝

  • Gluon은 Apache MXNet 인터페이스로 NumPy와 유사한 API를 제공하고, 데이터 변환이 가능
  • gradient를 자동으로 계산하는 Autograd 기능을 제공
  • GluonNLP, GluonCV 등의 프로젝트 있음

AWS 기반 블록체인 (1부) 블록체인 환경 구성하기 / (2부) 블록체인 서비스 개발하기

쿠버네티스 환경에 geth 등을 배포하여 PoA 프라이빗 네트워크를 구성하는 것을 보여주고, 2부에서 DApp 개발하는 시연을 보여주는 시간이었다.

코드는 모두 아래의 깃헙에 있다.

나중에 알게된 것이지만, 쿠버네티스에 이더리움 배포는 helm을 사용하면 간편하게 되는 듯 하다. 그리고, 개발 시연 중에 사용/언급한 도구들은 아래와 같다.

Service Mesh를 Amazon EKS로 구현하기

LinkerdIstio라는 도구를 사용하는 것을 보여주었는데, AWS에서 이와 관련한 서비스를 내놓을 듯?

'Etc' 카테고리의 다른 글

AWS Dev Day 2018 Seoul  (0) 2018.11.12
Pencil  (0) 2017.11.29
자바 퍼즐러  (0) 2015.06.25
Ship it 성공적인 소프트웨어 개발 프로젝트를 위한 실용 가이드  (0) 2015.06.24

UI 프로토타이핑 도구를 찾다가 Pencil 이라는 프로젝트를 발견했다. 꽤 오래전에 한번 보고 기능이 너무 단순하고 예쁘지 않아서 관심을 가지지 않았던 기억이 있는데, 최근에 다시 봤더니 꽤 쓸만해졌다. "The Next Version"이라는 말이 있는 걸 보니 Electron 기반으로 새로 만든 것 같다.

사실 비용 지출에 부담이 없는 상황이면 Balsamiq을 사용해도 되겠지만, 이런 도구를 무료로 사용할 수 있다니 훌륭한 것 같다.



'Etc' 카테고리의 다른 글

AWS Dev Day 2018 Seoul  (0) 2018.11.12
Pencil  (0) 2017.11.29
자바 퍼즐러  (0) 2015.06.25
Ship it 성공적인 소프트웨어 개발 프로젝트를 위한 실용 가이드  (0) 2015.06.24

이 책을 보기 전에 "프로그래밍 수수계끼 모음집"이라는 소개만 보고 자바로 해결하는 알고리즘 문제를 담은 책이라고 생각했는데, 예상이 빗나갔다. 이 책은 자바 언어의 특성을 잘 모르면 발생할 수 있는 문제점을 다루고 있었다.

무거울 것 같은 내용과는 달리 "세상에서 가장 재미있는 자바 책"이라는 수식어를 달아놨는데, 실제로 가벼운 퍼즐 책과 같은 형식이라서 부담없이 읽기 좋았다. 알고리즘 문제처럼 많은 시간을 들여서 문제를 반드시 풀어봐야하는 것도 아니라서, 어떤 함정이 있을지 예상해보면서 문제를 풀어보기도 하고, 좀 어려울 것 같다 싶으면 바로 답을 볼 수 있도록 문제와 답이 바로 붙어 있다.

이 책의 원서는 자바 5 시절에 만들어졌지만, 자바 8에서도 이 책에서 다루고 있는 내용이 여전히 유효하다고 하니, 고전이라고 부를만한 것 같다. 재미있게 읽으면서 주요 내용을 머릿 속에 잘 기억해두면, 자바로 프로그램을 작성할때 알 수 없는 오류로 골치아플 일을 많이 덜게 될 것 같다.


자바 퍼즐러

저자
조슈아 블로크, 닐 개프터 지음
출판사
한빛미디어 | 2014-12-04 출간
카테고리
컴퓨터/IT
책소개
단언컨대 이 책은 세상에서 가장 재미있는 자바 책입니다. 왜냐하...
가격비교


'Etc' 카테고리의 다른 글

Pencil  (0) 2017.11.29
자바 퍼즐러  (0) 2015.06.25
Ship it 성공적인 소프트웨어 개발 프로젝트를 위한 실용 가이드  (0) 2015.06.24
프로그래머 그 다음 이야기  (0) 2015.06.23

소프트웨어 개발을 잘 하기위한 실용적인 조언들과 "예광탄 개발"이라는 개발 방법론을 소개하고 있다.

저자들이 고안했다는 예광탄 개발 방법은 일종의 점진적 개발 방법이다. 소프트웨어를 한 사람, 혹은 한 팀이 일정기간 일할 수 있을 정도로 객체/계층으로 나누고 각 계층의 인터페이스를 정의한 다음에 Mock/Stub을 먼저 개발해 전체 동작을 확인할 수 있도록 만든 다음에 내용을 채우는 것으로 개발을 진행하는 방식이다. 점진적 개발 방식은 다 그렇겠지만, 개발 초기에 요구 사항을 재확인하고, 설계의 결함을 발견하기 좋은 개발 방식으로 보인다.

그리고 책 전체에 걸쳐서 다음과 같은 조언들을 담고 있다.

  1. (의식적으로, 신중하게 좋은) 습관을 선택하세요.
  2. 모래 상자 안에서 노세요.
  3. (빌드를 위해서) 필요한 거라면 체크인(커밋) 하세요.
  4. 첫날에 빌드를 스크립트화 하세요.
  5. 어떤 컴퓨터에서라도 빌드가 되어야 합니다.
  6. 지속적으로 빌드하세요.
  7. 지속적으로 테스트하세요.
  8. (이슈 추적 시스템 등을 사용해서) 모두가 잊어버리는 사태는 피해야 합니다.
  9. 제품을 작동시켜보세요 - 테스트를 자동화하세요.
  10. 유연하고 많은 사람이 사용하는 테스트 장비를 사용하세요.
  11. 업무에 가장 적합한 도구를 사용하세요.
  12. 공개된 포맷을 사용해서 여러 도구를 통합하세요.
  13. (프로젝트 진행에 영향을 줄 수있는 SCM이나 빌드 스크립트 등의) 임계 경로 기술에 친숙해지세요.
  14. 목록에 따라 일하세요.
  15. 기술 리더가 알아서 하게 놔두세요.
  16. 일일 회의를 해서 진행 방향을 수시로 바로 잡으세요.
  17. (집중하고 있을때에는) "나중에"라고 말해도 됩니다.
  18. 항상 모든 코드를 검토하세요.
  19. 소프트웨어가 목표지, (업무 처리 기법에) 순응이 목표는 아닙니다.
  20. 그룹 전체가 (전체 시스템을 개선할 수 있는) 아키텍트입니다.
  21. (실제 환경의) 제품에서 사용하는 거라면, (개발 환경에서) 여러분도 사용해야 합니다.
  22. (핵심 기능인) 가장 어려운 문제부터 해결하세요.
  23. 캡슐화된 아키텍처야말로 확장성 있는 아키텍처입니다.
  24. 보트가 움직이기 전엔 보트를 조정할 수가 없습니다.
  25. 테스트하기 전에는 다른 사람이 물려준 코드를 변경하지 마세요.
  26. 테스트 주도 리펙토링으로 테스트할 수 없는 코드를 깨끗이 정리하세요.
  27. 가짜 클라이언트로 최소한의 노력으로 최대의 성과를 거둘 수 있습니다.
  28. 변경되는 코드를 지속적으로 테스트하세요.
  29. (버그를 수정하는 것은) 모두에게 통하는 방법이어야 합니다.
  30. (CI 시스템을 사용하여) 자주 통합하고, 지속적으로 빌드하고 테스트하세요.
  31. (고객에게) 동작하는 데모를 일찍 그리고 자주 전달하세요.
  32. (불만스러워하는 관리자를 위해서) 여러분이 무엇을, 왜 하고 있는지 (목록을 만들어) 공개하세요.
  33. 얼굴을 많이 마주칠수록 팀워크가 단단해집니다.
  34. (새로운 실천방법 등의 도입보다는) 고쳐야 하는 것만 고치세요.
  35. 파괴적인 '우수한 업무처리기법'은 진정한 의미의 업무처리기법이라 할 수 없습니다.
  36. (새로운 실천방법의 도입은) 밑에서부터 혁신해야 합니다.
  37. (새로운 실천방법은) 말만하지 말고 보여주세요.
  38. (새로운 실천방법 도입에) 관리층의 지지를 이끌어내세요.
  39. (현재 발견된) 버그가 있는 곳을 테스트하세요.
  40. 목록은 살아있는 문서입니다. 변화가 목록의 생명입니다.
  41. (관리자로서) 목록이 없다면, 그것은 프로젝트의 일부가 아닙니다.
  42. (고객은) 항상 피드백을 빨리 해주세요.

위에서 괄호와 강조 표시는 내가 추가했다.

개발자도 아니고 관리자도 아닌 어정쩡한 위치라고 생각했던 기술 리더를 모든 개발자는 적어도 한번쯤 되기를 꿈꿔야한다고까지 이야기하는 것이 새로웠다. 기술 리더는 시간을 쪼개 기술 업무와 관리 업무를 한다고는 하지만, 책에서 다룬 아래와 같은 기술 리더의 체크리스트를 보면 개발자라기보다는 관리자에 가깝다는 생각이 들었다.

기술리더로서 여러분은 다음 질문에 긍정적인 대답을 내놓을 수 있어야 합니다.

  • 팀 구성원 각자가 무슨 일을 하고 있는지 알고 있습니까?
  • 5분 이내에 프로젝트의 현 상황에 대한 개요를 작성해낼 수 있습니까?
  • 다음에 추가해야 할 기능이 무엇인지 5개 내지 10개 정도를 댈 수 있습니까?
  • 우선순위가 가장 높은 결함을 서슴없이 열거할 수 있습니까?
  • 팀 구성원을 위해 여러분이 해결한 가장 최근의 문제는 무엇이었습니까?
  • 해결해야 할 중요한 이슈가 있을 때 팀 구성원이 여러분을 찾아옵니까?

기술리더가 비효율적이거나 과중한 업무를 맡고 있다는 신호입니다.

  • 팀 구성원 각자가 업무 방향에 대해 큰 그림을 갖고 있지 않습니다.
  • 기술 리더가 나타나면 일이 중단됩니다.
  • 팀의 성과를 가로챕니다.
  • 문제를 해결하는 데 실패합니다. 더 심한 경우에는 문제를 일으킵니다.
  • 업무 일정을 부정확하게 예측합니다.
  • 팀 구성원이 어떤 기술에 능숙한지 또는 팀 구성원이 배우길 원하는 기술이 무엇인지 알지 못합니다.
  • 팀 구성원 간의 충돌을 감지하지 못합니다.


성공적인 소프트웨어 개발 프로젝트를 위한 실용 가이드

저자
자레드 리차드슨, 윌 그월트니 주니어 지음
출판사
위키북스 | 2007-08-09 출간
카테고리
컴퓨터/IT
책소개
소프트웨어 개발에 관한 내용을 담은 가이드북. 이 책은 소프트웨...
가격비교


여러 소프트웨어 개발자들이 자신이 걸어온 길을 후배에게 들려주듯이 담은 책. 저자들은 다양한 곳에서 각자 다른 경험을 하며 개발자로 살았지만, 어느정도 공통적인 점을 볼 수 있었다. 그것은 자기 발전을 위해서 노력하게되는 어떤 자극이 있었다는 것이다.

그 자극의 형태가 같이 일하는 실력이 뛰어난 동료이기도 했고, 기술사 시험이었기도 했으며, 책을 집필하는 것이기도 했다. 그렇게 형태는 달랐지만, 그 모두가 계속 공부하도록 하는 자극이 된 것으로 보였다. 뛰어난 동료를 보고 나의 부족한 점을 깨닫게 되어 그 부족함을 채우기위해서 노력하는 것이나, 어려운 기술사 시험을 준비하면서, 혹은 기술사 자격을 취득했기 때문에 거기에 걸맞는 실력을 갖추기 위해서 더 노력하는 것, 책을 집필하기 위해서 더 공부하고 집중하게 되는 것, 이 모두가 그런 강한 동기가 부여되지 않으면 쉽지 않은 일이다.

계속 개발자로 살아가기 위해서는 끊임없이 학습해야할텐데, 이런 동기 부여가 꼭 필요한 것 같다는 생각이 들었다.


프로그래머 그 다음 이야기

저자
임백준, 오병곤, 이춘식, 이주연, 박재성 지음
출판사
로드북 | 2011-07-08 출간
카테고리
컴퓨터/IT
책소개
프로그래머 평균 정년 35세, 당신은 무엇을 하고 계십니까? 시...
가격비교


우리나라 소프트웨어 업계에 만연해있는 문제점을 지적하는 책. 제목만 보았을때에는 그냥 우리나라와 미국 소프트웨어 업계의 차이에 대해서 약간은 뜬구름 잡는 듯한 이야기를 다룬 책이라고 생각했는데, 읽어보니 나의 오해였다는 것을 알게되었다.

저자는 소프트웨어 요구사항 분석서(Software Requirements Specification, SRS)의 중요성을 거듭 이야기하는데, 결국 "분석-설계"가 제대로 되지 않는 것이, 우리나라 소프트웨어 업계의 문제라는 어찌보면 뻔해보이는 이야기를 한다. 하지만, 이 분석의 문제를 개발자의 문제 정의 능력 수준로 끌어내리니 훨씬 잘 이해되었다.

책에서 이야기한 실리콘밸리 회사의 인터뷰 예를 보면, "숫자 3개를 정렬"하라는 간단해보이는 문제가, 사실을 제대로 정의된 문제가 아니라는 사실은 나도 생각치 못한 문제인데, 아마 과제가 주어지면 문제는 절대적이라고 전제하고 경주하듯이 풀어내는데에만 급급했던 교육과정을 거쳐왔기 때문에 생긴 버릇이 아닐까 생각도 들었다. 이런 문제정의도 제대로 되지 않는데, 무슨 요구사항 분석을 하겠으며, 그런 분석을 통해 설계를 한 소프트웨어가 계획대로 개발된다면, 말 그대로 소 뒷걸음질치다 쥐잡은 거나 다름 없을 것이다.

개발 방법론이나 도구의 도입에도 유행에 편승하지 말라는 이야기를 하는데, 저런 "수단"보다는 왜 저런 것들이 나오고 도입하고 있는지 그 "목표"에 집중하라고 안내한다. 소프트웨어 개발을 한다면서, 지금 내가 하고 있는 행위의 궁극적인 목표가 무엇인지 고민해야한다는 것이다.

오랜만에 읽고나서 많이 생각하게 된 책이었다.

작가 블로그 : http://ikwisdom.com


글로벌 소프트웨어를 말하다, 지혜

저자
김익환 지음
출판사
한빛미디어 | 2014-06-05 출간
카테고리
컴퓨터/IT
책소개
이 책이 제시하는 핵심 내용 기후와 토양에 따라 귤이 되기도 하...
가격비교


자바 쓰레드 관련 문제/메모리 관련문제를 다루는 방법, 자바에서 장애 진단을 도와주는 툴과 리눅스 시스템 모니터링 도구 소개와 장애 진단 절차를 소개하고 있다.

자바 애플리케이션 운영 중이거나 리눅스 시스템을 운영 중이라면 볼만한 책인 것 같다.


트러블 슈팅 이야기

저자
이상민 지음
출판사
한빛미디어 | 2011-06-10 출간
카테고리
컴퓨터/IT
책소개
이 책이 제시하는 핵심 내용 자바 시스템에서 문제가 발생했을 때...
가격비교


뭐라고 불러야할지 잘 모르겠지만, 옛날에 책을 읽다가 'A라면 XX페이지로, B라면 OO페이지로'라는 문구가 나오면 원하는 선택지를 골라서 페이지를 넘겨보던 책이 있었다. 말하자면 비주얼 노블 게임의 원조라고 할만한데, 이 책도 그런 형식으로 만들어졌다.

이 책을 읽다보면 페이지를 선택해야할 시점이 오는데, 잘못된 선택을 하게되면 불행한 결말을 맺게 된다. 책을 읽으면서 애자일 컨설턴트로서 "드림팀"이 살아남을 수 있도록 올바른 선택을 해서 도와야한다. 그러면서 자연스럽게 애자일을 팀에 정착시키는 방법을 마치 옆에서 지켜보듯이 엿볼 수 있다.

책을 읽고나서 일을 진행하는 것도 역시 사람이기 때문에 일을 하기 위해서는 동기를 부여하고, 신뢰를 얻는 일이 무척 중요하다는 생각이 들었다.


드림팀의 악몽 애자일로 뒤엎기

저자
포샤 텅 지음
출판사
한빛미디어 | 2014-05-20 출간
카테고리
컴퓨터/IT
책소개
매 순간 두 가지의 갈림길, 서로 다른 여덟 가지 결과, 당신의...
가격비교


어쩌다보니 코딩 호러의 이펙티브 프로그래밍을 읽고나서 바로 이 책도 읽어야겠다고 생각한지 1년 이상 지나서야 읽게 되었다. 이 책 역시 블로그를 책으로 만든 것이라서 링크들이 많이 있는데, 책 소개 페이지의 관련 자료 항목에 잘 정리되어있어서 찾아보기 편하게 해 놓았다.

이 책 역시 재미있고 유용한 정보들이 많이 있었다. 몇가지만 여기에 적어본다.

... 나는 아이폰에 있는 버튼이 나로 하여금 너무나 자주 생각하게 만들기 때문에 아예 사용하지 않는 단계에 이르렀다. 하나밖에 없는 그 버튼이 너무나 자주 오용된 것이다.

"단 한개의 버튼이라는 신화" 중에서(p.140)

... 하지만 사용자들은 뭔가를 입력하기 전에 아무것도 읽으려고 하지 않는다. 심지어 우리와 같은 소위 전문적인 컴퓨터 사용자들조차 말이다.

"그렇지만 그저 하나만 더 있을 뿐이다." 중에서(p.161)



코딩 호러가 들려주는 진짜 소프트웨어 개발 이야기

저자
제프 앳우드 지음
출판사
위키북스 | 2013-11-28 출간
카테고리
컴퓨터/IT
책소개
코딩 호러 블로그 운영자이자 스택 오버플로우의 공동 창업자가 들...
가격비교


원서는 The Hacker’s Guide to Python 이라는 제목이지만, 번역서는 무난한 느낌의 제목으로 출간되었다. “오픈소스 개발자가 알려주는 고급 기법과 실천법”이라는 부제답게 파이썬 프로젝트를 어떻게 시작해서 진행해야하는지 알려주고, ‘파이썬에 이런 것도 있었나?’ 하는 생각이 드는 파이썬의 고급 기능들을 다루고 있었다.

책의 앞부분에서 버전 번호 규칙이나 문서화 방법, 배포 방법, virtualenv를 사용한 가상 환경과 단위 테스트에 대한 내용들을 다루는데, 아직 스핑크스를 사용해본 적이 없어서 이것은 한번 꼭 써봐야겠다는 생각이 들었다. 그리고, 단위 테스트도 내 맘대로 작성하고 있었는데, 이 책에서는 tests 안에 모아놓는 것이 좋다고 제안하고 있었다.

데코레이터나 함수형 프로그래밍 등 여러가지 고급 주제에 대해서 다루면서, 인터뷰도 싣고 있어서 파이썬 개발을 하면서 한번쯤 고민을 해봤던 주제들을 다루고 있는데, 대표적으로 ‘ORM을 쓰는게 좋을까?’, ‘Python 2/3 호환성은 어떻게 해결하지?’ 같은 질문에 대한 대답들을 볼 수 있어서 좋았다.

파이썬을 사용하고는 있지만, 뭔가 부족함을 느끼는 나같은 사람에게는 비급과 같은 책이었다.



실전 파이썬 프로그래밍

저자
줄리안 단주 지음
출판사
인사이트 | 2014-12-13 출간
카테고리
컴퓨터/IT
책소개
좋은 프로그램을 만드는 데는 프로그래밍 언어 문법 외에도 다양한...
가격비교 글쓴이 평점  


+ Recent posts