본문 바로가기

728x90

Work/책 정리

[리뷰] 일상 속 사물이 알려주는 웹 API 디자인 #1 누구나 사용하고 있고 다들 잘 알고 있을 것이라 생각하고 있어서 너무나 중요하지만 가끔 소홀하게 되는 것들이 있다. 나에게 있어서는 API가 바로 그런 것들 중 하나였다. API를 개발하고 있는 개발자이기 때문에 API에 대해 잘 모른다는 것을 인정하기 싫었고 시간들여 공부하는 것 조차 기본도 모르는 것 처럼 여겨질까봐 잘 하지 않았던 것 같다. 이해도가 낮은 상태로 개발 업무에 들어가다보면 시작은 빠르지만 기능이 점점 확장되면 기존 API를 사용하지 못하는 지경에 이르게 된다. 게다가 API의 내용이 일반적이지 않고, 사용하기 어렵기 때문에 API를 사용하는 사용자들이 API 사용 방법에 대한 문의가 자주 왔었다. 이런 문제들이 반복되다보니 요즘에는 Back to the basic이라는 문장을 계.. 더보기
[리뷰] 클라우드 핀옵스 회사 업무와 개인 프로젝트 모두 클라우드를 적극 사용하고 있고, 그 중에서도 AWS에 의존도가 높다. AWS를 사용하다보면 나도 모르게 새어나가는 비용이 있기 마련인데 책을 읽으며 회사에서 사용하고 있는 리소스들을 살펴보니 불필요하게 비용을 지불하고 있는 것이 꽤 많았다. 곰곰히 생각해보니 회사에서 운영하는 리소스의 경우에는 내 개인돈이 나가지 않기 때문에 타이트하게 비용을 관리하지 않는 경향이 있는 듯하다. 얼마전 개인 프로젝트를 진행하며 실수로 SSH Port를 any open하고 다음 날이 되어서야 발견했던 적이 있었다. 그 사이 해커들의 공격으로 해당 서버에 굉장히 많은 트래픽이 몰렸고, 이로 인한 비용 증가가가 꽤 컸다. (대략 20만원정도) 다행히 AWS에 문의하여 지원을 받긴 했지만 내 개인.. 더보기
[리뷰] 스파크 완벽 가이드 개발 업무를 진행하면서 서비스를 런칭 했을 때 사용자들의 행위나 서비스가 제공하는 각 기능에 대한 가치를 파악하기 위해 데이터 분석을 해보고 싶다는 생각을 항상 해왔었다. 이 전에는 게임 서버 개발 진행과 병행하여 엘라스틱서치를 도입해 데이터 분석을 위한 준비를 했었고, 서비스 런칭 후 이를 통해 사업부와 협업하여 사용자 행위 지표에 대한 다양한 차트를 만들어보기도 했었다. 이로 인해 생각지 못했던 아이디어가 떠오르기도 하고, 업데이트 된 기능에 대한 사용자들의 반응을 바로바로 확인할 수 있어서 굉장히 큰 도움이 되었었다. 이 때의 경험을 계기로 어떤 개발을 할 때는 항상 데이터 분석도 함께 해보려고 노력하고 있다. 얼마전에는 본 업무와 별개로 사이드 프로젝트를 진행하며 데이터 분석을 해보기도 했다. 이.. 더보기
[쿠버네티스패턴] 7장 배치 잡 배치 잡이란? 짧은 수명을 가진 파드를 분산 환경에서 완료될 때까지 안정적으로 실행하는 기능이다. 독립된 원자 작업단위, 즉 더 이상 쪼갤 수 없을 정도의 작은 작업 단위를 관리하는데 적합하다. 문제 미리 정의된 일정 시간의 작업단위를 안정적으로 실행한 후 컨테이너를 종료하는 것이 필요한 경우가 있다. 쿠버네티스에서는 아래와 같이 파드를 생성하는 방법이 다양하다. 순수 파드 Kind: Pod의 형태로 선언한 파드이다. 파드를 수동으로 실행한다. 장애 발생 시 파드는 다시 실행되지 않는다. 개발이나 테스트 목적을 제외하고는 이런 방식의 파드 실행은 권장하지 않는다. 레플리카세트 레플리카세트로 파드를 생성하면 레플리카세트 컨트롤러에 의해 관리된다. 레플리카세트 컨트롤러는 지속적으로 실행되는 파드의 수명주기를.. 더보기
[리뷰] 데이터 과학을 위한 통계 소프트웨어 엔지니어로 일하고 있지만 수포자(수학포기자)로 살아왔기 때문에 수학 관련된 공부는 항상 기피를 했었다. 게다가 게임 개발자로 오랜 시간 업무를 해왔기 때문에 생각보다 전문적인 수학 지식이 필요로 하지는 않았었다. 그렇게 지금까지 수학과는 거리감을 유지하면서 지내왔는데 몇년 전 부터 조금씩 빅데이터와 관련된 업무나 스터디를 진행하면서 수학의 필요성을 느끼게 되었다. 가장 처음 필요성을 느꼈던 때는 스타트업에서 게임 서버 개발자로 근무할 당시였는데, 사업부에서 현재 게임에 대한 동접, 사용자 이탈률, 매출, 각 기능별 사용률 등등 통계가 필요한 요구사항들이 생기면서부터 였다. 당시에는 엘라스틱서치를 사용하여 잘 모르는 통계 지식들을 겉핥기 식으로 찾아가며 대응을 했었는데 개념 잡는데 꽤 오랜 시간.. 더보기
[쿠버네티스패턴] 2장 예측 범위 내의 요구사항 공유 클라우드 환경에서 애플리케이션 배포, 관리 및 공용(Coexistence)을 성공적으로 수행하려면 애플리케이션 자원 요구사항과 런타임 의존성을 명확히 식별하고 정의해야 한다. 여기서 공용(Coexistence)이란? Coexistence를 찾아보면 쿠버네티스 보다는 주파수, 블루투스와 같은 신호나 기기 간의 충돌 현상을 이야기하는 글들이 많다. 위 의미와 빗대어 쿠버네티스에서의 Coexistence를 생각해보면 다양한 어플리케이션이 Pod의 형태로 같은 노드에 배치되는 것이라 볼 수 있다. 자원 요구사항은 쿠버네티스 위에서 동작하는 어플리케이션들의 CPU와 메모리 사용량을 의미하고, 런타임 의존성은 Pod 실행 시점에 결정되는 볼륨이나 ConfigMap 과 같은 의존성을 의미한다. 이 의존성에 따라.. 더보기
[리뷰] 유닉스의 탄생 들어가며 매일 사용하고 있는 유닉스 였기 때문에 조금 더 이해하고 싶었고, 잘 알고 싶어서 이 책을 읽기 시작했다. 결론부터 얘기하자만 굉장히 만족스러웠다. 이 책만큼 생생하게 당시의 상황을 그려낼 수 있는 책이 또 있을까 싶은 생각이 들었다. 느낀점 벨 연구소에서 유닉스가 탄생했다는 것도 몰랐던 사실이었고, 유닉스를 개발한 천재적인 개발자들에 대해서도 잘 몰랐다. 이러한 천재들의 공통점은 개발을 좋아하고 자신이 좋아하는 것들을 소프트웨어로 승화시켰으며, 이러한 것들이 결국 대단한 작품을 만들어냈다는 것이라고 느꼈다. 또한 유닉스가 시작된 시점부터 구현되었던 명령어들이 지금까지도 존재하는 것에서 더해 엄청나게 활용되고 있다는 것이 신기했다. 그만큼 간단하고, 실용적이기 때문에 대체되지 않고 유지될 수 있.. 더보기
[리뷰] 팀 개발을 위한 Git, Github 시작하기 개발자로 일하기 위해서 공통적으로 필요한 필수 스킬들이 존재하는데 그 중하나가 바로 Git이다. Git 이전에는 SVN을 많이 사용하기도 했었는데 이러한 코드를 관리하는 도구들을 일컬어 Source Code Management (SCM)이라고 부르며 실무에서는 필수적이다. 만약 이런 도구를 사용하지 않는다면 서로간에 작업한 코드를 파일로 주고 받으며 관리를 해야하기 때문에 너무 소모적이고, 위험하기 때문에 Git이든 SVN이든 사용해야 한다. 최근에는 대부분 Git을 사용하고 있고, Github과 같이 Git으로 파생된 서비스들이나 Source tree와 같은 도구들이 생겨나고 있어서 여러가지 이유로 Git을 배우는 것이 유리하다. 이런 면에서 이번에 읽어본 탬 개발을 위한 Git Github 시작하기 .. 더보기

728x90