미리보기
기본 정보
문제를 발견하고 문제를 분석하고, 더 나은 해결 방법을 찾기를 즐기고, 새로운 기술에 대한 적응력과 빠른 학습 능력을 보유한 솔루션 아키텍트입니다. 최신 기술을 지속적으로 배우고 이를 프로젝트에 적용하는 데 열정을 가지고 있습니다. 효과적인 커뮤니케이션 능력과 외국어 능력을 바탕으로 새로운 기술을 사람들에게 소개하고 도입하는 데 능숙합니다. 또한 클라우드 서비스에 높은 관심을 갖고 있으며, 해당 분야의 전문성을 확장하고 배우는 데 열정적입니다. 솔루션 아키텍트로서 고객이 인프라와 애플리케이션을 구축하도록 지원하고, 항상 클라우드 컴퓨팅에 대한 지식을 심화하며 비즈니스 통찰력을 강화하고자 합니다.
기술 스택
C, C++, Python, Java, aws-ec2, aws-s3, aws-rds, aws-lambda, aws-elb
프로젝트
Picsure! (안전한 사진교환 플랫폼)
성균관대학교
2023.09. ~ 2023.12.
역할: 백엔드 팀 (DBA), 인프라 전체 구축 담당
기술스택: Python, Flask, react, YOLO, MySQL, AWS(EC2, S3)
목표: 소개팅 앱 등과 연계해 사용할 수 있는 안전한 사진 교환 플랫폼 개발
진행과정: 많은 대학생 커뮤니티, 소개팅 앱 등에서 남녀간의 사진교환을 통해 새로운 인연을 찾는 경우가 빈번한데 이때 상대의 사진만 받고 본인의 사진은 제공하지 않고 사라지는 일들이 꽤 발생하는 것으로 나타난다. 이를 해결하기 위해 중고거래 플랫폼의 방식을 참고해 안전하게 사진을 교환할 수 있는 플랫폼을 개발하기로 결정했다. 사용자가 웹사이트에서 랜덤으로 생성되는 url 주소를 받고, 두 명의 사용자가 각각 해당 url을 통해 서버에 접속할 수 있도록 한다. 이후 각 사용자에게 교환하려는 사진 3장씩을 입력받고, AWS EC2 인스턴스 서버에서는 YOLO 모델을 통해 해당 사진들이 사람 사진이 맞는지 진위여부를 판단하고 정상으로 판별된 사진들을 AWS S3 버킷에 업로드한다. 그 후 DB에서 user id와 photo id를 가져와 그에 맞는 image_url을 갖는 이미지들을 S3 버킷에서 가져와 상대에게 전달하도록 했다. 이때 S3에 저장되는 이미지들도 암호화를 통해 안전하고 저장되고 교환될 수 있도록 했다. 최종적으로 사진 교환이 완료된 후 서로에 대해 더 알아가고 싶은지 여부를 입력받은 후 둘 다 긍정적인 응답을 한 경우 새로운 채팅방 링크가 생성되도록 하고 둘 사이의 연락을 계속 할 수 있게 했다.
성과: 프로젝트 진행 전 학교 학생들을 대상으로 한 설문조사에서 지금까지의 사진교환이 안전하지 않고 불안하다는 의견이 약 68%로 나타났는데, 해당 서비스를 개발한 이후 설명과 함께 이 서비스가 안전한 사진교환에 도움이 되는지 불안함 없이 이용할 수 있는지에 대한 설문조사에서 긍정적 응답이 약 65%로 큰 인식의 변화를 이끌어냈다. 또한 서비스를 테스트 배포한 후 사용자들을 대상으로 한 설문조사에서는 해당 서비스가 만족스럽고 안전한 사진교환을 할 수 있게 해준다는 긍정응답이 약 81%로 매우 높게 나타나는 등 유저 대상 피드백에서 매우 큰 성과를 이루었다.
느낀점: 이 프로젝트를 진행하면서 실제 사람들이 불편함을 느끼고, 개선의 필요성을 느끼는 문제들에 대해 불편함을 해소시켜줄 수 있는 주제를 선정하고 프로젝트를 진행하는 것에 대해 큰 보람을 느꼈다. 프로젝트 초반에 프론트엔드 팀과의 일정조율, 기간 설정에 있어서 갈등이 있었고 프로젝트가 순조롭게 진행되지 않았지만, 계속해서 끊임없는 소통과 중재를 통해 결과적으로 팀워크를 이끌어내고 성공적으로 프로젝트를 끝마치게 된 것 같아 매우 뿌듯했다. 이 경험을 통해 팀 프로젝트에 대한 이해도를 높일 수 있었고, 개인적으로 많은 성장을 이룬 것 같아서 좋았다.
HanCOOK (음식, 식당 추천 AI 모델)
성균관대학교
2024.03. ~ 2024.05.
역할: 모델 구현, 데이터셋 전처리
기술스택: Python, Jupyter Notebook, SVD
목표: 음식, 식당을 추천해주는 AI 모델로 사용자가 쉽게 식당을 찾을 수 있도록 도와준다. 사용자의 선호도와 성격, 기록에 따라 개인화된 식당 추천을 함으로써 사용자의 경험 향상과 참여 증가를 유도한다.
진행과정: 먼저 초기 시도에서는 유저의 개인정보와 다양한 레스토랑 장르에 대한 선호도를 나타낸 데이터셋을 이용하고 모델로는 128개 노드의 input layer와 각각 64개, 32개 노드의 hidden layer를 갖는 sequential model을 이용했다. 또한 모델은 categorical_crossentropy loss function을 사용하고 adam optimizer를 0.001의 learning rate으로 사용했다. 그리고 accuracy를 평가 기준으로 했다. 최종 시도에서는 Kaggle에서 좀 더 광범위하고 잘 구성된 dataset을 구하고 feature engineering을 했다. 그리고 SVD(Singular Value Decomposition)를 활용하여 데이터셋으로 부터 식당 추천을 생성하도록 했다. Content-based filtering과 SVD를 결합하여 Feature Extraction, Vectorization, Recommendation 과정을 거쳐 결과가 나온다. 마지막으로 cross validation을 진행하며 hyperparameter tuning을 했다.
성과: 첫번째 시도였던 sequential model은 평가 기준으로 삼은 accuracy가 baseline model들 보다도 낮게 나왔다. 그 후 SVD, 그리고 Content-based와 SVD를 결합한 Hybrid 모델은 fine tuning을 거친 후 둘다 RMSE가 각각 0.012, 0.0062 향상되었고, MAE 또한 각각 0.005, 0.0094 향상되었다. 또한 SVD와 Hybrid의 비교에서는 RMSE와 MAE에 추가로 Precision, Recall, F1 Score를 확인한 결과 Hybrid 모델이 Precision 0.12, Recall 0.95, F1 Score 0.68만큼 개선을 보였다.
느낀점: AI 모델을 활용한 프로젝트를 처음 경험해봤는데 주제에 맞는 적절한 데이터셋과 모델을 잘 활용하게 된다면 할 수 있는 것이 매우 많다는 것을 깨달았다. 또한 데이터셋의 전처리와 feature engineering을 담당하며 해당 과정의 중요성을 알게되었다. 마지막으로 AI 모델 관련해서 여러 평가 기준들을 향상시키고 개선시키기 위해서 계속해서 노력하는 과정이 정말 귀찮지만 필수적인 과정이라는 것을 배웠다.
AI 야구 중계 자막생성 프로그램
K-software bootcamp
2024.06. ~ 2024.08.
역할: 백엔드 리더 (백엔드 API 개발), 인프라 전체 구축 담당
기술스택: Python, FastAPI, react, ngrok, YOLO, AWS(EC2, ALB, DynamoDB)
목표: 야구 중계 영상을 링크로 입력받고 AI를 이용하여 해당 영상을 실시간으로 분석하고 상황에 맞는 중계 자막을 생성해 영상과 함께 출력해주는 웹사이트 개발
진행과정: 야구 중계 영상의 링크를 입력받아 영상을 프레임단위로 추출해서 프레임들에 대해서 Image Captioning model을 통해 생성한 캡션과 YOLO 모델을 통해 아웃카운트, 볼카운트, 베이스 상황, 화면에 잡힌 선수 등의 중계화면 정보를 프롬프트 엔지니어링을 한 gpt모델에게 전달해서 실제 야구 중계와 유사한 자막을 생성해서 영상과 함께 출력했다. 백엔드에서 FastAPI 프레임워크를 사용하여 구현했다. 인프라 구축에서는 여러 무거운 모델들을 이용해야 했기에 분석 서버로 사용하는 gpu EC2 인스턴스 2개와 중개 서버로 사용하는 EC2 인스턴스 2개를 생성하고 로드밸런서를 통해 트래픽을 나눠 실시간 분석과 자막생성이 끊기지 않도록 구현했다. 또한 다음 프레임에 전달해줘야 하는 중계화면 정보와 변수 등을 NoSQL 형식의 DynamoDB를 이용하여 빠르게 저장하고 불러올 수 있도록 구현했다.
성과: Image Captioning model을 통해 생성된 캡션의 평균 BLEU score가 약 0.73으로 매우 높았고, 중계화면에 대한 자막의 정확도가 상당히 높았다.
느낀점: 백엔드 리더로서 계속해서 프론트엔드 팀과 팀원들과의 소통을 주도하는 것에 상당한 부담감이 있었지만 잘 해낸 것 같아 뿌듯하고, 인프라 구축과정에서 실시간 서비스의 레이턴시를 줄이기 위해 로드밸런서를 활용하여 분석 서버를 구성한 것이 큰 성능개선으로 이어져서 그동안 클라우드를 열심히 공부한 것에 보람을 느꼈다. 프로젝트 초기에 프론트엔드 팀과의 소통오류로 API 구현에 차질이 있었지만 추후 회의를 통해 잘 해결할 수 있었다. 이 과정을 통해 앞으로는 초기부터 소통을 확실히 하고 팀들간의 협의를 통해 전체적인 프로젝트 계획을 체계적으로 세워나가며 진행해야겠다고 다짐했다.
교육
성균관대학교
대학교(학사) | 소프트웨어학과
2018.03. ~ 현재 | 재학 중
대외활동
K-Softvation showcase
K-Software bootcamp (과학기술정보통신부, 정보통신기획평가원(IITP))
K-Softvation showcase 우수상 수상
외국어
영어
비즈니스 회화 가능