관심 분야
-
Spring
- 데이터베이스
- RAG
-
클라우드
컴퓨팅
changi1122
안녕하세요! 데이터 품질관리 소프트웨어 개발자 이우창입니다.
저를 소개하기 위해 질문과 답변을 적어보았습니다.
프로그래밍에 관심을 갖게 된 계기는 무엇인가요?
프로그래밍에 처음 관심을 갖게 된 계기는 게임이었습니다. 어린 시절 상상하던 것들을 직접 게임으로 만들어보고자 하였습니다.
그러나 게임 제작 툴에 한계를 느끼고 나만의 것을 만들어보자 한 것이 컴퓨터 프로그래밍을 시작하게 된 계기입니다.
그러던 중 만들게 된 것 하나가 사전 프로그램입니다. 불편했던 웹페이지를 보조하기 위한 프로그램을 만들면서, 제 손을 거쳐 만들어진 프로그램이 사람들에게 도움을 줄 수 있다는 게 놀라웠습니다.
소프트웨어 개발자로서 이루고 싶은 목표는 무엇인가요?
개발을 해보면서 제가 만든 서비스나 프로그램이 사람들에게 알려졌으면 하는 욕심이 생겨났습니다. 이 욕구는 제가 만든 것이 많은 사람들에게 쓰이고, 도움이 되도록 해야겠다는 목표가 되었습니다.
본인의 개발자로서 강점은 무엇인가요?
제 강점은 새로운 걸 익히는 걸 즐기고, 쉽게 받아들일 수 있는 사람이란 것입니다.
저는 프로그래밍을 배우고 나서부터, 새로운 것을 할 수 있게 되는 것에 재미를 느꼈습니다. 윈도우의 프로그램을 만들어보자 생각하여 .NET UWP로 윈도우 앱을 만들거나, 직접 서버에서 프로그램을 돌리려 홈서버를 만들고 리눅스 셸 스크립트를 사용하는 등 새로운 걸 익히곤 했습니다. 근거로 팀 프로젝트에서 해본 사람이 없어 모두가 내키지 않아 했던 안드로이드 개발도 직접 맡아 담당한 바 있습니다.
물론 모든 일을 얕게만 해본 것은 아닙니다. Backend 개발에 깊은 관심을 갖고 Spring 프레임워크를 사용하여 개발해보다 보니, 패키지 구조라던가 로깅, 검증 등 깊은 생각이 숨겨져 있음을 깨닫고, 알아가고 있습니다.
개인 경험을 기록·관리하는 프로젝트 회고 작성 서비스
MariaDB 문자셋(Character Set)과 콜레이션(Collation)
MariaDB를 데이터베이스로 사용하는 솔루션의 개발을 담당하면서 문자셋(Character Set)과 콜레이션(Collation, 정렬 규칙)에 대해서 알 필요가 있다고 느껴 클로드와 함께 정리해보았습니다. MariaDB 데이터베이스를 생성할 때 문자셋은 utf8mb4, 콜레이션은 MariaDB 11.6 이상의 기본값인 utf8mb4_uca1400_ai_ci를 사용하면 대부분 문제가 없을 거라 생각합니다. 그러나 문자셋은 "무엇을 저장할 수 있는가"를, 콜레이션은 "무엇을 같은 값으로 볼 것인가"를 결정하기 때문에, 둘을 잘못 고르면 저장이 실패하거나 서로 다른 값이 인덱스에서 중복으로 막히는 문제가 발생합니다.
AI 코딩 에이전트를 활용한 코딩테스트 후기
본 후기의 경우 문제를 포함한 코딩테스트 관련 내용을 외부로 자유롭게 공유할 수 있음을 메일로 안내 받고 회고 차원에서 작성하였습니다. 코딩테스트는 Codex와 같은 AI 에이전트를 활용해 주어진 애플리케이션을 개발하는 방식으로 진행되었습니다. 단순한 알고리즘 풀이를 넘어 AI 활용 능력 자체를 평가한다는 점에서, 현 시대에 걸맞은 새로운 유형의 코딩테스트라는 느낌을 받았습니다.
가까운 순 조회시 H3 인덱스 적용해보기
지난 글에서 가까운 순 가게 목록 조회시 MySQL의 공간 인덱스 사용이 충분히 빠르지 않다는 걸 확인하였습니다. 그래서 공간 인덱스 스캔에 너무 오랜 시간이 걸리는 걸 해결하기 위해 H3를 이용하여 쿼리 실행시간을 개선해보기로 하였습니다.
공간 인덱스는 충분히 빠를까?
지난 글에서 가까운 순 가게 목록 조회 기능을 개발하면서 공간 인덱스를 적용했었습니다. 그 결과 기존에 약 80%의 요청이 실패하였으나, 100% 요청이 성공하도록 개선된 결과를 확인하였습니다. 그러나 이는 청주의 한 지점을 기준으로 가까운 가게 목록을 조회한 것으로, 거리 순으로 정렬할 가게의 수가 적은 편일 때의 결과였습니다. 실제 음식점 공공 데이터를 사용하여 더미 데이터를 생성하였기에 전국적으로 보았을 때 청주보다 더 많은 음식점이 밀집된 지역이 다수 존재할 것입니다. 따라서 해당테스트는 이상적인 환경에서의 결과로, 최악의 케이스를 검증했다고 보기는 어렵습니다.