Search
✏️

포트폴리오 (2023.03.21)

1. K-Lab

제작 기간

2022.12 ~ 2023.01

활동 및 기여

LX International과 진행한 외주 프로젝트입니다. 인도네시아에서 사용할 환자 검사 관리 및 검사 현황 확인 플랫폼을 만들었으며, 이 과정에서 CIS라는 SaaS 업체와 협업을 진행했습니다. 웹과 어플리케이션 모두 배포되어 있으며, 플레이스토어 및 앱스토어에서 확인할 수 있습니다.
데이터베이스 스키마 설계 및 ERD 문서화
GraphQL API 설계 및 문서화
백엔드 개발팀 리드
백엔드 기능 개발 및 배포 담당
Twilio SMS, WhatsApp Messaging, Ottopay Payment와 같은 SaaS 분석 및 연동

이용 기술 스택

Spring, Spring Boot, Spring Data, JPA, QueryDSL, GraphQL, PostgreSQL, AWS EC2, AWS S3, Docker, Docker Compose

2. Dr.Haru

제작 기간

2022.07~2022.08

활동 및 기여

초록테크와 진행한 외주 프로젝트입니다. 반려 동물의 증상을 AI 이미지 및 챗봇으로 진단할 수 있는 플랫폼을 만들었으며, 이 과정에서 숙명여대 AI 개발팀과 협업을 진행했습니다. 배포된 어플리케이션은 플레이스토어 및 앱스토어에서 확인할 수 있습니다.
데이터베이스 스키마 설계 및 ERD 문서화
Restful API 설계 및 Swagger 문서화
백엔드 기능 개발 및 배포 담당
AI 개발팀에서 필요한 Web Hook API 설계

이용 기술 스택

Golang, Gin-Gonic, MySQL, AWS EC2, AWS S3, AWS RDS, Docker, Docker Compose

3. Oopy Tech Blog

제작 기간

2020.10 ~ Ongoing

활동 및 기여

제가 필요할 때 찾아볼 수 있도록 작성해두던 글에서, 동료를 위한 글쓰기를 지향하면서 시작한 블로그입니다. 단순히 '무엇'을 '어떻게'와 같은 정보 제공 보다는 어떤 작업을 수행할 때 '왜'를 찾아나가길 바라는 마음으로 작성했습니다. 특히 대화 뿐만 아니라 글도 커뮤니케이션의 일부이기 때문에, 알아보기 쉽고 정확하게 기술하는 것을 목표로 작업했습니다.

4. 42 Reference

제작 기간

2020.12 ~ 2022.09

활동 및 기여

42 Seoul 대외 활동을 진행하면서, 동료들의 학습을 돕기 위해 참고서를 작성
블로그로 정보를 제공하면서 서울 캠퍼스와 글로벌 캠퍼스의 많은 동료들의 학습에 기여
PBL (Project Base Learning) 진행 시 요구되는 컴퓨터 사이언스 및 Unix의 내용을 정리 및 제공

5. Piscine Golang

제작 기간

2021.10.25 ~ 2021.11.07

활동 및 기여

Piscine은 프랑스어로 수영장을 뜻합니다. 수영장에 빠져서 헤엄을 마구 쳐보면서 수영을 배운다는 의미를 확장하여, 아주 몰입하여 학습하는 경험을 의미합니다. 42에 입학하기 위해 Cadet (학우)들은 C 언어를 주제로 Piscine을 적어도 한 번 거치게 됩니다. 42 내에서 진행된 Piscine 제작 해커톤에서, Cadet들 중 Golang을 배우고 싶은 사람들을 위해 Piscine을 만들어 Golang을 보다 쉽고 재밌게 배울 수 있도록 구성해보았습니다.
Day00 (기본 문법, Package 관리, 테스트 코드 작성 방법, 내장 패키지 이용) 문제 구성
Day05 (Map, API, HTTP) 문제 구성
Day00 및 Day05 테스트 코드 작성
7일 간의 Piscine 기간에서 사용되는 자료들의 모든 문서화
쿠버네티스 구성 설계 및 도커 파일 작성

이용 기술 스택

Go (Gorilla), discord-go, Kubernetes, Docker, Git, GitHub, mongoDB, Google Drive, Notion

발표 자료

발표 영상 (05:00:08 Go? Ahead! min-jo yongckim jseo)

후기

6. Thread Pool

제작 기간

학습 : 2020.06.07 ~ 2020.07.08
구현 : 2020.07.09 ~ 2020.07.21

이용 기술 스택

C++

활동 및 기여

Node.js의 내부 동작 과정에서 처음으로 접한 쓰레드 풀을 이해하기 위해 직접 구현해보았습니다. 쓰레드들을 미리 생성해두어 유지하고, 실행하려는 함수를 미리 생성해둔 쓰레드에 전달하여 작업시키는 일련의 과정을 구현하기 위해서 C++을 학습하여 진행했습니다. 아래의 그림과 같이 임의의 task 함수를 만들어 이를 기존에 생성해둔 별도의 쓰레드에서 처리할 수 있도록 쓰레드 풀의 enque 함수를 이용하여 처리할 수 있습니다.
실행하려는 함수를 std::future 객체에 바로 연결 지을 수 있도록 std::packaged_task를 사용
인자가 담긴 함수를 std::packaged_task가 이용할 수 있도록 std::bind를 사용
std::bind로 함수를 묶어낼 때, 함수와 인자의 완벽한 전달이 가능하도록 std::forward 사용
std::packaged_taskDangling을 방지하기 위해 std::shared_ptr로 구성
임의의 함수와 임의 타입의 반환 값을 만들어 낼 수 있도록, 보편 참조파라미터 팩을 사용
쓰레드에게 할당된 작업이 없는 동안 Busy Waiting을 하지 않도록 std::condition_variablestd::unique_lock을 사용하여 Sleep 상태 지원