채용공고 올리기

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

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

미리보기

기본 정보

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

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

자기소개

자기소개

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

기술 스택

기술 스택

Python, Java, Django-REST-Framework, spring-framework, MySQL, AWS, Git, Docker, JIRA, Prometheus, grafana, pytest

프로젝트

프로젝트명

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

소속/기관명

SW 마에스트로

프로젝트 기간

2024.03. ~ 2024.12.

프로젝트 내용
일정을 쉽게 시작할 수 있도록 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를 통한 컴포넌트 개발

프로젝트명

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

소속/기관명

교외동아리

프로젝트 기간

2023.07. ~ 2023.08.

프로젝트 내용
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% 감소 및 서버 다운 문제 해결

프로젝트명

AFFINE

소속/기관명

개인 활동

프로젝트 기간

2023.09. ~ 2023.09.

프로젝트 내용

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

PRLINK


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

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

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

      수정하여 PR 업로드

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

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

프로젝트명

TinyPython 기반 Java ByteCode 컴파일러 제작

소속/기관명

개인/기타

프로젝트 기간

2023.09. ~ 2023.12.

프로젝트 내용

Java | github

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


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

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

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

포트폴리오

URL

link

포트폴리오

노션
link

Github

깃허브
link

개인 블로그

티스토리
link

LinkedIn

링크드인

자격증

자격증명

SQLD

점수 | 발급기관

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

취득연월

2023.07.

교육

소속/기관명

충남대학교

종류 | 전공

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

재학 기간 | 재학 상태

2021.03. ~ 현재 | 재학 중

소속/기관명

소프트웨어 마에스트로

종류 | 전공

사설 교육 | 15기 연수생

재학 기간 | 재학 상태

2024.03. ~ 2024.12. | 졸업

댓글