Feature Flags? 누구냐 넌
·
Spring
1. 서론 이전 API Version 관리를 포스팅했던 내용에 이어 이번에는 Feature Flags 내용을 작성해보려고 한다. 현재까지 나는 신규 프로젝트를 개발하는 일이 잦았다. 신규프로젝트를 진행하며 빠르게 변동되는 API들을 관리할 필요성이 있었고 서비스 도중 사용하지 않는 API를 제외시키기 위해 업데이트 후 재 배포를 했던 경우도 여럿 있었다. 그러다 문득, 들었던 생각은 굳이 API 필터링을 위해 배포 비용을 감안해야 할까?라는 의문이 들었었고 이를 해결할 수 있는 방법은 없을지 최근 생각하게 되었었다. 이런 고민에 대한 이야기를 민수님, 건수님께 꺼냈을 때 민수님께서 Feature Flags란 키워드를 알려주셨었고 해당 키워드에 대해서 한번 학습을 진행해 보았고 이를 잊지 않기 위해 정리를..
API 버전을 관리하는 방법?
·
Project
개요 초기 서비스를 개발하고, 운영을 하다 보면 적지 않게 여러 요구사항과 이슈수정 그리고 업데이트에 의해 API의 버전들이 자주 변경됨을 알 수 있다. 제일 간편한방법은 각 API에 버전을 prefix로 기입하는 방법 /api/v1 이 있겠으나 보다 더 보안적이고 API별로 관리할 수 있는 방법은 없을까? 란 궁금증이 생겼다. 또한 REST API에서 각 API들의 버전들을 관리하는 방법들에 대해서 습득한 이후, 추후 버전에 관련된 의사결정을 할때 각 방법들에 대해서 제대로 알고 있다면 추후 선택하는 과정에서 보다 원활하게 선택할 수 있지 않을까 하여 학습을 진행하게 되었다. 버전을 관리하는 방법 버전을 관리하는 방법은 총 4가지가 있다. URI를 통한 버전관리 → 사용 경험 O Request para..
연말을 마무리하며 2023년도 회고
·
회고
서론 2023년을 마무리하며, 그동안에 못다 한 이야기를 적어 내려가보려고 한다. 해당 글을 적는 이유는 내가 그동안 느꼈던 점들 또는 부족했다고 느낀점들을 기록하며 이를 잊지 않고 꼭 기억하기 위함도 있다. 지난 9월 ~ 12월 약 3달간 회고의 소식이 뜸했던 이유는 결국 내가 당시때 느끼던 점들이나 개선하고 있는 점들이 엇비슷했기에 같은 내용을 적는 건 어쩌면 의미가 없지 않을까? 란 생각이 들었기 때문이었다. 각 달들을 다시한번 돌아보며 최종적으로 2023년의 회고를 진행하고 이를 발판 삼아 내년에 대한 목표를 세워보며 한해를 마무리지어보려고 한다. 2023. 01 ~ 02 1,2 월은 나에게 새로운 다짐과 목표를 심고 이를 실행했던 달이었다. 그동안 내가 진행했던 일들은 다음과 같다. 1. 내가 ..
Chained Transaction Manager 파헤치기
·
Spring
서론 최근 리팩토링 작업을 진행하고 있다. 리팩토링 작업을 진행하던 도중 Transaction들이 Chain Transaction Manager로 묶여있는 걸 확인할 수 있었고 해당 Manager가 Deprecated가 된 상태로 있는 이슈가 있어 해당 부분을 개선하고자 했다. 개선 도중 이 내부는 어떻게 동작되고 있고 개선 대안은 어떤 게 있는지 의문점이 들었었고 해당 부분을 개선하는 도중 내부 동작을 기억하고자 글을 적게 되었다. 개선하면서 하나씩 더 채워보려고 한다. What is Chained TransactionManager? 위 트랜잭션 매니저는, Spring Data Commons에서 공식적으로 지원하는 라이브러리이다. 해당 기술의 내부 구조를 간단하게 살펴본다면 여러개의 나눠진 트랜잭션 매..
카프카 클러스터 & 세팅 그리고...
·
Kafka
목차 1. 개요 2. 카프카? 3. 그렇다면 클러스터링은 언제 해야 할까? 4. 클러스터링 환경 구축 ( Docker ) 5. 마치며 개요 최근 업무로 다뤄볼일이 생겼고, 개인적으로도 카프카에 관심이 생겨 책을 통해 학습을 진행하며 공부를 하고 있다. 또한 업무 중, 현재 진행하고 있는 프로젝트의 개선을 진행할 일이 생겼는데 이때 첫 번째로 눈에 띄었던 건 로컬과 테스트환경, 실서버의 카프카가 서로 다른 환경에 있는 문제가 처음 눈에 띄었다. 서로의 환경이 다르기에, 배포 전 완벽한 테스트를 진행하는 것이 어려웠고 이를 통한 사이드 이펙트들이 발생할 수 있다고 생각했다. 그렇기에, 해당 부분에 대해 개선을 진행하였고 이를 기억하고자 글을 작성하게 되었다. 또한, 이런 학습을 기준점으로 삼아 비트코인 프로..
[Kafka 핵심가이드] 1장: 카프카 시작하기
·
Kafka
카프카의 구동 원리 ( Pub sub ) Pub / Sub 전송자가 데이터를 보낼 때 직접 수신자로 보내지 않는다는 특징을 가진다. 전송자가 메시지를 보내고 수신자는 이런 메시지를 중계해 주는 중개인을 통해 메시지를 전달받는다 초기의 Pub sub System 초기에는 서버에서 매트릭 서버로 로그를 쌓았다. 하지만 해당 방법자체가 오래가지 않아 장기간 지표값을 분석하려 한다면 해당 대시보드가 제대로 작동되지 않는다는 걸 알게 된다고 한다. 아마, 추측하건대 장기간 지표값을 분석하게 되면 서버 측의 메트릭들을 하나의 UI 서버가 구독하고 있기에, 데이터가 많아질수록 UI의 랜더링이라던지 성능 저하가 발생하는 걸 이야기하지 않을까 싶었다. 해당 아키텍처에서 필요에 의해 하나씩 발전시킨다고 하면 아래의 아키텍..
2023년도 8월의 회고
·
회고
서론 8월을 마무리하며, 중반기 회고를 함께 해볼까 한다. 2023년도 중반기까지의 나는 새로운 도전의 연속이 가득했던 반년이었다. 작년의 내모습들에서 어떤 점들을 바꿔야 하고 어떤 마음가짐을 가져야 하는지 고민하고 개선하기 위해 노력했던 것 같다. 또한 작년에는 "나 이런기술을 더 익히고 배워야겠다"라는 생각이 강했다면 요즘은 "더 가치 있는 서비스가 무엇이고, 어떤 분야에 내가 관심을 많이 가질 수 있을까?"를 많이 고민했던 것 같다. 이번 회고에서는 반년 중, 가장 기억에 남았던 몇 가지들을 적어보고자 한다. 사수님의 이직 첫번째는 건수님의 이직이다. 첫 회사인 줌인터넷에서 많은 걸 배우고 느끼며 옆에서 가장 많이 배웠던 건수님이 이직이 인상 깊었다. 물론, 아쉽다거나 그렇다는 이야기는 아니다. 첫..
실시간 코인시세 어디까지 알아봤니? part 1
·
Spring
1. 개요 이전, 비트코인 개선 기를 올린 지 약 두어 달이 지났다. 그동안 동아리 내에서 신규 서비스 : 북마크 아카이빙 서비스 런칭이 얼마 안 남은 시점이기도 하였고 회사 내에서도 신규 프로젝트를 진행하고 개인적인 이런저런 일들이 많아 포스팅이 뒤로 미뤄졌었다. 해당 프로젝트의 경우 단순 “카프카”, “코틀린” 두가지를 학습해 보자라는 취지로 시작했었는데 하다 보니 실시간성을 유지하며 프로젝트를 발전시켜보고 싶었고 이와 더해 최근 관심이 생긴 애플리케이션 아키텍처를 통해 좀 더 고도화를 해보고 싶단 생각이 들었다. 그렇기에, 이번 목표는 다음과 같이 선정해보았다. 기존 애플리케이션 아키텍처 개선 빗썸 Open Websocket을 활용한 실시간 데이터 송수신 나름대로(?)의 MSA 상황을 연출해 보고 ..