123 2조: Infinity Iterators

123 프로젝트 소개 및 목표

개발기간 (2024.05.16 ~2024.05.22)

서점 재고 관리 시스템

서점의 운영을 효율적으로 관리하고자 하는 목표로, MySQL 데이터베이스와 MyBatis 프레임워크를 활용하여 도서 재고 관리 시스템을 개발한다. 장르별로 책의 입고, 출고 및 재고를 관리함으로써 서점의 운영 효율성을 높인다.

123 팀 소개 김동휘 추형진 임채웅 김의진 최지수

팀소개

123 핵심기능

  1. 도서 입고 관리: 새로운 책이 입고될 때 해당 정보를 시스템에 등록하고 재고를 업데이트한다. 책의 장르, 가격, 할인 여부, 할인율 등의 정보를 입력할 수 있다.
  2. 도서 출고 관리: 고객이 책을 구매하거나 대여할 때 해당 책의 재고를 감소시키고, 해당 거래에 대한 정보를 기록한다.
  3. 재고 관리: 시스템은 실시간으로 재고를 모니터링하고, 재고가 부족한 책들에 대해 관리자에게 알림을 제공한다.
  4. 다양한 책 정보 관리: 책의 장르, 저자, 출판사 등 다양한 정보를 체계적으로 관리하고, 이를 토대로 검색 및 분류 기능을 제공한다.

123 개발환경 intellij mysql java

123 담당파트

김동휘 회원관리

추형진 주문파트

임채웅 주문파트

김의진 입고파트

최지수 출고파트

123 기대효과

  1. 재고 관리의 효율성 증가

    • 실시간 재고 추적 및 관리 기능 구현
    • 재고 과잉 및 부족 최소화를 위한 정확한 데이터 제공
    • 재고 위치 정보 관리 및 시각화
    • 자동 재주문 알림 및 실행 기능
    • 입출고 내역의 자동 기록 및 관리
  2. 고객 만족도 및 서비스 향상

    • 직관적인 인터페이스를 통한 간편한 도서 검색 및 주문 처리
    • 주문 상태 실시간 추적 및 정보 제공
    • 고객 계정 관리 시스템을 통한 개인 정보 보호 및 관리
    • 자주 구매하는 도서나 선호 장르에 기반한 개인화 추천 시스템
  3. 마케팅 및 프로모션의 효과 증대

    • 고객 구매 이력 및 선호도 분석
    • 타겟 마케팅 및 세분화된 프로모션 전략
    • 이메일, SNS를 통한 프로모션 및 이벤트 정보 전송
    • 신간 출시, 할인, 특별 이벤트 알림 기능
  4. 운영 비용 및 시간 절감

    • 인적 자원의 효율적 배분 및 관리
    • 자동화된 시스템 도입으로 인한 일상적인 작업의 간소화
    • 직원 교육 및 관리 비용 감소
    • 전반적인 운영 효율성 및 생산성 향상
  5. 보고 및 분석 기능으로 인한 의사결정 개선

    • 매출, 재고, 고객 행동 분석을 위한 다양한 보고서 자동 생성
    • 데이터 기반 의사결정 지원
    • 트렌드 분석 및 시장 반응에 기반한 재고 조정 및 마케팅 계획 수립
    • 성능 모니터링 및 시스템 개선을 위한 피드백 루프

123 프로젝트 후기

  • 최지수 : 이번 미니 프로젝트를 진행하면서 코드를 작성하면서 오류가 생기지 않게 조심하는 부분도 중요하지만 이전 과정에서 설계를 하면서 프로그램이 어떠한 흐름으로 진행하는지, 문제점이 있다면 어느 부분에서 나타날지 예측하고 미리 문제를 예방할 수 있는 부분을 확인하는 것도 중요하다고 크게 느꼈습니다 이전과 다르게 서로의 코드를 합치는 과정에서 소통의 중요성도 느끼고 모두의 의견이 좋다고 하더라고 적당히 브레이크를 걸어서 의견이 하나로 합쳐질 수 있게 하는 모습도 필요하다고 생각했습니다 문제가 발생해 급하더라도 하나씩 천천히 풀어나가는 모습을 보며 다음 프로젝트에서는 더욱 복잡하게 진행될 예정이라고 해 열심히 준비하는 자세가 필요해 보입니다

  • 김의진 :

  • 임채웅 : git의 형상관리를 하기가 쉽지 않았습니다. git를 프로젝트하면서 다름사람의 소스를 수정할 경우 revert가 안되는 경우가 발생하는 등 git으로 인하여 기존 PR 기록이 날라가서 정상적으로 기록 및 추적을 할수가 없어서 아쉬웠습니다. 무엇보다도 사양서대로 개발을 모두 완료하지 못하여 아쉬움이 컸습니다. 다음에는 모든 기능을 다 넣어서 프로그램을 완료하고 있습니다.

  • 추형진 :

이번 프로젝트는 온라인 도서 주문 관리 시스템의 일환으로, 사용자가 도서를 주문할 수 있는 기능을 구현하는 것이 목표였다.
이번에 나는 주문하기 기능의 전체적인 구현을 담당헸고, 구체적으로는 OrderController, OrderService, OrderDAO 클래스와 관련된 로직을 작성하고, Cart, CartItem 모델을 설계 및 구현하였다.
그리하여 성공적으로 구현하여 데이터베이스와의 연동을 통한 이 과정에서 느꼇던 것들이 많았다.
MyBatis를 활용한 데이터베이스 연동 방법, MVC 패턴을 적용하여 코드의 유지보수성을 높이는 방법 등 여러가지를 배웠던 경험이었다.
하지만 주문 생성 시 예외 상황에 대한 더 세밀한 처리와 사용자 피드백이 부족했던 점이 아쉬웠다. 이에 있어서 예외 처리와 트랜잭션 관리의 중요성을 깨달았다.

프로젝트를 하면서 나는 팀원들과의 협업하는 과정을을 그리 잘 했다라고 생각하지 않는다. 처음에 주제를 정할 때는 원활하였지만 설계 단계에서부터 의견 충돌이 잦았던 것 같았다.
이에 있어서 의견 조율이 필요한 상황도 있었는데, 조율을 하지 않으려고 했 상황도 있어서 많이 쉽지 않았었다.
프로젝트를 진행하면서 가장 큰 문제로 생각했던 것은 바로 팀원들 간의 소통 부족이었다.
프로젝트 중반에는 각자 맡은 역할에 집중하느라 소통이 원활하지 않았고, 중간중간 발생하는 문제를 공유하거나 협력하는 데 어려움이 있었다.
또한, 코드 리뷰나 피드백, PR을 주고받는 과정에서도 소통이 부족해, 중복된 작업이나 비효율적인 코드, 머지 충돌이 발생했고, 이러한 소통 부족은 프로젝트 일정 지연과 품질 저하로 이어졌다.
팀원들이 각자의 작업에만 집중하다 보니, 전체적인 프로젝트 진행 상황을 파악하기 어려웠고, 이는 결국 프로젝트의 완성도에 영향을 미쳤다고 생각한다.

이런 문제들을 해결하기 위해서, 앞으로는 정기적인 회의와 코드 리뷰 세션을 통해 팀원들 간의 소통을 강화하고, 문제 발생 시 즉각적으로 공유하는 문화를 만들고자 한다.
그리고 팀원들이 소통을 꺼리지 않도록 개방적이고 협력적인 분위기를 조성할 계획이다.
  • 김동휘 :

팀 단위의 컨벤셔닝을 시도할 수 있던 첫 조였다고 생각함. swe에 있어 내부 구조의 설계의 중요성은 언제나 체감하는 내용이나 프로젝트에 적용한 기술 스택이나 근래의 개발 패러다임으로 비추어 볼 때 일회성 프로젝트로 '마무리 한다'가 아닌, 이후의 유지보수성과 더불어 개발 과정에서의 요구변겅을 유연하게 반영키 위한 애자일 프레임워크와 객체지향의 패러다임을 응용하고자 했던 취지에 대해서는 다소 아쉬운 과정이었다고 평가. 이번 팀 프로젝트는 초기 목표와 접근 방식에 있어 적절한 워크플로우를 시도하였으나 다소 적극적이지 못한 커뮤니케이션과 실제 초기 설계의 불완전성으로 실제 적용 과정에서 인스펙션 및 단위 테스트 간 디버깅의 어려움이 있었음. 이후에는 애자일 프레임워크와 SOLID 설계 원칙을 보다 더 적극적으로 준수함과 더불어 적절한 테스트 케이스의 설계를 통해 확장성과 유지보수성, 그리고 소프트웨어 전반에 걸친 신뢰성을 보장하고자 함.