설계라는것은 엄청난 것이라는 생각이 든다.
왜냐하면 창조적인 본능과 연계된 것으로
지구에서 눈에 보이는 것중에 인간만이 할 수 있기 때문이다.
여태까지는 도구를 쓴 부분만 생각했는데
그것보다 더 중요한 것이 설계능력이다.
자연에 이미 있는 것을 활용하는 것 말고...
설계를 통한 도구의 발전..
다시 말하면 기술의 발전은
인류의 삶을 혁신적이고 창조적으로 발전시켜왔기 때문이다.
1900년대초에 식략난을 걱정했던 경제학자들은...
기술의 발전으로 농업의 대량생산을 예상하지 못했다.
결국 인류의 수많은 문제를 해결한 것은 인간의 기술력인 것이다.
이런 측면에서 설계를 문제해결의 시각으로 생각하고 보려고 한다.
정보화시대이후 초연결시대에,
초연결된 사회에서 정보를 교류하고 융합하는 시점에서...
IT는 참 효율적이고 생산적인 도구가 된다.
왜냐하면 학사관리 시스템을 예로 들어 생각해 보겠다.
학사관리 시스템을 구축해놓으면...
과거에 했던것처럼 해당 학교에 방문하지 않고
인터넷으로 신속하게 수강신청을 할수 있다.
결국 대학을 예로 들어서 대학에서
학생이 수강신청을 하고 수업을 듣는 일련의 과정의
시초에 있어서 참으로 간단하고 신속하고 동시다발적으로
한방에 과정을 단순하고 신속하게 해결할 수 있는 것이다.
그리고 인기강의 같은 것은 보통...
학생들이 몰려.. 수강신청이 어려워서..
과거에 보면 매크로를 돌려서 신청하는 것을 듣기도 했는데...
이런 인기강의에 있어서 물리적인 환경의 제약에서 벗어나
디지털 세계에서 기술적 제약으로 순식간에 해결해 버릴 수 있는 것이다.
간단하게 생각하면,
학사관리 시스템을 구축하면 학교에 2가지 큰 이점이 있다.
1. 학사관리 시스템으로 인해서 수강신청 작업에 필요한 단순반복작업을 순식간에 해결할 수 있다.
2. 인기강의 등에 몰려 물리적인 공간에서 벌어지는 시간낭비를 순식간에 해결할 수 있다.
간단히만 생각해보아도 이 두가지는 학교 측면에서 노동력과 공간비용을 크게 절약하고 효율적으로 활용할 수 있다.
이러한 IT기술의 생산성 때문에 디지털화가 시작되었다고 한다해도 이상할 것이 전혀 없다.
서론이 길었지만,
이런 디지털화에 있어서
DB설계작업을 바라보니 조금 새롭게 보인다.
요구사항 분석이라는 것은 결국
학교라는 기관에게 제공할수 있는 서비스인 것이다.
그 서비스를 제공하기 위해서,
데이터를 저장하고 관리하는 DB설계를 해야한다.
학교에서 일어나는 수강신청은 기본적으로 대학에 학과가 있고 교수가 있고 그 학과에 학생이 입학함으로써 시작된다.
즉 학생,교수,학과는 간단한 엔터티인 것이다.
간단한 속성을 가지고 있다.
그래서 관계적인 면에서 학과에 속한 학생이 교수가 개설한 과목에
수강신청을 할때 수강신청 점수가 나오고 결과가 나온다.
이것이 바로 추상의 개념적 모델링을 어느정도 완성한 것이다.
자 그렇다면...
이제 논리적 모델링으로 가는데
보통 이 N:M의 복잡한 관계가 비즈니스 코드가 된다는 것을 알수 있다.
바로 이 수강신청이라는 핵심기능 말이다.
이 개념을 좀더 논리적으로 보기 쉽게 하면
아래와 같을 것이다.
학과는 학생,교수와 1:N의 관계를 가지고
교수가 개설 한 과목도 1:N의 관계를 가진다.
학생도 수강이 1:N의 관계고
과목도 수강이 1:N의 관계인데
여기서 비즈니스 코드가 나타날 수강자체는
학생과 과목사이에서 M:N의 관계가 나타난다
학생도 수강을 여러개 하고,
수강할수 있는 과목도 여러개가 되기 때문에,
여러 학생이 여러과목을 듣는것이다.
이제 이것을 DB로 물리적으로 만들기 위한 테이블정의서를 만들고,
스크립트로 스키마 데이터베이스와 테이블을 만들고,
비즈니스 로직을 구현하는 것이다.
요즘 비즈니스 로직은 tdd로 한다하니
자 tdd를 달려보자~!
'4차산업혁명의 일꾼 > 웹개발' 카테고리의 다른 글
tdd 맨땅에 해딩하기.. (0) | 2024.02.11 |
---|---|
제이쿼리 기초 복습과 데이터의 호출에서 관리로 (6) | 2024.02.10 |
인텔리제이 생산성 연구 (5) | 2024.02.08 |
컴퓨터공학과 학생을 하면서 반드시 얻어야 할 학생혜택 (2) | 2024.02.07 |
윈도우 mysql 재설치 오류 해결 (2) | 2024.02.07 |