본문 바로가기 메뉴 바로가기

welcome!

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

welcome!

검색하기 폼
  • 전체보기 (231)
    • IT 저서 (20)
      • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (12)
      • 데이터 중심 애플리케이션 설계 (8)
    • Discrete mathmatics and Pro.. (41)
      • 1 논리 (14)
      • 2 기초적인 구조들 : 집합, 함수, 순열, 시그.. (3)
      • 3 알고리즘 (2)
      • 5 재귀와 귀납 (2)
      • 6, 8 경우의 수와 그 응용(dp) (7)
      • 9 관계 Relations (4)
      • 10 그래프 (1)
      • 11 트리 (6)
      • etc radom, samplings (1)
    • 알고리즘 문제 (7)
      • math (8)
      • implementation (17)
      • sort, search (5)
      • data structure (5)
      • Brute Force (4)
      • BFS (0)
      • DFS and Simillar (4)
      • DP (11)
      • graph (7)
      • Flow (1)
      • string (0)
      • 입사문제 (2)
    • 운영체제 (5)
      • 1 overview (0)
    • 네트워크 (12)
    • 데이터베이스 (3)
    • 컴퓨터구조 (0)
    • 개발이야기 (20)
      • 포트폴리오 (1)
      • Flutter (2)
      • Wpf (1)
    • 자유공간 (12)
    • Calculus (0)
    • IoT 과정 (39)
  • 방명록

개발이야기 (24)
API 문서로 Spring REST Docs를 비추천한다.

이 글은 나의 개인 견해이다.실무에서 Spring REST Docs와 Swagger를 쓰면서 드는 생각을 정리해본다.필요성API 문서는 시스템을 드러내는 문이라고 생각한다. 누군가가 사용해야하기에 반드시 정의해야한다. 잘 정의된 API와 문서는 동료 개발자들이 개발을 하는데 매우 큰 도움을 주고, 또한 개발자 스스로에게도 이 API 역할이 무엇인지 명확히 알 수 있는데 도움을 준다. 그렇기에 모두에게 필요한 문서이다. 아이러니하게도, 나를 포함하여, 문서를 왠만큼 잘 읽는 개발자들도 필요할 때가 아니면 잘 안읽는 사람들 많지만 필요할 땐 반드시 찾게된다.API 문서가 없는 개발 환경은 팀으로 일하지 않는 경우를 제외하고는, 아주 초창기에나 가능할 듯 하다.가독성가독성에 대해서 이야기하기 위해선, 먼저 레..

개발이야기 2025. 6. 5. 05:21
MIT 6.034 Artificial Intelligence 보는 중

ChatGPT 4o를 구독하여 쓰고있는데 나보다 더 잘 쓰는 일반인들도 많더라 난 자주 쓰는 정도고, 질문을 주고 받는 건 능숙한데 GPT 4o를 가지고 수익을 창출할 정도도 아니고..여튼 요새 AI를 해야할거 같아서,솔직히 발을 걸쳐놓지 않으면 도저히 따라갈 수 없을 정도로 될 것 같아서기초부터 배우려고 GPT 한테 물어봐서 강의목록을 뽑아보았다. 그 중 가장 처음 되는 강의 였음 예전 알고리즘 이론 공부할 때도 MIT OCW를 보고, 유튜브로 자막도 작성했었는데..이건 누가 다 자막을 만들어놨더라 덕분에 재밌게 볼예정옛날 기억도 나서 글을 써봤음

개발이야기 2025. 1. 28. 15:06
prometheus, opentelemetry, Loki 를 활용한 모니터링과 grafana 시각화

Spring 대시보드 예제 바로보기https://grafana.com/grafana/dashboards/17175-spring-boot-observability/ Spring Boot Observability | Grafana LabsImport the dashboard template Copy ID to clipboard or Download JSONgrafana.comFastAPI 대시보드 예제 바로보기https://grafana.com/grafana/dashboards/16110-fastapi-observability/ FastAPI Observability | Grafana LabsImport the dashboard template Copy ID to clipboard or Download JS..

개발이야기 2024. 11. 11. 05:57
항해플러스 수료 기념 깃헙 뱃지 등록

개발이야기 2024. 5. 25. 17:45
항해99) 트랜잭션 관심 분리와 애플리케이션 이벤트 활용 - 문서

이번에는 트랜잭션 관심 분리와 애플리케이션 이벤트 활용에 대해 설계문서를 작성해볼 것입니다.시나리오는, 좌석 예약 시나리오로 플로우는 다음과 같다.1 예약정보 저장 2 계좌 정보에 고객정보 있는지 확인2.1 계좌 정보에 고객 정보가 없다면 계좌 정보에 고객 정보 생성3 결제 내역 생성4 결제 히스토리에 결제 5 해당 고객 계좌 정보에 차감금액 입력위 플로우는 하나의 트랜잭션으로 묶인다.코드는 다음과 같다. @DistributedLock(key="#userId") public boolean payForPreReservedSeat(int amount, Long userId) throws Exception { Reservation reservation = jpaReservationCor..

개발이야기 2024. 5. 15. 22:19
항해99) 트랜잭션 관심 분리와 애플리케이션 이벤트 활용 - 문서

이번에는 트랜잭션 관심 분리와 애플리케이션 이벤트 활용에 대해 설계문서를 작성해볼 것입니다.시나리오는, 좌석 예약 시나리오로 플로우는 다음과 같다.1 예약정보 저장 2 계좌 정보에 고객정보 있는지 확인2.1 계좌 정보에 고객 정보가 없다면 계좌 정보에 고객 정보 생성3 결제 내역 생성4 결제 히스토리에 결제 5 해당 고객 계좌 정보에 차감금액 입력위 플로우는 하나의 트랜잭션으로 묶인다.코드는 다음과 같다. @DistributedLock(key="#userId") public boolean payForPreReservedSeat(int amount, Long userId) throws Exception { Reservation reservation = jpaReservationCor..

개발이야기 2024. 5. 14. 11:43
항해 99) 대기열 이야기

사용자가 임의로 서비스에 접근할 때 서버의 처리비용 그리고 DB의 처리비용을 완화하려고 대기열 구현을 하는 것은 흔할 수 있다. 선착순 문제라고 생각하면 쉽다.대기열 순번을 구현할 때, 순번은 어딘가에 영속적으로 저장되어야하는데 DB와 Redis 두 개를 선택사항을 두고 고민했고, 나는 대기열을 이용할 때 Redis를 활용했다. 왜냐하면 다음과 같은 이유가 있다.1. 대기표 순번은 아주 단기간에 몰리는 트래픽을 처리하는데 사용할 필요가 있다. Read, Write 비용이 높다.2. 피크 타임에 단기간에 몰린 뒤 서비스가 완료된 뒤 그 이후에는 필요가 없다. 즉, DB에 쌓는다면 필요없는 레코드가 수백만건이 쌓일 것이다. 무언가가 배치로 DB Table로 부터 레코드를 지워야한다. 그러나 Redis를 활용..

개발이야기 2024. 5. 10. 18:02
항해99) 인덱스 관련 이야기

항해 99 과정서 콘서트 좌석 관련 테이블 형태는 다음과 같다.제약조건: 좌석수: 1~50콘서트수: 1~200좌석상태: EMPTY, RESERVEDseat_number: 좌석 정보 show_id: 콘서트 아이디occupied_status: EMPTY, RESERVED 이다.1번 콘서트에서 잔여좌석 확인때 다음과 같이 수행한다.select * from seat_info where occupied_status = "EMPTY" and show_id = 1;Explain view로 보면 Full Table Scan을 수행한다.  여기서 풀테이블 스캔을 피해가려면 Index를 걸 수 있다.Index는 Cardinality가 큰 녀석을 걸면된다. 직감적으로 show_id에 걸면 될 것이다.(1~50)이므로.Ind..

개발이야기 2024. 5. 10. 17:39
python의 GC, 가비지 콜렉션

Garbage Collection Python의 GC는 기본적으로 암묵적으로 진행된다. 어떻게 암묵적으로 진행되는지는, PEP 556에 따르면 기회주의적으로 따른다고 한다. 새로운 allocation이 진행될 때, allocation을 통계적으로 연산하여 휴리스틱하게 진행된다고 한다. 이를 보고 implicitly opportunistic 이라고 한다. GC를 명시적으로 collect 하기 위해선 다음 코드를 수행해야한다. gc.collect() 자, 그럼 어떻게 암묵적으로 또는 명시적으로, 어떤 GC를 진행하고 있는 것일까? Reference Counting Python GC는 기본적으로 reference count로 수행된다. reference count 란 C++ 의 shared ptr과 동작방식이..

개발이야기 2024. 2. 20. 02:56
grafana cloud 에서 디스코드(discord) Alert 설정하기

이번에는 grafana cloud 에서 alert를 설정하는 것을 알아보겠습니다. prometheus 에서 alert rule을 설정하는데 두 가지 방법이 있는데 하나는 alertmanager 이고, 하나는 grafana에서 설정하는 방법입니다. grafana 4.0 이전 버전에서는 alert rule을 사용할 수 없어, prometheus/alertmanager https://github.com/prometheus/alertmanager 을 추가적으로 설정해줘야합니다. 다행히도 현재 grafana 또는 grafana cloud 에서는 사용할 수 있습니다. Alert Rule에 새로운 rule을 추가해봅시다. node-exporter 에서 지원하며 추적할 metric을 추가하고(A), 그리고 B, C에 ..

개발이야기 2024. 2. 19. 12:20
이전 1 2 3 다음
이전 다음
공지사항
  • 소스코드 중 링크가 존재하지 않다고 뜨는 것은⋯
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • grafana cloud
  • 아레나
  • 최단경로 알고리즘
  • Simulation
  • Grafana
  • 로젠
  • 대규모 시스템 설계 기초
  • 아레나시뮬레이션
  • 시뮬레이션
  • arena simulation
  • 항해99
  • flutter
  • 이산 수학
  • javascript
  • 명제논리
  • 가상 면접 사례로 배우는 대규모 시스템 설계 기초
  • Arena
  • 데이터 중심 애플리케이션 설계
  • Propositional and Predicate Logic
  • 아레나 시뮬레이션
  • paul wilton
  • beginning javascript
  • 백준
  • 그라파나
  • 자바스크립트 예제
  • 자바스크립트
  • Discrete Mathematics
  • rosen
  • 엄청난 인내심과 시뮬레이션을 위한 아레나 툴
  • 이산수학
more
«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바