시작하게 된 계기솔직히 말하면 거창한 이유는 없었다.이제는 ai 에이전트를 필수적으로 사용해야하는 시기가 되었고책을 읽어가며, 유튜브 영상을 찾아보면서"Claude Code를 한번 써봐야지" 라는 생각이 어느 순간 머릿속에 자리를 잡았고,그냥 써보는 것보다는 실제로 뭔가를 만들어보면서 써보자 싶었다.그래서 세운 나름의 규칙이 하나 있었다."코드는 한 줄도 직접 치지 않는다."결론부터 말하면, 실제로 그렇게 됐다.약 4일 동안 Node.js + TypeScript + Express 기반의 "상황별 AI 프롬프트 템플릿 라이브러리" 를 코드 한 줄 없이 완성했다.뭘 만들었냐면사용자가 카테고리를 선택하면 → 해당 상황에 맞는 프롬프트 템플릿을 보여주고 → 변수를 입력하면 → 최종 프롬프트를 생성해주는 서비스다..
작업을 하다보면 성능에 대해서 생각을 안할수가 없는것 같다.이왕이면 개발을 하면서 초기부터 성능을 생각하는 작업을 한다면 추후에 다른작업을 더 할수있으니까..즉, 더 효율적으로 일하기 위해서 개발 초기부터 성능을 위한 작업을 자연스럽게 하게 되는것 이다. 이렇게 진행하면 O(n²), 저렇게 작업하면 O(n) 등등도 어떻게 하면 더 좋은 방향일지 생각하면서 작업을 진행 하는데,문득, 쿼리 성능 최적화에 대한 것이 스쳐 지나갔다. 사람들이 가장 많이 하는 작업은, 쓰기, 수정하기, 삭제하기도 아닌 조회다.당장의 이 블로그 글만해도 여러명이 방문을 하는데 이 게시글 하나가 뜨는데도 시간이 30초, 1분이 걸린다면 이 게시글을 보려는 사람은 없을것이다. 이처럼 조회는 현대에 살아가는것중에서 가장 중요하다고 생각..
MQTT란 무엇인가? 이게 뭐하는것이지? 싶을수 있다.본인도 처음 프로젝트에 배정받았을때"Coriny님 외부에서 MQTT로 데이터 받아서 작업하시면 되요."라고 했을때 그게 뭔가 싶었다.언젠가 한번 어렴풋이 들어본적은 있는거같은데 관심을 가지지 않아서 넘어갔던 부분이였다. Message Queuing Telemetry Transport경량 메시징 프로토콜로서, 주로 사물인터넷(IoT) 환경에서 기기 간 통신을 위해 개발된 프로토콜 MQTT는 쉽게 말하면 줄임말이다. 풀어서 보면 Queue는 자료구조를 공부한다면 쉽게 접할수있는 단어이다.FIFO 즉, 간단하게 데이터가 순차적으로 쌓이고 먼저 쌓인 순으로 나간다. 은행으로 비교하자면 번호표를 순서대로 뽑고 순서대로 업무를 진행하고 먼저 온 순서대로 나간다는..
가우스의 덧셈 공식이란?1부터 n까지의 합을 구할때 사용하는 공식이다. 1. 첫번째 방법s = 1+2+3+....+ (n-1) + n 2. 두번째 방법s = n + (n-1) + 3 + 2 + 1 이 두방법을 합쳐보면2s = (1+n) + (2+(n-1)) + (3+(n-2)) + ... + ((n-2)+3) + ((n-1)+2) + ((n+1))즉 모든 각 쌍의 합이(n+1) + (n+1) + (n+1) + (n+1) + (n+1) + (n+1) + (n+1) + (n+1)...이 된다. 그렇다면 마지막에 있는 수를 n이라고 했을때 최종 합은s = n * (n+1) / 2 가 된다.3을 예로 들면tot = 1+2+3tot = 3+2+12tot = (1+3)(2+2)(3+1) = 4+4+4 = 12tot..
시간복잡도란?- 문제를 해결하는데 걸리는 시간과 입력의 함수 관계- 시간복잡도를 이용하는 알고리즘 분석은 알고리즘의 성능이 얼마나 효율적인지 알 수 있는 가장 일반적인 방법이다.- 어떠한 알고리즘의 로직이 얼마나 오랜시간이 걸리는지 를 나타내는데 쓰인다.- 알고리즘의 로직이 최악의 경우 걸리는 실행시간을 나타내며 이것을 보통 빅오 표기법으로 나타낸다.더보기빅오 표기법이란?• 입력 범위 n을기준으로 해서 로직이 몇번 반복되는지 나타내는 것• 가장 영향을 많이 끼치는 항의 상수인자를 빼고 나머지 항을 없앤것 빅오 표기법을 쉽게 적용할 수 있는 규칙- 덧셈, 뺼셈, 곱셈, 나눗셈과 같은 산수는 상수이다, 상수시간에 포함된다. • n의 값이 상관이 없다. 10이들어오든 100이 들어오든 1억이 들어오든 컴..
JavaScript는 다양한 환경에서 사용할수가 있습니다. 웹브라우저에서는 DOM(document object model)을 통해 웹 페이지의 요소에 접근하고 조작할 수 있습니다.이를 통해 사용자의 상호작용에 따라 화면에서 보여지는 부분을 동적으로 처리하고 웹 클라이언트 애플리케이션을 개발할수가 있습니다. 또한 서버 측에서는 Node.js를 사용하여 JavaScript를 실핼할 수 있습니다.Node.js는 비동기적이고 이벤트 기반의 서버 측 애플리케이션을 개발할 수 있도록 지원합니다.이를 통해 JavaScript로 데이터를 처리하고 서버 애플리케이션을 개발할 수 있습니다.따라서 클라이언트와 서버간에 동일한 언어를 사용하여 애플리케이션을 개발할수 있어서 개발 생산성을 높일수가 있습니다. 동적타이핑과 함수..
그리디 알고리즘이란?• Greedy를 직역하면 "욕심많은, 탐욕스러운" 이라는 뜻• 단어의 뜻처럼 선택의 갈림이있을때 최적이라고 생각되는것만을 쫓아 최종 해답에 도달하는 방식의 알고리즘.• 즉, 최적의 값을 구해야 하는 상황에서 사용 되는 근시안적인 방법론.• 항상 최적의 값을 보장하는 것이 아닌 최적의 값의 '근사한 값'을 목표로 함.• 그렇게 때문에 어느정도 최적에 근사한 값을 빠르게 도출할수 있는 장점이 있음.• 그리디 알고리즘은 근사 알고리즘으로 사용할 수 있다.• 탐욕 알고리즘을 적용할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제들이어야 한다.더보기근시안적 방법론• 단기 목표를 중심으로한 전략적인 접근 방법을 의미.• 주로 현재의 문제를 해결하는 데 초첨을 맞추며, 장기적인 전..
정규식을 사용하다 보니 단순히 /[0-5]/ 이런것이거나 /a/ig 이런식으로 간단하게 숫자를 찾거나 a를 찾는것은 가능했다.하지만 더 자세하게 /s , /w 이런 유형들을 보니 얕게 사용해왔던거 같아 공부하기 위해 여러 방법으로 사용해 보았다.테스트는 MDN에 자료를 보면서 직접 해보았다. 일단 문자열을 하나 준비했다.const str = `Hello, I'm StartCoriny. Nice to meet you.My cell phone number is 010-1234-5678 and my home phone number is 02-1234-5678.If anything happens, please contact me here!!among the numbers 0 to 9, I like 3456 th..
