전체 글

단순 코더가 아닌 스스로 생각하는 개발자가 되기 위해 기록합니다. | 저작권 문제로 단순 강의 & 책 정리 글은 보호합니다.
· 회고
수백 개 컬럼, 이건 뭔가 잘못됐다.예전에 회사에서 작업하다가 테이블 컬럼이 수백 개인 걸 봐버렸다. 도대체 왜 이렇게 많은 데이터가 한 테이블에 몰려 있는지 이해할 수 없었다. 이건 그냥 구조의 문제인가? 설계 미스인가? 아니면 내가 뭔가를 놓치고 있는 건가? 머릿속이 복잡해지면서 자연스럽게 '도메인', '엔티티', 'DDD' 같은 단어들이 떠올랐다. 사실 DDD는 몇 번 책도 보고 강의도 들어봤지만, 선뜻 와닿지 않았다. 그런데 이상하게 이 수많은 컬럼을 가진 테이블을 보고 나니까, 내가 그동안 이해하지 못했던 것들이 하나씩 연결되기 시작했다. 약 7개월 전의 일이지만, 이제서야 그때 느꼈던 생각들을 정리해보려 한다. 왜 개발자는 괴로운가?테이블 컬럼이 100개인 거대한 역정규화 ‘Device Met..
· 생각정리
요즘은 ‘어떻게 개발해야 잘하는 개발자인가’보다‘어떤 기준으로 일하는 사람이 되고 싶은가’를 더 많이 고민한다.누군가는 스스로에게 묻는다.“내가 지금 하는 일은, 내가 해야 할 일인가?”그런데 나는 이 질문이 어색하다.일은, 책임이 있다면 해야 하는 것이다.그게 내 역할이고, 내가 해야 할 일이라면의심 없이 해내야 하지 않을까?분명한 건 질문이 아니라, 태도의 문제라는 것이다. 나도 그런 적이 있었다.눈앞의 흥미에만 매달려, 본질을 외면했던 시절.재밌는 것만 찾았고, 하기 싫은 일은 미뤘다.그런데 개발자로 살아간다는 건 그런 게 아니다.제한된 시간 안에 ‘최선’을 내야 하는 일이다.하지만 여전히 부족하기 때문에,더 많이 보고, 듣고, 배우려고 한다.기술은 도구이고, 문제 해결이 본질이라는 것.프론트엔드냐..
· 생각정리
때로는 외부의 말 한마디가 바람처럼 불어와 마음을 건드린다.최근 그런 순간이 있었다.누군가의 말이 내 방향성을 뒤흔들 정도는 아니었지만, 분명 마음 한편이 거슬렸다.정확히 말하면 흔들린 게 아니라, 내가 붙잡고 있는 신념이 정말 단단한지를 점검받는 기분이었다. 흔들림이란 건 결국 방향을 다시 확인하는 기회일 수 있다.그 말 이후로 나는 오히려 더 차분하게 스스로에게 물었다.“나는 지금 어디로 가고 있는가?”“내가 세운 기준은 여전히 유효한가?” 그 대답은 명확했다.나는 지금 잘하고 있고, 충분히 내 걸음을 걷고 있다.내가 추구하는 방향은 단단했고, 그 단단함이 나를 중심으로 다시 세웠다. “태양은 뜨기 위해 진다”는 문장이 있다.나는 그 말을 곱씹었다.강해 보이는 것만이 전부는 아니다.때로는 한 번 저물..
· 회고
이전 회사부터 현재까지, 약 11개월 차, 숫자만 보면 신입이라 해도 무방하다.이직 후 약 2개월 간의 온보딩을 거쳐 실무에 투입된 지 이제 막 1개월이란 짧은 시간이지만,현 회사에서 크게 2가지 중요한 역할을 맡아냈다.알람 & 이벤트 모듈, 그리고 카프카 발행기실무에 투입되면서 처음으로 합류한 프로젝트는데이터센터에서 발생하는 알람(전력 누수, 장애, 이상 징후 등)을모니터링하고 웹으로 시각화하는 알람 & 이벤트 모듈이다. 이제 곧 마무리 단계에 접어드는 이 프로젝트에서 나는 카프카 발행기를 주도했다.이 발행기는 단순히 메시지를 던지는 도구를 만든 것이 아니다.실제 서비스 환경과 유사한 조건에서 부하를 유발하고,시스템의 반응 속도, 처리 지연, 메시지 적재 흐름 등을 테스트할 수 있도록완전한 부하 시나리..
· 생각정리
의미 없는 시간 속밥을 먹고 나면 괜히 멍하니 누워 있게 된다.해야 할 일은 머릿속에 가득하지만, 이상하게 몸이 안 움직인다.이번 주에는 그런 내 모습이 못내 게을러 보여서,문득 '이렇게 시간을 낭비해도 되나?' 싶은 생각이 들었다. 가만히 떠올려보면,내가 진짜로 행복했던 순간들은언제나 좋아하는 것들, 그리고 사람들과 함께의미 없이 시간을 낭비했던 그 시간들이었다. 극한의 효율을 좇으며, 매일을 낭비 없이 살아야 한다는 강박 속에서개발에 몰두하고 일에 쫓기며 살아갈 때는 묘하게 마음이 메말라 있었다. 하루하루를 버티며, “시간을 헛되이 쓰면 안 돼,” 스스로를 다그쳤지만 되돌아보면 오히려 동료들과 커피챗을 나누던 짧은 틈이나예고 없이 번개로 마신 술 한 잔 같은 순간들이 더 충만했다. 그 시간들은 단지 ..
· 생각정리
씨앗, 동료 그리고 리더2025년 1월 6일,데이터센터 모니터링 회사로 이직했다.새로운 회사, 새로운 시작 그리고 새로운 도전. 첫 출근을 앞둔 아침,문득 발걸음이 무거웠다.“잘할 수 있을까?”“이 선택이 내 인생에 어떤 결과를 가져다줄까?” 긴장과 설렘, 두려움과 기대가 교차했다.익숙한 환경을 떠나는 일은 언제나 어렵다.하지만 그 두려움은, 어쩌면 설렘의 다른 이름이었을지도 모른다.방향이 같으니까.“개발자로서의 성장”은 누군가 만들어주는 것이 아니다. 스스로 걸어가는 길이다. “성장”은 실력을 쌓는 것이고, “개발”은 그 실력으로 가치를 만들어내는 일이다.방향이 같기에 나는 이 회사가 나아가기 위한 씨앗이 될 것이고, 함께 걷는 동료가 될 것이다.그리고 언젠가는, 주니어를 이끄는 따뜻한 시니어 개발자,..
· 생각정리
나는 휴네시온이 좋았다.내 명함이 나오고새로운 사옥으로 이전을 하면서신사옥 입주 기념식을 함께 축하했다.처음으로 세미나도 열어보고입사 동기들과 회식도 즐겼다.가끔은 바람도 쐬러 나오고동료들과 취미로 클라이밍도 했다.유튜브 촬영에도 나왔고가을 명랑 운동회도 하면서어쩌다보니 MVP도 했다.본부 워크샵을 즐겼고팀장님이 썰어주신 회를 먹으며마시멜로를 굽다가낭만을 즐겼다.나는 이제 퇴사를 한다.나는 휴네시온이 진심으로 좋았다.새로운 시작휴네시온 연구소 1본부 개발2팀 홍 사원입니다.휴네시온에서의 여정을 마무리하게 되었습니다.2024년 5월 2일에 입사하여 약 7개월이라는 짧은 기간이었지만, 휴네시온은 제 인생에서 특별한 전환점이 되어 주었습니다.입사 초기, 김영환 부사장님께서 해주셨던 말씀이 아직도 기억에 남습니..
SELECT (REPEATABLE-READ;반복 읽기)MySQL 서버에서 select 구문은 기본적으로 '잠금 없는 일관된 읽기'를 지원한다. 이는 격리 수준에 따라 레코드 버전이 달라지는데, commit-read 격리 수준에서는 가장 최근에 커밋된 데이터를 반환하지만 repeatable-read 수준에서는 트랜잭션이 시작된 시점의 데이터를 반환한다. 즉 repeatable-read 격리 수준에서는 select 문장이 하나의 트랜잭션에 내에서 여러 번 실행되어도 항상 동일한 결과를 반환한다.Tip)'잠금 없는 일관된 읽기;Non-Locking Consistent Read(MVCC)'는 테이블의 레코드를 읽을 때 대상 레코드에 대해 잠금을 거지 않고도 일관된 데이터 읽기를 지원하는 것을 의미. 예를 들어 ..
MySQL에서는 인덱스가 있음에도 불구하고 인덱스를 사용하지 못하고 Table Full-Scan으로 처리되는 경우가 있다. 어떤 경우가 있는지 살펴보자. 쿼리에서 컬럼이 가공되는 경우쿼리에서 컬럼이 가공되는 경우에는 해당 컬럼에 인덱스가 존재해도 인덱스를 사용하지 못하게 된다. 이는 인덱스가 컬럼의 원본 값을 기반으로 구성되어 있는데 수행된 연산 결과가 인덱스 데이터로 인덱싱되어 있지 않기 때문이다.-- 컬럼의 산술 연산 select * from exam_tab where id + 10 < 100 -- 함수의 인자로 직접 사용 select * from exam_tab where MOD(id, 2) = 0 -- 자동 형변환 select * from exam_tab where exam_string_col =..
홍도산
개발을 담다