본문 바로가기

전체 글

(20)
Kafka 도커로 구축 이 글은 Docker를 사용하여 Kafka와 Zookeeper를 실행하고, 토픽을 만들어 메시지를 전송하는 방법에 대한 내용입니다. Kafka Kafka는 대규모 분산 시스템에서 데이터를 신속하게 처리하고 전송할 수 있는 오픈 소스 분산 메시징 시스템입니다. Kafka는 큐잉, 게시-구독 메시징, 스트리밍 등의 메시징 패턴을 지원합니다. Kafka는 크게 Producer, Consumer, Topic, Partition, Broker, Cluster 등으로 구성됩니다. Producer는 메시지를 생성하고 Kafka 클러스터에 전송합니다. Consumer는 Kafka 클러스터에서 메시지를 수신하고 처리합니다. Topic은 메시지의 주제를 나타내며, Partition은 메시지가 저장되는 물리적인 장소입니다...
CI/CD 도입기 - 고민했던 서비스 툴 회사에서 CI/CD 도입을 했어야 했던 이유와 고민했던 서비스 툴을 공유드리겠습니다~! CI/CD를 적용하게 된 이유 우선 CI/CD를 도입하게 된 계기는 반복되는 빌드/배포 작업을 수동으로 하다 보니 휴먼 에러와 귀찮음(?)이 동반되는 문제가 있습니다. 또 다른 문제로는 만약 운영 코드에 문제가 생겼을 때 롤백하는 작업도 수동으로 해줘야 하다 보니 빠르지 못하는 문제와 역시 휴먼 에러가 발생할 수 있는 여지가 있습니다. 고민했던 CI/CD 서비스 툴 우선 고민했던 CI/CD 툴로는 Jenkins, Tarvis Ci, GitActions로 총 3가지가 있었습니다. 제가 찾아보면서 정리했던 각 서비스 툴의 장/단점을 공유드리겠습니다! Jenkins 장점 플러그인이 많아 다양한 커스터마이징이 가능함. 사람들..
Github Actions을 사용하여 AWS S3에 React 배포 Github Actions를 사용하여 AWS S에 React 배포하는 방법 공유드립니다. Github Actions이란? Github Actions이란 Github에서 제공하는 워크플로우(workflow)를 자동화하도록 도와주는 도구이다. 테스트, 빌드, 배포 등의 다양한 작업들을 자동화하여 처리한다. Github AWS KEY 설정 1. 프로젝트 설정에서 Secrets를 선택하여 New repository secret 선택합니다. 2. AWS_ACCESS_KEY_ID와 AWS_SECRET_ACCESS_KEY 설정 🚧 AWS_ACCESS_KEY_ID와 AWS_SECRET_ACCESS_KEY의 이름은 반드시 맞춰서 적어주셔야 합니다. 3.workflow 생성. 3-1. set up a workflow yo..
[개인정보처리방침] ('https://hyeongm.tistory.com'이하 'youth24')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2022년 10월 10부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://hyeongm.tistory.com'이하 'youth24')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니..
[개인 프로젝트] 당일 연차 알림 슬랙 봇 🏘 연차 알림 봇 매일 오전 10시에 휴가를 사용한 인원이 있으면 슬랙으로 메시지를 보내주는 봇입니다. 💡 만들게 된 계기 회사에서 원티드 스페이스 앱을 사용하여 근태관리를 하고 있는데 당일에 연차 및 병가 등을 사용한 직원을 한눈에 보기가 어려워 슬랙 채널에 당일 휴가자를 보내주는 봇을 만들게 되었습니다. 👉🏻 구성 🛠 기술 스택 🧩 기능 이미지로 보기 [Github 링크] https://github.com/KimHyeonGyeom/vacation-alarm-slack-bot
[이펙티브 타입스크립트] 6장 타입 선언과 @types [ 아이템 48 ] API 주석에 TSDoc 사용하기 함수의 앞부분에 주석이 있으면 함수가 어떤 기능을 하는지 쉽게 알 수는 있는데 사용자를 위한 문서라면 JSDoc 스타일의 주석으로 만드는 것이 좋습니다. JSDoc 스타일의 주석은 툴팁으로 표시가 가능하며, @param @returns 같은 일반적 규칙도 사용할 수 있습니다. 타입스크립트 언어 서비스가 JSDoc 스타일을 지원하기 때문에 적극적으로 활용하는 것이 좋습니다. 타입스크립트 관점에서는 TSDoc이라고 부르기도 합니다. [ 아이템 49 ] 콜백에서 this에 대한 타입 제공하기 자바스크립트에서 this는 매우 혼란스러운 기능입니다. let이나 const로 선언된 변수가 렉시컬 스코프(lexical scope)인 반면, this는 다이나믹 스코..
[이펙티브 타입스크립트] 4장 타입 설계 [ 아이템 36 ] 해당 분야의 용어로 타입 이름 짓기 엄선된 타입, 속성, 변수의 이름은 의도를 명확히 하고 코드와 타입의 추상화 수준을 높여 줍니다. 잘못 선택한 타입 이름은 코드의 의도를 왜곡하고 잘못된 개념을 심어 주게 됩니다. 동물들의 데이터베이스를 구축한다고 가정해 보겠습니다. interface Animal { name: string endangered: boolean habitat: string } const leopard: Animal = { name: 'Snow Leopard', endangered: false, habitat: 'tundra', } 이 코드에는 네 가지 문제가 있습니다. name으로 동물의 학명인지 일반적인 명청인지 알 수 없음. endagered 속성 의도가 멸종 위기..
[이펙티브 타입스크립트] 3장 타입 추론 타입 추론은 수동으로 명시해야 하는 타입 구문의 수를 줄여주기 때문에 코드의 전체적인 안정성이 향상됩니다. 즉, 불필요한 타입은 사용하지 말아야 합니다. [ 아이템 19 ] 추론 가능한 타입을 사용해 장황한 코드 방지하기 타입스크립트에서 추론이 가능한 변수에는 타입을 선언하지 않는 것이 좋습니다. let x:number = 12; //비생산적 let x = 12; // 타입스크립트에서 타입 추론 가능 더 복잡한 객체도 추론이 가능합니다. const person = { name: "Hyeon", born: { where: "Seoul", when: "long time ago", }, } 함수의 반환에도 타입을 명시하여 오류를 방지할 수 있습니다. 반환 타입을 명시한다면 정확한 위치에 오류가 표시될 뿐만 아..