개발하면서
-
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 기능을 사용할 수 있다. 오픈소스가 개발 생태계를 풍요롭게 만들고 개발 환경에도 도움..
-
구글 시트에서 원하는 대로 서식을 변경하기개발하면서/etc 2022. 1. 9. 09:34
구글시트에는 날짜와 화폐 그리고 숫자 서식을 설정할 수 있는데 기본으로 제공하는 서식이 아닌 내가 원하는 서식으로 바꾸고 싶을 때가 있다. 구글시트에서는 맞춤 서식을 어떻게 제공하는지 날짜, 화폐, 숫자 각각에 대해 알아본다. 날짜, 화폐는 간단한데 숫자 맞춤 서식이 꽤 복잡하다. 처음부터 형식 만들기 보다는 예제를 선택한 후 수정하면서 적용되는 예제를 보며 진행하는게 괜찮은것 같다. 서식 테스트를 위해 날짜, 화폐, 숫자 모두 존재하는 삼성전자의 최근 10일 치 데이터를 가지고 진행해보자. 날짜 처음에는 서식을 암만 바꿔도 변경이 되지 않았다... 버근가? 싶었는데 찾아보니 텍스트 형식이 YYYY-mm-dd, 시간까지 한다면 YYYY-mm-dd HH:MM:ss 여야 한다. 구글시트에 있는 문자열 함수로..
-
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..