DB강의
데이터는 최소한의 정보만 수집하는게 좋다.
정말로 내 앱을 만드는데 있어서 필요한 최소한의 정보만을 수집하는게 좋다.
모든 정보를 수집하는건 불가능하다.
데이터베이스는 데이터를 많이 모아놓은 저장소를 가리킨다.
데이터를 가공한 정보를 information이라 한다.
데이터에서 유의미한 정보를 얻어내는걸 인포메이션이라 한다.
인포메이션을 가지고 다시 지식(knowledge)를 추출할 수 있다.
인간이 원하는 궁극적 정보는 wisdom이라 한다.
wisdom은 의사결정을 하는데 도움이 되는 정보이다.
데이터가 있어야 wisdom을 만드는데 이때 데이터를 저장하는 장소가 데이터베이스라고 한다.
dbms(database management system)
SQL = 시퀄
데이터베이스를 사용하는걸 관계형 DB라 한다.
관계형 DB는 데이터 간의 관계를 맺는걸 뜻한다.
10년전에는 관계형 DB만 있었는데 지금은 관계형이 아닌 DB도 있다.
NoSQL = 관계형 DB가 아닌 DB를 지칭한다. 대표적으로 몽고 디비이다.
국제적 표준은 SQL이라 부른다.(시퀼은 표준이 아님 하지만 No시퀼이라 한다.)
관계형 디비를 꼭 써야하는 경우는 트랜잭션을 적용해야 할때 사용한다.
주로 은행권이나 쇼핑몰에 ACID를 적용해야한떄
은행이라도 모든것을 오라클로 처리하는게 아니라 돈에 관련되지 않은 것은 유닉스나 메인프레임을 사용한다.
카카오뱅크도 돈에 관해선 오라클을 사용한다. 다른 것은 MySQL로 사용
ORM (Object Relationshop Mapping) - SQL을 안써도 알아서 해준다.
단점은 내마음대로 SQL을 쓰지 못하니까 성능에 문제가 생길수도 있다.
## 3tier
사용자 – URL.HTTP –> WEB SERVER (Apache, NGinx)
———————————-|
——————————-WAS
———————————-|
——————————–DB
web server - was - db (3 tier)
web server 의 인바운드는 전 세계가 대상, was web server의 아웃바운드는 WAS db는 was에만 열어놓는다.(아웃바운드를 was만)
점프 호스트 = 개발서버(베스천 서버)
개발을 위해 접속 서버를 뚥어놓는다.
WEB WAS DB 는 서버를 나눠 놓는다. (안되면 최소한 DB는 따로 서버를 구성해야한다.)
DB는 최소한 백업서버를 만들어 놔야 디비서버가 깨졌을때 복구가능
비동기 복제?
디비 이중화를 해야한다.(프라이머리 디비, 스탠바이 디비)
프라이머리 디비에 데이터가 들어오면 비동기로 스텐바이 디비에 저장을 한다.
롤백을 하기 위해서는 시스템을 만들 때 롤백을 위한 시스템으로 개발해야 한다.
하수는 백업만한다.(복구를 위한 훈련을 하지않는다. 평소에 restore을 위한 연습을 계속 해야한다.)
시나리오를 짤때
그냥 HTTP 통신은 HTML파일이 있고
REST API는 데이터가 들어있다(json등등).
예전에는 모든 데이터를 html파일이 가지고있고 스크롤할때마다 보여주는 부분을 갱신햇는데
지금은 일부의 데이터를 보여주고 스크롤을 하다가 데이터를 받으면서 보여준다.
서비스를 제공해주는게 서버
클라이언트는 사용자
물리머신은 호스트라 칭해야한다.
서버는 호스트안에 들어가는 소프트웨어
디비에서 null은 아직 값이 정해지지 않은 상태를 말한다. (디비가 모른다.)
설치과정
- EC2-Client mysql 설치
- 설정(UTF-8, bind <- 외부접속, sg수정(시큐리티그룹)
- 외부 사용자/ 디비 생성 권한 부여
CRUD란?
CREATE RETRIVER(검색?) Update Delete
잡지식
www를 만든 사람 팀버너스리
팀버너스리는 제녹스에서 일한다.
제녹스는 현대 컴퓨터의 모든 것을 만들어냈다.(마우스, GUI 등등)
객체지향언어는 GUI를 구현하기위해 만들어졌다.
URL = 문서하나의 위치
트래비스 깃허브 코딩인터뷰 완전 분석 leed code
Comments