본문 바로가기

전체 글59

양자컴퓨팅(Quantum Computing): 2026년, 0과 1을 넘어서는 미래 컴퓨팅의 새로운 패러다임 1. 2026년 1월, 양자컴퓨팅을 직접 만져 본 이유저는 2026년 1월 14일에 처음으로 클라우드 양자컴퓨터 실습을 시작했습니다. 그전까지는 큐비트가 0과 1을 동시에 표현한다는 문장을 여러 번 읽었지만, 실제 회로를 실행해 본 적은 없었습니다. 당시 제가 맡은 일은 물류 창고의 배송 순서를 줄이는 간단한 최적화 실험이었고, 기존 파이썬 코드로도 20개 지점까지는 무리 없이 계산했습니다. 그런데 지점 수를 80개로 늘리자 실행 시간이 급격히 길어졌습니다. 이 문제를 계기로 양자컴퓨팅이 모든 프로그램을 빠르게 만드는 기술이 아니라, 특정 문제의 구조를 다르게 다루는 도구라는 점을 직접 확인해 보기로 했습니다.처음에는 큐비트 5개만 사용했습니다. 5개면 32개의 상태를 한꺼번에 다루니 기존 컴퓨터보다 훨.. 2026. 8. 23.
지속 가능한 소프트웨어의 조건: 클린 코드 아키텍처와 리소스 최적화 전략 2024년 3월, 제가 운영하던 파이썬 기반 자동매매 서버는 평소보다 주문량이 조금 늘어난 날 멈췄습니다. 기능 자체는 정상 작동했지만 오전 9시부터 10시 사이 메모리 사용량이 1.8GB에서 7.6GB까지 치솟았고, 결국 주문 확인 작업이 11분 동안 밀렸습니다. 처음에는 거래소 API 문제라고 생각했지만 로그를 따라가 보니 주문 처리 함수 하나가 응답 객체를 리스트에 계속 쌓고 있었습니다. 그날 이후 저는 ‘실행되는 코드’와 ‘운영 가능한 코드’가 전혀 다르다는 사실을 몸으로 배웠습니다.1. 작동만 하던 코드가 만든 장애처음 작성한 시스템은 기능을 빨리 붙이는 데 초점을 맞췄습니다. 시세 수집, 매수 판단, 손절 주문, 텔레그램 알림을 420줄짜리 trading.py 파일에 몰아넣었고, 변수 이름도 .. 2026. 8. 23.
예스트레이더 코인(YesTrader Coin)으로 구축하는 지능형 자동매매 시스템 1. 제가 예스트레이더 코인을 시작한 이유저는 2024년 7월부터 예스트레이더 코인으로 자동매매를 시험했다. 당시 운용 금액은 300만 원이었고, 처음부터 큰 수익을 기대하지 않았다. 낮에는 회사에 있고 밤에는 차트를 확인하다 보니 수면 시간이 하루 5시간 아래로 내려갔기 때문이다. 특히 새벽 2시쯤 급등한 코인을 뒤늦게 따라갔다가 20분 만에 7만 원을 잃은 뒤, 제 감정이 매매에 너무 많이 개입한다는 사실을 인정했다. 자동화가 감정을 없애준다고 생각한 건 아니지만, 적어도 정해둔 규칙을 반복하는 장치가 필요했다.처음 화면을 열었을 때는 전략 설정 메뉴와 주문 조건이 생각보다 낯설었다. 저는 비트코인 5분봉에 전일 변동폭을 적용하는 단순한 규칙부터 입력했다. 전일 고가와 저가의 차이에 0.5를 곱하고,.. 2026. 8. 23.
오픈소스 라이선스, 복사해서 쓰기 전에 꼭 알아야 할 것 저는 예전까지 오픈소스를 내려받아 사용하는 일을 그저 편리한 개발 방법 정도로 생각했습니다. 무료로 공개된 코드라면 마음껏 가져다 써도 괜찮다고 여겼고, 프로젝트가 끝난 뒤 출처를 한 번 확인하면 충분하다고 판단했지요. 하지만 어느 날 외부에 배포할 프로그램에 포함된 구성 요소의 라이선스를 확인하다가 생각이 완전히 달라졌습니다. 무료라는 말과 아무 조건 없이 써도 된다는 말은 전혀 같지 않았습니다. 라이선스는 누군가의 호의적인 안내문이 아니라, 사용자가 지켜야 하는 권리와 의무를 적어 둔 약속에 가까웠습니다.무료와 자유 사용은 같은 뜻이 아니었다처음 헷갈렸던 부분은 ‘무료’라는 표현이었습니다. 인터넷에서 내려받을 수 있고 비용도 없으니 상업적인 서비스에도 자유롭게 넣어도 된다고 생각했지만, 실제로는 소스.. 2026. 8. 21.
개발자 면접에서 떨어지고 나서야 알게 된 것들 첫 개발자 면접에서 떨어졌을 때 저는 결과보다 그 이유를 빨리 알고 싶었습니다. 준비한 질문에는 대부분 대답할 수 있다고 생각했고, 이력서에 적은 기술도 실제로 사용해 본 경험이 있었기 때문에 최소한 좋은 인상은 남겼다고 믿었습니다. 하지만 면접이 끝난 뒤 돌아보니 저는 제가 무엇을 했는지는 설명했어도 왜 그렇게 했는지, 다른 방법과 비교해 어떤 판단을 내렸는지는 제대로 말하지 못했습니다. 당시에는 면접관의 질문이 너무 어렵다고만 생각했지만, 며칠 동안 면접 장면을 되짚으면서 부족했던 것은 지식의 양보다 설명하는 태도와 사고 과정이라는 사실을 깨달았습니다.첫 번째 탈락에서 놓친 질문첫 번째 면접에서는 제가 맡았던 웹 서비스 개선 경험을 중심으로 이야기했습니다. 화면 응답 속도를 줄이기 위해 특정 기능의 .. 2026. 8. 19.
코드 리팩토링: 나쁜 냄새를 찾아내는 눈 제가 리팩토링을 처음 제대로 이해한 계기는 기능을 추가하는 일이 점점 느려지던 어느 날이었습니다. 당시 주문 화면에서 할인 금액을 계산하는 코드는 겨우 몇십 줄에 불과했지만, 배송비와 회원 등급, 쿠폰 조건이 차례로 붙으면서 수정할 때마다 다른 부분이 흔들렸습니다. 겉으로는 정상적으로 동작했기 때문에 처음에는 단순히 제가 코드를 잘 읽지 못한다고 생각했습니다. 그러나 같은 조건문이 여러 파일에 반복되고, 변수 이름만 달라진 채 비슷한 계산이 이어지는 모습을 발견하면서 문제는 제 이해력이 아니라 코드의 구조에 있다는 사실을 깨달았습니다. 그때부터 저는 오류 메시지만 찾는 대신 코드에서 불편한 냄새가 나는 지점을 살피기 시작했습니다.처음에는 작동하면 좋은 코드라고 생각했다초기 개발자인 저는 결과가 제대로 나.. 2026. 8. 17.