Computer Science
-
Docker 를 왜 사용할까?Computer Science/Software Engineering 2022. 8. 9. 21:46
Docker 를 왜 사용할까? 우선 도커란 무엇일까요? 도커는 어플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Linux 의 응용 프로그램들을 프로세스 격리 기술들을 사용해서 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다. 그렇다면 컨테이너란 무엇이고 왜 사용해야 할까요? 컨테이너 컨테이너는 표준화된 소프트웨어 유닛 또는 패키지이며, 해당 코드가 실행하는데 필요한 종속성과 도구 등이 포함되어 있습니다. 예를 들어보면 큰 배나 트럭에 싣는 컨테이너에 비유할 수 있습니다. 컨테이너에는 다양한 것들을 담을 수 있지만, 담고 난 뒤에는 격리되어 자체적으로 보관됩니다. 왜 Docker 와 컨테이너일까? 1. 팀/회사 내에 다른 개발/생산 환경 실제로 협업에서는 팀 또는 회사..
-
로드 밸런싱(Load Balancing)Computer Science/Network 2021. 9. 23. 17:44
Load Balancing 부하 분산 또는 로드 밸런싱이라고 하며, 컴퓨터 네트워크 기술 중 하나로, 둘 혹은 셋 이상의 CPU 나 저장장치와 같은 컴퓨터의 자원들에게 일을 나누는 것을 의미한다. 요즘 시대에는 웹사이트에 접속하는 인원이 급격하게 늘고 있다. 따라서 이 사람들에 대해 모든 트래픽을 감당하기엔 1대의 서버로는 부족합니다. 이에 대한 대응방안으로는 2가지가 있다. Scale-Up: 하드웨어의 성능을 올린다. Scale-Out: 여러대의 서버가 나눠서 일하도록 한다. 하드웨어 향상 비용이 더욱 비싸기도 하고, 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-Out 이 효과적이다. 이때 여러 서버에게 균등하게 트래픽을 분산 시켜주는 것이 바로 로드 밸런싱 이다. 로드 ..
-
Connection PoolComputer Science/Database 2021. 7. 24. 21:05
만약 Pool 을 사용하지 않는다면 DB서버에 최초로 연결하여 Connection 객체를 생성는 작업을 하기 때문에 비용적인 측면에서 큰 성능 저하를 겪게 된다. 이와 같은 문제를 해결하기 위한 것이 Connection Pool 이다. Connection Pool 이란? 동시 접속자가 연결 될 수 있는 Connection을 Pool이라는 컨테이너에 하나로 모아서 관리하는 개념입니다. WAS 실행 시 일정량의 Connection 객체를 생성하여 미리 Pool 이라는 캐시 공간에 저장해둔다. 만약 누군가 DataBase 에 접근한다면 Pool에 남아 있는 Connection을 제공하고, 만약 제공할 Connection이 없다면 클라이언트를 대기 상태로 전환시키고 Pool에 Connection이 반환된다면 대..
-
당근 마켓 - ERD 설계Computer Science/Database 2021. 6. 14. 15:16
ERD 설계를 하기 전에 ERD란 무엇인지 간단히 살펴보자. ERD(Entity Relationship Diagram) 개체 - 관계 모델(ERM)의 산출물에 대한 다이어그램으로DB에 있는 Table이나 Column, 그리고 데이터들에 대한 관계를 그림으로 표현 한 것입니다. 이러한 ERD 설계를 간편하게 할 수 있도록 도와주는 여러가지 툴들이 있는데 필자는 그 중 AqueryTool을 사용했습니다. https://aquerytool.com/ AQueryTool - AQuery.WebAQueryTool은 웹 기반 ERD 툴 + SQL 자동 생성 프로그램입니다.aquerytool.com 당근 마켓 ERD FK 같은 경우는 형식상 있다고 가정하에 진행하였습니다. 왜냐하면 FK(외래키) 때문에 DML 명령어..