전체 글
-
AI Agent (feat. Open AI Agents, CrewAI, LangGraph, AutoGen)AI 2025. 8. 26. 22:33
요즘 AI Agent에 대한 관심도가 있어서, udemy에서 Agent 관련한 강의를 찾아서 수강해보았다. AI에 관한 전반적인 내용을 학습해보고싶어서 대표적인 AI Agent들을 활용하는 방식을 알려주는 강의를 골라보았다. 내가 수강한 강의는 요것-! ↓https://www.udemy.com/course/the-complete-agentic-ai-engineering-course/ Workflow Design Pattern AI 워크플로우를 구성하는 디자인패턴에는 5가지가 있다. 1. Prompt Chaning 먼저 첫번째는 프롬프트 체이닝 방식으로 태스크들이 명시적이면서 순차적으로 실행되며 이전 실행 응답에 따라서 스텝이 구성된다. 2. Routing 라우팅 방식은 LLM router..
-
SprintMVC에서 suspend 함수의 활용 (feat. 톰캣 스레드)Spring 2025. 7. 20. 23:07
문제 상황 외부 클라이언트에 장애가 내부 서버에 영향을 주면서 스레드가 급격하게 증가하여, 응답 속도가 느려지는 현상이 있었다. 해당 문제는 webclient를 block으로 사용하여 스레드를 블락하면서 사용하고 있었는데, 외부 클라이언트의 응답이 느려지면서 모든 요청에 대해 timeout 시간 까지 오랫동안 기다리게 되면서 스레드가 해당 시간동안 함께 블락되어 응답지연이 발생한 문제였다. 🤦♀️ 이를 해결하기 위해서 webclient를 호출하던 부분을 모두 async, suspend 함수로 변경하면서 비동기로 실행되는 것으로 변경하였는데, 아니 리더님께서 SpringMVC를 사용하고 있기때문에 결과적으로 tomcat 스레드를 블락하는 방식으로 동작하게 될 수도 있다고 알려주셨다. SpringMV..
-
스터디 ) 엔터프라이즈 애플리케이션 아키텍쳐 1장DESIGN PATTERN & ARCHITECTURE 2025. 6. 24. 22:39
새롭게 스터디를 시작하게 되어서 배운 내용을 정리한다. 스터디 하는 책은 다음과 같다. https://product.kyobobook.co.kr/detail/S000001766248 엔터프라이즈 애플리케이션 아키텍처 패턴 | 마틴 파울러 - 교보문고엔터프라이즈 애플리케이션 아키텍처 패턴 | 『엔터프라이즈 애플리케이션 아키텍처 패턴』은 엔터프라이즈 애플리케이션 개발자가 맞닥뜨리는 까다로운 과제를 극복하기 위해 저자가 알고product.kyobobook.co.kr 스터디 방식은 이전과 동일하게, 각자 정리를 해온 후 챕터별로 문제를 만들어서 풀어보는 시간을 가졌다. 책을 보면서 느낀것은, 오래전에 작성된 책임에도 매우 내용이 현재 공부하는 내용과 비슷하면서 예전 번역의 느낌이라 한글로 이해가기가 오히려..
-
카카오 2024 WINTER INTERNSHIP알고리즘 2025. 5. 28. 23:19
Lv.1 가장 많이 받은 선물 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/258712?language=kotlin 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 구현에 가까운 문제다. class Solution { fun solution(friends: Array, gifts: Array): Int { var answer: Int = 0 val n = friends.size var nameToIndex = friends.withIndex().associate { it.value to it.index..
-
배열알고리즘 2025. 5. 21. 00:28
1. Zero Array Transformation I문제 : https://leetcode.com/problems/zero-array-transformation-i 쿼리를 돌면서 배열에서 바로 -1 처리를 하면 시간복잡도가 O(Q*N)이 되어 Time Limit Exceeded 예외가 발생하게 된다.이를 효율적으로 처리하기 위해 차이 배열(difference array) 또는 누적 배열 prefix sum 기법을 활용해야한다. https://sheep1sik.tistory.com/161 [ Algorithm ] 차분 배열 ( Difference Array ) 기법프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers...
-
힙 (Heap)알고리즘 2025. 5. 20. 23:20
1. Find Median from Data Stream 문제 : https://leetcode.com/problems/find-median-from-data-stream 숫자가 더해지는 연산과 더해진 리스트이 중간값을 찾는 문제이다. 리스트가 짝수인 경우에는 중간의 2자리를 더하고 결과를 Double로 반환한다. 이 문제는 단순 리스트로 문제를 풀려고하면 Time Limit Exceeded 예외가 발생한다 .우선순위 큐를 이용해서 간단하게 중간값을 구할 수 있다. 최소 우선순위 큐인 minHeap과 최대 우선순위 큐인 maxHeap을 사용하고 이 둘의 길이를 항상 반으로 유지하도록 해서 리스트를 반으로 쪼개 구성하는 방식이다. 값을 더하는 addNum()의 경우 시간복잡도는 O(logN) 공간복잡..
-
트리알고리즘 2025. 5. 14. 21:54
이진 트리 1. maximum-depth-of-binary-tree문제 : https://leetcode.com/problems/maximum-depth-of-binary-tree/ 트리의 깊이를 찾는 문제다. 먼저 DFS 방식으로 풀 수 있다. n : 노드의 갯수, h : 트리의 최대 깊이 시간 복잡도 : O(n) -> 모든 노드를 한번씩 방문 공강 복잡도 : O(h) -> 재귀 콜 스택에 최대 h개의 노드 fun maxDepth(root: TreeNode?): Int { if(root == null) return 0 var left = maxDepth(root.left) var right = maxDepth(root.right) return ..
-
인텔리제이에서 최상단 호출부 hierarchy 확인하는 방법.etc 2025. 5. 4. 15:58
이번에 로직 이관을 하면서 이관하고자 하는 repository 레벨의 메서드가 어디서 사용되는지 한번에 확인할 수 있는 방법을 찾아보았다. 방법 다음의 글을 읽고 확인하는 방법을 찾았다. https://stackoverflow.com/questions/37730511/intellij-or-other-possible-to-see-a-graph-tree-of-all-calls-made-in-java In IntelliJ, when your cursor on a callable method name, pressing ctrl-alt-H will bring you to "call Hierarchy" window.Same if you prefer menu: "Navigate->call Hierarchy" ..