[TIL 2021.08.04] 데이터베이스 첫걸음과 회사에서 괜찮았던 하루

Kyu·2021년 8월 4일
1

TIL

목록 보기
206/322

데이터베이스 첫걸음

오늘은 78~96페이지까지 읽었다.

오늘 먼저 배운 키워드는 다중화였다.
다중화는 예를들어서 서버 2대가 있을 때, 1대가 터져도 다른 1대가 그것을 대비해서 사용할 수 있다면 그것을 다중화라고 한다. 다른 말로는 고가용성이라고도 한다.

그리고 핵심적으로 배운 것은 아키텍쳐

아키텍쳐란..건축의 구조와 양식을 뜻한다고한다.
이를 컴퓨터로 가져와본다면 충분히 그 의미가 어떤 것인지 짐작이 가능 할 것이다
구체적으로 책에서 빌려 표현한다면

어떤 기능을 가진 서버를 준비하고 어떠한 저장소나 네트워크 기기와 조합해서 시스템 전체를 만들 것인가, 즉 하드웨어와 미들웨어의 구성

을 말한다.

이번에 회사에서 비즈니스 로직이 어떻게 구성되어있는지 코드만 2주동안 살펴본거 같은데 이렇게 구체적으로 코드를 살펴보기전에, AWS를 사용한다길래 전체적으로 어떤 아키텍쳐를 형성하고 있는지 질문을 했었다.

아키텍쳐를 보면 그 시스템이 어떤 용도로 사용되고 무엇을 목적으로 하는지 어느정도 추측을 할 수 있기 때문이다. (88p)

데이터베이스를 기준로 한 아키텍쳐의 역사는 총 3가지로 구분할 수 있다.

  1. Stand-alone
  2. Client/Server
  3. Web 3 Layers

Stand-alone은 데이터베이스 하나만 우뚝!
네트워크도 연결되어있지 않고 비즈니스로직을 처리하기위한 어플리케이션도 데이터베이스가 설치되어있는 서버에 설치된다.
외부에서 접근하려면 물리적으로 서버가 있는 곳까지 와야하기때문에 보안은 짱짱 높지만,
가용성과 확장성이 매우 부족하다.
가용성이라 하며는, 시스템이 서비스 제공시간에 장애 없이 서비스를 계속 지속할수있는 비율이 어느정도인가를 나타내는 말이고,
확장성이 부족하다는 말은, 서버를 개선해야하는 상황이 오면 그 서버자체의 부품을 바꿔야하는 상황이기때문에 개선수당이 없다는 것을 의미하는데 이런것을 확장성이 부족하다고 말한다. 게다가 교환하기위해서 시스템을 정지해야하기때문에 가용성을 더 낮추는 결과를 부른다.(91p)

이것을 개선한 것이 Client/Server 로 구성된 아키텍쳐!
네트워크를 구성해서 DB서버에 여러대의 클라이언트가 동시에 업무를 볼수있는 아키텍쳐를 말한다.
하지만 문제는 인터넷을 통해 전세계가 이용하는 클라이언트들의 제각각의 환경에 맞춰서 어플리케이션을 배포해야하기 때문에 10000대의 클라이언트가 있으면 10000대의 클라이언트를 업데이트 시켜줘야하고 각각의 환경에 대응하는 어플리케이션의 버그수정같은것을 해줘야하기때문에 비즈니스로직을 실행하는 어플리케이션을 서버에서 관리해 비용을 절감하자는 요구가 생겼다.

그렇게 해서 나온게 Web 3 Layers!

현재 우리가 사용하고 있는 아키텍쳐이다.
웹브라우저만 있으면 간단히 접속할수있고 HTTP 통신에 대해 웹서버만 대응한다.
비즈니스로직은 어플리케이션 서버만 담당하고 필요에따라 DB서버와 연동해 결과를 클라이언트에 보낸다.


괜찮았던 하루

오늘 처음으로 회사에 기여했던 날이다!
안되는 것을을 되게 했고 해결한 것을 스스로 문서화했다!
보람찬 하루였다!

profile
TIL 남기는 공간입니다

2개의 댓글

comment-user-thumbnail
2021년 8월 6일

좋은 하루였겠네요 큐

1개의 답글