예약 대기열 미니프로젝트를 한번 해볼가 하다가 컨테이너라는 개념에 접근하게 되었고,
Docker 라는 개념도 접근하고 이런게 다 뭐야?로 시작하게 되었다.
그냥 눈으로만 읽고 메모장에 끄적이면 시간이 지났을 때 다시 읽어보기 힘들어 인터넷 서칭한 시간도 공부의 일부니
정리를 해두려고 한다.
지금까지 Docker의 개념은 사용하지 않고 단순 톰캣 기반으로만 개발 업무를 하고 있었는데, 이 둘의 차이점이 일단 가장 궁금해서 시작해볼가 한다.
톰캣(Tomcat)과 Docker는 각각 다른 목적을 가진 기술로, 아래에서 톰캣과 Docker의 차이점을 적어볼가 한다.
1. 기능 및 역할
- 톰캣 (Tomcat):
- 웹 서버 및 서블릿 컨테이너
- 주로 Java 기반의 웹 애플리케이션을 호스팅하고 서비스하는 데 사용된다.
- Docker:
- 컨테이너화 플랫폼으로, 애플리케이션과 그 종속성을 하나의 컨테이너라는 독립된 환경에 패키징
- Docker는 다양한 종류의 애플리케이션(자바, 파이썬, Node.js 등)을 실행할 수 있도록 도와주며, 톰캣을 포함한 여러 서비스를 컨테이너화하여 실행할 수 있다.
2. 목적
- 톰캣:
- 톰캣은 웹 애플리케이션 서버로서 주로 자바 웹 애플리케이션을 실행한다.
- 주된 목적은 HTTP 요청을 처리하고, 서블릿 및 JSP를 통해 동적인 웹 페이지를 생성하는 한다.
- Docker:
- Docker는 애플리케이션의 컨테이너화를 목표로 하며, 다양한 언어나 플랫폼에서 애플리케이션을 격리된 환경에서 실행할 수 있도록 한다.
- 다양한 애플리케이션을 실행할 수 있는 환경을 제공하고, 이를 손쉽게 배포하고 관리할 수 있게 한다.
3. 운영 환경
- 톰캣:
- 톰캣을 설치하고 실행하려면 Java가 설치된 환경이 필요하며, 톰캣을 구동하는 서버 자체가 애플리케이션을 실행하는 환경이 된다.
- Docker:
- Docker는 컨테이너라는 격리된 환경에서 애플리케이션을 실행한다.
- 각 컨테이너는 독립적인 실행 환경을 가지며, 호스트 OS 위에서 여러 개의 컨테이너를 동시에 실행할 수 있다.
- Docker는 운영 체제와 관련된 종속성을 애플리케이션과 함께 패키징하여 어떤 환경에서도 동일하게 실행될 수 있도록 한다
4. 배포 및 확장성
- 톰캣:
- 톰캣은 주로 단일 서버 또는 웹 애플리케이션 서버에서 실행. 서버를 확장하려면 로드 밸런싱과 클러스터링 등의 추가적인 설정이 필요
- Docker:
- Docker는 컨테이너화된 애플리케이션을 여러 환경에서 쉽게 배포하고 확장 가능
- Docker는 클러스터링 및 오케스트레이션 도구(Kubernetes, Docker Swarm 등)와 결합하여, 여러 서버에서 애플리케이션을 효율적으로 관리하고 확장 가능
5. 호환성 및 이식성
- 톰캣:
- 톰캣은 특정 OS 환경에 설치되어 실행되므로, 개발 환경과 운영 환경이 일치하지 않으면 발생할 수 있는 문제(환경 불일치) 문제가 존재할 수 있다.
- Docker:
- Docker는 애플리케이션을 컨테이너화하여 실행할 수 있으므로, 개발 환경에서 실행된 컨테이너는 동일한 방식으로 프로덕션 환경에서도 실행된다.
- 따라서 이식성이 뛰어나고, 다양한 운영 체제와 클라우드 환경에서도 동일하게 실행할 수 있다.
단순히 읽어보며 느낀건 톰캣은 그냥 자바 환경의 어플리케이션이고 도커는 뭔가 모든걸 아우르는 컨테이너라는 개념이 들어간 덩치가 큰놈인 것 같다.
아 .. 말하는 것도 스킬업을 해야하는데 it 지식 부재로 아직 어렵다.
이것 또한 시간이 지나고 나면 나아질 것이라고 봐야겠지..?
물경력들이여 일어나라~!
이렇게 하나씩 조금씩 하다보면 웅덩이에서는 벗어나겠지~
물경력 화이팅~!
'인프라 > Docker' 카테고리의 다른 글
Docker error : git bash에서 실행 에러 (1) | 2024.11.21 |
---|---|
왜 Docker(도커)를 사용해야 하지? (3) | 2024.11.20 |
Docker Desktop 설치 (1) | 2023.11.19 |