채용공고 올리기

송지우님을 응원해보세요!

지금 만족하고 있어요
성실함
책임감
협업 지향
목표 지향적
커뮤니케이션

미리보기

기본 정보

이름
송지우
직업
백엔드 개발자
이메일
alpakaka000808@gmail.com
간단소개

안정성과 효율성을 생각하며 서비스를 개발하는 신입 백엔드 개발자입니다.

자기소개

자기소개

웹과 앱 서비스를 기획, 개발, 배포, 운영한 경험이 있습니다. 백엔드 API 개발부터 아키텍처 및 DB 설계, 테스트코드 작성, 모니터링을 통한 디버깅을 진행한 경험이 있습니다. 새롭고 다양한 시각을 배우기 위해 학교를 벗어나 다양한 사람들과 함께 프로젝트를 진행한 경험이 있습니다.

기술 스택

기술 스택

프로젝트

소속/기관명

SW 마에스트로

프로젝트명

LLM을 사용한 투두 매니징 앱, OneStep

프로젝트 내용
일정을 쉽게 시작할 수 있도록 LLM을 이용하여 일정을 작게 나눠주는 투두 매니징 앱

Github Link[Backend] | Github Link[Frontend]

Django REST framework, OpenAI, MySQL, Sentry, React Native

역할: 아키텍처 및 DB 설계, 백엔드 리더


  • LexoRank 알고리즘을 활용한 투두 순서 변경 성능 최적화

    • 잦은 투두 순서 변경에 따른 DB 성능 저하가 예상되는 상황

    • 문자열 기반 정렬인 LexoRank 알고리즘을 사용하여 순서 변경 성능 최적화

    • 10개 이상의 LexoRank 오픈소스를 비교 및 테스트하여 최적의 성능을 제공하는 방식 선택

    • 최적의 오픈소스를 사용하여 3일 만에 기능 구현 완료

  • 사용자별 LLM 서비스 성능을 개선하기 위해 프롬프트 설계 및 프롬프트 테스트 코드 작성

    • 데이터가 충분하지 않았기에 최대한 프롬프트 결과에 의존할 수 밖에 없는 상황

    • OpenAI 및 Anthropic의 LLM 프롬프트 가이드라인을 참고하여 프롬프트 결과 품질 향상

    • 결과를 빠르게 도출하고자 비동기 처리로 개발하였으나, 비동기 처리만으로는 유의미한 결과 개선이 불가능함을 발견

    • OpenAI와 커넥션 과정이 가장 시간이 많이 소요됨을 확인

    • API 요청을 줄 때마다 연결을 요청하는 것이 아닌 연결을 유지하도록 HTTP 클라이언트(httpx)를 활용한 Keep-alive 적용 및 타임아웃을 설정

    • 결과적으로 LLM 결과 도출 시간을 6초에서 3초로 50% 개선하여 사용자로부터 좋은 피드백 받음

  • API 테스트 및 문서화 작업

    • API 문서화를 위해 Swagger를 활용하여 모든 API에 문서 작성, 팀원들과의 원활한 소통 지원

    • Pytest 를 활용하여 유닛 테스트를 작성하여 유닛 테스트 커버리지 85%를 유지

  • Fat Model, Skinny View 패턴 적용으로 유지보수성 향상

    • mvp 개발(3주) 이후, 개선 사항과 디버깅 시 가독성이 떨어지는 문제 발견

    • 비지니스 로직을 모델에 집중하고 view에서 간단한 요청/응답을 처리하는 Django의 패턴 중에 하나인 fat model, skinny view 전략으로 리팩토링

    • 리팩토링 결과 중복 코드 24% 감소, 코드 복잡도 17% 개선

  • Sentry를 이용하여 실시간 모니터링 환경과 로깅 시스템 구축

    • Sentry의 Trace 기능을 활용하여 성능 저하 및 개선이 필요한 부분을 실시간 분석

  • React Native를 통한 컴포넌트 개발

프로젝트 기간
2024.03. ~ 2024.12.
(10개월)
소속/기관명

교외동아리

프로젝트명

6주 단기간, 네컷 사진 앨범 웹 서비스

프로젝트 내용
GAN 모델을 사용하여 네컷 사진 변환 후 저장 및 꾸밀 수 있는 웹 서비스

Github Link

DRF, MySQL, Docker, Grafana, Prometheus, K6, AWS (S3, EC2)

역할 : 백엔드 API 개발, 모니터링


  • Promethues와 Grafana 를 사용해 주요 성능 지표 모니터링 환경 구축

    • 주요 성능 지표(응답 속도, CPU 사용량, 메모리 사용량 등) 실시간 모니터링

  • 부하 테스트(K6) 진행 및 서버 안정성 개선

    • K6를 사용하여 부하테스트를 진행한 후 목표했던 사용자 수보다 적은 요청에서 서버 다운 문제 발견

    • 단일 쓰레드를 사용하여 많은 요청이 들어오는 경우 CPU 연산량이 급증하여 서버 다운되는 상황

    • 네컷 사진에 맞춰 4개의 쓰레드를 활용한 비동기 처리를 통해 cpu 연산량을 줄이고자 시도

    • 멀티 쓰레드 및 비동기 처리 적용 후, 4개의 이미지 변환 시간을 1분에서 30초로 50% 감소 및 서버 다운 문제 해결

프로젝트 기간
2023.07. ~ 2023.08.
(2개월)
소속/기관명

개인 활동

프로젝트명

AFFINE

프로젝트 내용

문서 및 캔버스 오픈소스 AFFINE, UI 개선 기여

PRLINK


  • 문서 프로그램을 사용하고자 AFFINE을 사용하던 중, 툴바가 화면을 벗어나는 UI 버그 발견

  • 해당 문제를 오픈소스 이슈에 등록 후 코드 분석

    • 툴바 위치를 연산하는 과정에서 오류가 있음을 확인 후

      수정하여 PR 업로드

  • 메인테이너와 소통하며 코드 컨벤션에 맞춰 수정

  • 최종적으로 PR이 Merge되어 AFFINE 프로젝트에 기여 완료

프로젝트 기간
2023.09. ~ 2023.09.
(1개월)
소속/기관명

개인/기타

프로젝트명

TinyPython 기반 Java ByteCode 컴파일러 제작

프로젝트 내용

Java | github

Tiny Python 코드를 Java ByteCode(Jasmin 문법)으로 변환하는 컴파일러 제작


구문분석과 의미분석에 대해서 학습하여 컴파일에 대한 기본 지식 습득

Tiny Python의 조건문, 반복문, 함수 등의 기본적인 문법을 Java ByteCode로 컴파일할 수 있도록 parser 구현

파싱된 소스 코드를 기반으로 Jasmin 문법에 맞는 Java ByteCode를 생성하여 실제 자바 가상머신에서 실행 가능한 코드 생성

프로젝트 기간
2023.09. ~ 2023.12.
(4개월)

포트폴리오

타입

URL

노션
링크

포트폴리오

깃허브
링크

Github

티스토리
링크

개인 블로그

링크드인
링크

LinkedIn

자격증

자격증명

SQLD

점수 | 발급기관

합격 | 한국데이터산업진흥원

취득연월

2023.07.

교육

소속/기관명

충남대학교

종류 | 전공

대학교(학사) | 컴퓨터융합학부

재학 기간

2021.03. ~ 현재

재학 상태

재학 중

소속/기관명

소프트웨어 마에스트로

종류 | 전공

사설 교육 | 15기 연수생

재학 기간

2024.03. ~ 2024.12.

재학 상태

졸업

댓글