코드스테이츠 PMB/데일리 과제

[코드스테이츠 PMB 14기] CGV는 어떻게 데이터 관리를 하고있을까🔎 | W6D1

햄스텅 2022. 9. 28. 19:39

들어가며

 

오늘 과제는 데이터베이스에 관한 주제인데, 어려운 주제인 만큼 나의 배경지식과 구글링을 통해 작성해보도록 하겠다.

먼저, 간단하게 데이터베이스에 관한 용어들을 정리했다.

 

데이터베이스: 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 데이터의 체계적인 집합
데이터베이스의 구성: 데이터 서버(저장되는 곳), DBMS(관리 시스템), SQL(관리하기 위해 사용하는 언어)

 

SQL이란?

: 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다. 

+) 개인적으로 사용했을 때는 데이터를 조회하는 언어로 정말 간편하고 효율적이었다. 배우는 것도 어렵지 않고, 서버를 관리할 때 스키마를 짜는 과정에서도 유용하게 사용할 수 있었다. 

 

NoSQL이란?

: SQL의 단점을 보완하기 위해 등장한 것으로, 관계형 DB와 SQL을 사용하지 않고 데이터를 관리하는 DBMS이다. 

특징으로는 디자인절차가 필요 없고, 개발 주기가 빠르다. 클라우드 서비스에 적합하지만 데이터 간 관계가 중요한 경우에는 적합하지 않다. SQL보다 데이터를 호출했을 때 응답 시간이 느린 편이라 데이터를 보관(적재)하는 경우 적절하다. 


1. 오늘 강의를 바탕으로 관심 있는 프로덕트에서 고객이 할 수 있는 행동에 대한 Flow Chart를 작성해 봅시다.

 

내가 선택한 프로덕트는 CGV이다. 최근 CGV의 데이터분석 직무 채용공고를 본 적이 있는데, 어떤 데이터들을 관리할까, 어떻게 이용하고 있을까 궁금증에 선정해보았다. 

 

 

- Flow chart는 CGV의 가장 우선시 되어야할 기능이자 핵심적인 기능인 영화 예매를 하는 과정을 그려보았다. 

 

CGV Flow Chart

 

- (지금예매) CGV 앱에 처음 접속하면 '빠르고 쉽게 지금 예매' 버튼이 눈에 띈다. 보고 싶은 영화가 명확한 경우 오른쪽 흐름으로 진행되고, 그렇지 않을 경우 메인화면의 예매차트를 통해 영화 선택을 하게 된다. 

 

- (영화 상세페이지) 영화선택을 하면 영화 상세페이지로 이어지게 된다. 영화 탐색 후 극장 탐색까지 완료하면 '지금 예매'로 이어지고 영화나 극장을 선택하지 못하면 이 과정이 반복된다. (플로우 차트가 방대해지는 것을 방지하고자 영화 선택이 우선시되는 경우만 설정했다)


2. 1번에서 선택한 행동 시 UI, 클라이언트, 서버, DB가 각각 어떻게 보이고 작동할지 예상하여 적어봅시다. 

 

1) UI

 

- 오른쪽의 지금 예매 프로세스대로 진행될 때 UI이다. 유저가 선택하게 되는 부분은 강조표시를 했다. 

 

 

- 왼쪽의 프로세스의 경우, '영화 탐색'과 '극장 탐색'이 추가되는데 하단이 그 두 가지 UI이다. 

 

 

2) 클라이언트

 

- 클라이언트란 네트워크가 연결되어있는 서버로부터 정보를 제공받는 컴퓨터를 의미한다. 

 

하지만 용어의 뜻을 봐도 이해가 잘 가지 않아서 잡코리아에서 '클라이언트'를 검색해보았다. 🔎

대부분 '게임 클라이언트 개발'분야가 많았는데, 아마도 게임 서버로부터 유저들의 정보를 제공받는 시스템을 설계하는 것이 아닐까..? 이 부분은 다음 주에 클라이언트에 대해 제대로 공부하고 난 후 다시 생각해봐야겠다. 

 

3) 서버

 

- 서버는 네트워크에서 다른 컴퓨터나 소프트웨어와 같은 클라이언트에게 서비스를 제공하는 컴퓨터이다.

 

예를 들어보면, 우리는 웹 브라우저를 사용해 웹사이트에 접속한다. 이때 웹 브라우저가 '클라이언트'이며, 웹사이트의 콘텐츠가 있는 컴퓨터가 '서버'이다. 나를 대입해보면 매일 크롬이라는 웹 브라우저를 통해 코드 스테이츠 서버에 접속한다. 서버는 클라이언트로부터 요청을 받아야 비로소 처리를 시작하여 서비스를 제공하는데, 내가 크롬을 통해 코드 스테이츠로의 접속을 요청해야 콘텐츠를 볼 수 있는 것이다. 

 

 

그래서 CGV의 서버는 어떤 웹브라우저를 통해 요청이 많이 들어왔는지 알 수 있다. 이런 요청이 너무 많이 들어오면 흔히들 티켓팅을 할 때 쓰는 '서버가 터졌다'라고 말하나 보다. 

 

또한 서버 역할별로 종류도 나뉜다. 

 

 

4) DB

 

- 데이터베이스는 통합되어 관리되는 데이터의 집합체이다. 

 

CGV의 DB에는 당연히 영화와 관련된 데이터가 기록되어 있을 것이다. 유저들이 어느 영화를 언제 많이 보는지에 관한 주문 정보는 가장 중요하고 자주 열람하는 데이터일 테니, 정형 데이터로 저장하기 위해 자체적인 스키마를 통해 형식을 지정했을 것이다. 이렇게 관리한 주문정보에 관한 데이터를 SQL을 통해 필요한 조건을 적용해서 조회하고 데이터 분석을 통해 마케팅이나 전략 등을 기획할 것 같다. 

 

또한 회원가입 시 입력해야 하는 정보들을 생각하면 형식이 존재한다. 이는 회원정보를 편리하게 관리하기 위한 것인데 이 부분은 애초에 스키마를 짤 때 유효성 검사를 통해 이메일에는 한글이 입력될 수 없는 이런 규칙을 적용해 놓았을 것이다. (공공데이터 파일을 모아두기 위한 홈페이지를 생성하는 일을 인턴생활 중에 경험한 적이 있는데, 스키마를 설계하는 기간이 매우 중요하고 길었다. 한 번 스키마를 설계하면 변경이 어렵고, 잘못 설계할 경우 파일 업로드가 되지 않기 때문에 까다로웠던 기억이 있다)

 

NoSQL은 앞서 보관(적재) 해놓는 데이터로 적합하다고 언급했는데, 바로 휴먼고객의 정보가 여기 해당한다. 항상 '왜 굳이 휴먼고객으로 전환되었다고 메일로 알려주는 거지? 그냥 탈퇴하지 않으면 계속 내 정보를 가지고 있는 게 아닌가?'라는 의문이 들었는데 아마도 데이터 저장공간을 위한 것이 아닌가 싶다. CGV의 경우에도 기업 내에서 자체적인 기준을 정해 1년간 활동이 없는 회원의 경우에는 조회하거나 활용할 데이터를 제공하지 않으니 휴먼고객으로 분류하고 보관만 해 놓는 게 아닐까..??

 

마치며

 

오늘 과제는 역대급 뇌피셜..이었다! 내가 모르는 게 수두룩 하는구나를 알고 있었는데 오늘 또 알게 되었다 😱

한 주 동안 열심히 공부해서 이 과제를 디벨롭할 때는 지금보다 나은 결과물을 도출할 수 있었으면 좋겠다. 

 

참고

 

https://lipcoder.tistory.com/514

 

[서버 가이드북] 1. 서버(Server) 란?

서버 '서버'란 도대체 어떤 것일까? 추상적으로 무엇인지는 알고 있겠지만, 우선은 사전적인 정의를 알아보는 것이 필요하겠다.  서버 [Server] 1. 테니스, 탁구, 배구 등 서브를 하는 쪽, 또는 그

lipcoder.tistory.com