Projects

사용 기술
- 필터 초기화
- AWS EC2
- AWS ECS
- AWS S3
- Aurora MySQL
- C#
- C++
- Discord
- Django
- Docker
- Electron
- Express.js
- Google Cloud Platform
- Google Maps API
- GraphQL
- HTML
- JavaScript
- Jupyter Notebook
- Koa.js
- MariaDB
- MongoDB
- MySQL
- Nest.js
- Next.js
- Node.js
- PHP
- Python
- Qt
- RabbitMQ
- Steamworks
- Tensorflow
- Threading
- TypeScript
- Unity
- Unreal Engine
- npm
- socket.io
프로젝트 유형
- 필터 초기화
- Back-end
- Chatbot
- Crawler
- Etc
- Front-end
- Game
- Native Appliation
진행 상황
- 필터 초기화
- Canceled
- Done
- Failed
- Planning
FETCHING Admin
페칭 서비스 어드민
TypeScriptFront-end, Back-end
FETCHING Commerce
페칭 커머스 서비스
TypeScriptBack-end, Front-end

GSM 기숙사 관리 시스템
TypeScriptBack-end

Deliver Your Life, Eliverd. 모두를 위한 배달 서비스
PythonBack-end

2D 플랫포머 게임
C#Game

STARTERGATE IDENTITY: 통합 계정 서비스
JavaScriptBack-end, Front-end

디스코드 스팀 크롤링 봇
PythonChatbot
Basterds: Hair Naked
타워 디펜스 게임
PythonGame, Back-end

설치형 클라우드 드라이브 서비스
PHPBack-end, Front-end

간단한 메모 웹앱
PHPBack-end, Front-end

TypeScript로 다시 만드는 DoNote
TypeScriptBack-end, Front-end
FETCHING Crawler
페칭 크롤링 시스템
TypeScriptCrawler
FETCHING Data Processor
페칭 배치 데이터 프 로세서 모노레포
TypeScriptEtc
FETCHING Shared Util
페칭 프로젝트 공유 라이브러리
TypeScriptEtc

학교 축제 부스 간편 결제 시스템
TypeScriptBack-end, Front-end

영화 정보 크롤링 사이트
JavaScriptBack-end
Nyan ID
Oauth 2.0 계정 서비스
TypeScriptBack-end, Front-end
The Intersection
PC 플랫폼 게임 통합 런처
C++Native Appliation, Back-end

최대 동접자 1,800명을 기록한 마이스터고 웨비나 플랫폼
JavaScriptBack-end

트라우마 치료 게임
C#Native Appliation, Game
Glack
GitHub 챗봇
PythonChatbot
HakCam
학교 수업 스트리밍 서비스
JavaScriptBack-end
Nearby
주변 정보 검색 페이지
HTMLFront-end
Problert
위치 기반 민원 접수 시스템
JavaScriptBack-end
STARTERGATE.CDN
개인 프로젝트용 CDN
JavaScriptBack-end, Front-end
BKNG
학원 포인트 적립 시스템
PHPBack-end, Front-end
DEEPendency
스팀 창작마당 아이템 의존성 자동 설치기
TypeScriptEtc

디스코드 영화 정보 크롤링 봇
PythonChatbot
FaLD
일베 콘텐츠 검출 딥러닝 모델
PythonEtc
Untitled Blockchain Project
실버 택배 블록체인 보상 체계
PythonEtc
FETCHING Admin
페칭 서비스 어드민
TypeScriptNode.jsNext.jsNest.jsMySQLAurora MySQLAWS ECS
개요
페칭에 근무하며 개발한 어드민 시스템입니다. 이전 어드민부터 시작해서 현재 사용되고 있는 어드민을 새로 개발하는 것에도 참여했으며, 주로 백엔드 작업을 진행했고 프로젝트가 어느 정도 완성되고 난 뒤로는 프론트엔드 작업도 직접 진행했습니다.커머스 관리
사내에서 구현한 커머스에서 발생한 주문, 취소, 외부 PG사 연동과 같은 결제 시스템과 기획전, 이벤트과 같은 컨텐츠 시스템을 개발하고 운영했습니다. 최초 개발 시점부터 참여했으며 배포 파이프라인 구축과 같은 배포 과정에도 깊이 참여했습니다.상품 수집 시스템 관리
페칭에서 상품을 수집하는데 사용하는 크롤러, 피드 수집기의 실행 상황을 모니터링하고 크롤링 대상 우선순위 조정 등의 통제를 어드민 상에서 비개발자도 할 수 있도록 하는 시스템을 백엔드와 프론트엔드를 모두 개발하고 운영했습니다. AWS API와 연동하거나, 로컬 서버와 통신하는 등의 과정을 통해서 높은 수준의 관리가 가능한 시스템으로 만들 수 있었습니다.권한 시스템
어드민에서 수행 가능한 행동을 기반으로 한 권한을 사용자에게 부여/박탈하고, 사용자에게 부여된 권한을 검사하는 시스템을 개발했습니다
GSM 기숙사 관리 시스템
TypeScriptNode.jsKoa.jsMariaDBAWS EC2

What is DOTORI?
DOTORI는 광주소프트웨어마이스터고등학교 기숙사 관리 및 교내 커뮤니티 역할를 위한 소 프트웨어이다. 노트북 예약, 기상음악 신청, 호실 변경 신청 층의 기능을 제공했다. 동아리 빈실의 프로젝트이다.
처음 해보는 것 투성이
DOTORI는 새롭게 시도해보는 것이 정말 많은 프로젝트였다. 유닛 테스트, 문서화, GitHub Action 등 여러 DevOps 들을 도입해봤고, redis, prettier같은 기술을 사용했다. 백엔드 5명, 프론트엔드 6명과 함께하는 프로젝트였고, 많은 협업 인원을 관리하기 위해 스프린트와 git flow를 사용했다. 비록 학교의 동아리 제도 변경으로 인해 프로젝트가 미완성으로 끝나긴 했지만, 지금까지 했던 프로젝트들 중에서 가장 많은걸 배운 프로젝트였다.Write and Go






Project Courtesy of 빈실

Eliverd
Deliver Your Life, Eliverd. 모두를 위한 배달 서비스
PythonDjangoMySQLDockerAWS EC2AWS S3














What is Eliverd?
Eliverd는 상점 관리 & 배달 서비스다. 상품 재고 관리, 온라인 몰 운영, 주문, 배달까지 모두 처리해준다.
온라인 판매나 배달 서비스를 모든 소상공 인이 사용할 수 있게 하는 것을 목표로 개발했다. 2020년 GSM 졸업 프로젝트였고, 장려상을 수상했다.
구상
Eliverd는 소상공인 드론 배달 서비스라는 아이디어로 시작했다. 2018년 E-Faucet 프로젝트를 마치고 다른 대회에서 해볼만한 아이디어를 구상하던 과정의 일환이었다. 구상을 계속 할수록 규모가 계속 커져갔고, 다른 중요한 프로젝트들도 있었기에 다른 사람과 같이 팀 프로젝트로 진행하기로 구상했다.처음 해보는 규모
Eliverd는 클라이언트 3개로 구성된 프로젝트다. 각 클라이언트는 개별의 기능을 가지고, API 서버는 하나를 사용한다. 또 기능도 재고 관리, 쇼핑몰, 추천, 주문, 결제, 배송 등을 모두 다뤄야했기에 규모가 크고 복잡해졌다. 이를 잘 해결하기 위해서 무엇이 필수적인지, 무엇을 먼저 해야하는지, 무엇을 없앨수 있는지를 생각했다. 기능이 추가로 생기거나 다른 엔드포인트가 필요해지더라도 기존 리소스를 사용할수 있도록 구상했다. 또한 문서화를 통해서 소통이 늦어지는 문제를 방지할 수 있었다. 이를 통해 프로젝트를 시작할 때 구상했던 기능을 거의 대부분 구현할 수 있었다.실무적 설계
Eliverd는 졸업 팀 프로젝트로 진행하는 거 였지만 시스템 설계나 기능은 실제 서비스를 목적으로 만들었다. 물론 실무의 수준에는 미치지 못하지만 컨테이너화나 문서화, 그리고 확장성을 어느 정도 고려해서 설계했다. 데이터베이스는 각 상점마다 주문을 따로 전달해주는 비즈니스 로직에 맞춰서 설계되었으며, 카카오페이와 연동하여 실제 사용자의 경험에 가깝게 구현할 수 있도록 노력했다.'그' 바이러스
원래라면 학교에서 만나서 회의하며 진행했어야 하는 프로젝트였지만, 코로나 19 때문에 온라인으로만 협업을 진행해야 했다. 회의와 의사 소통은 Discord로 진행하고, 코드 협업은 GitHub Issue를 활용했다. 이 때 온라인으로 많은 부분을 정해둘 수 있었기에 등교 개학 후에도 빠르게 개발할 수 있었다.Project Courtesy of Tiny Beluga

SID
STARTERGATE IDENTITY: 통합 계정 서비스
JavaScriptNode.jsExpress.jsMySQLAWS EC2
Basterds: Hair Naked
타워 디펜스 게임
PythonTypeScriptC++Node.jsDjangoKoa.jsUnreal EngineMySQLAWS EC2

Cloudy
설치형 클라우드 드라이브 서비스
PHPAWS EC2
What is DoNote V?
DoNote V는 PHP로 만들어진 메모 웹 앱, DoNote를 React와 Koa.js로 새롭게 리팩토링하는 프로젝트이다. 데이터베이스는 기존의 모델을 그대로 사용하고 있다. 기존 기능을 모두 계승하고, 새롭게 개발된 React 코드를 바탕으로 데스크탑 앱도 만든다.레거시와 함께하는 프로젝트
이 프로젝트는 기존의 데이터베이스를 유지하고, PHP로 구현됐던 프론트와 백엔드를 다시 구현하는걸 목표로 하고 있다. 기존의 DoNote의 데이터베이스 모델은 내가 코딩을 막 시작했을 때 만든거라서 굉장히 특이하고 이상한 구조로 되어 있는데, 각 유저마다 테이블을 하나씩 만들어 준다. ORM을 사용할 수 있는 상황에서는 굉장히 좋지 않은데, 데이터베이스를 자동으로 관리하기 어려워진다는 것이다. 때문에 장기적으로 데이터베이스 구조를 변경할 계획을 세우고, DB Sync는 유저가 로그인 할때마다 유저에 관련된 테이블에 수행하기로 했다.TypeScript로 넘어가기
이 프로젝트는 학교 프로젝트나 협업 프로젝트들 때문에 미뤄서 진행했는데, 그 사이 내가 사용하는 언어들도 좀 바뀌었다. TypeScript를 사용하게 되었는데, 한 번 사용해보니까 다시 돌아가지 못할 만큼 편했다. 벡엔드가 다 완성되고 프론트가 개발 준비 중인 상태에서 이렇게 되어서 백엔드를 TypeScript로 변경하기로 했다. 변경 작업은 쉬운 편이었는데, 유일하게 Sequelize.js 로 짜여진 데이터베이스 모델이 바꾸는데 시간이 제일 오래 걸렸다. Sequelize를 TypeScript에서 사용하기 위해서는 모델 생성 코드와 함께 Static Type과 Interface를 생성해줘야 하는데, 이를 전부 수작업으로 해줘야해서 실수도 많이 있었고, 시간도 많이 걸렸다. 다음부터는 TypeORM을 사용하는게 더 적합할 것 같다는 결론에 도달했다.
GSM Pay
학교 축제 부스 간편 결제 시스템
TypeScriptNode.jsKoa.jsMySQLGraphQLAWS EC2

영화 정보 크롤링 사이트
JavaScriptNode.jsExpress.jsMySQLAWS EC2
What is HIVE?
HIVE는 영화 정보 통합 조회 서비스이다. 네이버, 왓차피디아, IMDB, 로튼토마토의 평점을 보여주고, 넷플릭스와 왓챠에서 시청할 수 있는지 알려준다.Promise Hell
서비스 특성 상 수많은 웹 크롤링에 의존해야 했었는데, 이 과정 자체가 시간이 굉장히 많이 걸리는 일이었다. 특히나 한글 제목으로 영어 제목도 찾아서 같이 조회했어야 하는데, 이 때문에 실행 순서가 정해지게 되었다. 이를 효율적이고 좀 더 빠르게 해결하기 위해서 수많은 Promise를 사용한다. 프로젝트를 진행하며 JavaScript Promise, async/await에 대해 더 자세히 알 수 있었다.
Webinar
최대 동접자 1,800명을 기록한 마이스터고 웨비나 플랫폼
JavaScriptNode.jsExpress.jsMariaDBsocket.io

Don't Afraid
트라우마 치료 게임
C#JavaScriptNode.jsUnityElectron
HakCam
학교 수업 스트리밍 서비스
JavaScriptNode.jsExpress.js
Problert
위치 기반 민원 접수 시스템
JavaScriptNode.jsExpress.jsMongoDBAWS EC2
STARTERGATE.CDN
개인 프로젝트용 CDN
JavaScriptNode.jsExpress.jsGoogle Cloud Platform
FaLD
일베 콘텐츠 검출 딥러닝 모델
PythonTensorflowJupyter Notebook
Untitled Blockchain Project
실버 택배 블록체인 보상 체계
PythonJavaScriptNode.js



























