Modeling/UML

인프런 - RDBMS Modeling 강의 후기

bluebamus 2023. 7. 9.

간단하게 요약을 먼저 하자면,

초보자들에게는 많이 어려운 강좌다.

이유로, 기본적으로 정규화, 쿼리 작성법, 그 중에서 join에 대한 이해를 하고 있어야 하며 스토어 프로시저가 뭔지 알고 있어야 일단 기본이 되어 있다.

 

나는 ms-sql을 대학교때 이후로 만져본 적이 없다. .net도 마찬가지이다 일단 십년 하고도 한참이 넘어간다.

기본적으로 mysql을 사용하고 개발 언어는 C와 python이 주력이다.

 

그런데 수업에서는 ms-sql과 관련한 관리툴을 사용한다. 예제로 .net을 사용한다.

 

하지만,  ms-sql의 특정 기능을 사용하는게 아니라 보편적인 inner join , left outer join만 사용한다.

 

또한 어느정도 개발을 해봤다면, 특히 C, C++, JAVA, .net 등에서 class, enum, 등을 이해하고 있다면

보고 따라가는데 문제가 없다.

 

해당 강좌는 사전에 모든 준비를 마치고 진행하는 토익, EBS와 같은 전문 강좌가 아니다.

때문에 진행을 하면서 실시간으로 가정을 만들고, 모델링을 하고, 수정을 하고, 버그를 잡는다. 

 

그렇기에 어느정도 개발자라면 이해할만한 요구명세 및 서비스의 분석의 경험치가 낮다면 

왜 이렇게 하는지, 관계가 복잡하게 분류되어 그룹화 되어 나가는지 등의 이해가 어려울 수 있다.

 

나의 경우 size 테이블을 만드는데 있어 왜 sizename이라는 컬럼을 만드는 걸까라는 고민을 잠시 한적이 있었다.

결론으로 여러 품목의 범위 단위의 size를 하나의 테이블로 만드는데 int형이 될 수 없다. 때문에 String으로 정의되는게 맞다는 것이었다. 다만, 네이밍이 헷갈렸고 추가 컬럼이 없었기에 헷갈렸던 것이다.

 

내가 고민했던 이러한 부분은 각자가 상상하고 추론해서 들어야 한다.

 

이제 수업의 수준에 대해 마무리를 하고 모델링 수업에 대해 이야기 하고자 한다.

 

나는 많이 만족 스러웠다. 최근 습관처럼 사용하던 모든 테이블에 더미 PK를 사용했었는데.

과거 대학교에서 배웠던 복합키 기반의 모델링으로 동일한 강사님의 이전 강좌에서 배웠던 정규화를 생각하며

왜 이렇게 하는지에 대해 고민을 해볼 수 있어서 무척 좋았다.

 

실시간으로 요구사항을 만들어 추가해 나가면서 모델이 몇번이나 업데이트 된다.

쪼개지고, 삭제되고, 강의를 하다 고민을 한참 하면서 모니터와 대화를 한다.

 

나 또한 저런 고민을 몇번이나 했었기에 내가 집어내지 못했던 부분들을 고려하는 과정을 보는게 좋은 경험이었다.

 

개발자와 DB 모델링 설계자의 시각적 차이에 대해서도 간간히 설명을 했고

데이터 모델링을 통해 회사에 어떻한 문제를 해결하고 작업의 간소화를 제공할 수 있는지 경험을 토대로한 설명도 좋았다.

 

프로젝트를 이용한 강의를 접하기는 어렵다 그것도 설계/모델링은 더더욱 부족하다.

이전에 메일을 통해 고민하던 문제를 오랫동안 함께 토론해 주시던 강사님이었고,

이번 강좌에서도 질문에 대해 언제든 환영한다는 모습에 감사했다.

 

많은 온라인 강좌가 우후죽순 생기는 지금, 질문에 대한 답변을 하지 않는 강좌 또한 많다.

이에 이러한 강사님의 모습은 학습자에게 너무나도 감사한 일이라 하고 싶다.

 

현재 Django를 주력으로 하고 있었고 ORM을 이용해 모델링을 했다.

차후 프로젝트는 DB 모델링을 먼저 하고 최소의 스토어 프로시저를 적용한

신규 Django 오픈소스 프로젝트를 진행할 예정이다.

 

그 전에 PostgresSQL과 MongoDB를 학습하고 진행할 예정이다.

 

mysql과 redis를 사용해본 내가 어떤 차별점을 배울 수 있는지 기대가 된다.

댓글