본문 바로가기

전체 글396

[삽질썰] 소프트파워인 줄 알고 갔다가 숏츠 찍고 온 개발자의 3일 때는 내가 대학생이던 한창 대외활동에 미쳐 있던 2023년뭐라도 하나 더 해보겠다고 여기저기 지원서를 넣던 시기였다. 그러던 중 눈에 들어온 이름 하나.제17회 소프트파워 컨퍼런스 (by sm-pair) 소프트파워?어디서 많이 듣던 단어다.당연히 나는 이렇게 생각했다.> 아 소프트웨어 + 파워 = 개발 컨퍼런스겠네 ㅎㅎ그래서 설명도 제대로 안 읽고“일단 넣고 보자” 마인드로 무작정 지원하고 합격..!그리고 첫날, 현장에 도착했다.이상하다… 왜 노트북이 안 보이지?주변을 둘러보는데 뭔가 이상했다.* 맥북 : X* IDE : X* 개발 얘기 : X대신 보이는 것들:* 기획서 : O* 마케팅 용어 : O* 브랜딩 : O* 그리고… "문과들만 있음"그때 깨달았다.> 이 소프트파워는 내가 아는 소프트웨어가 아니었.. 2025. 12. 24.
[웹 개발] Assistant API 에서 thread_id 문맥 관리 시 주의사항 및 대응 방안들 (동일한 Thread에서 여러 파일을 연속으로 업로드했을 경우) SK 그룹의 생성형 AI 플랫폼 데이터 분석 채팅방 BE를 개발하면서 겪은 경험을 공유하고자 한다. Azure OpenAI의 Assistant API와 Code Interpreter를 활용하여 사용자가 CSV/Excel 파일을 업로드하면 자동으로 데이터를 분석하고 시각화 차트를 생성하는 서비스를 구축했다. 이 과정에서 발견한 예상치 못한 문제를 공유하려 한다. 주의해야 할 점: Thread 내 파일 컨텍스트 문제동일한 Thread에서 여러 파일을 연속으로 업로드하면 Azure Assistant가 파일을 혼동하는 현상이 발생한다. 문제 상황Thread A (오래된 대화)├── Message 1 + File_old_1.csv├── Message 2 + File_old_2.csv├── ... (여러 대화).. 2025. 12. 9.
[웹 개발] Completion API에서 Assistant API로의 리팩토링 (w/AOAI) SK 그룹 생성형 AI 플랫폼 프로젝트에 중간 투입되었다.이미 돌아가고 있는 서비스의 한가운데에 들어간다는 건, 코드를 읽는 것보다 “맥락을 이해하는 일”이 훨씬 어렵다는 걸 다시 한번 느끼고 있다. 이번에 맡은 주요 태스크는 api/v3/conversation을 api/v2/conversation으로 리팩토링하는 작업이다.겉으로 보면 버전 변경이지만, 실제로는 기존 Completion API를 Assistant API 구조로 전환하는 꽤 큰 수정이다.이 과정에서 Azure OpenAI의 코드 인터프리터 툴을 함께 도입해야 했고, 단순한 모델 교체 이상의 고려가 필요했다. 기존 구조 — Completion API 기반처음 코드를 봤을 때, 기존 v3는 OpenAI의 ChatCompletion API를 .. 2025. 10. 30.
[CI-CD] GitHub Actions과 GitHub Secrets 개념 CI-CD는 이런 관점에서 생기게 되었다“코드를 푸시했는데 자동으로 테스트가 돌아가고, 빌드가 끝난 뒤 배포까지 된다면 얼마나 좋을까?”이런 자동화를 가능하게 하는 도구 중에서 가장 보편적이고 가장 쉬운 툴이 바로 GitHub Actions이다. ㅁGitHub Actions: GitHub 레포지토리 안에서 자동화된 워크플로우를 구성할 수 있는 CI/CD 도구 CI: Continuous Integration(지속적 통합)CD: Continuous Deployment(지속적 배포)즉, 코드 변경이 발생할 때마다 자동으로 빌드·테스트·배포를 수행하도록 설정할 수 있는 시스템이다. GitHub Actions는 workflow파일(.yml 형식)을 기반으로 작동한다. e.g. backend-cicd.yaml.. 2025. 10. 16.
[데이터베이스] DB 커넥션 풀(Connection Pool)의 의미 웹 애플리케이션을 만들다 보면, 데이터베이스(DB)와의 연결이 생각보다 비싼 자원이라는 사실을 체감하게 된다.특히 트래픽이 몰릴 때 “DB 연결 에러”나 “Connection timeout” 같은 문구를 한 번쯤은 본 적 있을 것이다.이런 문제를 해결하기 위한 핵심 개념이 바로 DB 커넥션 풀(Connection Pool)이다. 일단 먼저 커넥션(Connection)이란?애플리케이션이 DB에 접근하려면, 먼저 네트워크를 통해 DB 서버와 연결(Connection)을 맺어야 한다.이 연결을 생성하는 과정은 단순히 “접속” 이상의 비용이 든다.TCP/IP 소켓 연결인증 절차 (ID/PW 확인)세션 초기화이 모든 과정이 한 번의 쿼리를 실행하기 위해 매번 일어나면, 성능은 크게 떨어진다.그래서 보통 DB 연.. 2025. 10. 13.
[Python] 요즘 떠오르는 uv 패키지 매니저 Python 개발을 하다 보면 빠지지 않고 마주치는 것이 패키지 관리이다. 기존에는 pip, venv, requirements.txt 조합이 표준처럼 쓰였고, 최근에는 Poetry, Pipenv, Conda 같은 대안 도구도 널리 사용되고 있다. 하지만.. 24년에 uv 패키지 매니저가 새롭게 등장하였다. 그리고 정말 무서운 속도로 Python 생태계의 새로운 '사실상 표준'으로서 자리 잡아가고 있다. 한마디로 uv는 트렌디함과 혁신을 둘 다 겸비한 지덕체 그 자체~ ㅁuv: Python 패키지 관리와 가상환경 관리를 동시에 지원하는 초고속 패키지 매니저 pip처럼 단순히 패키지를 설치하는 것에 그치지 않고, venv, virtualenv처럼 가상환경 생성까지 통합적으로 지원한다.즉, pip + v.. 2025. 9. 17.
[웹 지식] toml 확장자는 무엇일까? 개발을 하다 보면 프로젝트마다 다양한 설정 파일을 마주하게 된다.예를 들면 .json, .yaml, .ini 같은 확장자? 하지만 최근 몇 년 사이에 주목받는 포맷 중 하나가 바로 이 .toml 확장자이다.Python 프로젝트에서 pyproject.toml을 자주 접하다 보니 Python 전용으로 오해하기 쉽지만, 사실 TOML은 Python 프로젝트뿐만이 아닌 범용적인 설정 파일 포맷이다.보통 requirements.txt 로 의존성을 설치하는 건 옛날 방식이고, pyproject.toml 로 관리 및 설치한다! (참고) ini 확장자와의 비교 .ini.toml자료형문자열, 숫자 정도문자열, 숫자, 불리언, 배열, 날짜 등섹션 구분지원지원표준화사실상 비공식적 (Windows 중심)명확한 공식 스펙 .. 2025. 9. 17.
IT 업무 용어 정리 [ITS 업]ITSInformation Technology Service정보기술서비스. IT 기술을 서비스 형태로 제공하는 것. 주로 B2B 방식으로 이루어짐ITOInformation Technology Outsourcing기업의 IT 업무 외주 사업. ITS 전문 기업으로부터 SI, SM 및 컨설팅 서비스를 외주 계약을 통해 제공받는 것DT, DXDigital Transformation디지털 전환 또는 디지털 혁신. 기업의 전략적 목표를 달성하기 위해 디지털 기술(Cloud computing, Big Data, AI, IoT, Blockchain 등)을 활용해 비즈니스 프로세스를 전반을 혁신하는 것M/M, MMMan/MonthSW 개발 사업비용을 산정하기 위해, 한 사람이 한 달 동안 할 수 있는 일을.. 2025. 9. 11.
[웹 지식] Firebase를 사용하는 이유 개발을 하다 보면 서버를 직접 구축하지 않고도 빠르게 앱을 만들고 싶은 순간이 있다. 예를 들어, 간단한 채팅 앱이나 블로그, 혹은 프로토타입 서비스를 만들 때 백엔드를 직접 설계하고 구현하는 것은 꽤나 부담스러운 작업이다. 이럴 때 강력한 도구가 바로 Firebase이다! Firebase는 구글이 제공하는 모바일 및 웹 애플리케이션 개발 플랫폼으로, 백엔드 개발 경험이 부족한 개발자도 손쉽게 서버 기능을 붙일 수 있게 해준다! 실제로 내 주위 앱 개발자들은 Firebase를 모두 모를래야 모를 수 없다 말한다. (e.g. Rash 다빈이형) Firebase의 주요 기능과 활용 예시1. 실시간 데이터베이스 (Realtime Database)특징: JSON 기반의 NoSQL DB. 데이터가 실시간으로 모.. 2025. 9. 8.