System ERD[Ver1]

IRISH·2023년 12월 11일

ERD

목록 보기
1/1
post-thumbnail

ERD를 그리게 된 배경

  • 입사 이후, 내가 배치된 팀은 신생팀이었고, 나 포함 3명으로 구성
    • 조직도 : 팀장님 / 신입 개발자 : 2명(여기에 내가 포함)
    • 다른 팀은 최소 6명에서 최대 10명 정도
  • 내 팀이 개발하는 프로젝트는 내부 시스템이었음
    • 문제는 내부 시스템을 설계하기에는 1차적으로 만들어야 하는 결과 기간이 별로 오래 주지 않았음
  • 따라서, 시스템 개발에 필요한 설계 문서를 완벽하게 할 수 없었기에 최소한의 문서를 갖고 개발을 진행하기로 함
    • 실질적으로 ERD 등은 시스템 또는 DB 설계자나 어느 정도 연차가 있는 분이 하는 것이 맞지만….
      • 팀장님은 영업 출신이고, 개발자는 나와 또다른 신입 개발자만 존재
  • 최종적으로 팀 내부 회의를 거쳐 ERD를 내가 거치게 됨
    • 23년 11월 28~30일까지 ERD 작성

ERD 공부하기

  • 어떻게 했나
    • 전공이 소프트웨어전공이기 때문에, 학교에서 배운 지식은 있으나….
      • 2년 전이기도 했고, 학교 과제 및 시험용 ERD와 회사 시스템급 ERD는 매우 다르므로… ㅎ
    • 다행히 팀 내에 프리랜서로 1주일에 1번 정도 오는 분이 있었는데, 이 분한테 배우게 됨
  • 무엇을 배웠나
    • 정규화 과정
    • 비정규화의 이유
      • JOIN을 거는 것보다 비용적인 절약이 필요할 때
      • 참조하는 속성의 값이 변경되는 것을 방지해야 할 때
        • 예를 들어, 배달앱의 고객 테이블에서의 고객의 주소가 A라고 했을 경우 A에서 주문을 N건 했으면, 주문 테이블에서 N건 모두 주소 A가 찍혀야 할 것이다. 그런데 해당 고객의 주소가 B로 변동되면 고객 테이블의 주소 속성값이 B로 변동되더라도, 그전에 주문한 것들은 그대로 A로 나와야 할 것이다.
    • 기본키 + 순번(번호)
      • 만약, 리뷰라는 테이블이 있다고 가정할 때 한 리뷰에 대해서 이미지가 여러장 들어갈 수 있다고 가정 (리뷰 테이블의 기본키 : ‘리뷰번호’)
        • 이럴 경우, 리뷰 테이블에 몇 장의 이미지가 들어갈 줄 모르기 때문에 이미지에 대한 속성을 리뷰 테이블에는 정립 불가
        • 따라서, 리뷰 이미지 테이블의 기본키를 ‘리뷰번호’ & ‘리뷰이미지번호’로 하면 된다!

ERD

⇒ 위에서 배운 지식들과 개인적으로 실습한 ERD를 토대로, 개발 시스템의 ERD를 그림

⇒ 참고로, ‘ㅇㅇ파일’ 테이블을 보면 독립적으로 작동하는 것을 알 수 있음

  • 실제 시스템에서는 파일 기능을 별도로 구현한 것으로 작동되기 때문에, 별도로 ERD 작성

01. 사원 ERD

  • 사원은 사원번호(=사번) 체계로 돌아감
  • 이것을 토대로, [주간업무보고 / 동호회 / 경영층 지시사항] 등을 작성
  • 추후에, [차량 관리 / 일정관리] 등의 테이블에도 FK로 사번 사용 예정

02. 프로젝트 ERD 및 파이프라인 ERD

⇒ 프로젝트 ERD

⇒ 파이프라인 ERD

  • 프로젝트 및 파이프라인 ERD는 회사 Workflow와 관련된 부분이기 때문에 상세한 내용은 기재할 수 없음
  • 간략하게 하면, 파이프라인을 통해 수주가 되면 그제서야 프로젝트로 진행됨

피드백

시스템 자체는 초기 단계이기 때문에 ERD가 그렇게 많지는 않았다.

추후에 시스템 테이블 / 메뉴 화면 등이 많이 늘어날 것이라서 ERD가 더 복잡해질 것이다.

문제는 설계 자체를 안하고 Start 했기 때문에, Logical / Physical 등을 정립하지도 못했다는 것이다.

또한, 팀 내부적으로 시스템을 어느 정도 다 만든 이후, 고도화 작업때 본격적인 문서 작업을 들어가기로 해서 이 때서야 제대로 된 ERD를 작업할 수 있을 것 같다.

현재는… 대부분의 테이블을 마스터 테이블로 가서, 정규화가 안 된 상태 ㅠㅠ

(이렇게 되면, 나중에 수정한다고 해도, 해야할 양이 엄청 방대할 것 같다 ㅎㅎㅎ…)

그래도 내 경력(작성일 기준, 경력 4개월차 ㅋㅋㅋ)에 시스템 ERD를 그린 것 치고???는 잘 그린 것을 떠나서, 어찌됐든 해낸 것이 내 스스로 기특하다고 생각한다.

많이 부족한 것을 알았지만, 오랜만에 대학 졸업 이후로 DB 및 ERD를 공부하고, 실무에도 써보게 되어서 신기했고 또 즐거웠다.

다음 고도화 작업에 할 때는 더 많은 테이블도 생긴 상태일 것이고, 또 정규화 및 비정규화 작업도 거쳐야 해서 엄청난 일이 일어날 것 같지만!!!! 그래도, 도전한 것 자체가 값진 것이라 생각한다.

이상 끝!!!!

profile
#Software Engineer #IRISH

0개의 댓글