No Story, No Ecstasy

서버 관련 - VM, MongoDB, WAS 본문

Shallow Series

서버 관련 - VM, MongoDB, WAS

heave_17 2021. 3. 12. 23:17

Python과 가상 환경

Python에서는 사소한 모듈들의 버전 차이로 인해 에러가 발생하는 경우가 있다. 때문에 패키지들 간 버전 호환성을 유지하는 것이 중요하다. 하지만 매 프로젝트마다 패키지들의 버전을 조정하는 것은 매우 비효율적인 일이다. 따라서, 가상 환경을 통해 각 프로젝트에 맞는 버전과 모듈을 활용한다. 관련 tool에는 pyenv, pyenv-virtualenv, poetry, anaconda 등이 있다.

 

MongoDB

- 장점: RDB와 개념이 유사하여 사용법이 비슷하다(쿼리 변환기도 있음). RDB 대비 Read & Write 성능이 월등하다. 스키마 관리가 필요 없다. 샤드(Shared Disk) 추가가 간편하다(rebalancing은 불가능). Index 기능을 제공한다.

- 단점: 메모리 사용량이 큰 편이다(메모리 관리를 OS에게 위임한다). 데이터 일관성이 보장되지 않는다(ACID 기능 별도 사용). Join이 필요 없도록 데이터 구조화가 필요하다. B트리 인덱스를 사용하기 때문에, 크기가 커질수록 삽입/삭제 성능이 저하된다.

적절한 활용 상황: (1) 로그성 데이터나 빅데이터 처리의 중간 저장소, (2) 설정 데이터의 보관소, (3) null 필드가 많이 존재할 때(RDB보다 스토리지 사용량이 적음), (4) NoSQL 계열에서 압도적인 index 활용도가 필요할 때, (5) 집계 연산, paging, 복잡한 쿼리가 필요할 때.

 

WAS (Web Application Server)

DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server이다. Web Server Web Container로 이루어진다. WAS를 통해 client의 요청에 맞는 데이터를 DB에서 가져와 비즈니스 로직에 맞게 그때 그때 결과를 만들어서 제공함으로써 자원을 효율적으로 사용할 수 있다.

'Shallow Series' 카테고리의 다른 글

순차 패턴 분석 기초  (0) 2021.05.26
강화학습 기초  (0) 2021.05.26
대시보드, 도커, 컨테이너  (0) 2021.03.12
구글 빅쿼리  (0) 2021.03.12
텍스트마이닝 - 디리클레, 깁스 샘플링  (0) 2021.03.12