전체 글 125

정렬 알고리즘 정리

🎶 단순 정렬시간 복잡도 O(n2)효율이 좋지 않음 버블 정렬 (Bubble Sort)이웃한 두 요소의 대소 관계를 비교해 교환을 반복 (가장 기본적인 정렬)n개 요소의 정렬이 모두 끝나려면 n-1회의 패스가 수행되어야 함하나의 패스에서 요소 간의 교환이 이루어지지 않았다면 정렬이 완료된 상태로 간주하여 정렬 작업 중단나아가 특정 인덱스부터 요소 간의 교환이 이루어지지 않았다면 해당 인덱스까지는 정렬 완료 상태로 간주 for(int i = 0; i i; j--) { if(a[j-1] > a[j]) { // 앞의 요소와 비교 및 교환 swap(a, j, j-1); chk++; } } if(chk == 0) { break; } // 패스 내에서 요소 간 교환이 이루어지지 않았으므로 ..

MCP 서버 구현해보기

이미 한발 늦었지만... 위기감이 느껴질 정도로 빠르게 변화하는 개발 생태계를 보며 AI를 공부하고, 잘 활용할 수 있는 방향을 찾아야겠다는 생각이 들었다. 이전 프로젝트에서 LLM 챗봇을 설계하고 구현해보긴 했지만 (물론 LLM 모델에 관여한 건 아니고, API만 잘 연동해 화면에 보여주는 정도,,) 개발하면서 PM까지 하느라 깊게 공부할 틈이 전혀 없었는데, 더 이상 미룰 수는 없다는 생각에..! 사실 너무 방대하기도 하고, 변화가 빨라서 어디서부터 공부해야 할지도 막막하지만, 우선 뭐라도 만들어봐야 할 것 같아 가이드 문서 보면서 MCP 서버를 한번 구현해보았다. 👆MCP란? MCP란, AI 어플리이션을 외부 시스템과 연결하는 오픈 소스 기반의 표준이다.MCP를 이용해 Claude나 Cha..

Develop/AI 2025.11.09

[Vue] npm install 403 Forbidden

회사에서 새 프로젝트에 투입되어 개발환경을 세팅하는데 npm install 명령어로 프론트엔드 쪽 라이브러리를 땡겨오는 과정에서 403 Forbidden 오류를 맞닥뜨리게 되었다. npm ERR! code E403npm ERR! 403 403 Forbidden - PUT https://registry addresss:port - Forbiddennpm ERR! 403 In most cases, you or one of your dependencies are requestingnpm ERR! 403 a package version that is forbidden by your security policy, ornpm ERR! 403 on a server you do not have access to. 대..

Develop/React|Vue 2025.05.31

Item2. 생성자에 매개변수가 많다면 빌더를 고려하라

🤏 정적 팩토리 메서드에 존재하는 제약사항: “선택적 매개변수가 많을 때 적절히 대응하기 어려움”  대안1. 점층적 생성자 패턴 (Telescoping Constructor Pattern)필수 매개변수만 받는 생성자, 필수 매개변수와 선택 매개변수 1개를 받는 생성자, 선택 매개변수를 2개까지 받는 생성자, ~… → 형태로 선택 매개변수를 전부 다 받는 생성자까지 늘려가는 방식사용자가 설정을 원치 않는 매개변수까지 값을 지정해야 하는 경우가 자주 발생매개변수의 개수가 많아지면 클라이언트 코드를 작성하거나 읽기 어려움 → 특히, 타입이 같은 매개변수가 연달아 늘어서 있으면 찾기 어려운 버그로 이어질 수 있음 → 클라이언트가 실수로 매개변수의 순서를 바꿔 건네도 컴파일러는 알아채지 못하고 런타임에 엉뚱한 ..

[JUnit] @SpringBootTest에서 Profile 설정하기

타 시스템 데이터베이스와 연동할 일이 있어 JUnit으로 테스트를 해보려는데 서버 구동이 안되고 오류가 났다.  org.springframework.beans.factory.UnsatisfiedDependencyException...;nested exception is java.lang.NullPointerException  대충 빈 생성/주입 과정에서 오류가 난 것 같은데 NullPointerException인걸 보면 뭔가를 못 가져오고 있는 것 같았다.  오류 발생 지점 소스 코드를 확인해보니 소스코드 중 서버 구동 시점에 활성화된 profile에 따라 분기 처리를 하는 부분에서 profile을 가져오지 못해 발생한 오류였다. 로컬 서버에서 테스트중이니 간단하게 어노테이션을 사용해 로컬 프로파일을 활..

Develop/Spring 2025.02.06