zito's Portfolio

안녕하세요,
김지섭입니다. Backend 주로 하고 있습니다.

Mattermost 편하게 날려주십쇼!

SCROLL

ABOUT ME

기본정보 입니다.

이름
김지섭
Backend Engineer
생년월일
2000.03.19
27세
활동 위치
경상북도 구미시
진평동
블로그
안녕은헬로입니다.
블로그 보러가기
이메일
hello@zito.kr
학력
금오공과대학교
컴퓨터공학부 졸업

SKILLS

학습과 프로젝트에서 다뤄본 기술 스택입니다.

Backend & Infrastructure

Spring Boot 초급

Spring MVC 기반의 REST API 구현과 기본적인 계층형 구조 설계를 학습하고 프로젝트에 적용.

NestJS 초급

모듈·컨트롤러·서비스 구조를 활용해 Node.js 기반 API를 구성하고 학습 중.

Docker 기초

이미지와 컨테이너의 기본 개념을 이해하고, 개발 환경 구성 및 Docker Compose 활용을 학습 중.

Linux 기초

파일 시스템과 권한, 쉘 명령어를 익히며 개발·배포 환경을 다루는 방법을 학습 중.

Python 기초

전공 수업에서 RAG 기반 챗봇을 구현하며 문서 검색과 응답 생성 흐름을 학습.

Frontend & Markup

React 기초

컴포넌트 기반 UI 구성과 상태 변화에 따른 화면 렌더링을 프로젝트에서 경험.

HTML Markup 중급

시맨틱 태그와 문서 구조를 이해하며, 읽기 쉽고 유지보수하기 좋은 마크업을 작성.

Tailwind CSS 중급

유틸리티 클래스를 중심으로 반응형 레이아웃과 일관된 UI를 구성.

ARCHIVING

개발 지식과 발자취를 쌓아나가는 보관소입니다.

GitHub Repository

github.com/zito-git

  • 과거 작성했던 개인 실습 코드 및 모듈 프로젝트 아카이브
  • 협업 프로젝트를 위한 버전 관리 및 브랜치 전략 설계
  • 오픈소스 라이브러리 분석 및 학습용 포크

Blog

notes.zito.kr

  • 개발 과정에서 마주했던 장애 대응 및 트러블 슈팅 기록
  • 새로운 프론트엔드 프레임워크 학습 후 깊은 원리 탐색
  • 기획자와 백엔드 개발자 모두에게 도움이 되는 협업 지식

PROJECTS

기술적 한계를 극복하고 완성도 높은 사용자 경험을 위해 직접 고민하고 제작한 주요 프로젝트입니다.

ubuntu@image-pipeline-server:~
[NestJS] Async Upload Service Active
$ redis-cli ping -> PONG
Queue: image-optimization Processing
[BullMQ] Job #1042: Parsing original buffer...
[Sharp] Resizing & WebP conversion (-68.4% file size)
Sync to Local Storage Complete.
1인 개인 프로젝트 백엔드

대용량 비동기 이미지 처리 및 스토리지 최적화 파이프라인

2026.02 - 2024.04 (아키텍처 설계, 백엔드 전체 개발)

동기식 이미지 업로드 시 발생하는 서버 메모리 병목 현상클라이언트 대기 지연을 근본적으로 극복하기 위해 설계한 고성능 처리 서버입니다. NestJSBullMQ(Redis 기반)를 연동해 요청 수신과 연산을 즉시 분리하여 대규모 트래픽 분산과 안전성 극대화를 달성했습니다.

BullMQ 기반 비동기 대기열 설계: 업로드 즉시 클라이언트에게 작업 ID를 반환하고, 무거운 연산(리사이징, 압축)은 Redis 큐 기반 백그라운드 워커가 처리하도록 아키텍처를 개선하여 요청 처리 대기 시간을 기존 대비 크게 단축시켰습니다.
Sharp 연동 이미지 포맷 다이어트: 업로드된 원본 이미지를 압축률이 우수한 차세대 웹 포맷인 WebP로 실시간 자동 인코딩 및 다중 리사이징을 적용해, 화질 손실 없이 스토리지 공간을 평균 60% 이상 절감하는 비용 최적화를 적용했습니다.
NestJS TypeScript Redis BullMQ Sharp Docker
LIAR GAME PORTAL In Game
ROOM #702 (6/8 Players) Timer: 45s
// Syncing Session memory state (Redis)
Key: room:702:state "VOTING_PHASE"
Player 1 (나) 시민
Player 2 투표 대기
Player 3 투표 완료
Player 4 투표 대기
1인 개인 프로젝트 풀스택

웹소켓 기반 실시간 멀티플레이어 라이어 게임 플랫폼

2024.09 - 2024.12 (풀스택 개발 및 배포 완료)

사용자들이 복잡한 설치 없이 브라우저 환경에서 쉽고 빠르게 모여 소통할 수 있는 실시간 멀티플레이 웹 보드게임 서비스입니다. Socket.ioRedis 인메모리 데이터베이스의 캐싱 메커니즘을 융합하여 밀리초(ms) 단위의 반응 속도를 가진 신뢰성 높은 실시간 동기화 상태 머신을 완성했습니다.

Redis 활용 고성능 세션 관리: 잦은 읽기/쓰기가 지속해서 발생하는 게임 로비 및 게임방 내의 플레이 상태, 실시간 타이머 등을 RDBMS 디스크 쓰기 대신 Redis의 고속 인메모리 구조로 설계하여 물리적 I/O 지연을 극도로 해소했습니다.
예외 상황 처리를 고려한 동기화 설계: 갑작스러운 네트워크 유실이나 사용자 이탈 시 자동으로 해당 세션을 복구하거나 게임방 상태를 자연스럽게 갱신하는 재연결 핸들러 로직을 적용해 중단 없는 부드러운 유저 흐름을 보장했습니다.
Next.js NestJS Socket.io Redis TypeScript Tailwind CSS
RAG KNOWLEDGE BASE FAISS VectorDB
자연어처리 전공 시험 범위에 대해 알려줘.
Retrieved: PDF_Doc_Ch2.chunk (Similarity: 0.89)
업로드된 학사 일정 가이드북 PDF에 근거하여 안내해 드립니다. 이번 자연어처리 전공 시험 범위는 트랜스포머 아키텍처부터 RAG 기법까지입니다.
궁금한 지식을 물어보세요...
개인 프로젝트 AI & 백엔드

RAG 기반 PDF 요약 Chatbot

2025.03 - 2025.08 (파이프라인 구축 및 프론트엔드 최적화)

인공지능 모델(LLM)의 고질적 한계인 환각을 억제하고 신뢰성 높은 최신 사내/학업 가이드북 규정을 정답으로 반환하도록 설계된 RAG(검색 증강 생성) 챗봇입니다. 내부 문서를 토큰화한 뒤 벡터 데이터베이스화(FAISS)하여 고유 지식 범위 내에서 엄격하게 증명 가능한 출처 기반의 정답을 추론합니다.

정밀한 전처리 및 벡터 임베딩: LangChain 라이브러리를 사용해 복잡한 구조의 PDF 및 문서 텍스트를 적절한 오버랩 범위를 가지는 최적의 청크(Chunk) 사이즈로 정밀 분할하고, OpenAI 임베딩을 이용해 고도화된 벡터 지수를 FAISS 데이터베이스에 색인화했습니다.
SSE 활용 실시간 스트리밍 답변 개선: LLM 질의 과정에서 느껴지는 느린 응답 시간(TTFB) 동안 사용자가 인지하는 지루함을 대폭 낮추고자 Server-Sent Events(SSE) 방식의 스트리밍 출력을 인터페이스에 이식해 사용성을 150% 이상 증진했습니다.
Python LangChain OpenAI API Vector DB (FAISS) FastAPI Next.js / Streamlit
텍스트가 복사되었습니다!