<aside> <img src="/icons/makeup-brush_pink.svg" alt="/icons/makeup-brush_pink.svg" width="40px" /> Frontend HTML CSS ****Javascript Ajax React ****
</aside>
<aside> <img src="/icons/database_pink.svg" alt="/icons/database_pink.svg" width="40px" /> Database Oracle DBeaver
</aside>
<aside> <img src="/icons/customs_pink.svg" alt="/icons/customs_pink.svg" width="40px" /> Tools
설계 : draw.io
디자인 : SVGator
IDE : Eclipse VScode
ETC : Git GitHub Notion
문서 : Excel Google 스프레시트 한글 Word 망고보드 미리캠퍼스 Canva
</aside>
<aside> <img src="/icons/server_pink.svg" alt="/icons/server_pink.svg" width="40px" /> Backend Java JDBC JSP & Servlet Spring boot MyBatis Swagger PostMan
</aside>
프로젝트명 | [ 협업 ] 매장관리 서비스와 꽃집 키오스크 |
---|---|
제작기간 | 2024.02 ~ 2024.03 [총 2개월] |
개발인원 | 팀장 1명, 팀원 6명(中 본인) |
개발동기 | 앞으로도 무인기기를 활용한 서비스가 출시될 것으로 예상하고 개발자의 역량을 키우고자 키오스크를 만들게 되었습니다. |
꽃집을 고른 이유는 데이터를 설계할 때 단순하게 생각해볼 수 있다는 의견을 반영하여 아이템을 선정했습니다. | |
프로젝트 개요 | 프로젝트 구성 |
사용자 구분 : 키오스크 관리자, 사장님, 직원, 손님
설명 : 이 프로젝트는 한 자영업자의 매장에 설치된 키오스크를 관리하도록 구현했으며 매장에 방문한 손님은 키오스크와 어플을 통해 주문할 수 있도록 구현했습니다. | | 사용기술 | 백엔드 : Java 17, Spring boot 3.2.2, Oracle 10, Mybatis 3.0.3, WebSocket, Docker(engine), Swagger, Logging, PostMan
프론트엔드 : Javascript, React, Axios, WebSocket, node.js
안드로이드 : Kotlin | | 본인의 역할 | 공통
BE
FE
메뉴 항목관리, 옵션관리 기능 생략 : 일정을 맞추기 위해 DB에 미리 정보를 갱신하고 기능요소를 몇 개 생략했습니다.
AWS 배포와 Android 구현 : 일정 내로 기능을 구현하고 AWS에 배포는 성공했지만 직접 참여한 부분이 아니었기에 아쉬움이 남아 개인 프로젝트 과정에서 직접 시도하고자 합니다. | | 어려웠던 점 | 효율적인 역할분담 🔎 문제 : 의욕은 넘쳤지만 일정을 관리하고 역할을 분배하는 것부터 어려웠습니다. 한 사람이 구현을 해결하지 못하면 모두가 다음으로 진행을 못하는 일이 발생되곤 했습니다. 💡 해결 : 정보처리기사를 공부하다가 ‘CPM’ 스케줄링 기법을 알게 되어 연관된 기능을 하나로 묶은 다음에 남은 기간에서 예상 소요시간을 정하고 팀장이 Notion으로 간트 차트를 만들어 관리하는 데 기여했습니다. 그런 뒤에 Part 별로 역할을 분담했습니다.
본인만 알아보는 코드들 🔎 문제 : 구현에는 문제가 없었지만 주석만으로 서로의 코드를 이해하기란 한계가 있었습니다. 또한 억지로 연결하다보니 비효율적인 로직과 코드 양이 많아지기 시작했습니다. 💡 해결1 : 도식화를 활용한 덕분에 시스템의 이해도가 높아졌고 서로 무슨 작업을 하고 있는 지 짐작할 수 있었으며 일정관리하는 데 도움이 많이 되었습니다. 💡 해결2 : 각자 맡은 Part만 신경쓰다보니 무수히 많은 DB table 이 만들어졌습니다. 그래서 ‘공통코드’를 적용하여 ERD를 다시 설계했고 덕분에 10개가 넘던 table이 5개로 확 줄이는 데 성공했습니다.
독학으로 WebSocket 구현 🔎 문제 : 매장관리 서비스와 키오스크, 그리고 오더 시스템을 실시간으로 연동하기 위해 웹소켓이 필요했지만 단기간 내로 학습하여 기능을 구현해야했습니다. 이 과정에서 원인 모를 통신두절부터 데이터를 전달하는 방식까지 모두 해결해야 됐습니다. 💡 해결 : 계획된 동작이 실행될 때 웹소켓을 통해 신호를 전달했고 상대측에서 신호를 전달받으면 만들어둔 API가 동작되도록 만들었습니다. 또한 비동기 문제는 ‘콜백함수’를 통해 동기로 만들어서 해결했습니다.
일정 내로 완료하기 🔎 문제 : 시행착오가 많은 만큼 배운 점도 많았지만 그 만큼 시간 내로 완성하는 것이 힘들었습니다. 가장 완벽한 코드를 만들고 싶다는 욕심이 있어 더욱 박차고 나가기란 쉽지 않았습니다. 💦 노력 : 포기하지 않고 이틀에 한번 3시간만 자서 작업했고 틈틈히 다른 파트를 맡은 팀원이 만든 코드도 이해하고자 노력했습니다.
취업준비와 병행하기 🔎 문제 : 저는 멀티가 힘들었습니다. 자격증, 이력서와 자기소개서, 수료까지 이어서 진도 따라잡기, 그리고 프로젝트 진행까지 개인일정과 취침시간까지 줄였지만 모든 것을 수행하기란 쉽지 않았습니다. 💦 노력 : 할 일 목록을 만들어서 시간을 관리도 해봤지만 하나만 몰두되는 바람에 쉽지 않아서 역으로 ‘하나만 팬다’는 식으로 진행했습니다. | | 🎖️ 성과 기여도 | 도식화를 활용하여 협업의 질을 높이다 제가 이해한 요소를 모두 도식화 및 문서화로 만들고 이를 소통과정에서 활용합니다.
성공적인 ERD 설계 경험 서버 구현 예정 마감일을 10일 조기 마감에 기여했으며, 유지보수 효율을 높였습니다.
WebSocket 설계 경험 단기간 내로 WebSocket 을 학습하여 키오스크와 매장관리 서비스를 실시간 양방향 통신 연결에 성공한 경험이 있습니다. |