%EB%A0%88%EA%B1%B0%EC%8B%9C

2022-04-18
요즘 라이브 서비스의 레거시 코드 리팩터링을 하고 있다. 흔히 가변 상태를 관리하는 Context 클래스가 레거시 코드에 있는 건 새삼스럽지 않았지만, 과도하게 사용하고 있어서 정리가 필요했다. 가변 상태 Context 사용 시 문제점 가변 상태를 가지는 Context 클래스가 2, 3개도 도 아니고 10개쯤 되면 과하다고 생각한다. 이렇게 많은 Context 클래스들이 서로 물고 물리는 종속성을 가지고 각기 다른 클래스에 넘기고, 넘겨받고, 가변 Context의 레퍼런스가 다양한 함수들로 넘겨져 전역 변수처럼 여기저기서 사용되면서 어딘가에서 A가 set을 하고 다른 곳에서는 B가 get을 하는 상황은 코드를 매우 읽기 어렵게 만들었다. 읽기 어렵다는 것은 Context를 수정할 때, 사용처를 모두 추적하는 것이 어렵고, 문제 발생 시 디버깅 역시 어렵다는 것이다.   다른 것보다 이걸 먼저 해결하기로 했다. 이 Context 클래스를 정리하는 리팩터링을 점진적으로 진행하여 총 10개에서 6개를 삭제하고 2개는 사이즈를 많이 줄였다. 프로덕션 코드에서 총 568라인을 삭제했다. 당연히 기능에 변화는 없다. Context를 정리하는 리팩터링이 일단락되어 ...
2019-05-09
아이스크림 홈런에 재직하고 계신 범균님과  여명님의 아이스크림 홈런 관측성 세미나가 Festa 에 올라오게 되어서, 조직이 레거시를 개선하기 위한 관측성을 올리기 위해 어떤 노력을 하셨는지에 대해 들을 수 있는 좋은 기회라고 생각하게 되어 해당 이야기들을 듣게 되었습니다. 범균님께서는 전체적인 이야기를, 여명님께서는 세부적인 이야기들을 하였고 두개의 세션으로 나누어 진행되었습니다. 1. 레거시 관측성 올리기 1/10 → 5/10 - 최범균 첫 발표는 범균님의 레거시 관측성 올리기에 대한 세션이었습니다....
더보기