Search
✏️

포트폴리오 (2021.11.29)

1. Oopy Blog

제작 기간

2020.10 ~ Ongoing

활동 및 기여

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

2. 42 Reference

제작 기간

2020.12 ~ Ongoing

활동 및 기여

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

3. 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)

후기

4. 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 상태 지원

5. Planner Z

제작 기간

2020.07.23 ~ 2020.09.03

이용 기술 스택

Flutter, Node.js (Express.js), MySQL (ORM), JWT

활동 및 기여

시간표 및 일정 관리를 위한 어플리케이션 개발을 기획 및 디자인을 담당해준 팀원과 함께 진행했습니다. 추가적으로 집중 시간 측정도 가능하도록 만들어 일상 생활에서 직접 이용하는 것을 목표로 프로젝트를 진행했습니다.
iOS, Android 두 플랫폼을 목표로 진행
어플리케이션 및 백엔드 개발 진행
프로필 설정 및 수정 기능
다이어리 작성 기능
하루 집중 시간 측정 스톱워치 기능
고정 일정 작성 기능 및 불러오기 기능
일정 블록 색상 변경 기능
로컬 로그인 및 소셜 로그인 지원