포트폴리오상세페이지

김동욱

학과

컴퓨터공학부

관심분야

데이터 사이언스, 알고리즘, 데이터베이스

학번

2019****43

자기소개

안녕하세요 :)


Spring FrameWork와 JAVA에 익숙하며, AWS을 활용한 백엔드 개발에


열정을 가진 김동욱입니다.

 

새로운 기술과의 접목, 새로운 경험을 중요하게 생각합니다.


AI 기술을 활용해 사람이 시나리오만 작성하면 웹툰을 자동으로 그려주는 생성형 AI 기반 서비스 Artfusion을 개발하여, 더 많은 개발자가 창작에 도전할 수 있는 환경을 만들고자 했습니다.

 

팀에 빠르게 적응할 수 있습니다.


Botox 프로젝트의 일정을 총괄하는 기획팀장과 SW 학술 동아리 장을 맡아본 경험이 있으며, 팀원으로서 리더의 지시에 따라 협업한 경험도 있습니다.

이러한 활동을 통해 조직 구조를 이해하고 있으며, 팀에 적응할 수 있습니다.

 

강력하고 효율적인 사용자 인증을 제공하고 싶습니다.


ArtFusion 프로젝트에서는 세션 자동 발급 기능을 통해 사용자 인증 과정을 간소화하고, 사용자에게는 편리함과 안전성을, 개발자에게는 신뢰성과 유지보수 용이성을 제공하는 인증 체계를 구현하였습니다. 앞으로는 쿠키와 JWT를 활용해 사용자 데이터를 더욱 안전하게 보호하고, 분산 시스템에서도 확장 가능한 효율적이고 강력한 인증 시스템을 구축하고자 합니다.


 

   

이수교과목

4-1

sw 프로젝트 2(캡스톤 디자인)

기계학습 및 실습

C++ Programming

 

3-2

네트워크 프로그래밍

데이터베이스 프로그래밍

리눅스 시스템

산학협력캡스톤설계1

소프트웨어 공학

인공지능

 

3-1

운영체제

데이터베이스

모바일 프로그래밍(캡스톤 디자인)

컴퓨터 알고리즘

클라우드 컴퓨팅

 

2-2

객체지향프로그래밍2

윈도우프로그래밍

자료구조

 

2-1

객체지향프로그래밍1

웹프로그래밍

 

1-2

이산수학

컴퓨터프로그래밍

 

1-1

컴퓨팅사고력

소프트웨어원리

전기전자공학개론

 

 

사용가능기술

JAVA

- Spring Boot 기반의 MVC 패턴 및 JPA 활용



  • Botox 프로젝트와 ArtFusion 프로젝트에서 Spring Boot 를 기반으로 MVC 패턴을 사용하고, JPA로 DB와 상호작용을 구현했습니다.


- AOP, Spring Bean 구조 활용



  • AOP와 Spring Bean 구조를 활용하여 모듈화된 코드 작성을 실현했습니다.


- RESTful 한 설계를 갖춘 API 개발



  • 성공, 실패, 예외 상황에 따른 응답 예제와 각 API 엔드포인트에 대한 설명이 포함되며, 이를 통해 개발자들이 API를 더 쉽게 이해하고 사용할 수 있도록 했습니다.




 

AWS

  • 리액트 파일을 S3 버킷에 호스팅하여 Django 서버와 연동한 웹 애플리케이션 구축.

  • nohup을 활용해 백그라운드에서 서버가 안정적으로 중단 없이 실행되도록 배포를 구현.

  • JAR 파일을 활용해 번호판 조회 웹사이트를 안정적으로 배포.




 

Git & GitHub

  • Git Flow 전략을 활용하여 체계적인 브랜치 관리와 일관된 커밋 네이밍 규칙을 적용해 원활한 협업을 경험했습니다.


Python


  • Python은 다른 언어보다 문법이 간단하고 직관적이어서 문제 해결에 집중할 수 있으며, 풍부한 라이브러리를 통해 반복적인 작업을 줄이고 코드 작성 시간을 단축할 수 있어 알고리즘 문제 해결에 활용하고 있습니다




Jira(협업 도구)

  • Jira를 활용해 프로젝트를 체계적으로 관리하고, 차트를 통해 진행 현황을 시각화 가능

  • 프로젝트 관리 팀장으로서 회의를 통해 작업에 대한 스토리포인트를 산정하고, 효과적으로 협업한 경험이 있습니다.




   

수행 프로젝트

프로젝트 명 : ArtFusion


[노션 링크]


https://wind-hedgehog-6fd.notion.site/ArtFusion-ed77b6aa53ad418687d68546b7b968e8?pvs=4

📌 Summary


실시간 음성 채팅과 친구 관리 기능이 탑재된 게임 팀원 매칭 서비스



🖥 Tech Stack


사용기술 : Spring Boot, Dalle-E 3 API, FineTunning GPT 4o, GPT 4o mini

Why


음성 채팅이 없는 게임에서도 팀원들과 소통할 수 있는 환경을 제공하며,


디스코드와 같은 실시간 데이터 통신 시스템을 직접 설계하고 구현해보고자


개발하게 되었습니다.



[핵심 Logic에 대한 설명]


기존의 스프링이 사용중인 동기방식은 하나의 작업이 완료되고 나면, 다음 작업을 시작하기 때문에 AI웹툰 드로잉 서비스 특성 상 여러 컷을 되도록 빠른 시간 안에 만들어야 하기 때문에 비동기 방식을 채택.

자체적으로 파인튜닝된 GPT-4o을 통해 입력받은 프롬프트를 장면단위로 분할하고, Dalle 3에게 전달하는 형식.

 

[이미지 생성 순서 문제를 해결한 Singleton 및 Scheduler 기반 큐 관리 방식]


DALL-E 3와 같은 이미지 생성형 AI는 이미지 생성의 순서를 보장하기 어려운 특성이 있어, 순차적 이미지 생성을 요구하는 웹툰과 같은 경우에는 문제 발생. 이를 해결하기 위해 Singleton 패턴과 Scheduler를 활용하여 클라이언트로부터 전달받은 이미지 생성 및 수정 요청을 하나의 Task로 처리하고, 요청을 큐로 관리하여 순차적으로 처리되도록 구현함. 이를 통해 웹툰의 개연성을 위한 이미지 생성 순서를 보장함.


Project Contributions



  • 백엔드 담당

    • 로그인 시 세션을 발급하고, 사용자 권한이 필요한 부분에서 세션을 검증하여 인증 및 권한 확인 구현

    • 댓글, 작품에 대한 API 설계 및 구현

    • LLM 파인 튜닝

    • OpenAI(Gpt 4o) POC 수행

    • 예외처리

    • API 설계서 작성








프로젝트 명 : Botox


📌 Summary


실시간 음성 채팅과 친구 관리 기능이 탑재된 게임 팀원 매칭 서비스

🖥 Tech Stack


Spring Boot, WebSocket, React, AWS, Mysql

Why


음성 채팅이 없는 게임에서도 팀원들과 소통할 수 있는 환경을 제공하며,


디스코드와 같은 실시간 데이터 통신 시스템을 직접 설계하고 구현해보고자


개발하게 되었습니다.



Project Contributions


-방 입장 동시성 제어


Redis의 INCR 명령어를 활용하여 실시간 입장 인원 관리와 초과 입장 방지


Redis-based 분산 락으로 데이터 경쟁 상태 해결 및 안정적인 처리


 

- Role 검증


Authorization 헤더에서 추출한 토큰으로 사용자의 권한 확인


 

- 에러코드 자동화 처리 : 클라이언트에게는 명확한 에러 원인을 전달하고, 개


발자에게는 상세한 디버깅 정보를 제공하는 체계 구축.


이를 통해 서비스 안정성 높이고, 문제 발생 시 신속한 원인 파악 가능.


- 프로젝트 관리 : 프로젝트 팀장으로서 프로젝트 일정 및 티켓 관리를 수행


팀의 작업 진행 상황을 체계적으로 추적하며 효율적인 협업 지원


 

💡Insights


동시성 제어와 분산 락에 대한 이해


프로젝트 관리 팀장으로서 효율적 협업과 일정 관리의 중요성 체감


에러코드 자동화를 통한 서비스 안정성 강화 경험

첨부파일

  • 담당부서
    소프트웨어 중심대학
  • 전화번호
    02-3399-3633
최종수정일 : 2024년 02월 26일