Projects

Projects

Now Serving

My.solved
My.solved
2022-11 ~

보다 편한 PS/CP를 위한 앱. 대회 일정과 알림을 곁들인.


보다 편리한 PS/CP를 위한 앱입니다.
solved.ac 프로필 정보를 앱에서 확인할 수 있습니다.
대회 일정을 불러오고, 푸시 알림 및 캘린더 등록 기능을 지원합니다.

개발 동기

solved.ac의 문제 풀이 스트릭을 유지하기 위해, 매일같이 프로필을 확인한 경험이 있습니다.
해당 정보를 앱에서 한눈에 보고 스트릭 알림을 받을 수 있으면 좋겠다는 생각에서 시작했습니다.

주요 기능

  • solved.ac 프로필 확인
  • 문제 검색 기능
  • 정시 스트릭 알림
  • 대회 일정 확인 및 푸시 알림, 캘린더 등록
  • 크로스 플랫폼 지원 (iOS, Android, Web)

사용 기술

  • Flutter

맡은 역할

  • Flutter 앱 개발
    • solved.ac API 리버스 엔지니어링
  • NestJS 서버 개발
    • 대회 이벤트 파싱 및 객체 모델링
  • 안드로이드 및 웹 버전 배포

겪은 어려움

  • 내부용 solved.ac API의 스펙 파악 및 변경시 대응
  • 로컬 시간대/푸시 알림 설정 등 플랫폼별 차이 처리
  • 로그인 기능 구현
    • solved.ac에서는 쿠키를 통해 인증함
    • HttpOnly, Secure 옵션이 있어 JS로는 접근 불가
    • Flutter WebView 등으로 시도해보았으나, 접근 불가

배운 점

  • Flutter에서의 상태 관리와 아키텍처 구성
  • API 반환 결과로부터의 데이터 모델링 및 변환
  • 크로스 플랫폼 앱 배포 및 디버깅 경험

관련 링크


Brewing

Poké Bowl
Poké Bowl
2025-03 ~

포켓몬 생활을 도울 유틸 서비스


poke

Lorem ipsum dolor sit amet, modulus et exponentiation consectetur. Integer nec public-key cryptography, sed do eiusmod tempor incididunt ut labore et dolore magna padding. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea asymmetric encryption commodo.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Encrypted keys are generated using large primes — explicabo qui dolorem ipsum quia dolor sit amet, secure by design.

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium private keys corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident. Similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.

Et harum quidem rerum facilis est et distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod mod n maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae.

bibimbap
bibimbap
2024-07 ~

알고리즘 문제 검수 시스템


기존 알고리즘 문제 검수 플랫폼을 개선하기 위해 개발 중인 프로젝트입니다.
문제 검수 및 관리 기능을 제공하며, 보안성과 사용성을 동시에 고려한 새로운 시스템을 목표로 개발 중입니다.

개발 동기

문제 검수 과정에서의 사용자 경험에 대한 불만에서 출발했습니다. 기존 플랫폼의 느린 응답 시간과 제한된 기능, 수시로 터지는 서버를 대체하고자 프로젝트를 시작했습니다.

주요 기능

  • 웹 기반 문제 관리/검수 기능
  • 문제별 샘플 코드 제출 및 테스트
  • 보안 강화를 위한 샌드박스 환경에서의 소스코드 실행
  • 실시간 문제 상태 관리

사용 기술

  • Rust
  • PostgreSQL
  • 샌드박스 환경

맡은 역할

  • Rust API 서버 개발
  • 문제 채점 로직 설계
  • 보안 강화를 위한 샌드박스 컨테이너 아키텍처 설계

관련 링크

Code Poker
Code Poker
2024-01 ~

교내 보드게임 벌점 관리 시스템


보드 게임을 진행하면서 잃은 점수만큼 알고리즘 문제를 해결하는 모임을 주도하였습니다. 겨울방학 동안 교내 알고리즘 소모임 활동의 일환으로 운영되었으며, 게임 형식을 빌려 PS 학습을 재미있게 할 수 있도록 구성하였습니다.

개발 동기

단순히 문제만 푸는 것에서 벗어나, 소모임의 참여도와 재미를 높일 수 있는 방식이 필요했습니다. 보드게임 요소를 더해 참여자들의 몰입도를 높이고, 문제 풀이를 자연스럽게 유도할 수 있는 시스템을 만들고자 했습니다.

주요 기능

  • 알고리즘 문제 풀이 데이터 자동 수집
  • 참여자별 점수 계산 및 랭킹 표시
  • Redis 기반 캐싱으로 실시간 점수 반영

사용 기술

  • NestJS
  • Redis

맡은 역할

  • NestJS API 서버 개발
    • 문제 풀이 현황 수집 및 점수 계산 로직 개발
    • Redis를 활용한 점수 캐싱 및 상태 관리

겪은 어려움

  • BOJ에서 문제 풀이 데이터를 수집하는 오버헤드를 줄여야 했습니다.
  • 점수 계산 로직을 참여자의 활동에 따라 실시간 반영하는 데 캐시 갱신 전략이 중요했습니다.

배운 점

  • 단순한 학습 활동도 재미 요소를 더하면 참여도가 크게 오를 수 있다는 점
  • 실시간 데이터를 처리하는 캐시 구조 설계와 성능 개선 방법

관련 링크


Out of Stock

sumtime
sumtime
2024-04 ~ 2024-06

모임 통장 회계 관리 서비스


모임통장의 거래 내역과 회원 명단을 비교하여 회비 납부 여부를 시각화해주는 웹 애플리케이션입니다. 다양한 형식의 엑셀 파일을 업로드하면, 회원별 회비 납부 여부를 자동으로 판별하고 시각적으로 표시합니다.

개발 동기

엑셀로 회비 납부 내역을 수작업으로 확인하는 과정에서 개인정보가 노출되거나 실수가 발생하는 경우가 많았습니다. 이를 보다 정확하고 효율적으로 자동화할 수 없을까 하는 고민에서 출발했습니다.

주요 기능

  • 회원 명단 및 거래 내역 엑셀 업로드
    • 자동 비교 및 납부 여부 분석
    • 시각화된 회비 현황 확인
  • 이벤트별 회비 관리 기능
  • kakao OAuth 기반 사용자 인증

사용 기술

  • NestJS
  • MongoDB

맡은 역할

  • NestJS 기반 API 서버 개발
    • 엑셀 파일 업로드 및 파싱
    • 사용자 인증 및 세션 관리
    • MongoDB 시계열 데이터 구조 설계 및 구현
  • OAuth 인증 및 사용자 토큰 발급

겪은 어려움

  • 다양한 형식의 엑셀 파일 처리
  • 시계열 데이터 구조를 고려한 저장 방식 설계

배운 점

  • 실사용 데이터를 기반으로 한 유연한 입력 처리 로직
  • 인증 및 세션 관리의 보안 고려

관련 링크

숏과외
숏과외
2023-05 ~ 2023-11

실시간 영상 과외 플랫폼


멘토와 멘티 간 실시간 화상 과외를 지원하는 플랫폼으로, 질문 생성부터 과외 시작, 수업 자료 공유까지의 전 과정을 관리할 수 있는 시스템입니다. 실시간 영상 통신과 강의자료 업로드 기능을 포함하여, 원격에서도 원활한 소통을 가능하게 합니다.

개발 동기

단순한 Q&A 게시판 형식의 멘토링은 실시간 상호작용이 어렵다는 한계를 느꼈고, 멘토링의 질을 높이기 위해 실시간 과외 형태의 플랫폼이 필요하다고 판단했습니다.

주요 기능

  • 실시간 화상 과외 세션 생성 및 참여
  • 멘티의 질문 등록 및 매칭
  • 수업 자료 업로드 및 공유
  • 과외 기록 확인 기능

사용 기술

  • NestJS

맡은 역할

  • 일정 조율 및 코드 리뷰 주도
  • NestJS 백엔드 서버 개발
    • 실시간 영상 채널 로직 구성
    • Kakao OAuth 연동
  • AWS 기반 인프라 구축 및 운영

겪은 어려움

  • 다중 인스턴스 환경에서 실시간 채널 정보 동기화 문제
  • Redis Pub/Sub을 활용한 안정적인 데이터 전달 구현

배운 점

  • 팀 리딩과 커뮤니케이션의 중요성
  • 분산 환경에서의 실시간 데이터 처리 방식
  • 클라우드 인프라 설계와 운영 실무 경험

관련 링크

DF CAT
DF CAT
2022-10 ~ 2023-02

디지털포렌식 관점에서의 정보 유출 대응 프레임워크


DF CAT은 정보 유출 대응을 위해 필요한 정보를 제공하는 플랫폼입니다.

자체 제작한 아티팩트 수집 툴을 제공, 수집한 아티팩트 데이터를 웹 플랫폼에서 시각화 할 수 있습니다.

개발 동기

보안 사고가 발생했을 때, 사용자의 시스템에서 빠르게 아티팩트를 수집하고 이를 분석하는 것은 매우 중요합니다. 그러나 관련 정보가 분산되어 있거나 도구의 사용이 어렵다는 점에서 착안해, 수집부터 분석까지 통합적으로 제공하는 도구를 만들고자 했습니다.

주요 기능

DFCAT개요.png

  • 디지털 아티팩트 수집을 위한 체크리스트 제공
  • 보안 이벤트 및 포렌식 아티팩트 매트릭스 제공
  • Windows 아티팩트 수집 툴 제공
  • 수집한 아티팩트 데이터 가공, 분석 및 시각화

사용 기술

  • NestJS
  • Python

맡은 역할

  • 포렌식 아티팩트 수집 툴 개발
  • NestJS 기반 API 서버 개발
    • 엑셀 업로드 및 파싱, 아티팩트 검색 API 개발
  • AWS 인프라 구축 및 배포

관련 링크