전체 글 181

에러메세지 한글에서 코드로 리팩토링 - 주인에게 에러 찾아주기

문제우리 프로젝트는 CustomException을 사용하고있지만, HTTP Status와 한글에러메세지 조합으로 에러를 보내고 있었다. `StatusCode`만으로는 구체적인 맥락을 전달할 수 없으니, 서비스 코드마다 한글문자열을 직접 넣고 있었다.당연히 "유저를 찾을 수 없습니다" 와 같이 수백번 반복되는 에러도 있고, api에 종속적으로 한번만 발생하는 에러도 있지만 모두 한글로 관리되고 있었다. 프론트에서는 그냥 한글메세지를 얼럿창에 띄워 보여주는 형식이었다.문제는 크게 두 가지였다.- 같은 의미의 에러가 서비스와 개발자마다 미묘하게 다른 문자열로 존재했다. 가령 누구는 문장 끝에 온점을 찍지 않고, 누구는 찍었다.- 백엔드에서 한글문자열 자체를 주다보니 강조하거나, 줄바꿈하는 등 변형이 어려웠다...

Today I Run 2026.04.02

sealed interface

상황controller에서 응답에 responseDto을 구현해 사용하고있다.이 dto의 필드 중 message는 여러 형태가 들어갈 수 있는데, 예를 들면 단순히 "유효하지 않은 요청입니다" 같은 단순 에러메세지를 뱉을때도있지만, 리스트나 Map이 필요한 경우가 있다. 따라서 message의 타입은 Object로 선언해 필요한 객체를 넣어서 쓰고 있었다.swagger 컨벤션을 작성하는 작업을 하다가 프론트로부터 object의 타입이 명확했으면 좋겠다는 요청이 있었다. 내 입장에서 object는 그 자체로 타입인데! 프론트에서 타입스크립트를 사용하다보니까 object가 모호하다고 판단한것같다. any를 쓰기엔 이 api는 어떤 message가 올지 매번 런타임에서 확인해야하는 번거로움이 있어 가급적 타입..

Today I Run 2026.03.05

친절한 SQL 튜닝 소화시키기

씹뜯맛즐 1편 https://pingu0130.tistory.com/183 친절한 SQL 튜닝 씹뜯맛즐스터디 1편 https://pingu0130.tistory.com/181 '지피지기면 백전백승'의 반댓말은?지피지기가 아니면 백전백패.. 나는 98패쯤 하고 있었다. 어떤 문제가 발생해도 왜 그런지 알 수 없었고 그냥 다시해보니pingu0130.tistory.com 사실 저 책을 덮으며 다짐했다. 꼭 다시 한번 읽어 모두 내것으로 만드리라...읽으면서 잘 이해되지 않는 부분도 많았고 진도를 따라가기 벅차서 깊게 생각해보지 못한게 아쉬웠기 때문이다. 한 번 읽어봤기 때문에 이번에는 한달만에 빠르게 2회독을 마무리할 수 있었다. 두 번째 읽으니까 확실히 눈에 보이지 않던 것들이 세세히 들어왔다. DB구조와 ..

Diary 2026.02.09

실무에서의 바이브 코딩을 위한 에이전트 구축기

제목완전 자극적이다 ㅋ바이브코딩의 한계를 매우 잘 알지만, 바이브한 바이브를 놓지말고 궁극적으로 바이브하도록 해보자! 라는것이 우리의 목표였다. 희망 코드 에이전트를 생성하기 위해 어떤 방식으로 백엔드 개발을 진행해야하는지 생각해봤다.1. 리니어 이슈(기획) 분석2. 백엔드 작업으로 분리 (1) 기능 추가 (2) 기능 수정 - 리팩토링 - 버그픽스 (3) 기능 삭제3. 백엔드 테스크 순서대로 실행 (1) 어떤 로직을 구현하고자 했는지 (2) 어떤 파일을 참고했는지 (3) 테스트코드 작성4. 코드리뷰 (1) 리니어 이슈 다시 분석 : 새로해야함 (2) (1)과 구현이 일치하는지 확인 (3) 불일치하는 부분 다시 2부터 구현5. 커밋-PR생성 지금은 피그마..

Today I Run 2026.02.05

코드를 짓지 않아도 되는 시대에

맘처럼 작동하지 않는 코드를 두세시간을 붙들고 있었다. Gooooooooooogle이 길어지도록 모든 페이지를 읽고 모든 조언을 실행해보고도 되지 않아서 중국 페이지까지 봤던 기억이 있다. 결국 해결했을때의 해방감은 지금 생각해도 웃음이 난다.처음 개발공부를 시작할 때는 구글링이 개발자의 소양이라고 할 정도로 정보탐색과 디버깅에 검색이 필수였는데, 이젠 "에러봐줘" 한 마디로 프로그램이 고쳐지다니. 짧은 시간에 이런 격세지감을 느낄 수 있을까. 작년부터 클로드 코드로 업무를 많이 하고있다. 사실 실무에서 바이브코딩은 불가능하기때문에, 어느정도 인간지능으로 대략 얼개를 짜서 인공지능에게 구체화하는 일을 시킨다. 메소드 단위로 구현지시사항을 최대한 작성해 프롬프트를 만든다. 내 프롬프트AServiceImp..

Today I Run 2026.02.05

[Algo] 2179 비슷한 단어

문제 바로가기 : https://www.acmicpc.net/problem/2179메모리 : 39408KB시간 : 108ms언어 : python코드import sysinput = sys.stdin.readlinearr = []N = int(input())for _ in range(N): arr.append(input().strip())cnt = 0w1 = ""w2 = ""d = {}for i in range(N-1,-1,-1): word = "" for ch in arr[i]: word += ch if (word in d) and cnt 풀이똑같은 접두사의 길이가 가장 긴 단어 두개를 찾는 문제이다. 답이 여러개라면 입력이 빠른 쌍을 찾는다. 처음에는 트라이 알..

Algorithm 2025.08.18

api 중복요청이 들어오면 어떻게 해야할까?

문제실행시간이 긴 api가 있었는데 화면단에서 1~2초 시간안에 네다섯번 클릭해 반복요청을 보낼 수 있다. 화면에선 에러와 성공이 팝업이 얽히고 백엔드 로그에선 dead lock, unique key 무결성 에러 가 발생하며 요청에 실패하고 있었다. 실행시간이 길고 자원을 많이 소모하는 요청이라 자주 들어오는것은 좋지 않기 때문에 api요청을 제어하는 방법이 필요했다. 분석우리는 postgreSQL을 사용하는데, 기본적인 lock을 사용하고 있었다.postgreSQL 기본 LockAccessShareLockSELECT 시 발생대부분 락과 공존 가능RowShareLockSELECT … FOR SHARESELECT와 공존 가능RowExclusiveLockINSERT, UPDATE, DELETE 기본SELEC..

Today I Run 2025.08.06

바이브 코딩 해보기

요즘 유명하다는 바이브 코딩을 해보려고 스터디 시간을 할애했다. 목표는 제대로 동작하는 서비스 만들어보기. 프론트는 http://bolt.new/ 로, 백엔드는 chatGPT로 구축했다.bolt는 프롬프팅만으로 mvp 목업사이트를 만들어주고 배포까지 해주는 서비스이다. 그만큼 완성도가 높고 더미데이터까지 넣어준다! 소개받고 바로 꼬들을 프롬프팅 해봤었는데 너무 잘되서 놀랐던 기억이 났다. 그리고 리액트를 다 까먹었기 때문에 완전히 ai에게 의존하고 싶었다. 그래서 완성도가 높은 bolt를 선택했다. 백엔드는 구독하고있던 gpt를 사용했다. 내 전략은 이랬다. bolt는 무료버전이므로 토큰이 얼마 없어 한번에 좋은 결과를 얻어내는게 중요했다. 따라서 내 요구사항을 정리한 후에 gpt와 프롬프트를 만들기 ..

Today I Run 2025.06.28

친절한 SQL 튜닝 씹뜯맛즐

스터디 1편 https://pingu0130.tistory.com/181 '지피지기면 백전백승'의 반댓말은?지피지기가 아니면 백전백패.. 나는 98패쯤 하고 있었다. 어떤 문제가 발생해도 왜 그런지 알 수 없었고 그냥 다시해보니까 되더라~ 는 식의 비겁한 패배를 쌓아오고 있던 것이다. 하지만 멋진pingu0130.tistory.com 두 번째 스터디 주제 SQL 튜닝! 나는 DB에 관심이 많다. 백엔드의 업무에는 여러가지가 있지만 그중에 쿼리짜고 DB구조 생각해보는게 제일 재밌다. 왠지는 잘 모르겠다. 사랑이란 깨닫지 못하는 스며듦이 아닐까? 이 책은 한 3년전쯤부터 알고 있었고 조금 읽었었지만 그 당시 너무 어려워서 고이 책장에 모셨다. 이 기회에 정독해보기로 했다. 책이 매우 두껍기 때문에 가지고 다..

Diary 2025.06.23

축 핑구의 첫 멍떠 하

우리 회사에는 일을 열심히 한 조직원에게 하루의 휴가를 주는 제도가 있다. (업무를 잊고)멍때리며 떠나기. 규칙은 1.집에서 뒹굴거리기 금지. 2.혼자만의 시간을 보낼 것. 3.다녀온 후 일기 쓰기감사히도 날 보내주셔서 멍떠를 다녀왔다. 일기를 쓴 김에 여기도 남겨본다 피할 수 없는 운명요즘 멀리 있는 글자가 안 보인다는 사실에 조금 침울해져있었습니다. 컴퓨터를 사용하는 직무의 고질병이겠지요.저는 눈이 굉장히 좋았습니다. 대학 시절엔 두꺼운 책들과, 직장인이 되고나서는 컴퓨터와 붙어있으니 건강검진을 할 때마다 하향하는 시력을 받아들곤 했습니다. 이번 멍떠는 멀리 있는 것들로 눈을 시원하게 해주기로 마음먹었으나. 월수금저는 주 3회 아침수영을 하는데요. 요즘은 플립턴과 스타트 연습에 매진하고 있습니다. ..

Diary 2025.05.16