-
[FEPL05 / TIL] Day 07 - 데이터를 모델링해보자 (feat. 정처기)Study (etc)/멋쟁이사자처럼 FEPL_05 2025. 6. 26. 00:12
오늘 강의 내 모습 요약 ✏️ 오늘 배운 것
Database
- 데이터베이스에 저장되는 것
- 관리하는 데이터와 로그 데이터
- 빅데이터는 로그 데이터다
- 로그 데이터는 NoSQL 혹은 txt 파일로 저장한다
- 빅데이터는 로그 데이터다
데이터 모델링 과정
- Concept Design -> Logical Design -> Physical Design
System (시스템)
- 업무 시스템과 관리 시스템
- 업무 시스템
- 역할자
- Logical Design
- 업무 시스템에서 엔티티 추출하기 (데이터베이스에 저장할 데이터 분류하기)
🙂↕️ 이미 알고 있던 것
Database의 정의
💡 여러 사람이 공유하고 사용할 목적으로 통합 및 관리되는 정보의 모음
그런데, 전자적으로 저장되고 체계적으로 조직된 데이터의 집합.
주로 DBMS를 통해 활용된다.
주요 특징
- 데이터의 중복 최소화, 일관성, 무결성, 보안성 유지
- DBMS를 통해 데이터를 CRUD 할 수 있음.
- 여러 사용자가 동시에 데이터에 접근 및 공유 가능, 실시간으로 데이터의 추가, 삭제, 수정이 이루어짐.
데이터 모델링 과정
아, 이건 지겹고도 지겨운 정보처리기사 공부를 하다보면, 진짜 진절머리가 나도록 공부하는 부분이다.
개념적 설계 ➡️ 논리적 설계 (정규화) ➡️ 물리적 설계
개념적 설계
- 업무적인 흐름에서 DB에 저장할 데이터를 선별하는 과정
논리적 설계
- 엔티티와 릴레이션을 관계형 데이터베이스의 테이블 형태로 사상시키는 과정
물리적 설계
- 논리적 설계의 결과물을 특정 DBMS 제품의 테이블 형태로 변환하는 과정
💡 새로 알게된 것
관리하는 데이터와 로그 데이터
관리되는 데이터 (Managed Data)와 로그 데이터 (Log Data)에 대해서는 강사님께서 간단하게 짚고 넘어가신 고로, Perflexity의 힘을 빌려 요약본을 정리해본다.
Managed Data
- 조직의 핵심 업무를 위해 체계적으로 구조화되어 DBMS 등으로 관리되는 데이터
- 주로 RDBMS에 저장됨
- 명확한 스키마 (테이블, 필드 등)으로 구조화
- 트랙잭션을 처리하는 등 핵심 업무에 활용됨
- MySQL, Oracle 등 DBMS를 통해 관리된다.
Log Data
- 시스템, 서비스, 애플리케이션 등에서 발생하는 이벤트 기록 데이터
- NoSQL, txt, log 등 다양한 방식으로 저장됨
- 정형화된 구조를 갖지 않음
- 대량의 실시간 & 배치 기록, 빠른 저장과 검색, 확장성
- 장애 분석, 감사, 사용자 행동 분석, 보안 이슈 추적 등에 활용
- NoSQL, 파일 시스템, 클라우드 저장소 등을 통해 관리
💡 로그 데이터는 대량, 고속, 다양한 형태로 생성되기에 빅데이터 분석의 주요 소스가 된다.
System이란?
💡 하나 이상의 특정 목적을 달성하기 위해 구성요소들이 상호 작용하고 명확한 관계로 유기적으로 연결되어 있는 집합체.
구성요소 : 사람, 장비, 소프트웨어, 데이터 등 다양한 요소로 구성 가능 ➡️ 전체로서의 기능 수행
강사님이 시스템이 무엇인지에 대해 팀원들과 토의해볼 수 있는 시간을 주셨는데, 우리 팀은 이 시스템을 '조별과제'에 빗대어 표현하기로 의견을 모았다. 조별과제도 '과제물' 이라는 특정 목적을 달성하기 위해 '팀원'이라는 사람 형태의 구성요소들이 '회의' 등으로 상호 작용하고 '팀'이라는 명확한 관계로 유기적으로 연결되어 과제라는 기능을 수행하기 때문에 비유하기에 적당해보였다.
강사님도 아주 명확한 설명이라고 칭찬해주셔서 기분이 아주 좋았다 👍
업무 시스템과 관리 시스템
업무 시스템 (Business System)
- 조직의 주요 업무 (주문, 생산, 회계) 를 처리하는 시스템
- 업무 프로세스 자동화, 효율적 처리, 서비스 제공에 목적을 둠
- e.g. ERP, POS 등
관리 시스템 (Management System)
- 조직의 자원을 효율적으로 관리, 통제 하는 시스템
- 자원 배분, 감시, 통제, 최적화, 의사 결정 지원
- e.g. HRM, DBMS 등
업무 시스템과 관리 시스템
강의에서 사용된 식당의 시스템을 예로 들어 데이터베이스에 저장할 수 있는 정규화된 데이터로 모델링하기 위한 첫 단계, 개념적 설계의 이미지이다. (편의상 키오스크가 있음을 가정한다)
이 시스템을 '역할자'와 역할자가 할 수 있는 '행위'로 구분한 이미지는 아래와 같다.
식당 시스템의 '역할자 (이하 '액터')'
- 웨이터 : 음식의 서빙을 담당함
- 손님 : 메뉴를 조회하고, 주문하며, 식사하고, 결제함
- 요리사 : 메뉴를 키오스크에 등록하고, 주문이 들어오면 요리한다.
식당 시스템이 수행하는 '행위(기능)'
- 메뉴 등록 : 키오스크에 식당에서 판매할 음식의 메뉴들을 등록하는 기능
- 요리 : 주문이 들어온 요리를 조리하는 기능
- 주문 : 메뉴를 확인하여 메뉴를 주문하는 기능
- 조회 : 키오스크의 메뉴를 조회하는 기능
- 식사 : 음식을 먹는 기능
- 서빙 : 조리된 음식을 손님에게 제공하는 기능
- 결제 : 식사를 마친 고객이 음식에 대한 값을 지불하는 기능
개념적 설계가 완료된 식당 시스템에 대해 논리적 설계를 마친 뒤의 모습은 아래와 같다.
사각형은 키 = 테이블 = 엔티티이다. DB에 테이블로 저장할 수 있는 정보를 말한다.
마름모는 키 사이에서 일어나는 관계 = 릴레이션이다.
🤔 아직 모르는 것
아직 개념적 설계, 논리적 설계의 경험이 부족해
분명히 대학교에서 데이터베이스나 정보 시스템에 대한 강의를 들었을 때 시스템에서 엔티티로 저장할 수 있는 것들, 그리고 그 사이의 관계를 분류하여 개념적, 논리적 설계를 수 년이나 해온 것 같은데, 주 분야가 아니어서 그런가 아직 스스로는 명확히 구분할 수가 없었다. 내가 구분한 것에 잇달아 달리는 물음표...
하지만, 멋사 부트캠프를 수강하며 두 차례의 팀 프로젝트 기간동안 직접 어떠한 시스템에 대해서 데이터 모델링을 해야하니, 그때 팀원들과 그리고 강사님의 조언을 구해 모델링을 하다보면 시스템의 모델링을 잘 해낼 수 있지 않을까 하는 기대가 있다.
(근데,,, 어떤 시스템을 구현해야하지?)
💭 느낀 점
오늘은 정말 앞의 빔 프로젝터 화면은 화면이오... 강사님의 말은 말이오... 하면서 멍하니 있었던 시간이 종종 있었다. 늘 일상 속에서 '시스템' 이라는 표현을 사용해왔지만, 정확히 시스템이 무엇인지 이야기할 수도 없었고, 그 시스템을 소프트웨어로 구현하기 위해 고민해 본 적조차 없으니 내용을 이해하기엔 벅차고 시간은 더디게 가는 하루였다.
그리고, 벌써 3번째 날 지긋지긋하게 괴롭히는 정보처리기사 실기.
그래도 세 번째 씩이나 공부를 하다보니 도움이 아예 안되는 국가기술자격증이라는 사실을 깨닫는다. 프로그래밍 언어 활용의 쓰잘데기 없는 포인터 남발, 무지성 클래스 상속 같은 원론적인 지식에 대해 묻는 문제들을 제외하고, 정보시스템에 대한 파트는 개발자로 커리어를 쌓아가는 데에 있어서 반드시 필요하구나~ 하는 것을 체감했다.
대학에서도 같은 내용의 수업을 더러 들었는데, 그때는 과제를 하기에 급급해서 깊이 이해할 생각을 안 했는데, 막상 취업을 목표로 부트캠프를 듣다보니 오늘이 마지막이라는 심정으로 수업을 듣게 된다고 할까.
처음 부트캠프를 시작한 지난 주에 비해 이번 주는 시간이 참 빠르다...
'Study (etc) > 멋쟁이사자처럼 FEPL_05' 카테고리의 다른 글
[FEPL05 / TIL] Day 06 - Next.js 기초 (0) 2025.06.25 [FEPL05 / TIL] Day 05 - TypeScript 기초 (2) 2025.06.23