전체 글 27

KT 에이블스쿨 미니프로젝트 2차 - LangGraph 활용

에이블스쿨 7기 미니프로젝트 2차 - AI Agent를 활용한 AI Agent 구축 미니프로젝트 2차 주제는 바로 지난 시간에 배웠던 LangGraph 활용이었습니다.자세한 과정은 모두 설명할 수는 없지만 대략적으로 필요한 구현은 다음과 같았습니다.- 파일을 업로드하면 분석 및 요약- 사용자 입력을 평가하고 추가적인 문의 생성- 문의를 생성하는 과정에서 RAG 구현- 사용자 입력에 대한 종합적인 평가 출력 미니프로젝트 첫날첫날에는 AI Agent를 가지고 주어진 문제를 해결할 수 있도록 A to Z까지 구현하였습니다.-Graph 전체 구조를 이해하고, 프론트엔드 / 백엔드 영역 별로 원리를 이해 및 Python 코드 작성1. State 관리의 중요성 : state를 초기화해주는 코드를 전혀 이해하지 못했..

프로그래머스 LV2 스택/큐 - 올바른 괄호

문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.입출력 예sanswer"()()"true"(())()"true")()("false"(()("false 문제풀이 구조 생각-"(" 하나가..

에이블스쿨 7기 미니프로젝트 2차

지난주에 배웠던 LangChain, LangGraph 기반으로 AI Agent 를 구축하는 미니프로젝트를 진행했습니다.첫번째 Agent : 업로드한 pdf의 내용을 요약, keyword를 도출하고 질문전략을 수립 두번째 Agent : 수립된 질문전략 바탕으로 질문 생성 -> 답변 평가 -> 반추를 통해서 5회 가량의 심화 질문 생성, 답변 평가 반복 -> 분석 레포트 출력 첫날에는 하루종일 Agent 두가지를 구축하였습니다ComaSeperatedListOutputParser? 그리고 ChatPromptTemplate.fromtemplate? 등등LangGraph 복습을 안했더니.. 활용을 안했더니.. 이래저래 다 까먹어버렸습니다ㅜ다행히 조원중에 능력자가 있어서 겨우 완성본 코드를 받고...!2일차를 진행..

유튜브 알고리즘에 관하여 - 확증편향 부추기는 알고리즘

https://dbr.donga.com/article/view/1904/article_no/11651/ac/a_best [DBR] 확증편향 부추긴 유튜브 추천 콘텐츠, 다양성 우선하는 대안적 알고리즘 시급Article at a Glance2025년 한국 광화문과 용산, 2021년 미국 워싱턴 의회 의사당에서 벌어진 사건들은 같은 사회에 사는 시민들이 완전히 다른 정보와 해석에 근거해 판단하고 행동하고 있음을 보여준dbr.donga.com 이제 매일 1개 이상 뉴스 기사들이나 아티클을 읽고 정리하는 글을 작성하려고 합니다. 확증편향 부추긴 유튜브 추천 콘텐츠다양성 우선하는 대안적 알고리즘 시급이라는 글을 보았는데요 -필터 버블 에코 챔버 : 알고리즘은 중립적인 기술이 아니다-유튜브 알고리즘의 작동 원리 :..

최소 신장 트리 MST

최소 신장 트리 를 구현하기 위해서 Java에서는 Kruskal 알고리즘을 사용한다고 합니다.문제풀다가 이게 뭐지.. 싶어서 최소 신장 트리는 들어봤는데 코드로 구현하는 건 역시.. 또 다른 문제입니다.아래 그림이 전체 과정을 설명해준다고 해요.edge 선언 및 초기화 -> 목표값에 따른 오름차순 배열 -> Union-Find -> 간선 선택 및 사이클 체크 -> 결과값 확인이것도 몇 번 직접 구현해봐야 익숙해질 것 같습니다. for 문으로는 한계가 있더라구요 ; Kruskal 알고리즘최소 신장 트리를 찾기 위해 간선들을 오름차순 정렬하고,서로소 집합(Union-Find)으로 사이클이 생기지 않도록 간선을 추가하는 방식 ✅ 1. Kruskal 알고리즘이란?✅ 개념:그래프에서 사이클이 없고, 모든 노드를 ..

동적 계획법, JAVA 자료형

프로그래밍 기법동적 계획법 Dynamic Programming재귀로 구현하게 되면, 중복해서 하는 연산이 불필요하게 많아진다.피보나치 수열 같은 경우에 재귀 형태로 구현해주게 되면은..public static long fibo(int n) { if (n == 0 || n == 1) return n; return fibo(n-1) + fibo(n-2); }n에 8을 입력했을 때, fibo(7), fibo(6) 이 호출되고,각 함수 결과값을 구하기 위해 다시 fibo(6), fibo(5) / fibo(5), fibo(4) 가 호출된다.여기서는 fibo(5) 가 중복해서 호출되는데, 값이 커질수록 이는 기하급수적으로 늘어날 것.=> 이를 해결해주기 위해서 동적 계획법을 사용, 중간 계산값을 다른 배열..

BigDecimal, Comparator 인터페이스

BigDecimal result = numor.divide(denom, times, RoundingMode.HALF_UP); return result;고정소수점과 부동소수점의 차이소수점 위치고정됨가변적정확도정밀 (오차 거의 없음)오차 가능 (예: 0.1 + 0.2 ≠ 0.3)속도빠름 (정수 연산 기반)매우 빠름 (CPU 부동소수점 연산)사용처금융 계산과학/통계/그래픽 계산Java 예시BigDecimalfloat, double기존 float, double 을 통해서 소수점을 표현하면 최대 16자리까지만 표현이 가능.BigDecimal 을 사용하면 원하는 만큼의 자리수를 표현이 가능하다.RoundingMode. 옵션들UP무조건 올림 (자리 버림 이후 0 아니면)2.68DOWN무조건 버림2.67H..

정보처리기사 필기 공부

3과목 데이터베이스 구축논리 데이터베이스 설계SQL 활용-데이터 정의어 DDL - DataBase 구조를 정의, 수정, 변경 (데이터베이스 관리자가 사용)= { CREATE : DB생성, ALTER : DB 객체 수정, DROP : DB 객체 제거, TRUNCATE : DB 객체 데이터 전체 삭제 }-데이터 조작어 DML - 데이터를 검색, 삽입, 갱신, 삭제={ INSERT : 데이터 삽입, UPDATE : 데이터 갱신, DELETE : 데이터 삭제, SELECT: 데이터 조회 }-데이터 제어어 DCL - 데이터 접근 통제와 병행 수행={ GRANT : 사용자 권한 부여, REVOKE : 사용자 권환 회수, COMMIT : 트랜잭션 결과 반영, ROLLBACK : 트랜잭션 작업 취소, CHECKPO..

문자열 리스트, array

list.get(index) : 값 포함여부 체크str.equals() : 문자열이 비교하는 값과 동일한지 확인array.replaceAll(string a, string b) : a를 b로 모두 대체  string.trim().split("\\s+") : 하나 이상의 공백을 기준으로 문자열을 나눔int count3 = (string.trim().isEmpty()) ? 0 : array.length; : 입력이 공백이라면 0을 반환, 아니라면 배열의 길이를 반환python에서는 그냥 아무 생각없이 형변환 이나 데이터 관련해서 민감하게 생각안해도 코드가 쑥쑥 나오는데..왜 java는 데이터 형 변환이니 클래스니 메서드니 신경써줘야 할게 이렇게 많은지그래서 개발자들이 많이 쓰는가..?