Fairy ' s

[29. March] 발표 / TIL 본문

Devops Bootcamp

[29. March] 발표 / TIL

berafairy 2023. 3. 29. 16:09

Q 1.

RDBMS에서 스키마 디자인 중 필드값으로 배열을 넣어야 하는 경우가 발생했습니다. 선배 개발자에게 물어보니, 이 경우에는 정규화가 필요하다고 조언해줍니다. 다음은 사용자 정보가 담긴 user 테이블입니다. 사례를 통해 어떻게 테이블을 정규화할 지 고민해보세요.

ID Name Age E-mail Hobby  
1 김코딩 19 kimcoding@aaa.com 코딩  
2 박해커 28 hackerpark@bbb.com 해킹  
3 최고수 18 choigosu@ccc.com [코딩, 해킹] <=== 이 문제를 어떻게 해결할까요?


A.

Hobby의 다중 값 속성을 제거하고 제 2 정규형을 달성하기 위해 테이블을 두 개의 테이블로 분할해야 한다.
정규화를 통해 각 테이블이 중복되지 않고 논리적으로 관련된 데이터만 포함하도록 하게 디자인 되었다.

  • 1번 테이블 : User
User ID Name Age E-mail
1 김코딩 19 kimcoding@aaa.com
2 박해커 28 hackerpark@bbb.com
3 최고수 18 choigosu@ccc.com
  • 2번 테이블 : User_Hobby
Hobby ID Hobby
1 코딩
2 해킹
  • 3번 테이블 : Hobby
User ID Hobby ID
1 1
2 2
3 1
3 2
  • 표 1에는 User 개인에 대한 정보가 포함되어 있다.
  • 표 2에는 User들의 모든 Hobby가 ID로 정리되어 있다.
  • 표 3에는 각 User ID와 Hobby ID가 연결되어 있다.
  • User_Hobby 테이블은 User 테이블과 Hobby 테이블간의 매핑을 담당하는 테이블이다.

Q 2.

배치 작업의 예로는 어떤 것들이 있나요? 거래(트랜잭션), 리포트, 요금 계산은 배치 작업의 대표적인 예입니다. 이 키워드를 사용해 배치 작업을 설명해보세요.


A.

배치 작업이란 유입되는 데이터를 실시간 처리가 아닌 특정량 또는 특정기간 모아서 한번에 처리하는 것이다.

  1. 트랜잭션은 일반적으로 재고 업데이트 또는 급여 처리와 같은 대량의 데이터를 처리하는 데 사용된다. 재고나 급여 같은 경우 스트림 처리처럼 실시간으로 처리하는 데이터가 아닌 대량의 데이터를 모아뒀다가 한번에 처리하기 때문에 배치 작업이라고 할 수 있다.
  2. 리포트는 데이터에 대한 요약을 제공하고, 정기적인 간격의 날짜 별로 생성하여 처리하기 때문에 배치 작업이라고 할 수 있다.
  3. 요금 계산은 한번에 많은 청구서를 처리하는 데에 사용되며 
Comments