분류 전체보기 366

[리팩터링 2판] 스터디 모집 및 시작. Chapter 1. 리팩터링: 첫 번째 예시

Background 6개월 차 개발자 정도 되었을 땐가 연구팀에서 작성이 된 Machine learning 코드들을 production level로 만들고 serving 하기 위해 refactoring 하는 업무를 맡게 되었다. 그때 동료분께서 읽어보는 것을 추천해 주신 책이 'Clean code'였다. 그 당시 clean code 책을 읽을 때는 '좋은 말인 거 같다..' 정도이지 솔직히 크게 와닿거나 '아 앞으로 내 업무에 이런 것들 적용해봐야겠다. 이런 것을 명심해야겠다' 정도의 깨달음은 없었다. 그렇게 1년이 흐르고 올해 2022년 1월, 새해 버프를 받아 그 유명하다는 Clean code (일단 다시 읽어보자)를 했다. 그래도 처음 읽고 나서 6개월 사이 나도 모르게 보고 배운 건 있었는지 첫 ..

[Toy Project] 팀원 일정 및 상태 슬랙 프로필 표시 앱 개발 - 1

팀원 일정 및 상태 슬랙 프로필 표시 앱이라고 하니까 너무 길고 멋이 없는 것 같아서.. 적절한 프로젝트명이 생각나면 좋겠다 ㅎㅎ 간단히 한 줄 설명을 남기자면 Gcal ➔ Slack: Automatically update member's Slack status according to the current Google Calendar event. No Contact During Vacation! https://github.com/Gracechung-sw/on-vacation-today 이다. 👉🏻 👈🏻 아이디어 제시 및 만들게 된 동기 2021년 회고 - 습관, 일, 공부, 재미에 내가 적어 둔 2022년의 바람 중 하나엔 이런 글이 있다. 회사의 성장과 함께 만들어 나가는 팀 문화 올해 회사에 새로운 ..

[Service Mesh] Service Mesh와 Envoy 찍먹해보기..(도 전일 수도 있음)

대표적으로 https://www.envoyproxy.io/ https://hackernoon.com/service-mesh-with-envoy-101-e6b2131ee30b https://www.suse.com/c/rancher_blog/stupid-simple-service-mesh-what-when-why/ 을 통해 envoy와 service mesh를 알아본 후 정리하여 작성한 글입니다. Goal 사이트 안정성 장애 발생에 대한 대응/분석/부검 용이 Remove cloud dependency (Ex. Cloudwatch, AWS auto-scaling service) Solves monitoring and logging problems efficiently and effectively and use..

Dev/DevOps, Infra 2022.06.12

[오브젝트] Chapter 1. 객체, 설계

오브젝트 (코드로 이해하는 객체지향 설계) - 조영호 저를 읽고, 제가 이해한 바를 정리한 글입니다. 이 책의 목적 좋은 설계란 무엇인가를 설명하는 것 훌륭한 객체지향 프로그램을 설계하고 유지보수하는 데 필요한 원칙과 기법을 설명하는 것 읽기 전 질문과 읽은 후 답변 Chapter 1 둘째 장 까지 읽고 이라고 정리한 후 든 질문을 적어보았다. 그리고 Chapter 1 끝까지 읽은 후 각 질문의 답변이라고 생각하는 부분을 나름대로 채워 넣어 보았다. 객체지향이란 무엇인가 ⇒ Chapter 2. 객체지향 프로그래밍 에서 조금 알 수 있을 것 같으며 이 책 전반을 통해 점차 알게 되어가지 않을까? 설계란 무엇인가 ⇒ 책에서 제시하는 설계란, ‘코드를 배치하는 것이다.’ 좋은 설계란 무엇인가 ⇒ 책에서 제시하..

[AWS] SQS event - Lambda - Slack 알람 - PostgresQL 쿼리 실행 2) AWS Lambda에서 slack alert 보내기

SQS(dead-letter queue) event 발생 시 Lambda를 사용해서 Slack alert를 보내고 PostgresQL에 쿼리를 실행하도록 설정하는 방법을 아래 3가지 순서로 기록해보고자 한다. AWS Lambda를 Serverless framework를 사용해서 local에서 개발하고 cli로 쉽게 배포하기 AWS Lambda에서 slack alert 보내기 AWS Lambda에서 PostgresDB로 쿼리 실행하기 완성 시 전체적인 구조는 다음과 같으며 aws credential은 미리 되어있다고 가정한다. 이번에는 에 대한 내용이다. 1. slack webhook 생성 우선 slack webhook을 생성하여 해당 slack url을 얻은 뒤 환경변수를 활용한다. 1) Slack에서 ..

Dev/DevOps, Infra 2022.05.07

[AWS] SQS event - Lambda - Slack 알람 - PostgresQL 쿼리 실행 1) Serverless framework를 사용해서 local에서 개발하고 cli로 쉽게 배포하기(aws-nodejs-typescript사용)

origin SQS로 들어온 task(message)를 정상적으로 처리하지 못할 경우 그 횟수가 maxReceiveCount를 초과하게 되면 Dead-letter queue로 옮겨진다. dead-letter queue로 옮겨진 메시지에 대해서는 slack 등 개발자가 상황을 바로 알 수 있도록 alert를 보내고, 또 유저에게도 해당 task의 처리가 실패하였을 때 나타나는 데이터를 보여주는 것이 필요할 때가 있다. 그래서 SQS(dead-letter queue) event 발생시 Lambda를 사용해서 Slack alert를 보내고 PostgresQL에 쿼리를 실행하도록 설정하는 방법을 아래 3가지 순서로 기록해보고자 한다. AWS Lambda를 Serverless framework를 사용해서 loca..

Dev/DevOps, Infra 2022.05.07

[글또] 글또 6기 KPT로 시작하는 7기 준비

글을 작성하는 개발 직군분들이 모여서, 좋은 영향을 주고 서로 같이 자랄 수 있는 커뮤니티인 글또 6기에 이어 7기에 참여하게 되었다. 1. 글또 7기 시작 배경 올해 초 ~ 4월 말(벌써 5월이라니!)에는 개인적으로 몸과 마음이 많이 힘든 시기였다. 커리어 방향성에 대해서 혼란스럽기도 했고 성장이 더디고 부족함만 계속 보이는 것 같아 조급한 마음이 들었다. 그리고 배울 점이 많고 함께 일하고 싶은 팀원이 다른 곳으로 떠나는 일은 나의 마음을 뒤숭숭하게 하기에 충분했다. 그래도 다행인건 그 시기 동안 나자빠져있기보단 뭐든 하려고 했다. 내가 힘들어 하는 이유를 정리하고 그를 해결하기 위한 Action Item을 정하고, 준비하고, 지원하고, 합격해서 이제 시작하는 단계를 거치고 있다. 그중 하나가 글또 ..

Diary/Y2022 2022.05.05

나의 부족함 마주하기

며칠 전 잘 해내지 못한 일 몇 가지에서 내가 잘 못하는 한 가지 습관이 있다는 것을 알게 되었다. 정확히 말하자면 피드백을 받아서 알게 되었다. 그리고 바로 다음 날 나는 동일한 실수를 또 했다. 전문성 형성, 믿을 수 있는 직관이 형성되기 위해서 필요한 것은 타당성: 직관이 적용되는 영역에 어느 정도 인과 관계와 규칙성이 존재해야 한다. 피드백: 자신이 내린 직관적 판단에 대해 빨리 피드백을 받고 이를 통해 학습할 기회가 주어지는 환경이 갖춰져야 한다. 이라고 한다. 거꾸로 말하면 수십 년 동안 한 가지 일을 하면서도 타당성과 피드백이 부족한 환경에서 일한다면 전문가가 되지 못한다. 타당성을 높이려면 변수를 제한하고 실험을 하면서 규칙성과 인과관계를 찾으려는 노력을 하면 된다. 그리고 피드백을 높이려..

Diary/Y2022 2022.04.19

[Clean code] Chapter 12. Emergence (창발적 설계로 깔끔한 코드 구현하기)

Clean Code 클린 코드 - 로버트 C. 마틴 저 를 읽고, clean code 해설 강의를 통해 제가 이해한 바를 정리한 글입니다. 창발성이란 이 책에서 창발성이란 단어를 처음 접했다. 위키를 찾아보면 창발(創發)또는 떠오름 현상은 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상이다. 이라고 적혀있다. 즉, 작은 요소들의 상호작용의 반복이 전체 구조에 영향을 미치는 점을 창발성이라고 한다. 이번 챕터에서는 개발에서도 단순한 4가지 규칙을 반복하다 보면 Clean code, 우수한 설계가 나오게 된다고 하며 4가지 규칙을 소개한다. 1. 모든 테스트를 실행하라. 테스트의 중요성은 몇 번 반복해서 나왔다. [Clean code] Chapter..

[Kubernetes] 쿠버네티스 Intro. 필요성, 구성, 동작 방식

대세는 쿠버네티스 강의와 Kubernetes와 Docker로 한 번에 끝내는 컨테이너 기반 MSA를 참고하여 공부한 바를 정리하였습니다. 1. 쿠버네티스 공부를 시작하는 이유 내가 해온 일 들 중 서비스 운영에 대해 고민했던 시기들을 그려본 것이다. Docker를 이용한 서비스 배포 과정에 CI/CD와 service alert 기능을 추가한 이후에도, 여러 서버에 container를 효과적으로 모니터링하고 관리하는데 어려움이 있었다. 예를 들면, 서버 health check는 정상이지만 그 안에 container가 지속적으로 down되는 문제가 발생했을 때 이를 알아차리기란 쉽지 않다. 그리고 많은 연산에 리소스가 들어가는 서비스의 경우 리소스를 효율적으로 관리하고 분배하도록 인프라를 직접 관리하는 것도..

Dev/DevOps, Infra 2022.03.04