오늘은 S3-Week1 : 환경과 관계형 데이터베이스
- Sprint Challenge 하는 날이었다.
배운 것
- 이전에
Day Difference
구할 때 Cast까지 해서 했었다. year difference
는 복잡하게 뭐 할 것 없이 그냥 두 날짜를 빼기만 하면 나왔다. 그리고 cast는 찾아보니 표현식을 변환해주는 함수에 불과했다. 어떤 결과를 뽑고 싶냐에 따라 쓰임을 달리한다고 기억하면 될 것 같다.
push
할 때 개인 원격 레포에 하고 있는게 맞는지 실수하기 쉬우므로 잘 확인해야 한다고 한다. (만약 서비스되고 있는 곳에 바로 적용하면 문제 생길 수 있으므로!)
- 문제 방지를 위해 보통은 프로젝트 팀 레포에 바로 적용할 수 있는 PR 권한을 주지는 않는다고 한다. 코드를 짜면 동료들이 코드 리뷰를 해주고, 문제가 없을 때 최종적으로 머지를 한다고 함. 기억해두면 좋을 듯
터미널 - Git - Anaconda
의 관계에 대해서 (⭐)
- git이 관리하는 프로젝트 단위는 폴더이다!
- (.git이라는 파일이 숨어있다. 이 파일이 없으면 git을 사용할 수 없다.)
- git과 터미널의 관계는 깊다.
- git과 conda는 서로 영향이 없다..!
- 가상환경을 바꿔도, 이 프로젝트에 필요한 패키지들만 있으면, 이 프로젝트를 실행할 수 있다.
- 터미널과 anaconda는 서로 관계가 없다.
- 워킹 디렉토리를 왔다갔다 하는거랑 가상환경 설정하는 거랑은 관계가 없다는 뜻에서 말하는 것인 듯.
다음 스프린트에서 배울 것에 대해 살짝 맛보기 시간을 가졌다.
- 어떤 데이터가 관계형 데이터 베이스에 저장이 될까요?
- 보기:
1. json 파일, 2. 사진, 3. 동영상, 4. 문자열
- 정답은 4번! (나 이거 틀렸다ㅠㅠ 사진은 URL로 들어가 있는거 생각했었는데, 그건 별도의 공간에 저장된 걸 링크만 따온거잖아!)
- 1-3번은
file server
에 저장된다. USB, NAS 그런 거.
- 1-3번은 반정형/비정형 데이터, 4번은 정형 데이터이다.
- 데이터 레이크 (Data Lake)
- 데이터 웨어하우스 (Data WareHouse)
정형
데이터를 담고 있다. (코스트코 창고 생각하면 된다)
- 보통 회사마다 하나의 데이터 웨어하우스를 가지고 있다고 함.
- 데이터 마트
- 웨어하우스에 모두가 계속 접근하면 비효율적이고 위험할 수 있으니까, 필요한 부분만 모아둔 작은 마트 하나 만들어두는 것으로 생각하면 된다.
- 라면 하나 사러 가려고 코스트코 가지는 않잖아! 비유 생각하면 될 듯
- 이 그림이 위 구성 한 번에 보여주고 있다~
- OLTP / OLAP이 맥락이 다르다고 함.
Online Tranjection Processing / Online Analytic Processing
- 분석을 위한 접근 패턴은 실제 서비스 되고 있는 것과 굉장히 다르다. 그래서 분석을 위한 개별 데이터 베이스를 만들었는데, 그게 바로 데이터 웨어하우스다.
- (만약 개별 데이터 베이스 안 만들고 직접 온라인 운영 데이터에 접근하면 문제가 생길 수도 있으니까!)(OLTP에서 쓰는 데이터베이스는 위 사진의 운영 데이터 부분으로 보면 되겠다.)
- ETL / ELT
- ETL : 서비스 되고 있는 운영 데이터에서 데이터 웨어하우스로 가져오는 것
- ELT : 서비스 운영 데이터 외적인 부분 (그 외 로그)의 기록을 데이터 레이크 형태로 가져와 활용하는 것.
- 오 추가로 찾아봤는데 신기하다https://pearlluck.tistory.com/650
- 진짜 필요에 따라 발전되고 변형되는 도구의 쓰임이 변화를 보는게 엄청 신기하다!
일주일 회고
(Sprint Review 했던 것을 기록해둔다)
| 더 공부하고 싶은 내용:
터미널, git을 좀 더 다양하게 활용해보면서 세계관을 넓힐 필요가 있다.
| 사실 (Fact):
이번 주에는 CLI/가상환경/Git 등의 개발환경과 관계형 데이터베이스 관리 언어인 SQL에 대해 배웠다.
| 느낌 (Feeling):
- 첫 날에는 섹션3의 새로운 시스템에 적응하느라 혼란스러웠다. 하지만 필요한 프로세스를 별도로 정리한 후에는 괜찮아졌다. 빠르게 적응할 수 있었다.
- CLI 중에는 'git clone - add - commit - push - pr ' 이 과정에 대해 공부한 게 제일 재밌고 신기했다. 단순히 'add는 이럴 때, commit은 이럴 때 하세요~' 식으로만 터치하고 넘어갔다면 별로 재미도 없고, 금방 잊어버렸을 것 같다.
- SQL은 몇 년 전에 공부했던 적이 있어 노트 들어갈 때 심리적 장벽이 낮아 다행이었다. '심리적' 장벽이라고 말하는 건, '그때 배웠던 게 전부 다 기억나서 이번에 배우기 수월했어!'라기 보단, '한 번 배워봤으니 모르는 게 나와도 안 쫄려~ 모르는 건 찾아보면 돼!'에 가까웠기 때문이다. 아예 노베이스였다면 좀 힘들었을 것 같긴 하다. (검색했는데 그 안에 모르는 게 또 나오고 또 나오고 .. 할테니. 근데 그런 분들에게 이번 스프린트는 너무 방목형이긴 했던 것 같기도.)
- 연휴에도 매일 조금이라도 공부하고 블로그에 TIL을 남겼는데 이게 또 성취감이 어마어마했다. 이렇게 조금 공부해도 되겠어? 라는 생각 때문에 시작도 못 하는 것보다 조금씩이라도 꾸준히 하는게 더 중요하다는 생각을 다시 한 번 했다. 한 번에 크게보다 작더라도 꾸준히가 더 어렵다.
| 교훈 (Finding):
- 모르는 건 찾아가며 하면 된다. 쫄지 말자. 내 머리 위에서 뛰어다니는 것 같은 사람도 사실 잘 모른다ㅎ
- 작더라도 꾸준히 매일 하자.
| 향후 행동 (Future Action):