미리보기
기본 정보

머뭇거릴 시간이 없습니다. 주어진 시간에 가장 효율적인 성과를 보여드리겠습니다.
기술 스택
Java, MySQL, PostgreSQL, aws-ec2, oauth2, Spring, NestJS
프로젝트
42gg
이노베이션 아카데미
2022.05. ~ 2022.12.
<배경>
지식공유자이자 42멘토 박은종 멘토님께서 진행한 강의를 통해
처음 자바를 배우며 알게 된 동료들과 함께 해당 사이드 프로젝트를 진행했습니다.
<목적>
기관에는 휴식공간에 게임 콘솔, 문방구 오락기기, 다트, 그리고 탁구대가 마련되어있습니다.
특히 탁구가 남녀노소 선호하여 한 대 뿐인 탁구대를 효율적으로 이용하길 원했습니다.
재단 측에 요청하여 탁구대를 예약하는 서비스를 만들어도 괜찮을지 여쭤봤고,
400명 이상 보는 슬랙 채널에서 의견을 모았습니다.
왜냐하면 공익을 위한 서비스를 프로젝트로 구현하는 것에 반응을 알아야했기 때문입니다.
통계에 다수 관리가 필요하다는 것을 느끼고, 또한 서비스로서 이용해도 거부감이 없다는 근거를 바탕으로 기획을 시작했습니다.
<기획>
시간별 슬롯에 두 명이 참여하면 예약을, 그리고 경기 종료 후 점수를 입력하여
예약과 매칭, 그리고 전적기록을 관리를 기능 명세서에 적었습니다.
온라인 게임처럼 큐를 잡아 동등한 실력끼리 매칭하는 기능에 대한 의견이 나왔지만
교육기관에서 가장 불확실한 것이 유저의 활동시간입니다.
과제를 제출하고 평가를 잡기 위해서 모르는 상대에게 평가를 받는 시스템 특성 상
갑자기 큐가 잡혀 예약을 해버리면 경기 진행이 불가할 것 같다는 판단과,
웹 특성 상 상주하고 있을 가능성과 해당 기능을 구현하기 위한 코스트가 불확실했습니다.
런칭 목표 일자는 새로운 기수가 들어오는 날로 정하였습니다.
이유는 기수마다 300명이 넘게 들어오고 나가는 사람 또한 많아 실질적인 이용과 통계를 만들 수 있기 때문입니다.
<구현과 배포>
구현은 향로님의 보라돌이 책과 김영한 강사님의 스프링 부트와 JPA를 보면서 만들었습니다.
처음 배운 자바로 스프링을 구현할 수 있을까 걱정이 컸는데 상속과 타입, 접근제어자, 인터페이스를 선수 지식 바탕으로
스프링 부트로 쉽게 환경 설정을 할 수 있었고,
데이터베이스 또한 큐 매칭 기능이 없다보니 MySQL를 사용하여 관계형 테이블을 만들어 JPA를 통해
객체지향 클래스와 관계형데이터베이스의 패러다임 불일치를 해소할 수 있었습니다.
BE/FE 각자 구현 방식으로 진행하다보니 합쳐서 배포를 할 때 치명적인 이슈가 발생했습니다.
데이터 바인딩이 안되고 CORS 에러가 곳곳 나타나면서 설정된 것들이 반영이 되지 않는 문제가 발생했습니다.
스프링 시큐리티를 통해서 기관 내 인트라 계정으로 간편 로그인을 구현하여 교육생들이 쉽게 가입하여 이용할 수 있었습니다.
<운영>
시간이 지나면서 취업 준비와 과제 마감일자가 다가오면서 인수인계를 준비했습니다.
1기 참여를 하면서 2기 인수인계를 도왔고, 현재 5기가 운영하면서 30명이 넘게 이 프로젝트에 참여를 했습니다.
새 기수들은 문제가 막힐 때마다 언제든지 기관에서 42gg를 참여한 누구든지 물어보면서 문제 해결과 지식 공유를 하고있습니다. 이렇게 우리들의 유산은 이어지고 커져가고 있습니다.
교육
방송통신대학교
대학교(학사) | 인공지능학과
2023.03. ~ 현재 | 재학 중
자기소개
중간 저장