TIL - day 10
Day 10
오늘 읽은 범위
에피소드 31 ~ 에피소드 35
책에서 기억하고 싶은 내용을 써보세요
에피소드 31 - 데이터와 단짝 친구, SQL
SQL : 데이터베이스에 어떤 질문 또는 문의를 하기 위해 어떤 구조를 가진 언어 , 데이터베이스를 다루는 언어
DBMS : 데이터베이스를 관리해 줌, MySQL, PostgreSQL, SQLite, Oracle, MariaDB 등
ORM (object relational mapping) : SQL 번역기, 사용자에게 익숙한 프로그래밍 언어로 SQL을 사용할 수 있게 해줌
에피소드 32 - NoSQL이 뭐죠?
도큐먼트 베이스 (document DB)
- 데이터 형식이 매우 자유로움
- 데이터를 JSON 도큐먼트 형태로 저장
- 몽고DB가 대표적인 예
키값 데이터베이스
- 읽고 쓰는 속도가 엄청 빠름
- 한행의 열이 엄청 넓은 데이터베이스
- 카산드라디비(CassandraDB), 다이나모디비(DynamoDB)가 대표적인 예
그래프 데이터베이스
- 노드로 관계를 표현
- 각각 관계망을 연결
- 페이스북에서 사용하는 데이터베이스
에피소드 33 - 깃&깃허브, 똑같은 거냐고?
깃: 파일 이력을 관리하는 프로그램
- 무엇을 기록했는지, 지웠는지, 파일을 이동했는지 등등 모든 것을 기록
- 같은 파일이라도 다른 버전으로 보관할 수 있음
- 같은 파일을 복사해서 각자 컴퓨터에 저장해서 작업한 뒤 다른 사람이 변경한 부분과 내가 변경한 부분을 비교해서 다시 하나로 만들 수 있음 (협업에 유용)
깃허브 : 파일과 깃으로 관리한 이력을 저장하고 공유하는 공간
- 파일 클라우드 서비스와 같음
- 깃허브에 깃 이력을 업로드하는 것을 푸시(push), 내려받는 것을 풀(pull)이라고 함
에피소드 34 - 버전을 표기하는 방법도 있어요?
semVer (시맨틱버저닝, sementic versioning specification)
- 가장 널리 쓰이는 방식
- 숫자 3개로 표시하는 버전 방식
Eg. 4.0.5
첫번째 숫자 : 대규모 업데이트 (프로그램에 엄청난 변화가 있어서 코드를 전체적으로 수정해야하는 경우)
가운데 숫자 : 소규모 업데이트(Eg. 기능 추가 - 리액트에서 리액트 훅이 추가됐을 때)
마지막 숫자 : 패치나 버그 수정
에피소드 35 - 비밀번호는 어떻게 저장될까?
해시함수
- 입력한 값을 무작위 값으로 둔값시켜주는 함수 특징
- 동일한 입력값에 대해 동일한 출력값을 가짐
- 입력값이 아주 살짝만 바뀌어도 출력값은 엄청나게 크게 바뀐다
- 반대로 입력한다고 원래 값이 나오지 않는다
레인보우 테이블
- 해시 함수가 변경한 값을 원래의 값과 연결한 표
- 해시 함수를 통과한 값은 레인보우 테이블에서 찾아보면 원래 값을 알아볼 수 있음
솔트
- 무작위 텍스트
- 무작위 텍스트인 솔트와 입력된 비밀번호를 합쳐서 해시 함수에 통과시키기
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
깃과 깃허브는 같다고 생각해왔었는데, 정확한 뜻을 알게 되어 좋았다.
개발 공부를 하며 API값이나 노출되어서는 안되는 보안 정보들을 어떻게 숨겨야하는지에 대해 궁금증을 가지고 있었는데 비밀번호를 암호화해서 저장하는 여러가지 방법에 대해 알 수 있어서 좋았고, 나중에 프로젝트에 적용해봐야겠다
This post is licensed under CC BY 4.0 by the author.