전체 글

꾸준히 성장하는 개발자 WONOW 입니다. 🤗
CS
의문다른 프레임워크를 하며 의문점이 생겼다. 다른 프레임워크들은 직접 쿼리문을 쓰거나 ORM 등을 이용하여 쿼리를 작성하여 객체의 필드값을 하나하나 빼서 저장을 하는 경우가 있는데, Spring 에서 아니, JPA/Hibernate 에서는 @Getter 등이 없어도 repository.save(entity) 만 하면 값이 저장이 된다. 어떻게 이게 가능한 걸까? @Getter 없이 어떻게 값을 읽고 전부 저장할까?Hibernate 는 기본적으로 엔티티의 상태를 읽고 쓸 때 Java 의 리플렉션 기능을 이용한다. 예를 들어 Entity 클래스 필드에 @Id 같은 어노테이션이 붙어 있으면, Hibernate 는 해당 필드에 직접 접근 하여 값을 읽고 쓴다.이러한 방법이 있기에 Getter, Setter 등이..
짧으면 짧고 길면 긴 위커밋과의 여정을 마치며 글을 씁니다. 위커밋은 genDoc(문서 AI Agent), 노쇼핑(노쇼 상품 중개 서비스), 다미(AI 목표 관리) 등의 서비스를 만드는 회사입니다.저는 위 프로젝트들에 상당한 관심이 생겨서 위커밋에 지원하고 인턴으로 합류하게 되었습니다. 인턴 생활첫 인턴 생활에서 가장 집중했던 것은 회사 코드에 바로 익숙해지는 것이 아니라 이 회사가 진정으로 원하는 것이 뭔가를 알아내는 것이었습니다.서비스를 100% 이해하고 BM 과 계열사, 어떤 것을 준비하고 어떻게 소개를 하는지에 대해서 먼저 파악을 했습니다.코드는 천천히 익숙해지면 됩니다. 가장 중요한 것은 본질인 서비스입니다. 인턴 기간에 대표님에게 이 서비스가 개발이 느려지는 이유를 말하고 개선점과 저를 믿고 ..
저는 Spring 을 쓸 때 손이 엄청 바빠져요엔티티,, 컨트롤러,, DTO,,, 서비스,,, 하나하나 만드느라 엄청 귀찮거덩요아 이거 누가 대신좀 해줬으면 좋겠다... 했는데...나 개발자지?? 내가 만들 수 있지?? 그래서 만들었습니다.Spring CRUD 생성기Python 기반으로 되어 있으며 pip 로 깔아서 사용할 수 있어요3Layer, Hexa 일단 이 두개 대중적인거 위주로 해놨습니다. https://github.com/wonowonow/spring-boot-crud-generator GitHub - wonowonow/spring-boot-crud-generator: ✍️ Spring Boot 단순 crud 작업 귀찮아서 만들었습니다.✍️ Spring Boot 단순 crud 작업 귀찮아서 만..
WebRTC 란실시간 오디오나 비디오 데이터 통신을 가능하게 해주는 오픈 소스 프로젝트다 핵심 기능실시간으로 오디오랑 비디오를 전송 할 수 있다.P2P 통신을 통해서 브라우저끼리 직접 데이터를 주고 받을 수 있다. 이거 쓰려면 시그널링 서버가 필요하다 이게 뭐냐서로 연결해서 정보 주고 받기 위한 webSocket 등이다. 와 그럼 이거 어디서 쓰냐google Meet, discord 등에서 쓴다.아 이해했다. 그럼 어떻게 동작하냐일단 기본적으로 세개다. getUserMedia카메라, 마이크 가져오는 거얼굴이나 목소리 받아올 때 쓴다.RTCPeerConnection이게 핵심브라우저끼리 직접 연결해서 주고받게 해준다오디오, 비디오 다 여기서 처리된다.RTCDataChannel그냥 데이터 주고 받는 통로채팅이..
임베딩이 모냐 임베딩은 여러 개념이 있는데 우선은 word_embedding 을 기준으로 설명하려고 한다.사람은 king - queen 이라는 두 단어를 봤을 때 유사한 단어라고 인지를 한다.하지만 컴퓨터는 이걸 못한다. 그래서 AI 가 이 단어가 어떤 단어에 근접한지 판단을 해서 점수를 적어, 좌표에 놓는다. 예를 들면 이런식이다. 성별에 관한 용어임?남자임?여자임?멋있음?킹0.91-11퀸0.9-111 ㅋㅋ 이걸로 하나하나 정해서 좌표에 던져 놓는다. 저 질문 하나하나를 차원이라고 한다. Ollama 의 임베딩 모델은 1024text-embedding-3-small 은 1536 개 였나 그렇다. (large 하면 더 많아짐) 어쨌든 이렇게 차원이 있는데 이 차원이 많아질 수록 당연히 임베딩하는데 돈이..
ToolCalling 이란?도구 부르기다. LangChain 과 LangGraph 에서 통용되는 개념이다LLM 이 어떤 도구를 쓸지 알아서 정해서 그 도구를 사용한다는 것이다.알아보자Tool도구다.무슨 도구냐 이 도구는 뭐든지 될 수 있다.API 호출, 요즘 유행인 MDC, 심지어 LangChain 과 LangGraph 또한 도구가 될 수 있으며, 날짜 계산, 라이브러리 등등 모든 것이 도구가 될 수 있다.하지만 지켜야 될 것이 있다 단일 책임의 원칙 이건 지켜야된다. 그래야 도구로써 사용하기에 적합하게 된다. 도구는 세가지 정보를 가진다.이름: 도구의 이름을 정한다. (ex. 날씨 도구)설명: LLM 이 이 설명을 보고 도구를 고를 수 있게 설명을 적어야한다. (ex. 사용자가 날짜를 입력하면 해당 날..
LangGraph 위주로 작성하겠습니다.둘은 철학 자체가 다르다⛓️‍💥 - 체인은 서로 순서대로 연결이 되어있다.즉 선형적으로 이루어져있다. 그렇다. 랭Chain 은 선형적인 구조를 이룬다.파이프라인을 만든다는 것이다. Graph - 그래프는 각자 연결이 되어있다.알고리즘 풀면서 그래프 문제 많이 풀었을텐데 그 그래프 맞다.즉 그래프 문제 풀면서 사이클 조정이나, 우선 순위를 조정했듯이 랭Graph 도 상황에 따라 세밀한 조정이 가능하다!!이게 무슨 소리냐? 파이프 라인이 아닌 각 노드에 따라서 자동으로 왔다갔다 한다는 것이다!!이해가 됐으려나? LangGraph 단어 설명Langgraph 는 다중 에이전트 프레임워크 입니다.사이클 지원과 세밀한 제어가 가능하며 내장 지속성 기능으로 상태 및 흐름을 정..
6버전 기준으로 작성되었습니다.Clerk 란?인증과 사용자 관리를 제공하는 SaaS 서비스이다.구글, 깃허브, 페이스북, X, 노션 등..OAuth, 이메일/비밀번호, Magic Link, Web3 Wallet 등 다양한 로그인 방식을 지원한다.Next.js, Remix, React Native 등과 쉽게 통합을 할 수 있어서 스타트업, 1인 개발자 등 프로토타입 개발 환경에서 개발 시간을 단축시키는 데 도움을 줄 수 있다.물론, 각 Provider 마다 어느정도 설정은 해줘야한다. 이건 Clerk 에서 못한다. Clerk 설정 이 설정을 기본으로 하고 시작 Personal Information 의 Name 은 하는 순간 귀찮아지니 생략저게 뭐냐면 Google 로그인 시 구글의 First Name, La..
CS
RAG란RAG(Retreival-Augumented Generation)는 검색 기반 증강 생성으로, LLM 모델에서 출력을 최적화하여 응답을 생성하기 전, 학습 데이터 외부의 지식 베이스를 참조하도록 하는 프로세스다.단순히 외부 데이터를 참조하는 것이 아닌, 벡터 DB 등의 검색 시스템을 이용하여 LLM의 프롬프트에 추가하는 방식이다. RAG 가 왜 나왔을까?우리는 ChatGPT 의 초기 버전을 기억한다.이때 생겨난 문제점은 LLM 이 그렇게 완벽하지 않다는 것이다.LLM 의 대표적인 문제점은 다음과 같다. 답변이 없을 때 허위 정보를 제공한다.사용자가 구체적이고 최신의 응답을 기대할 때, 오래거나 일반적인 정보를 제공한다.신뢰할 수 없는 출처로부터 응답을 생성한다.용어 혼동으로 인해 응답이 정확하지 ..
wonow_
wonow_