본문 바로가기

분류 전체보기

12월의 추천 서적: 마이크로서비스 아키텍처 구축 가이드 실무에서 고민했던 것들이 축약되어 쓰여있는 책이다. MSA 뿐만 아니라, 외부 시스템을 연동할 때 고민해야 하는 요소들이 포함되어 있다. 이 책을 통해 실무에서 사용했던 패턴들이 무엇이었는지 제대로 인지할 수 있어서 좋았다. MSA 패턴을 경험해본 적이 없거나, 초기 적용 단계라면 이 책이 많이 유용할 것 같다. 애플리케이션 패턴의 장/단점들이 꼼꼼히 작성되어 있고, 예제 사례가 실무와 똑같은 경우도 있다. (낯익은 코드가 나타나서 흠칫했다.) MSA 패턴 혹은 외부 시스템 연동이 많은 시스템을 운영하고 있는 개발자라면, 이미 아는 내용들일 것이다. 그런데 가볍게 리마인드 하면서 훑어보기 좋을 것 같다. (후루룩 읽으면 2주 이내에 읽을 수 있다.) 나의 경우에는 책의 이론/예제와 내가 경험했던 실무 사..
<김용욱> 마이크로서비스 아키텍처 구축 가이드: 설계원칙 서비스의 의존관계 코드 레벨의 참조 코드 레벨의 참조는 다른 서비스의 API나 이벤트 정의를 따르는 것이다. 참조하는 서비스의 스펙이 변경되면, 자신도 같이 변경되어야 한다. 런타임 레벨 참조 실행 중에 다른 서비스의 API나 이벤트를 호출하는 것이다 런타임 레벨에서 다른 서비스의 기능을 호출한다면, 해당 서비스에 장애가 발생했을 때 영향을 받을 수 있다. 설계원칙 (1) 참조 방향을 역전하자! 코드 레벨의 참조와 런타임 레벨의 참조는 보통 동일한 방향을 가진다. 하지만 코드 레벨의 참조를 역전시키는 경우, 둘의 방향이 반대가 된다. 예제로 살펴본 참조의 역전: Callback API callback API가 코드 레벨 참조와 런타임 레벨 참조의 방향이 바뀌는 대표적인 사례이다. Payment serve..
[후기] sweep-ai: AI 주니어 개발자 sweep ai은 버그 리포트와 피쳐 리퀘스트를 코드로 만들어주는 AI 기능이다. GeekNews에서 소개를 보고 놀랐다. AI 주니어 개발자라니?! 사이드 프로젝트를 같이하면 좋겠다! 싶었다. 그래서 당장 테스트를 해봤다. 사용방법 https://github.com/apps/sweep-ai Github App에서 나의 github과 Sweep AI 애플리케이션을 연동한다. 2. 설치를 하고 나면, Sweep이 자기 설정 정보가 포함된 PR을 만들어서 올린다. 3. Issues에 작은 일감을 등록한다. 4. sweep ai가 일감을 분석하고, 업무 계획을 세우고, 실행한다. 코드 검색, 분석, 코딩, 리뷰까지 단계를 나눠서, Sweep ai agent가 대신 일을 처리한다. 5. PR 리뷰하기 작업 내용..
[후기] makereal tldraw: 와이어프레임으로 HTML 뽑아내기 소개 makereal tldraw은 온라인 화이트보드에 와이어프레임을 그리면, HTML과 Tailwind으로 바꿔주는 기능을 제공한다. HTML 삽입 미리보기할 수 없는 소스 github의 이 영상을 보고 혁신적이라는 생각이 들어서, 테스트를 해봤다. 준비물 1. openai에 금액 충전하기 makereal tldraw은 chatgpt의 gpt-4-vision-preview 모델 기반으로 동작한다. 이 기능을 사용하려면 chatgpt credit이 충전되어있어야한다. 최소 5달러는 있어야한다. 2. chatgpt api key 준비하기 3. open api key 등록하기 실험1. 단순한 어드민 화면 만들기 실험2. 디자인이 적용된 UI 화면 만들기 디자인이 적용된 UI를 구성하기에는 어렵단 생각이 ..
<김용욱> 마이크로서비스 아키텍처 구축 가이드: 제공자와 사용자 관점에서 살펴본 REST API 종류 Note. 난 토스가 국내에서 OpenAPI 사용 가이드를 가장 잘 작성한 업체라고 생각한다. 용어사전, 케이스 별 응답, 상태 다이어그램을 잘 정리해둔게 인상깊었다. (토스 페이먼츠 가이드 사례 링크)
손글씨st으로 예쁘게 노트 기록하기 1. Obsidian을 설치한다. https://obsidian.md/download 2. Obsidian excalidraw plugin을 설치한다. 3. 모든 확장자 파일을 볼 수 있도록 설정한다. 4. 손글씨 폰트를 다운로드 받는다. https://clova.ai/handwriting/list.html# 새로운 나눔손글씨 글꼴 - 네이버 클로바 한글한글 아름답게 캠페인과 함께합니다. clova.ai 5. Obsidial 폴더에 폰트를 추가한다. 6. Excalidraw에 폰트 추가한다. 7. Excalidraw에서 폰트를 선택한다. 7. 결과물
<김용욱> 마이크로서비스 아키텍처 구축 가이드: 프론트엔드 마이크로 서비스 아키텍처 5.1.3 프론트엔드 마이크로 서비스 아키텍처 프론트 도메인 분리하기 프론트엔드를 여러 도메인 별로 분할해야하는 경우가 있다. 프론트엔드 팀의 규모가 지나치게 큰 경우다. 이 경우, 개발 생산성이 낮아지고, 테스트와 배포가 어려워진다. 도메인 별로 팀을 묶어두었으나, 프론트엔드 애플리케이션은 1개인 케이스다. 이렇게 되면 팀 별로 독립적인 배포가 어려워진다. UI 조합하기  화면을 도메인 별로 분리하고 난 이후에는, 분리된 화면을 연결해줄 수 있는 방법이 필요하다. 크게 두가지 방법이 있다. 분리된 UI를 조합하는 심플한 방법은 HTML 링크를 사용하는 것이다. 서비스마다 별도의 사이트를 두고, 메뉴를 선택할 때 해당 사이트로 전환한다. 각 서비스는 같은 인증 체계를 갖고 있어서, 별도의 로그인 없..
HTTP KeepAlive와 Spring Tomcat과 Netty ConnectionPool의 관계 persistent connection이란? 클라이언트에서 매번 커넥션을 새로 맺는 비용을 줄이기 위해, 커넥션을 일정기간 유지하는 것을 말한다. KeepAlive이란? persistent connection을 맺는 방법 중 하나이다. HTTP 1.0부터 지원하기 시작했다. HTTP 1.0에서는 기본값은 비활성화이다. HTTP 1.1부터는 KeepAlive가 기본 설정이다. 서버의 커넥션 최대 유휴 시간 클라이언트에서 커넥션을 맺어두기만 해놓고, 사용하지는 않는다면 서버 입장에서는 불필요한 리소스를 낭비하게 된다. 그래서 서버 애플리케이션에서는 서버 최대 유휴 시간을 설정할 수 있다. 즉, 커넥션을 맺은 이후 특정 기간동안 사용되지 않았다면, 커넥션을 강제로 끊어버리는 행위를 말한다. Spring > T..