기록 , 그리고 습관
article thumbnail

ERP(Enterprise Resource Planning)

2021년 겨울방학 ERP 근태관리 시스템 회고록

#EPR  #기술블로그  #회고

 

군대 전역하고 대학교 복학 후 오랜만에 반겨온 겨울방학 마냥 쉬어갈 순 없는 시간이죠? 그래서 방학이라는 시간 동안 공부 겸 진행해 본 프로젝트에 대해서 회고하고자 이 글을 써보았습니다.

 

문득 내가 겨울방학때 어떤 프로젝트를 진행했지?라는 생각이 머리를 스쳐 지나가며 고개를 갸웃하게 되는것이였습니다.

 

작년 겨울방학 C#이라는 언어(도구)를 공부해 보고자 마음을 먹고 모든 기술의 집합체라고 생각하게 된 ERP시스템을 만들어보자고 생각을 하여 프로젝트를 시작하게 되었습니다. 학교에서 진행된 프로젝트다 보니 기본적인 프로그램의 틀은 교수님들의 도움을 받아 기획을 할 수 있게 되었는데요?  아무래도 첫 프로젝트인 만큼 혼자서 해보고 싶었지만 길을 찾지 못하고 떠돌까 봐 교수님께서 도움을 주셨습니다.

출처(https://brunch.co.kr/@wepostit/20)

프로젝트는 다음과 같은 순서로 진행되었는데요?

 

  1. 프로젝트 기획
  2. DB 설게
  3. 화면 구성
  4. 기능 구현

위와 같이 단순하게 순서를 정한 후 세부적으로 파고들려고 했는데요.

우선적으로 프로젝트 기획단계는 앞에 말씀드린 대로 교수님의 도움을 받아 진행된 단계이기에 어떤 식으로 세부적으로

파고 들어볼까 하고 생각을 해보았을 때 교수님의 기획서를 클라이언트의 기능요구서라고 생각을 하고 클라이언트의 의도를 파악하는 연습을 해보자 하는 생각도 가져보았고 아직 대학생 신분인 필자는 실제 실무에서 기획자와 개발자가 

서로 어떻게 소통하는지를 모르기 때문에 이 기회를 살려서 똑같을 수는 없을지여도 최대한 비슷하게 경험해 보자 하는 마인드로 1번 순서에 대해서 파고들게 되었습니다 , 교수님이 어떤 의도를 가지고 이런 기능을 요구하였고 어떤 상황에 의해서 이 기능이 필요한지를 스스로 인지하고 판단하는 데에는 꽤 오랜 시간을 보냈습니다. 

 

처음 겪어보는 과정이기도 하고 처음 격 어보는 과정에서 무수히 많은 생각이 스쳐 지나갔기 때문에 그 생각을 정리하고

효율적으로 프로젝트에 녹일 수 있는 방법을 고민하다 보니 시간이 많이 걸린것 같습니다.

 

20개 정도 되는 큰 기능들을 순차적으로 분석하고 요구사항에 대해서 이해하려고 노력을 하다보니 어느새 기획의도를 파악하는 데에 있어서 어려움이 있었지만 같이 진행하는 동료들에게 서로 질문을 하면서 해결해 나갔습니다.

 

예를 들어 

 

"이 기능을 요구하였을 때 뭐 때문에 교수님께서 요구를 하셨고 이 기능이 있음에 있어서 프로그램에 이득이 되는 부분이 뭐고 사용자들이 사용했을 때 어떤 이로운 점이 작용할 수 있을까?"

 

라는 주제를 가지고 여러 명에게 물어보며 대답을 얻고 그 대답을 다시 되물어보면서 "왜?"라는 꼬리표를 돌고 돌며 나 혼자 생각하는 게 아닌 많은 사람들의 생각을 빌릴 수 있어서 여러 가지 고민들을 위와 같은 방법들로 해결해나가다 보니 어렵지 않게 문제점들을 해결할 수 있었습니다. 

 

다음단계인 DB설계 

 

출처(https://www.facebook.com/OracleKorea/)

데이터베이스는 오라클을 사용하였는데요? 평소에는 Mysql을 사용하다가 학교에서 오라클을 사용한다고 하여 교수님께 승인을 받은 후 서버를 사용할 수 있게 되었습니다. 언제 대학생이 또 오라클을 사용해 볼 수 있겠습니까?

 

그래서 바로 오라클에 대한 기본 개념을 구글링 하여 공부를 하였는데 기초적인 개념은 Mysql을 일전에 사용해 보아서

그런지 유사한 점이 많아 사용에는 힘든 점이 없었습니다. 

 

그래도 어떤 공부를 어떻게 했는지는 다른 분들이 알 수 있게 링크 남겨 드리겠습니다.

 

[Oracle] 오라클 INSERT문(삽입) 사용법 & 예제

테이블에 데이터를 입력할때는 INSERT문을 사용합니다. 기본 사용법은 아래와 같습니다.  INSERT문 기본 형태 INSERT INTO 테이블명 ( 컬럼1, 컬럼2, 컬럼3, ) VALUES ( 값1, 값2, 값3 ) 가장 기본적인 형태의

coding-factory.tistory.com

여러 가지 블로그를 돌아보았지만 위 3개의 블로그에서 가장 많은 정보를 얻을 수 있었습니다.

 

위 블로그들 등 등의 정보로 어떤 데이터가 필요하고를 분석하며 테이블을 아래와 같이 설계하였습니다.

학생관리 테이블

 

현장실습 관리 테이블

 

신청자 관리테이블

 

다음은 화면구상 단계입니다.

 

화면 구상은 교수님이 요청해 준 기능에 대해서 기획단계의 정보를 토대로 어떻게 화면을 구상해야 하는지 고민을 했었는데 구글링 하면서 어떤 화면이 어떻게 동작되는지 업무적으로 잘 파악되지 못하다 보니 엄청 힘들었습니다.

 

그래서 원래 웹 개발이 전공이었던 필자는 C# 개발에 도전을 해보면서 웹 개발 화면 구상으로 C#에 접근해 보려고

시도하였습니다. 버튼 하나를 누르면 새로운 페이지가 나타나면서 해당 페이지에서 특정 액션을 취한 후 다시 

본 페이지로 넘어가 데이터를 처리해 주는 방법론을 적용시켜 보았습니다.

 

화면 구상을 진행하면서 웹 개발과 C# 프로그래밍이 확연히 다른 점을 느꼈고 어떤 점이 다르냐에 대답하자면

 

보통 윈도 프로그램은 기업과 같은 곳에서 대량의 작업을 할 수 있게 작업하는 프로그램인 만큼 

 

간결하게 사용자로 하여금 불필요한 액션을 최소한으로 하고 대량의 작업을 피로감 없이 진행할 수 있게

하기 위해서 한 화면에서 한 액션으로 일을  마무리할 수 있게 제작된 프로그램이라고 스스로 정의하고 있습니다.

 

그리고 웹은 c#과 반대로 대량의 데이터 처리가 아닌 간결한 데이터를 처리해 주는 업무를 하기 위해 만들어지는 

서비스가 대다수라고 생각하고 있기에 페이지 이동이 많으며 대부분 단순한 작업을 하기에 용의 한 서비스로

스스로 정의하고 있습니다. 

 

대표적으로 현장실습에 신청한 인원이 누구이고 어떤 현장실습에 누가 신청했고 신청을 받아들여줄지 반려할지

결정할 수 있는 화면입니다. 

현장실습 신청 승인 화면

 

다음은 전체 실습생이 어떤 학생들이 있는지 인적사항을 조회할 수 있는 화면입니다.

전체 학생 조회

 

 

웹 화면 구성(학생이용 버전)

 

현장실습 신청 페이지

마지막 기능구현 단계에서는 초기 기획단계와 화면 설계 단계에서 겪었던 부분들과 생각했던 부분 들고 단순 기술적인 문제는 그렇게 없었고 업무적인 문제에서 조금의 어려운 점이 있어서 교수님들에게 여쭈어보며 풀어볼 수 있었습니다.

 

프로젝트를 진행하면서 여러 가지 어려운 점이 있었습니다.

 

예를 드러 근태 코드라는 것을 관리할 때 PK가 걸려있는 사용중인 출근 코드가 존재하는데

 

그 코드를 삭제하고자 할때 어떻게 해결해야 할지를 많이 고민했었습니다.

 

최소한으로 너무 복잡하지 않는 방법으로 어떻게 해결할 수 있을까 고민을 했을 때 최선의 방법은

 

기존의 PK는 그대로 놔두고 C#에서 DataGridView에서 히든 키값을 불러와 그 히든 키 값을 기준으로

 

코드의 상태가 바뀔 때마다 Update 해주면서 실시간으로 상태관리를 해주고 해결하는 식으로 이슈를 해결해 보았습니다.

 

회고록을 처음 작성하면서 서투른 글이지만 앞으로 프로젝트를 마무리하고 회고록을 하나씩 작성해 볼 예정입니다.

 

이번 회고록은 이렇게 마치고 다음글에서 다시 인사드리겠습니다.

 

 

반응형

'Mylife' 카테고리의 다른 글

입사 1개월  (0) 2023.04.14
퇴사.. 그리고 새로운 입사  (0) 2023.03.15
코로나 바이러스 나에게도 찾아오다.  (0) 2022.03.08
게으른 개발자 문호  (0) 2020.10.17
생에 첫 "블로그"  (0) 2020.01.09
profile

기록 , 그리고 습관

@무노문호

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!