Portfolio | 손가현(Gahyun Son)
Phone : 010-9844-1106
E-mail : gahyun.son6@gmail.com
GitHub : https://github.com/gahyunson
ABOUT ME
“적극적인 의사소통으로 협업하며 프로젝트를 원활하게 진행합니다”
- 줌 회의와 SNS를 적극적으로 활용하여 작업 중 알게 된 지식이나 실험 현황을 공유하였습니다. 이를 통해 다른 팀원이 더 나은 파라미터 값을 시도하는데 기여하고, 활발한 회의로 프로젝트의 올바른 방향성을 정립하며 진행할 수 있었습니다.
- 팀장 역할을 맡았을 때 모든 팀원들의 참여도를 높이기 위해 노력했습니다. 주제 선정 단계에서 노션을 활용하여 각자의 의견을 기록, 공유할 수 있도록하였습니다. 팀원 전체의 참여와 협력, 자신의 아이디어를 주장할 수 있는 환경을 중요시하였습니다. 해당 프로젝트 완료 후 다음 프로젝트에서 팀장으로 추천받은 경험이 있습니다.
"효율적인 협업과 안정적인 코드를 위해 GitHub 활용방법을 고민합니다”
- GitHub 사용의 안전성과 효율성을 높이기 위해 Git-flow 방식을 참고하여 개발 단계와 배포 단계를 분리하는 등의 기법을 사용했습니다.
- 개발용 브랜치와 배포용 브랜치를 각각 사용하여 버전 관리를 진행했습니다. 이로써 코드의 안정성을 확보하고 사용자에게 안정적인 버전을 제공하도록 구상했습니다.
- 협업시 각 팀원의 이름으로 된 브랜치를 생성하여 작업을 분산하고, 가장 적합한 내용을 main 브랜치에 merge하는 방식으로 진행했습니다. 그 결과 효율적인 작업 분산과 코드 안정성을 가질 수 있었습니다.
“프로젝트에 적합한 기술과 도구를 선택합니다”
- 작업을 진행하며 초기 설계 당시 선택했던 기술보다 더 적합한 기술이 고려되어 적합성 비교, 분석 후 변경을 한 경험이 있습니다. 기술 선택 시 고려해야하는 점을 배우고 초기 설계 단계에서 어떻게 적용할 수 있을지 고민하는 경험을 쌓을 수 있었습니다.
- 챗봇 웹 사이트에서 정형 데이터인 날짜 데이터도 수집했습니다. 그래서 MySQL을 선택하여 데이터베이스를 구축했습니다. 그러나 이후 비정형 데이터인 채팅 내용이 주요한 데이터이기 때문에 NoSQL 데이터베이스로 관리하는 것이 더 적합하다고 판단하여 MongoDB로 데이터베이스를 변경, 재구축하였습니다.
- API key 및 환경설정 관리를 config.js 파일로 선택했습니다. 작업을 진행하며 보안성과 확장성을 고려하여 dotenv로 변경, 재구축 하였습니다.
PROJECT
재활냥이의 상담소 (2023.05) | GitHub Repository
주제 선정 : 밤에 갑자기 불편함을 느끼는 경우, 언제 어디서든 부담없이 질문을 할 수 있는 건강 서비스를 제공합니다
Stack : Node.js, Express, MySQL, GPT API, Cloudflare
✔️ 역할
JSON형식의 요청을 파싱하는 Express 미들웨어 구현
POSTmethod 라우팅 핸들러로 request와 response를 처리하는 로직 구현
- Cludflare를 이용해 생성한 도메인을 CORS 미들웨어 설정하여 보안 관리
- API 값의 보안을 위해
dotenv로 환경 변수를 관리
- 상담 GPT API 프롬포트에 사용할 데이터로 채팅내용을 MongoDB로 수집
- GPT API를 이용한 응답 시스템 구현
- 웹 환경을 비롯한 모든 디바이스에 최적화된 반응형 UI 구축
✔️성과
- MySQL에서 MongoDB로의 설계를 변경하여 초기 설계에서 데이터베이스 선택 시 고려사항 숙지
- MySQL 데이터베이스를 연결하고 질문, 답변, 시간 정보를 수집하는 로직 구현
- 사용시간 데이터를 수집하여 24시간 재활상담의 필요성을 데이터로 분석할 수 있을 것으로 기대
난 너가 뭘 먹어야할지 알고있다 (2021.12) | GitHub Repository
주제선정 : 사진속 음식 이름, 칼로리, 나트륨 정보를 제공하고 다음 끼니 식사메뉴를 추천합니다
Stack: Python , TensorFlow , PyTorch , Google Colab(GPU 사용) , ngrok, Slack
✔️ 역할
- 차후 데이터를 추가하여 전이학습하기 위한 데이터 전처리, 전이학습, 예측 결과 파이프라인 자동화 구축
ngrok을 이용한 API 주소 배포하여 서비스 구현
- 실험한 모델의 구조와 성능 결과 및 서비스 내용을 문서화하고 발표 진행
- 이미지 데이터 라벨링과 영양소 데이터 일치화 작업
- TensorFlow를 이용한 CNN 정확도 50%에서 활성화 함수 ReLU와 max pooling Layer 추가하여 정확도 87%로 향상된 CNN 모델 설계
- Pytorch 이용한 Resnet34 전이학습으로 정확도 100%로 향상된 모델 설계
✔️성과
- Zoom, Slack을 이용한 활발한 의견 공유하며 팀원들의 참여도를 높이는 방법을 탐구함
- 모델 생성 후 서비스 제공을 위한 배포의 중요성 숙지
RSNA Breast Cancer Detection (2023.02)
주제: 의료 이미지와 메타 데이터를 이용한 유방암 유무 분류 모델링
Stack: Python , TensorFlow , Google Colab, Kaggle Notebook(GPU 사용)
✔️역할과 성과
- VGG16 모델 논문 리딩, 코드(Sequential API, Subclassing API) 구현, GitHub Respository
- 작업자의 환경(GPU 사용이 어려움)과 데이터 EDA(Link)에서 확인한 양성과 음성 데이터가 50배 이상 데이터 개수 차이의 제약상황을 클래스별 같은 개수의 데이터 샘플링으로 극복하고자 함
RSNA Cervical Fracture Detection (2022.09)
주제선정: 척추 골절 이미지를 이용한 Detection 시도
Stack: Python , TensorFlow , Google Colab, Kaggle Notebook(GPU 사용)
✔️역할과 성과
- Cervical DICOM EDA(Link)으로 Detection을 위해 사용할 수 있는 Bounding Box 외의 데이터를 확인. 해당 글은 4개의 투표를 받아 다른 이용자들에게도 유용한 정보를 공유한 성과를 얻음
- YOLO 모델 논문 리딩, 코드(Sequential API, Functional API) 구현
[2022년 인공지능 경진대회] 스마트카 음성인식 고도화 (2022.06) | GitHub Repository
Stack: Python , TensorFlow , PyTorch , Google Colab(GPU 사용)
✔️역할과 성과
- Zoom, Colab, SNS를 이용한 적극적인 진행사항 공유로 프로젝트의 명확한 방향성 설정과 효율적인 작업 수행
- 논문을 기반으로 주파수 영역을 20~40ms 단위로 설정
- 시각화 분석을 기반으로 특징 추출방법은 mel spectrogram 지정하여 loss값 감소 관찰
- 6등을 기록하며, loss 값을 0.06으로 달성하는 성과를 이끌어냄