개발하면서/타인글보면서
-
Kotlin 사용하면서 배운 10가지개발하면서/타인글보면서 2024. 1. 30. 09:42
IT 컨설턴트 회사 Xebia에서 Kotlin을 사용하면서 배운 10가지 정리한 글을 읽었다. https://xebia.com/blog/using-kotlin-in-a-java-project-10-lessons-learned/ Using Kotlin in a Java project: 10 lessons learned Kotlin Using Kotlin in a Java project: 10 lessons learned - Xebia xebia.com Java에서 Kotlin으로 넘어가면서 느낀 장점은 Null safety와 data class를 이용해서 boilerplate 코드가 눈에 띄게 줄었다는 점이다. 현재 업무로 Kotlin + Spring을 쓰고 있는데 (Java 보다는) 직관적이고 다양한 표..
-
incident.io에서 모놀리식 유지하면서 역할은 분리하는 방법개발하면서/타인글보면서 2023. 12. 16. 20:20
꽤 오래된 얘기지만 Monorepo로 코드 유지하면서 MSA 운영하는 게 심심치 않게 언급된다. 괜찮은 방법인가 보다. Monorepo로 운영하는 회사 다닌적은 없지만 Monorepo의 장점을 상상해봤다. 1. 회사에서 공통적으로 쓰는 라이브러리(DB 커넥션, 캐시, 유틸성) 2. 하나의 Repo로 유지를 하니 코드 검색이 쉽고 빠를 듯 MSA는 네트워크 비용과 모니터링, 회사 내 코드 컨벤션 통일 어려움, 추적이 쉽지 않다는 점이 단점이 있고, 장점은 타 팀에 의존이 덜해서 각 팀만의 개발 및 운영이 용이하고 특정 서비스에 오류가 발생하면 해당 서비스만 격리하기 쉽다는 장점이 있다. Monorepo 하면 가장 먼저 생각나는 회사는 구글이다. https://qeunit.com/blog/how-google..
-
도메인주도 설계 철저 입문 - 값객체, 엔티티, 도메인 서비스 그리고 의존관계개발하면서/타인글보면서 2023. 10. 22. 17:30
개발자를 막 시작하던 시기에 적절한 자료구조와 알맞은 알고리즘만 사용할 줄 알면 괜찮게 만든다고 생각한 적이 있다. (아예 틀린 말은 아니지만.) 지내고 보니 위 생각은 기계쪽(?) 치우친 생각이었고 사람과 일하려면 도메인 파악이 중요하다는 것을 느낀다. 서비스의 도메인을 이해하고 개발을 해야 쏟아지는 다양한 요구사항들을 신속하게 대처할 수 있고 이는 결국 개발자의 생산성과 이어진다. 요즘 엔티티 정의를 어떻게 해야 잘할까...고민이 있어 집어 들었다. 값 객체 대표적인 값의 성질 내용은 변하지 않는다. (변하는건 값이 아닌 변수의 내용) 주고받을 수 있다. 비교할 수 있다. 원시 타입에 익숙한 개발자는 값 객체 표현을 위해 클래스가 많이 생성되는 것을 보고 껄끄러워하는 경우도 있다. 그래서 소개한다. ..
-
Slack에서 Kafka 운영/관리 하는 방법개발하면서/타인글보면서 2023. 6. 4. 11:41
트위터에서 Slack uses Kafka at Scale라는 제목을 시작으로 Slack에서 카프카를 왜 썼고 어느정도 규모인지 얘기하는 thread가 있어 정리해 봤다. https://twitter.com/BdKozlovski/status/1661700334157430784 트위터에서 즐기는 Stanislav Kozlovski “Slack uses Apache Kafka at scale: - 6.5Gbps - 700TB of data - 100s of nodes Here's their story 👇” twitter.com 네트워크 망은 6.5 Gbps를 사용하고 700TB 데이터, 100개 이상의 서버 노드가 존재한다. 1. 2016년에 큐 시스템으로 Redis를 사용 서비스 Web App들이 Redis..
-
Docker Desktop 유료화 정책 변경으로 대안 찾아보기개발하면서/타인글보면서 2022. 2. 6. 20:23
작년 8월에 Docker Desktop 구독 모델이 변경이 된다는 글이 올라왔다. https://www.docker.com/blog/updating-product-subscriptions/ 기존 Docker Free는 이름만 Docker Personal로 되고 무료로 사용할 수 있는데 다만 아래 조건에 해당될 때만 Docker Personal을 사용할 수 있다. . 250명 이하 이고 $10M 이하 연매출인 기업 . 개인적으로 사용(학습, 비상업용의 오픈소스) 즉 어느 정도 성장한 기업은 Docker Desktop 유료 구독하라는 얘기이다. 유료 구독에서는 보안과 권한 제어 그리고 Docker hub의 풍부한 CI/CD 기능을 사용할 수 있다. 오픈소스가 개발 생태계를 풍요롭게 만들고 개발 환경에도 도움..
-
Uber에서 Kafka consumer 모니터링 하는 방법개발하면서/타인글보면서 2021. 10. 25. 22:46
"Kafka consumer monitoring"하면 어떤 게 떠오르나요? __consumer_offsets 토픽, lag, autocommit, consumer rebalance, Burrow ※ Burrow에 정리한 dol9 글 https://dol9.tistory.com/272 https://dol9.tistory.com/273 현재 우버는 대부분의 서비스에서 Kafka를 사용 중인데 Kafka consumer 모니터링을 위해 자체 개발한 얘기가 소개된게 있어 정리해보았습니다. ※ 규모의 경제로 여차하면 자체 개발하는 것 같다. -_-;; 자체 개발 -> 오픈 소스 -> 기술 회사 창업? ㅋㅋㅋ 그리고 정리하다보니 __consumer_offsets 토픽 데이터뿐만 아니라 어떠한 이유로 내려간 con..
-
Uber에서 Kafka를 MSA 큐로 사용하기 위해 고려한 것들개발하면서/타인글보면서 2021. 9. 19. 16:47
Kafka를 ETL이 아니라 서비스에 적용했다는 사례가 종종 들린다. 마지막 commit 이후 처리가 완료된 message가 연속적으로 있을 때 offset commit 돼야 하고 exactly-once, 그리고 consumer group 중 한 개 consumer만 재시작돼도 rebalance가 일어나면서 처리가 멈춰서 개인적으로 서비스에 Kafka를 도입에 부정적이다. 차라리 RabbitMQ처럼 온전히 Queue 목적으로 만들어진 제품을 쓰는 게 여러모로 좋다고 생각했다. 이런 나를 비웃듯이 우버에서 Kafka를 서비스에 어떻게 적용하는지 소개했다. 크흐~~~ https://eng.uber.com/kafka-async-queuing-with-consumer-proxy/ 결론부터 말하면 Kafka Co..
-
Elasticsearch의 개념 살펴보기..(2)아래에서 위로개발하면서/타인글보면서 2021. 8. 30. 08:59
이전 포스트에선 Elasticsearch 개념을 사용하는 측면으로 알아보았다. https://dol9.tistory.com/294 이번에는 반대로 Elasticsearch의 주 기능인 검색을 담당하는 Lucene 그리고 이를 관리하기 위한 Elasticsearch의 기능들을 알아본다. 바닥(?)을 알게 되면 Elasticsearch API들을 이해할 때나 문제 해결 시 도움이 될 것이다. 물론 모든 바닥을 알기에는 우리의 시간은 유한하니 나한테 필요한지 아닌지 고민하자 시작하자. https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up 역색인(Inverted Index) 검색엔진을 처음 배우면 듣는 자료구조다. 바로바로 역색인 입력한 문서에서..