winDowsForms App + plc 통합 생산 및 품질 관리 시스템 프로젝트 시작

2024. 6. 21. 10:34Development👩🏻‍🦳/C#

기간은 : 06.19 ~ 7월 10일까지 

 

주제 주요기능

공정 관리 시스템 기준정보, 공통코드, 공정그룹, 단위공정, 생산보고
창고 관리 시스템 주문 수집, 창고관리, 설비관리, 택배 접수, 택배 추적
품질 관리 시스템 검사기준, 불량검사, 불량내역, 불량현황, 클레임청구
생산 관리 시스템 작업지시, 작업실적, 월별근태, 계획 및 실적, 문제 관리

 

프로젝트 파트 구성은

생산 관리 시스템  :  작업지시, 작업실적, 월별근태, 계획 및 실적, 문제 관리

파트로 지정되었다

 

초기 기획 및 스케줄러 작성을 내가 맡아서 진행하였다.

 

구현사항에 대한 전반적인 큰틀은 이러하다.

이 중 절삭시켜야할 지표들은 절삭시키고 진행하기로 했다 프론트엔드 파트에 집중하고

백엔드 부분은 구현을 안하거나 사양을 낮추는 방식으로 첫 프로젝트 구현 수준의 허들을 낮췄다

1. 대시보드

구현 사항

  • 요약 정보: 현재 생산 상태, 주요 지표(KPI), 알림 등을 요약하여 보여줌
  • 그래프 및 차트: 생산 실적, 불량률, 생산 계획 대비 실적 등을 시각적으로 표시

프론트엔드 구현 방법

  1. 윈폼 만들기: 새 윈폼 프로젝트를 생성하고 '대시보드' 폼을 만듭니다.
  2. 라벨과 텍스트박스 추가: 현재 생산 상태, KPI, 알림 등을 보여줄 라벨과 텍스트박스를 폼에 추가합니다.
  3. 차트 컨트롤 추가: 생산 실적 등을 시각적으로 표시할 차트를 폼에 추가합니다.

백엔드 구현 방식

  1. API 엔드포인트: 간단한 HTTP 서버를 만들어 대시보드 데이터 제공
  2. 데이터 제공: API를 통해 JSON 형식으로 데이터를 제공

2. 작업 지시 관리

구현 사항

  • 작업 지시 목록: 작업 지시 내역을 목록 형태로 표시
  • 작업 지시 상세 정보: 각 작업 지시의 상세 정보를 보여주는 페이지
  • 작업 지시 생성/수정: 새로운 작업 지시를 생성하거나 기존 작업 지시를 수정하는 기능

프론트엔드 구현 방법

  1. 윈폼 만들기: '작업 지시 관리' 폼을 생성합니다.
  2. DataGridView 추가: 작업 지시 목록을 표시할 DataGridView를 폼에 추가합니다.
  3. 버튼 추가: 작업 지시 생성/수정을 위한 버튼을 추가합니다.

백엔드 구현 방식

  1. API 엔드포인트: 작업 지시 데이터를 JSON 형식으로 제공하고 업데이트 받는 API 생성
  2. 데이터 저장: 간단한 리스트를 사용하여 데이터 저장

3. 작업 실적 관리

구현 사항

  • 작업 실적 목록: 작업 실적 내역을 목록 형태로 표시
  • 작업 실적 입력/수정: 작업 완료 후 실적을 입력하거나 수정하는 기능

프론트엔드 구현 방법

  1. 윈폼 만들기: '작업 실적 관리' 폼을 생성합니다.
  2. DataGridView 추가: 작업 실적 목록을 표시할 DataGridView를 폼에 추가합니다.
  3. 버튼 추가: 작업 실적 입력/수정을 위한 버튼을 추가합니다.

백엔드 구현 방식

  1. API 엔드포인트: 작업 실적 데이터를 JSON 형식으로 제공하고 업데이트 받는 API 생성
  2. 데이터 저장: 간단한 리스트를 사용하여 데이터 저장

4. 월별 근태 관리

구현 사항

  • 근태 기록: 작업자의 출근/퇴근, 휴가 등의 근태 기록을 관리
  • 근태 현황판: 월별 근태 현황을 한눈에 볼 수 있는 캘린더 형태의 UI

프론트엔드 구현 방법

  1. 윈폼 만들기: '근태 관리' 폼을 생성합니다.
  2. DataGridView 추가: 근태 기록을 표시할 DataGridView를 폼에 추가합니다.
  3. 캘린더 컨트롤 추가: 월별 근태 현황을 표시할 캘린더를 폼에 추가합니다.

백엔드 구현 방식

  1. API 엔드포인트: 근태 데이터를 JSON 형식으로 제공하고 업데이트 받는 API 생성
  2. 데이터 저장: 간단한 리스트를 사용하여 데이터 저장

5. 계획 및 실적 관리

구현 사항

  • 생산 계획 작성: 월간/주간 생산 계획을 작성하는 기능
  • 실적 피드백: 계획 대비 실적의 피드백 및 개선 사항 기록

프론트엔드 구현 방법

  1. 윈폼 만들기: '계획 및 실적 관리' 폼을 생성합니다.
  2. 텍스트박스 추가: 생산 계획을 입력할 텍스트박스를 추가합니다.
  3. 버튼 추가: 계획 및 실적 입력을 위한 버튼을 추가합니다.

백엔드 구현 방식

  1. API 엔드포인트: 생산 계획과 실적 데이터를 JSON 형식으로 제공하고 업데이트 받는 API 생성
  2. 데이터 저장: 간단한 리스트를 사용하여 데이터 저장

6. 문제 관리

구현 사항

  • 문제 리스트: 발생한 문제들을 목록 형태로 표시
  • 문제 상세 정보: 각 문제의 상세 정보를 보여주는 페이지
  • 문제 보고/수정: 문제 발생 시 보고하거나 기존 문제를 수정하는 기능

프론트엔드 구현 방법

  1. 윈폼 만들기: '문제 관리' 폼을 생성합니다.
  2. DataGridView 추가: 문제 리스트를 표시할 DataGridView를 폼에 추가합니다.
  3. 버튼 추가: 문제 보고/수정을 위한 버튼을 추가합니다.

백엔드 구현 방식

  1. API 엔드포인트: 문제 데이터를 JSON 형식으로 제공하고 업데이트 받는 API 생성
  2. 데이터 저장: 간단한 리스트를 사용하여 데이터 저장

7. 사용자 관리

구현 사항

  • 사용자 프로필: 사용자 개인 정보 및 권한 관리
  • 역할 및 권한: 사용자 역할별 권한 설정 및 관리

프론트엔드 구현 방법

  1. 윈폼 만들기: '사용자 관리' 폼을 생성합니다.
  2. 텍스트박스 추가: 사용자 정보를 입력할 텍스트박스를 추가합니다.
  3. 버튼 추가: 사용자 정보 저장을 위한 버튼을 추가합니다.

백엔드 구현 방식

  1. API 엔드포인트: 사용자 데이터를 JSON 형식으로 제공하고 업데이트 받는 API 생성
  2. 데이터 저장: 간단한 리스트를 사용하여 데이터 저장

8. 검색 및 필터

구현 사항

  • 검색 기능: 작업 지시, 실적, 문제 등 다양한 데이터를 검색할 수 있는 기능

프론트엔드 구현 방법

  1. 윈폼 만들기: '검색 및 필터' 폼을 생성합니다.
  2. 텍스트박스 추가: 검색어를 입력할 텍스트박스를 추가합니다.
  3. 버튼 추가: 검색을 실행할 버튼을 추가합니다.
  4. DataGridView 추가: 검색 결과를 표시할 DataGridView를 추가합니다.

백엔드 구현 방식

  1. API 엔드포인트: 검색 요청을 처리하고 JSON 형식으로 결과를 반환하는 API 생성
  2. 데이터 저장: 간단한 리스트를 사용하여 데이터 저장
  • 포지션 배분 방식 지정포지션 역할 예외처리 방안
    프론트엔드 개발자 1 대시보드 UI 디자인 및 구현 UI가 올바르게 표시되지 않을 경우, API 데이터 확인 및 수정 협력
    프론트엔드 개발자 2 차트 및 그래프 구현, 대시보드 인터페이스 개선 차트 데이터 오류 시, 백엔드 개발자와 데이터 소스 확인 및 수정 협력
    백엔드 개발자 1 대시보드 데이터 API 구축 및 제공 데이터 누락 또는 오류 시, 로깅 및 디버깅을 통해 문제 해결
    백엔드 개발자 2 대시보드 데이터 최적화 및 캐싱 관리 데이터 과부하 발생 시, 캐싱 전략 재조정 및 성능 개선
    프로젝트 매니저 대시보드 기능 테스트 및 피드백 제공 버그 발생 시, 상세히 기록하여 관련 개발자에게 보고하고 해결 방안 협력
    구현 사항
    • 요약 정보: 현재 생산 상태, 주요 지표(KPI), 알림 등을 요약하여 보여줌
    • 그래프 및 차트: 생산 실적, 불량률, 생산 계획 대비 실적 등을 시각적으로 표시
    2. 작업 지시 관리 팀 구성포지션 역할 예외처리 방안
    프론트엔드 개발자 1 작업 지시 목록 UI 구현 및 표시 목록이 표시되지 않을 경우, 백엔드 데이터 API 확인 및 수정 협력
    프론트엔드 개발자 2 작업 지시 상세 정보 UI 구현 및 표시 상세 정보가 누락될 경우, 백엔드와 데이터 통신 문제 해결 협력
    백엔드 개발자 1 작업 지시 데이터 API 구축 및 제공 API 데이터 오류 시, 로깅 및 디버깅을 통해 문제 해결
    백엔드 개발자 2 작업 지시 생성/수정 API 관리 및 유지보수 데이터 저장 문제 발생 시, 디버깅 및 프론트엔드 개발자와 협력하여 수정
    프로젝트 매니저 작업 지시 관리 기능 테스트 및 버그 보고 버그 발생 시, 상세히 기록하여 관련 개발자에게 보고하고 해결 방안 협력
    구현 사항
    • 작업 지시 목록: 작업 지시 내역을 목록 형태로 표시
    • 작업 지시 상세 정보: 각 작업 지시의 상세 정보를 보여주는 페이지
    • 작업 지시 생성/수정: 새로운 작업 지시를 생성하거나 기존 작업 지시를 수정하는 기능
    3. 작업 실적 관리 팀 구성포지션 역할 예외처리 방안
    프론트엔드 개발자 1 작업 실적 목록 UI 구현 및 표시 목록이 표시되지 않을 경우, 백엔드 데이터 API 확인 및 수정 협력
    프론트엔드 개발자 2 작업 실적 입력/수정 UI 구현 및 표시 입력/수정이 작동하지 않을 경우, 백엔드와 데이터 통신 문제 해결 협력
    백엔드 개발자 1 작업 실적 데이터 API 구축 및 제공 API 데이터 오류 시, 로깅 및 디버깅을 통해 문제 해결
    백엔드 개발자 2 작업 실적 저장 및 수정 API 관리 및 유지보수 데이터 저장 문제 발생 시, 디버깅 및 프론트엔드 개발자와 협력하여 수정
    프로젝트 매니저 작업 실적 관리 기능 테스트 및 버그 보고 버그 발생 시, 상세히 기록하여 관련 개발자에게 보고하고 해결 방안 협력
    구현 사항
    • 작업 실적 목록: 작업 실적 내역을 목록 형태로 표시
    • 작업 실적 입력/수정: 작업 완료 후 실적을 입력하거나 수정하는 기능
    4. 월별 근태 관리 팀 구성포지션 역할 예외처리 방안
    프론트엔드 개발자 1 근태 기록 UI 구현 및 표시 기록이 표시되지 않을 경우, 백엔드 데이터 API 확인 및 수정 협력
    프론트엔드 개발자 2 근태 현황판 UI 구현 및 표시 캘린더 표시 오류 시, 백엔드와 데이터 통신 문제 해결 협력
    백엔드 개발자 1 근태 데이터 API 구축 및 제공 API 데이터 오류 시, 로깅 및 디버깅을 통해 문제 해결
    백엔드 개발자 2 근태 데이터 저장 및 수정 API 관리 및 유지보수 데이터 저장 문제 발생 시, 디버깅 및 프론트엔드 개발자와 협력하여 수정
    프로젝트 매니저 근태 관리 기능 테스트 및 버그 보고 버그 발생 시, 상세히 기록하여 관련 개발자에게 보고하고 해결 방안 협력
    구현 사항
    • 근태 기록: 작업자의 출근/퇴근, 휴가 등의 근태 기록을 관리
    • 근태 현황판: 월별 근태 현황을 한눈에 볼 수 있는 캘린더 형태의 UI
    5. 계획 및 실적 관리 팀 구성포지션 역할 예외처리 방안
    프론트엔드 개발자 1 생산 계획 작성 UI 구현 및 표시 계획이 표시되지 않을 경우, 백엔드 데이터 API 확인 및 수정 협력
    프론트엔드 개발자 2 실적 피드백 UI 구현 및 표시 피드백이 표시되지 않을 경우, 백엔드와 데이터 통신 문제 해결 협력
    백엔드 개발자 1 생산 계획 데이터 API 구축 및 제공 API 데이터 오류 시, 로깅 및 디버깅을 통해 문제 해결
    백엔드 개발자 2 실적 피드백 데이터 API 관리 및 유지보수 데이터 저장 문제 발생 시, 디버깅 및 프론트엔드 개발자와 협력하여 수정
    프로젝트 매니저 계획 및 실적 관리 기능 테스트 및 피드백 제공 버그 발생 시, 상세히 기록하여 관련 개발자에게 보고하고 해결 방안 협력
    구현 사항
    • 생산 계획 작성: 월간/주간 생산 계획을 작성하는 기능
    • 실적 피드백: 계획 대비 실적의 피드백 및 개선 사항 기록
    6. 문제 관리 팀 구성포지션 역할 예외처리 방안
    프론트엔드 개발자 1 문제 리스트 UI 구현 및 표시 리스트가 표시되지 않을 경우, 백엔드 데이터 API 확인 및 수정 협력
    프론트엔드 개발자 2 문제 상세 정보 UI 구현 및 표시 상세 정보가 누락될 경우, 백엔드와 데이터 통신 문제 해결 협력
    백엔드 개발자 1 문제 데이터 API 구축 및 제공 API 데이터 오류 시, 로깅 및 디버깅을 통해 문제 해결
    백엔드 개발자 2 문제 보고/수정 API 관리 및 유지보수 데이터 저장 문제 발생 시, 디버깅 및 프론트엔드 개발자와 협력하여 수정
    프로젝트 매니저 문제 관리 기능 테스트 및 버그 보고 버그 발생 시, 상세히 기록하여 관련 개발자에게 보고하고 해결 방안 협력
    구현 사항
    • 문제 리스트: 발생한 문제들을 목록 형태로 표시
    • 문제 상세 정보: 각 문제의 상세 정보를 보여주는 페이지
    • 문제 보고/수정: 문제 발생 시 보고하거나 기존 문제를 수정하는 기능
    7. 사용자 관리 팀 구성포지션 역할 예외처리 방안
    프론트엔드 개발자 1 사용자 프로필 UI 구현 및 표시 프로필이 표시되지 않을 경우, 백엔드 데이터 API 확인 및 수정 협력
    프론트엔드 개발자 2 역할 및 권한 UI 구현 및 표시 권한 설정이 표시되지 않을 경우, 백엔드와 데이터 통신 문제 해결 협력
    백엔드 개발자 1 사용자 프로필 데이터 API 구축 및 제공 API 데이터 오류 시, 로깅 및 디버깅을 통해 문제 해결
    백엔드 개발자 2 역할 및 권한 데이터 API 관리 및 유지보수 데이터 저장 문제 발생 시, 디버깅 및 프론트엔드 개발자와 협력하여 수정
    프로젝트 매니저 사용자 관리 기능 테스트 및 피드백 제공 버그 발생 시, 상세히 기록하여 관련 개발자에게 보고하고 해결 방안 협력
    구현 사항
    • 사용자 프로필: 사용자 개인 정보 및 권한 관리
    • 역할 및 권한: 사용자 역할별 권한 설정 및 관리
    8. 검색 및 필터 팀 구성포지션 역할 예외처리 방안
    프론트엔드 개발자 1 검색어 입력 UI 구현 및 표시 검색어가 입력되지 않을 경우, UI 오류 해결 및 수정 협력
    프론트엔드 개발자 2 검색 결과 표시 UI 구현 및 필터 적용 검색 결과가 표시되지 않을 경우, 백엔드 데이터 API 확인 및 수정 협력
    백엔드 개발자 1 검색 데이터 API 구축 및 제공 API 데이터 오류 시, 로깅 및 디버깅을 통해 문제 해결
    백엔드 개발자 2 필터 데이터 API 관리 및 유지보수 데이터 필터링 문제 발생 시, 디버깅 및 프론트엔드 개발자와 협력하여 수정
    프로젝트 매니저 검색 및 필터 기능 테스트 및 피드백 제공 버그 발생 시, 상세히 기록하여 관련 개발자에게 보고하고 해결 방안 협력
    구현 사항
    • 검색 기능: 작업 지시, 실적, 문제 등 다양한 데이터를 검색할 수 있는 기능
    모든 포지션과 역할, 예외처리 방안, 구현 사항을 누락 없이 포함하였습니다. 이를 통해 팀원들이 각각의 역할을 명확히 이해하고 프로젝트를 진행할 수 있습니다.

메서드 만들기.zip
0.04MB

 

메서드또한 프로젝트 초기딴에 만들어 놨다

프로젝ㅌ 초입딴에 메서드를 만드는 이유는 

 

  1. 코드의 재사용성 및 유지보수성 향상:
    • 클래스와 메서드를 미리 정의하면 중복 코드를 줄이고, 변경 사항이 발생했을 때 수정할 부분을 명확히 알 수 있습니다. 이는 유지보수를 용이하게 합니다.
  2. 프로젝트 구조와 설계 명확화:
    • 초기 설계 단계에서 클래스를 정의하면 시스템의 구조와 상호작용 방식을 명확히 할 수 있습니다. 이를 통해 개발자들이 일관된 방식으로 코드를 작성할 수 있습니다.
  3. 협업 효율성 증대:
    • 여러 개발자가 협업할 때, 클래스와 메서드가 명확히 정의되어 있으면 역할 분담이 용이해지고, 각 개발자가 어떤 부분을 담당해야 하는지 명확해집니다. 이는 커뮤니케이션을 원활하게 하고 충돌을 줄이는 데 도움이 됩니다.
  4. 테스트 용이성:
    • 각 클래스와 메서드가 명확히 정의되어 있으면 유닛 테스트를 작성하기 쉽습니다. 이는 개발 초기부터 각 기능이 제대로 동작하는지 검증할 수 있어, 버그를 조기에 발견하고 수정할 수 있습니다.
  5. 확장성 및 유연성 확보:
    • 초기 설계에서 클래스와 메서드를 잘 정의하면 새로운 기능을 추가하거나 기존 기능을 확장할 때 큰 어려움 없이 유연하게 대응할 수 있습니다. 이는 프로젝트의 장기적인 발전 가능성을 높입니다.
  6. 일관된 코드 스타일 유지:
    • 프로젝트 초기에 클래스와 메서드 구조를 정의하면 일관된 코드 스타일을 유지할 수 있습니다. 이는 코드 가독성을 높이고, 다른 개발자들이 코드를 이해하고 수정하는 데 도움이 됩니다.