| 육세윤 | 박종원 | 최정필 | 김민준 | 박채연 |
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
- 개요
- 배경
- 문제 정의
- 프로젝트 배경, 주제 및 소개
- 유사 서비스
- 프로젝트 주요 기능 및 기대 효과
- 기술 스택
- WBS
- 시스템 아키텍처
- 요구 사항 명세서
- ERD
- 테이블 명세서
- API 명세서
- 백엔드 주요 테스트 케이스
- 백앤드 단위 테스트 결과서
각자 사용하는 불편함을 해소하고자 개발하는 것이 목적이다.
각각의 프로그램을 활용하기 위해 기업 및 개인 사용자는 시간과 비용을 투자하여 프로그램을 익히고 사용한다.
이는 사용자의 명백한 업무 효율 저하를 야기한다.
이를 해소하기 위해 결과값을 중요시하는 ERP에 창고 관리 시스템인 WMS, 공급 업체 간의 원활한 주문 및 발주를 위한 C-Portal을 통합한 시스템을 개발했다.
하나의 통합시스템으로 사용자의 업무 효율을 증진시켜 기업에게 구축 및 운영 비용 이상의 가치를 제공한다.
또한, 저가형 프로그램보다 더 많은 서비스를 제공하여 SAP를 쓰기에 부담인 중견기업이 주 타겟층이다.
실제 ERP 관련 문제를 겪고 있는 규모 500명 규모의 반도체 제조 중견 업체를 사례로 설정하여 진행한 프로젝트이다.
세부사항
기초 관리
📌 회원 등록
📌 회원 목록
📌 회원상세 조회
📌 회원 수정
📌 회원 삭제
📌 거래처 등록
📌 거래처 목록
📌 거래처 상세 조회
📌 거래처 수정
📌 거래처 삭제
📌 로그 조회
📌 로그 상세 조회
📌 품목 생성
📌 품목 목록 조회
📌 품목 상세 조회
📌 품목 수정
📌 품목 상태 수정
📌 품목 삭제
📌 Lot.No 생성
📌 Lot.No 목록 조회
📌 Lot.No 상세 조회
📌 Lot.No 수정
📌 Lot.No 삭제
생산 관리
📌 창고 등록
📌 생산 계획 등록
📌 BOM 목록 조회
📌 BOM 특정품목 BOM 전부 조회
📌 BOM 특정품목 소요량 산출
📌 BOM 수정
📌 BOM 삭제
📌 BOM 전체 캐시 재생성
| 조원이름 | 회고 |
|---|---|
| 육세윤 | 이번 프로젝트는 실무에서 PM으로서 다양한 경험을 쌓아왔음에도 불구하고, DB 설계, 백엔드, 프론트엔드 등 팀원 모두에게 생소한 기술들을 처음부터 함께 익히며 진행해야 했다는 점에서 매우 고무적이었습니다. 특히 JPA와 Gradle 같은 라이브러리를 활용한 개발은 우리 팀에게 처음이었고, ERP 시스템과 각 모듈을 학습하고 이를 실제 개발에 적용해 본 경험은 큰 자산이 되었습니다. 다만, 제 무리한 기획으로 인해 팀원들이 정신적·체력적으로 고생하는 모습을 보며, 다음 파이널 프로젝트에서는 기획 범위를 보다 철저히 조율한 뒤 진행해야겠다는 교훈을 얻었습니다. 실무에서 PM 경험이 있었지만, 개발 PM은 완전히 다른 영역이라는 점을 크게 느낄 수 있는 계기였습니다. 이번 경험을 양분 삼아 앞으로 IT 기획/ 컨설턴트 직무를 꿈꾸는 입장에서 더 성장할 것입니다. |
| 최정필 | 늪에 빠졌습니다. JPA를 처음 써보며 RDBMS를 잘 알려하고 이해하는게 매우 중요하구나 느낍니다. 공부를 하면 할수록 공부량이 3배는 되어서 돌아왔죠. 그래도 그만큼 알아가는게 많고 새로운 경험을 많이 해서 좋았습니다. DB 계층 카테고리 설계 시 재귀테이블의 조회 성능을 어떻게 하면 더 잘 끌어올릴 수 있을까??, newman을 이용해 한번에 많은 데이터 입력시 성능 상승을 위해 비동기처리로 하며 @Async어노테이션을 사용할지 블로킹큐를 이용할지, 제약조건없이 데이터 정합성을 보장하기 위해 어떤 서비스 로직을 구현할까 등을 고민하게되었습니다. 하지만 과도한 업무량으로 인해 Jmeter를 이용한 동시성 테스트를 한번 체험하는 수준에 그치고, N+1문제 미해결과 Docker를 이용한 협업 등을 못해본 건 매우 아쉬웠어요. 그래도 git cli 숙련도의 상승, 접근제어자의 설정 범위, PR과 코드 리뷰를 통한 협업등으로 인한 CS지식과 개발능력상승, DDD와 CSQR패턴, FLYWAY 등 다음 프로젝트 때 적용해보고 싶은 것들을 알아갑니다. 같이 프로젝트한 팀원분들 정말 고생많으셨습니다~. 특히 우리의 든든한 에이스 종원이의 건강을 기원합니다. |
| 김민준 | 처음 경험해보는 개발 프로젝트에서 생소한 프로그램을 개발하며 많은 것을 배우고 느낄 수 있었습니다. 백엔드를 구현할 때 처음에는 단순히 기능을 만드는 데에만 집중하느라 구조적이고 효율적인 코드에 신경 쓰지 못했지만, 정필님의 코드 리뷰를 통해 큰 깨달음을 얻었습니다. 또한 개발 전에 요구사항 분석과 API 명세서 작성이 왜 중요한지 알지 못했는데, 직접 백엔드를 개발하면서 이것들이 정확한 프로그램 개발의 핵심이라는 점을 깊이 깨달았습니다. 무엇보다 팀원들과의 원활한 소통과 협업이 프로젝트 진행 시간을 단축하는 가장 중요한 요소라는 것도 배울 수 있었습니다. 이번 프로젝트를 통해 JPA에 대해 조금씩 이해할 수 있었고, 전반적인 개발 프로젝트의 진행 방식과 협업 툴 사용에도 한층 익숙해진 점이 뜻깊었습니다. 부족한 지식으로 참여했지만 팀원들께 많은 도움을 받았고, 특히 코드 리뷰에 힘써주신 정필님, 다양한 영역에서 두루 활약해주신 종원님, 프로젝트 전반을 조율하며 고생해주신 세윤님, 그리고 많은 분량을 묵묵히 담당해주신 채연님께 진심으로 감사드립니다. 이번 경험은 제게 큰 성장의 기회였으며, 앞으로의 개발 여정에도 큰 밑거름이 될 것이라 생각합니다. |
| 박종원 | 이번 프로젝트에서 RDB를 기반으로 설계하고 사용하면서 단순히 데이터 CRUD를 넘어서 정규화, 관계 설정, 트랜잭션 관리, 동시성을 생각하는게 얼마나 중요한지 또또또x100 실감했다. DB 공부를 더 열심히 하자 API 개발과 프론트엔드 페이지 작업을 동시에 병행하다 보니, 일정 관리의 중요성을 크게 느꼈다. 프로젝트 범위를 어디까지 잡을지, 어떤 기능까지 구현할지에 대한 결정이 결과물의 완성도에 큰 영향을 미친다는 점을 배웠다. 최종프로젝트때는 볼륨이 크다고 무조건 좋은 프로젝트가 아니니 프로젝트 볼륨 설정에 대한 고민을 많이 해봐야겠다. <해보고 싶었지만 못한 것> 쿼리 최적화: 인덱스 튜닝 같은 DB 성능 최적화를 깊게 다루지 못한 것이 아쉬웠다. 대용량건수 조회에 대한 최적화 공부를 개인적으로 더 해보고 싶다 부하 테스트: 실제 운영 환경을 가정한 성능 테스트를 해보지 못해, 시스템이 어느 정도 트래픽을 견딜 수 있을지 확인할 기회가 부족했다. 키워드 자동완성 기능: 사용자 경험을 높일 수 있는 기능이었는데, 구현하지 못해 아쉬움이 남는다. <느낌점> 변수 네이밍의 중요성 특히 DTO에서 변수명이 은근히 많은 혼동을 야기할 수 있다는 것을 깨달았다. 프로젝트 진행전 규칙을 정했는데도 생각보다 더 타이트하게 협업 규칙을 잡아야겠다고 느꼈다. 작은 습관이 협업 생산성과 코드 가독성에 큰 차이를 내는 것 같다. 코드 리뷰가 그냥 코드 읽는건데 그렇게 어렵나 싶었는데 생각보다 어렵고 매우 오래걸린다. 코드 리뷰를 자주하자! |
| 박채연 | 생산계획에 대해 자동 생성, 사용자 요청 생성을 함께 처리해줘야하는 요구사항에 따라 그 조건이 안전 재고 수량이 부족할 때, 해당 재고를 생산하기 위한 수량이 존재해야한다는 점에서 실제 서비스에서 여러 요청과 종속되는 변경사항이 오고가는 상황을 고려해야함을 인지했습니다. 이점에 대해 다룰 시간이 부족했지만 동시성을 처리하고 성능 개선을 다뤄볼 적합한 주제를 찾았고 이벤트 리스너, 카프카로 이어지는 어떤 기술을 왜 써야하는지에 대한 그 필요성을 바탕으로 앞으로의 방향성을 잡는 경험을 할 수 있어 의미 있었습니다. 특히 실제 사용을 배경으로 고려함에 따라 엔티티간 관계들이 복잡하게 얽혀있었고 그런 제약사항들을 가져가면서 프로그래밍하는 점이 도전이기도 했으며 이 과정에서 erd의 관계들을 재정의하며 정보 구성에 고민하고 그에 대한 확신을 쌓아갈 수 있어 흥미로운 작업이었습니다. |












































