Category

Engineering

백엔드·프론트엔드·인프라·컴플라이언스 등 IT전반에 걸쳐 마주한 문제와 해법.

Engineering

웹훅엔 본문이 없다. 서버리스 Webex 수신 봇 첫 삽질

사내에는 이미 레드마인으로 일감 관련 알람을 Webex로 보내는 봇이 있습니다. AWS 클라우드를 사용하는 환경에서 Lambda Function URL을 웹훅 엔드포인트로 만들어 두고, 일감의 상태가 변경되거나 댓글이 달리거나 사용자을 멘션하는등의…

M
Mason· 2026.06.29
Engineering

폐쇄망에서 봇 최대한 활용하기 - 들어가며

이 시리즈는 "잘 만든 결과물" 보다는 중간의 막다른 길, 잘못 들어선 설계, 사고와 복구에 초점을 둡니다. 폐쇄망에서 무언가를 안전하게 동작시켜야 하는 고민을 하시는 누군가에게 도움이 되길 바라며 시스템 Webex bot : 사내에서 메신저로…

M
Mason· 2026.06.29
Engineering

검색 엔진과 사람 모두를 위한 마감

잘 쓰인 글도 발견되지 않으면 소용이 없습니다. 마지막 편에서는 SEO 마감과, 그 글을 실제로 쓰는 관리자 경험을 다룹니다. 두 종류의 독자 블로그에는 사실 두 종류의 독자가 있습니다.

M
Mason· 2026.06.26
Engineering

Markdown 한 줄이 화면이 되기까지

글은 Markdown 텍스트로 저장됩니다. 이걸 어떻게 안전한 HTML로, 그것도 빌드 타임에 바꾸는지 unified 파이프라인을 해부합니다. 왜 직접 파이프라인을 짰나 react-markdown 하나 붙이면 끝 아닌가 싶지만, 블로그 본문에는…

M
Mason· 2026.06.26
Engineering

읽기는 정적으로, 발행은 즉시

SSG + ISR + 태그 기반 캐싱을 실제 코드로 뜯어봅니다. "전부 굽고, 바뀐 곳만 도려내기"가 어떻게 구현되는지 살펴봅니다. 다시, 출발점 1편에서 이야기했듯 블로그는 읽기가 압도적으로 많은 서비스입니다.

M
Mason· 2026.06.25
Engineering

블로그, 널리고 널렸는데 왜 직접 만들었나

들어가며 블로그 플랫폼은 이미 널리고 널렸습니다. Velog, Medium, Notion, 티스토리, 거기에 Hugo/Astro 같은 정적 사이트 생성기까지. 그런데도 굳이 힘들게 Nextjs로 블로그를 또 만들었습니다. 이유는 의외로 단순합니다.

M
Mason· 2026.06.24
Engineering

디자인 패턴, 팩토리 메서드(Factory Method Pattern)

소프트웨어를 개발하다 보면 객체를 생성하는 코드가 점점 복잡해지는 경우가 있습니다. 처음에는 단순히 new 키워드를 이용해 객체를 생성하면 되지만 서비스 규모가 커질수록 객체 생성 과정에 다양한 조건이 추가되기 때문입니다.

M
Mason· 2023.06.01
Engineering

자바스크립트로 배우는 SICP - 함수를 이용한 추상화(2)

1.1.5 함수 적용의 치환 모형 인터프리터는 주어진 함수 적용을 평가하기 위해 먼저 함수의 적용 요소들을 먼저 평가한 수 함수의 인수들에 적용합니다. 원시 함수의 적용은 인터프리터 또는 라이브러리가 처리한다고 간주할 수 있습니다.

M
Mason· 2023.05.25
Engineering

웹서버 오류 - bind() to[::]:443 failed 에러와 대처방법

사내에서 let's encrypt 인증서를 사용하는 곳이 딱 두 군데 있는데, 하나는 사내 나스와 하나는 harbor 컨테이너입니다. harbor는 보안이 요구되는 고객사 때문에 사내망에 별도로 만든 저장소입니다. 사내망에 있다 보니 외부로 나가는 경

M
Mason· 2023.05.24
Engineering

자바스크립트로 배우는 SICP - 함수를 이용한 추상화(1)

💡 다수의 단순 관념을 하나의 복합 관념으로 조합한다. 복잡한 관념들은 모두 이런식으로 만들었다. 둘째는 두 관념을 가져와 또 다른 관념으로 설정함으로써 그 둘을 하나의 관념으로 통합하지 않고도 두 관념을 한번에 볼 수 있게 만드는 것이다.

M
Mason· 2023.05.23
자바스크립트로 배우는 SICP - 들어가며
Engineering

자바스크립트로 배우는 SICP - 들어가며

SICP Structure and interpretation of computer programs : 컴퓨터 프로그램의 구조와 해석 이라는 책을 얼마전 후배로 부터 전해 듣고서는 관심을 갖게 되었습니다. 이름부터 난해한 이책, 무엇을 위한 책일까 궁금

M
Mason· 2023.05.23
Engineering

디자인 패턴, 파사드(Facade pattern)

소프트웨어가 점점 커지고 기능이 많아질수록 하나의 기능을 처리하기 위해 여러 객체와 서비스가 함께 동작하게 됩니다. 처음에는 간단했던 코드도 시간이 지나면서 복잡한 의존성을 가지게 되고, 결국 특정 기능 하나를 호출하기 위해 여러 클래스의 메서드를…

M
Mason· 2023.05.18
Engineering

디자인 패턴, 싱글톤(Singleton pattern)

소프트웨어를 개발하다 보면 특정 객체가 애플리케이션 전체에서 단 하나만 존재해야 하는 경우가 있습니다. 대표적으로 데이터베이스 연결 객체, 설정Configuration 관리 객체, 로그Logger 객체, 캐시Cache 관리자 등이 있습니다.

M
Mason· 2023.05.18
Engineering

디자인 패턴, 전략(Strategy Pattern)

개발을 하다 보면 처음에는 단순했던 기능이 점점 복잡해지는 경우가 많습니다. 특히 알림 발송 기능을 개발할 때 이런 경험을 자주 하게 됩니다. 지난 프로젝트에서는 회원 가입, 비밀번호 찾기, 마케팅 메시지 발송, 관리자 알림 등 다양한 상황에서…

M
Mason· 2023.05.16
Engineering

AWS EKS 클러스터 구축 #1

EKS는 기본적으로 Root계정에서도 클러스터의 내용과 설정을 변경할 권한이 없습니다. 기존 VPC를 이용해서 클러스터를 구성하려다가 권한 문제로 새 VPC를 생성해서 다시 작업하는 시행착오를 겪고 나서야 Default VPC 를 사용해서 EKS를…

M
Mason· 2023.05.12
Engineering

AWS EKS 클러스터 도입 #들어가며

EKS는 AWS에서 서비스하는 완전 관리형 쿠버네티스 서비스 입니다. 마스터 노드가 포함되어 있어 클러스터당 추가 요금 정책이 책정되어있으며 관리형 서비스이기 때문에 API 엔드포인트가 제공되며 마스터노드로의 접근과 관리를 제한하고 있습니다.

M
Mason· 2023.05.11
Engineering

디자인 패턴, 옵저버(Observer Pattern)

소프트웨어를 개발하다 보면 하나의 데이터가 변경되었을 때 여러 기능이 함께 동작해야 하는 경우가 많습니다. 게시글이 등록되면 알림을 보내야 하고, 주문이 완료되면 재고를 차감해야 하며, 회원 정보가 변경되면 로그를 남기거나 통계를 갱신해야 합니다.

M
Mason· 2023.05.01