Category분류 전체보기 (174)

웹 서비스 Maintenance Mode (점검 모드) 지원기

웹 서비스 Maintenance Mode (점검 모드) 지원기 온라인 서비스계의 유명한 4대 명검으로 유명한 점검 모드에 대해서 이야기하려 합니다. 점검 모드 지원 결정 운 좋게도 회사에서 운영하는 서비스가 2년 넘게 다운될 일이 없었습니다. Agile모델이 잘 실행되었기 때문일까요? 매주 릴리즈 함에도 불구하고 근 몇 년간 99.99%의 가용성을 유지하고 있었습니다. 하지만 올해 초 AWS MySQL을 AWS Aurora로 Migration 하기로 합니다. 문제는 우리 회사의 서비스가 사용자에 의해서 수정이 자주 일어나는 온라인 에디터라는 것! 이러한 서비스 특성상, 실시간으로 DB에 데이터를 업데이트하는 일이 잦게 발생하고, 이를 방지하고자 readonly 페이지를 제공할까? 등등 고민을 하게 됩니다..

2019년 회고

2019년 회고 벌써 2019년이 지나갔습니다. 매년 회고를 같은 말로 시작하게 됩니다. 시간은 빠르게 지나가고, 안 올 것 같은 30대가 된 지 벌써 2년이나 지났다는 점이 늘 새롭네요. 다른 분들의 블로그에 비하면 수더분하지만 매일 500명의 유저가 늘 들어와 주고 있습니다. 정말 감사하게 생각하고 있습니다. 그리고 걸어둔 애드센스가 드디어 2년 만에 100불이 된 것도 신기합니다. (한 달에 커피 한잔!) 올해는 회고 쓰는 유행이 지났는지 많이 보이지는 않지만, 개인적인 리마인드를 위해 올해도 회고를 남겨 봅니다. 2019년 로드맵 리뷰 작년 2018 회고에서 언급한 2019 로드맵 얼마나 성공했을까요? 완료 및 진행 중 이사 결혼 개인적으로 진행하는 서비스 진행 (진행 중) 실패 IELTS 시험 ..

[개발문화탐구] 데브옵스 (DevOps) - 애자일(Agile)

개발문화탐구: 데브옵스 (DevOps) - 애자일(Agile) 어질? 애자일? 이노옴!도적 키우는데 어질(agility) 만땅 찍나요? 아... 아뇨 여기서 알아볼 애자일(Agile)은 민첩하다는 뜻은 맞는데... 게임 얘기는 아니고요.Agile이라 불리는 소프트웨어 개발 방법론에 대해서 살짝 맛을 보려고 합니다.개발 방법론이라 하면 뭐 많이들 얘기하는 Lean startup, Scrum, Squad 등등 종류도 많고 이게 사실 무슨 소린지 잘 모르겠단 말이죠?이게 무엇이며, 왜 DevOps 이야기에 애자일 관련 이야기 빠지지 않고 나오는지 관련해서 알아보도록 합시다.소프트웨어 개발 방법론이란?소프트웨어 개발을 함에 있어 절차, 툴, 기법 등을 제시해 주는 지식입니다. 실제 회사에서 제품을 만들 때, 예..

나의 부족했던 2018년을 반성하며

나의 부족했던 2018년을 반성하며벌써 2018년이 지나갔습니다. 체감으로는 3개월 같은데 말 그대로 벌써 1년이네요. 많은 IT 블로거분들의 회고를 일일이 다 챙겨보고 많은 자극을 받았습니다. 다른분들의 회고에 써있는 성취들을 보다보니 나는 왜이렇게 이룬게 없는가!! 스스로 반성해야 될 듯 하여, 회고 겸 반성문?을 써봅니다2016년 회고 - 2017년을 맞이하며 2017년 회고 - Merry Christmas!2018년의 성과이룬 것LMIA 과정을 통해 취업비자를 무사히 취득할 수 있었습니다. 운 좋게도 DevOps 관련 업무를 맡아서 많은 걸 해볼 수 있었습니다. Production 수준의 AWS 환경에 대해서 많이 배울 수 있었습니다. 전까지는 크게 관심 없었던 개발 프로세스(Agile, Scru..

[개발문화탐구] 데브옵스 (DevOps) - Strangler Pattern: Migrate to Microservices

개발문화탐구: 데브옵스 (DevOps) - Strangler Pattern: Migrate to Microservices들어가기 전이 포스트는 이전 포스트 마이크로 서비스 vs 모놀리식 서비스와 이어집니다. 매우 쉬운 내용이니 간단하게 훑고 오셔도 좋을 듯.[개발문화탐구] 데브옵스 (DevOps) - 마이크로서비스 vs 모놀리식서비스서비스 아키텍처의 진화위 트렌드 그래프를 보면 아시겠지만, 마이크로 서비스에 관한 관심이 점차 많아지고 있습니다.이전 포스트에서는 모놀리식 서비스도 경우에 따라서 더 좋을 수도 있다곤 했지만, 대부분에 서비스는 마이크로 서비스가 더 적합하다고 생각됩니다.그럼 모놀리식 서비스는 어떻게 마이크로 서비스로 이전할 수 있을까요? 기존 서비스의 기능을 새로운 아키텍처로 처음부터 다시 ..

[개발문화탐구] 데브옵스 (DevOps) - 마이크로서비스 vs 모놀리식서비스

개발문화탐구: 데브옵스 (DevOps) - 마이크로서비스 vs 모놀리식서비스들어가기 전몇 년 전부터 마이크로 서비스에 대한 이야기를 흔히 접할 수 있었습니다. 마 그거? 서비스 다 따로 분리하는 거 아니야? 정도로 간단하게 알고 있습니다.사실 그게 맞긴 하지만, 마이크로 서비스가 무엇인지 혹은 왜 사용하는지에 대해서 어느 정도 깊이있게 알지 못하면 이후 소개할 개념들이 매끄럽게 이해가 안 되는 부분이 발생할 수 있겠다는 염려가 들었습니다.그런 이유로 한번 짚고 넘어가 봅시다! 그 전에 제목에도 언급된 모놀리식 서비스가 무엇인지 알아보도록 합시다.모놀리식 서비스 (Monolithic) 귀에 딱지가 생길 정도로 많이 보이던 용어인 마이크로 서비스에 비해 모놀리식 서비스는 뭔가 생소합니다.모놀리식 서비스 혹은..

[ETC] Artillery - 서버 부하 테스트

[ETC] Artillery - 서버 부하 테스트유용한 Service, Tool, Library를 소개해 드립니다. ArtilleryArtillery는 자바스크립트로 된 모던 부하 테스팅 툴킷입니다.처음부터 Artillery를 사용한 건아니고...제가 만든 서비스에 대한 부하 테스트가 필요해서 뭐가 좋을까 찾아보다가 먼저 Vegita라는 툴을 발견합니다.GitHub - tsenart/vegeta: HTTP load testing tool and library. It's over 9000!이름이 베지터? 하고 들어가 봤더니 진짜 그 드래곤볼 베지터! 와 너무 맘에 든다 이거 쓰면 인싸되는 각? 하고 시도해보려는 찰나..!간단한 테스트는 지원하는 Command로 할 수 있었지만 약간 플로우를 따라 부하 테스..

[ETC] myjson - 테스트용 온라인 JSON 저장소

[ETC] myjson - 테스트용 온라인 JSON 저장소유용한 Service, Tool, Library를 소개해 드립니다.myjson Myjson - A simple json storage and hosting serviceFront-end 작업 시 데이터 요청이 필요할 경우, 테스트를 위해서 파일을 로드 하거나 하드코딩으로 데이터를 Return 하는 비동기 코드를 사용하곤 하는데요.myjson을 이용하면 그럴 걱정이 없습니다.그리고 CORS도 지원합니다. :)사용법사이트에서 JSON 형식의 데이터를 입력 후, Save 버튼을 눌러주면 끝.예를 들어 아래 테스트 JSON 데이터를 입력하면...{ "user": { "name": "kendrick b. jung", "age": 70 } } 이렇게 값을 반..

[개발문화탐구] 데브옵스 (DevOps) - 소개

개발문화탐구: 데브옵스 (DevOps) - 소개데브옵스란?DevOps는 개발(Development)과 운영(Operations)의 합성어입니다왜 이 두 가지 개념이 합쳐 졌을까요?서비스의 패치를 위해서 몇 달간의 작업 후 배포하던 고전적인 방식과 달리, 현재는 빈번한 서비스 배포가 주류를 이루고 있습니다. 대부분의 서비스가 설치 기반에서 웹 기반으로 바뀌었으며 마이크로 서비스와 애자일 개발 방법론에 대한 관심이 많아졌고 그로 인해 빈번한 서비스의 배포가 필요해 졌습니다. (이는 애자일 편에서 더 자세히 다룰 예정입니다)하지만 개발팀은 서비스 개발에 매진하고, 운영팀은 보안과 안정적인 인프라 구축에 집중을 하므로 빈번한 배포 전략이 유연하게 동작할 수 없습니다.이런 새로운 전략을 위해서 두 팀이 병합되어 ..

[ETC] MacOS Mojave - invalid active developer path Issue

MacOS Mojave - invalid active developer path IssueMacOS 모하비 버전이 나왔습니다!제가 느끼는 주요 변경 점이라면 다크모드와 새로운 Finder 뷰 모드? 정도가 있겠네요.요런느낌 한 시간에 걸친 업데이트 후, 문제가 생길 것이라는 불안감은 빗나가지 않습니다...! git command를 사용하려 하니 귀신같이 아래와 같은 에러를 뿜뿜!xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 하아...찾아보니 기존 MacOS 시에라 혹은 하이 시에라 버..

[ETC] 동적 서버 접속을 위한 SSH Config

동적인 EC2 Instance 접속을 위한 SSH Config작년까지 Snowflakes Server 패턴을 사용하다가 올해 초 Phoenix Server 패턴으로 변경하게 되었습니다. 작업 후 새로 배포되는 서버들이 매우 안정적으로 생성되는 걸 확인하고 야호를 외쳤으나... 새로 생성된 서버에 SSH 접속때 마다 매번 IP가 다르니 불편함이 이만저만이 아니었습니다.그 와중에 Bastion 서버도 통해서 접속해야 했기에 매번 만들어둔 긴 SSH Command 수정하기도 매우 번거로운 것..!그렇다고 SSH Config를 만들어놔도 새 서버를 만들 때마다 SSH 접속 정보를 변경해 줄 수도 없는 노릇이고 말이죠..!비슷한 문제를 가지고 계신 분들이 분명 있을거라고 생각해 글을 쓰게 되었습니다.아래와 같거나..

[개발문화탐구] 코드리뷰 (Code Review)

개발문화탐구: 코드리뷰코드리뷰개발문화 중 하나인 코드리뷰에 관해서 이야기를 해보려 합니다.코드리뷰라 함은 간단히 말해, 내가 작성한 코드를 제3자가 검사하는 것입니다. 타인에 의해 예상치 못한 오류를 찾아내거나 코드를 더 좋게 개선할 수 있습니다. 자신의 발전과 팀의 발전 그리고 제품의 안정성을 위하여 꼭 도입되어야 하는 문화입니다.허나 이런 중요성에도 불구하고 코드리뷰를 왜 하는지 가슴으로 느끼기는 참 힘듭니다.이 포스트를 본다고 해서 직접 경험 해보지않는 이상 코드리뷰의 중요성을 100% 이해하기는 어렵겠습니다만 느낌이라도 살짝..코드리뷰를 대하는 자세직장 내의 서로 다른 개발자가 right way를 향해 발전하는 가장 좋은 문화가 바로 코드리뷰라고 생각합니다.하지만 기본적으로 서로를 인정하고 리스펙..