220601_TIL

신두다·2022년 6월 1일
0

TIL

목록 보기
30/82

(지방선거 공휴일)

생각해본 것

  • 선거로 쉬는 날을 맞아 미루어두었던 김영하 작가의 작별인사를 읽었다. 중간에 요즘 배우는 것과 관련하여 생각해볼만한 대목이 있었다. '내일 아침노을의 모양을 수학적으로 정확하게 계산할 수 있냐'는 물음을 받은 한 수학자의 답이다.

    "... 충분한 데이터, 그러니까 정말로 충분한 데이터가 주어진다면 어느 정도는 가능하겠지만 설령 그렇다 해도 내일 아침까지는 너무 많은 변수가 있어서 노을이 정확히 무슨 색일지, 어떤 모양일지를 수학적으로 모델링하는 건 사실상 불가능하단다. ... 예측할 필요가 없어서일 수도 있어. 노을 같은 무해하고 장엄한 카오스는 그냥 감상하면 그만이야. 뭐하러 예측을 하겠어? 노을이 우릴 죽이는 것도 아닌데."

  • '노을이 우릴 죽일 것도 아닌데 뭐하러 그 모양을 예측하려고 하냐, 노을 같은 무해하고 장엄한 카오스는 그냥 감상하면 그만이다'고 말하는 걸 보면서, 내가 앞으로 데이터를 통해 확인하고, 또 예측하고 싶은 건 무엇이 될 것이며, 어떤 관점으로 현상을 바라봐야 할지 곰곰히 생각해보게 되었다. 무해한 것은 예측할 필요가 없다는 수학자의 말은 맞을까? 그럼 '유익한 것'은 어떤가?
  • '나한테 무해한가? or 나한테 유익한가?' 둘 중 어느 관점으로 현상을, 사물을, 데이터를 보느냐에 따라 참 많은 것이 달라질 것 같다는 생각이 든다. 회사도 사실은 '생존의 문제'와 '전략의 문제' 사이에서 내가 처한 상황이 어떤 부류의 문제인지 제대로 된 판단을 내려야 하지 않나. 흔히 생존의 문제는 충분히 고민하여 결정을 내리고, 전략의 문제는 빠르게 결정하고 실행하라는 말이 있다. 이와 비슷하게 신중한 판단이 필요한 상황에서 '나에게 무해하니 예측할 필요가 없다'고 단정하는 것은 치명적인 결정이 될 수도 있는 것이다.
  • 짧게 생각해서 잘 정리하기 쉬운 문제는 아닌 것 같다. 암튼 아무 상관없는 책을 읽다가도 '예측'이란 단어를 보고 이런 생각들로까지 이어지다니.. 재밌구만?

배운 것

  • The Basics of Database Normalization
    • Normalization: database에서 데이터를 효과적으로 정리(organize)하는 프로세스이다. 아래 두 가지 목적이 있다.
    • redundant(중복의) data를 제거하는 것. (예를 들어 같은 데이터가 여러 테이블에 중복해서 있음)
    • ensuring data dependencies (데이터 종속성) make sense.
      • 데이터 종속성이란 말이 뭘까 해서 찾아봤다. 보통은 프로그램의 구조가 데이터의 구조에 영향을 받는 것을 말하는 것 같다. 즉, 데이터 구조나 접근방식 등이 변경되면 이걸 기초로 한 프로그램도 같이 변경해야 하는데 이걸 프로그램 종속성이라고 하며, DB는 independency(독립성)을 띈다는 측면에서 DB의 필요성을 설명할 때 함께 나오는 용어인 것 같다.
      • 근데 위 글에서는 좀 다른 의미로 쓴 것 같다. only storing related data in a table이라고 예시를 든 것 보면.
    • 가장 기본적인 형태인 1NF(1st Normal Form)부터 5NF까지 소개하고 있다. (5NF는 매우 드물다고 함)
    • Normalize의 필요성에 대해서는, 케바케인 것 같다. 위 글에서도 좋은 아이디어긴 하지만, 'absolute requirement'는 아니며, 때로는 고의적으로 이 룰들을 violating하기도 한단다.
    • 암튼 개인적인으로는 고의로 침해하는 건 예외적인 상황일 것 같고, 1NF~4NF까지를 효율적이고 깔끔한 DB 만들기 위한 Checklist? 같이 여기고 참고하면 좋을 것 같다는 생각이 들었다.
profile
B2B SaaS 회사에서 Data Analyst로 일하고 있습니다.

0개의 댓글