목록2025/07 (4)
개발자공부일기
https://www.acmicpc.net/problem/11003문제 요약길이 N의 수열이 주어진다.각 위치 i에서, 그 위치를 포함한 직전 L개의 숫자 중 최솟값을 구해라.출력은 수열의 처음부터 끝까지 각 위치에서의 최솟값을 공백으로 구분하여 출력.보니까 슬라이딩윈도우를 사용하는건 맞다. 근데 최솟값을 찾아야하니 정렬을 해야할건데 전부 정렬을 했다간 n의 크기가 최대 5,000,000이라 시간초과가 무조건 날거같았다.그래서 찾아보니까 deque 라는걸 사용한다더라.deque를 사용해서 정렬 비슷한 효과를 낼 수 있는데, 아래 2번에서 설명하겠다. 1. 인덱스와 값을 저장하기 위한 pair처음엔 그냥 숫자만 넣으려 했는데,슬라이딩 윈도우의 범위가 현재 인덱스 기준 i - L + 1부터 i까지이기 때문에..
Next.js의 App Router를 기반으로 음성 기반 AI 면접 기능을 만들던 중, 예상치 못한 충돌을 겪었다.Whisper(Gemini API)를 통해 음성파일을 텍스트로 전사하고, 그 결과를 Prisma로 DB에 저장하는 흐름이었다.한 줄로 정리하면 “음성 → 텍스트 → DB 저장”이라는 단순한 로직이었는데, 실행 환경(runtime) 문제로 인해 전체 구조를 바꾸게 되었다.만들고자 했던 구조사용자가 마이크로 음성 입력업로드된 음성 파일을 Whisper API로 전송해 텍스트로 변환전사된 텍스트를 Prisma로 DB에 저장처음엔 이걸 하나의 API에서 처리하려고 했다.문제 1: Edge Runtime에서 Prisma 사용 불가Whisper 처리를 위해 req.formData()를 사용해야 했고, ..
Next.js 기반으로 개발 중인 프로젝트에서 로컬 서버로 테스트하던 중, 페이지 로딩 속도가 비정상적으로 느리다는 문제가 발생했습니다.처음엔 API 응답이나 이미지 때문인가 했지만, 알고보니 개발자 모드와 프로덕션 모드가 따로 있었고 개발자 모드는 원래 느리다고 합니다. 그래서 프로덕션 모드로 테스트하려고 npx next build && npx next start를 시도하는 순간...Could not find a production build in the '.next' directory. 난 분명 빌드를 했는데 왜 없는가?ESLint 에러로 인해 빌드 자체가 실패하고 있었음빌드를 다시 실행하면서 보니, 화면에는 수백 줄에 달하는 ESLint 에러가 쏟아졌습니다.그냥 너 코드 별로야 라고 경고하는줄만 알..
오늘 codex라는 기능을 써봤다.우리 깃허브 브랜치에 접근해 읽을 수 있다. 이 친구한테 원하는 코드 요구사항을 주면 작성하는데, 혼자서 이게 작동하는 코드인지 테스트도 하고 계속 코드를 개선함.코드 만들어달라하고 뽑아주면 pr만들기로 codex의 코드를 내 브랜치에 머지할 수 있음. 뭔가 프로젝트를 진행하는 사람이 하나 더 늘어나는 느낌이었다.그리고 여러개의 작업을 병렬적으로 수행할 수 있어서 여러명이 늘어나는 느낌도 준다. 혼자 사이드 프로젝트를 해도 팀프로젝트를 하는듯한 느낌.. 되게 신기하고 편하면서도 무섭다.점점 코드 문법이라는게 어떻게 굴러가는지 대충만 알면(코드를 읽을줄 안다면) codex와 프로젝트를 다 할 수 있을것같다. 그래도 아직 사람자체를 대체하기엔 신뢰성이 부족하다고들 한다. ..