잡플래닛, 블라인드 평점 및 병역특례 한번에 보는 방법
·
프로젝트 홍보
채용 정보 볼 때, 탭 열기 지긋지긋했다면채용 공고를 볼 때마다 잡플래닛 열고, 블라인드 열어 기업 리뷰 평점 찾아보고 병역특례 회사인지 또 따로 찾느라 탭이 쓸데없이 많아지곤 한다.그래서 이 과정을 한 번에 끝내기 위해 크롬 확장 프로그램 CoReview를 만들었다. CoReview - Chrome 웹 스토어드래그 후 기업 평점 및 병역특례 여부를 확인합니다.chromewebstore.google.com CoReview가 해주는 일CoReview는 채용 사이트에서 회사 이름만 드래그하면, 그 자리에서 바로잡플래닛 평점블라인드 평점병역특례 지정 업체 여부를 한 번에 보여주는 확장 프로그램이다.잡플래닛이나 블라인드 사이트로 직접 들어갈 필요 없이, 채용 공고 페이지에서 그대로 평점과 병역특례 여부를 확인..
[LangChain] 복잡한 SQL, AI/LLM으로 해결하기: Text-to-SQL 4가지 방식 성능/비용 비교
·
개발기
졸업 프로젝트(하루멍록)에서 복잡한 SQL 쿼리 문제를 LangChain으로 해결해보려고 노력한 Text-to-SQL 시스템 개발 경험을 정리한 게시글입니다.🚀 프로젝트 시작 동기"백엔드 SQL 쿼리, 너무 복잡한데?"하루멍록이라는 반려동물 관리 앱 졸업 프로젝트에서 백엔드를 맡았는데, 테이블이 점점 늘어나고 JOIN이 복잡해지면서 SQL 작성이 점점 힘들어졌다. 그래서 "자연어로 물어보면 SQL이 나오면 얼마나 편할까?"라는 생각으로 Text-to-SQL 시스템을 직접 만들어보기로 했다.📊 하루멍록 데이터베이스 구조하루멍록은 반려동물 관리 앱답게 다양한 도메인으로 구성되어 있다.회원/인증: member, member_block반려동물 관리: pet, pet_image, member_pet산책 기능:..
인프런 강의로 시작해 ‘소득세법 RAG 챗봇 AI’ 완성하기: 구조 분석부터 나만의 개선까지
·
개발 공부/AI
소득세법 RAG 챗봇: 인프런 강의 따라 하기부터 나만의 개선까지 🤖“많은 문서가 있을 때 어떻게 원하는 정보를 찾지?”학교 관련 문서, 법 조항 등 양이 많은 문서의 경우 다시 찾는 일이 반복됐다. 검색 결과는 많지만, 정확히 필요한 조항에 바로 도달하기는 어려웠고, 용어가 조금만 달라져도 엉뚱한 문서를 보게 되는 일이 잦았다.​이때 우연히 인프런에서 세법 도메인에 LLM + RAG를 적용하고, 키워드 맵과 자동 평가까지 구현하는 강의를 보게 되었고, “이 구조를 그대로 따라 만든 뒤, 내 고민을 얹어보자”라는 생각으로 프로젝트를 시작했다.인프런 강의 기반 설계: 세법 + RAG 구조 그대로 따라 하기 🎓이번 챗봇의 뼈대는 인프런 강의를 기반으로 했다. 강의에서 다루는 구조는 크게 다음과 같았다.​..
Kafka 고가용성 확보하기 (node, broker, controller, cluster, replication) (+실습)
·
개발 공부/kafka
서론이번 시간에는 kafka 장애 시 대처하기 위해 여러 개의 kafka 서버를 띄우고 장애시 대처하는 과정을 볼 것이다. 노드, 브로커, 컨트롤러, 클러스터, 레플리케이션이란?kafka의 기본 개념들로 고가용성 설정을 위해서는 필요한 지식이다.노드 (node)kafka에 설치 되어 있는 서버 단위를 말한다.노드가 고장이 나면 서비스 장애가 일어나기에 실무에서는 노드를 최소 3대 이상 두는 편이다.클러스터(cluster)여러 대의 서버가 연결되어 하나의 서버 처럼 동작하는 서버들의 집합을 의미한다.위 그림처럼 3개의 서버가 유기적으로 연결되어 하나의 서버가 고장이 나더라도 다른 노드에서 대신 받아주는 등 유기적으로 사용이 되는 서버의 집합을 클러스터라고 한다.브로커(broker), 컨트롤러(control..
쿠버네티스 로깅
·
개발 공부/k8s
로깅을 하기 위한 기술 스택들가장 크게는 ELK(elastic search, logstash, kibana)와 PLG(Promtail, Loki, Grafana) 라인이 존재함원래 ES, Kibana는 오픈 소스였으나 정책이 바뀌며 ES와 Kibana를 대체하기 위한 OpenSearch가 나옴OpenTelemetry는 표준화된 Observability 프레임워크로 OTLP 전송 표준을 제공하는 등 최근에 나와 많이 쓴다고 함데이터 수집에서는 요즘 가장 많이 핫한 OpenTelemetry를 사용할 것임Loki 배포 방식 및 아키텍처loki 하나로 저장하는 방식이 존재하지만 이는 확장성이나 안정성에서 분리함loki를 2개로 나누고 volumn을 각각 두는 방식은 동기화가 안됨하나의 volumn으로 연결하는 ..
서버비 0원으로 월 8,000 트래픽 감당하기: Cloudflare Workers + Notion 도입기
·
개발기
IT 동아리 모음 사이트인 TECA의 개발부터 운영, 그리고 트래픽이 터지기까지의 약 8개월간 있었던 일을 요약한 게시글 입니다.🚀 프로젝트 시작 동기"IT 동아리 정보 모아둔 곳 없을까?"사실 시작은 아주 단순했다. 아는 형이 IT 동아리 정보를 한눈에 보고 싶다며, 노션으로 같이 정리해보자고 제안했다. 평소 "불편하면 만든다"는 주의라 바로 수락했고, 간단한 사이드 프로젝트 정도여서 하루 만에 노션 페이지 정리(웹/모바일 뷰 분리)를 끝냈다. (웹에 맞는 화면과 모바일에 맞는 화면이 다르고 노션은 반응형이 안되다 보니 각각에 맞는 노션페이지를 만들어주었다.)하지만 개발자로서 욕심이 생겼다. 그냥 노션 링크(notion.site/...)를 던져주는 건 너무 멋이 없지 않나? 제대로 된 도메인도 달고 ..
6. Kafka 파티션 이용해서 성능 향상 시키기 (+실습)
·
개발 공부/kafka
서론지난 시간에 Consumer가 메시지를 한 번에 하나씩만 처리하는 현상으로 인해 비효율적으로 메시지를 처리하는 모습을 볼 수 있었다.이를 해결하기 위해 kafka의 파티션을 알아야 한다.본 실습을 하기 전 EC2에 kafka가 설치 되어야하며 Producer와 Consumer가 구축된 로컬 스프링 서버가 필요하다. 만약 구축이 안되어 있다면 아래 링크를 참고하자[환경 세팅] 2. Kafka 간단히 설치해보기 (feat. EC2) (+실습)환경 세팅 전 갖추어야할 것AWS 계정적당한 성능의 EC2이번 실습은 AWS 프리티어에서 진행하기 위해 EC2 t2.micro (메모리 1GB)에서 진행함EC2에 Kafka 설치 / 실행하기1. JDK 17 설치하기Kafka를 실행시키려student-developer..
5. Kafka 메시지 처리 실패 시 대처 방법 (feat. Spring) (DLT, 재시도) (+실습)
·
개발 공부/kafka
서론Kafka를 이용하여 비동기 통신을 할 경우 사용자에게는 성공 여부와 상관없이 바로 성공이라고 보내지기 때문에 실패할 시 서버에서 처리를 해주어야한다.이를 위해 재시도, DLT 등의 방식이 쓰인다본 실습을 하기 전 EC2에 kafka가 설치 되어야하며 Producer와 Consumer가 구축된 로컬 스프링 서버가 필요하다. 만약 구축이 안되어 있거나 관련 이론을 먼저 공부하고 싶다면 아래의 링크를 참고하자[환경 세팅] 2. Kafka 간단히 설치해보기 (feat. EC2) (+ 실습)환경 세팅 전 갖추어야할 것AWS 계정적당한 성능의 EC2이번 실습은 AWS 프리티어에서 진행하기 위해 EC2 t2.micro (메모리 1GB)에서 진행함EC2에 Kafka 설치 / 실행하기1. JDK 17 설치하기Kaf..
쿠버네티스 모니터링 (feat. Prometheus)
·
개발 공부/k8s
Prometheus란?Prometheus는 모니터링 시스템 이면서 시계열 데이터 베이스이다.넓게 보면 NoSQL이라고 말할 수 있지만 자세히 보면 범용적인 데이터를 저장할 수 있는 구조는 아니기에 일상적으로 말하는 데이터 베이스와는 거리가 있을 수 있음.그렇기에 Prometheus는 모니터링 시스템이며, 실시간 처리에 최적화된 데이터를 가지고 있다. 라고 말하는 것이 더 정확할 수 있음kube-prometheus-stack 구성 및 설치Helm으로 설치 시에 KubeStateMetrics, NodeExporter, Grafana, Operator가 설치가 됨.앞에 kube가 붙어있는 것이 아닌 그냥 Prometheus인 패키지라면 operator는 없으니 주의 바람NodeExporter는 DaemonSe..
4. Kafka의 Producer, Consumer 서버 만들기 (feat. Spring) (+실습)
·
개발 공부/kafka
사전 준비이번에는 Kafka의 메시지를 주는 Producer와 받는 Consumer 서버를 SpringBoot로 만들어 볼 것이다.이에 앞서 AWS EC2에 Kafka가 설치되어 있어야 한다.만약 필요하다면 밑의 링크를 참고하면 됩니다.[실습 전 필요한 인프라] 2. Kafka 간단히 설치해보기 (feat. EC2) (+ 실습)환경 세팅 전 갖추어야할 것AWS 계정적당한 성능의 EC2이번 실습은 AWS 프리티어에서 진행하기 위해 EC2 t2.micro (메모리 1GB)에서 진행함EC2에 Kafka 설치 / 실행하기1. JDK 17 설치하기Kafka를 실행시키려student-developer-story.tistory.com[필요한 이론] 1. Kafka와 메시지큐 (정의, 형태)Kafka와 메시지 큐Kaf..