2024/04 5

Spring에서 HTTP Request을 처리하는 과정

웹에 URL 주소를 입력했을 때 HTTP 요청이 시작된다. 요청을 하고 응답을 받으면 이 과정이 종료되는데, 어떤 일이 일어나는지 알아보자. 1. Client에서 Server로 요청을 전달한다. 이 요청은 DispatcherServlet이 받는데, 이것은 요청을 처리하기 위한 프론트 컨트롤러이다. 진입점 역할을 한다. DispatchServlet이 등장하게 된 배경은, 기존의 web.xml에 대한 의존을 낮추고 하나의 서블릿으로 모든 것을 관리해서 코드 중복 문제가 없어졌다. 자세한 것은 Spring MVC 패턴의 front-controller pattern을 알아보면 된다. 2. 해당 엔드포인트를 어떤 컨트롤러가 담당할지 HandlerMapping이 결정한다. (RequestMappingHandlerM..

Spring 2024.04.17

Windows 11 minikube 설치과정 알아보기

kubernetes를 실습하기 위해 학습에 알맞게 간편하게 구축하여 사용할 수 있는 minukube를 설치하려고 한다. 관리형 쿠버네티스의 경우 비용이 청구되어 상용 수준의 테스트를 하기에는 무리가 있으므로, 로컬 환경에서 minikube나, k3s를 활용하여 쿠버네티스 클러스터를 구성할 수 있다. 쿠버네티스 공식 사이트: Minikube로 경량화된 쿠버네티스 설치 https://kubernetes.io/ko/docs/setup/learning-environment/minikube/ 미니큐브 공식 사이트 https://minikube.sigs.k8s.io/docs/start minikube를 사용하기 위해 필요한 것 What you’ll need 2 CPUs or more 2GB of free memor..

DevOps/Kubernetes 2024.04.16

MySQL 비트연산 &

프로그래머스 > SELECT > 조건에 맞는 개발자 찾기 문제 해설 DEVELOPERS 테이블에서 특정 스킬을 보유한 개발자들의 정보를 검색하는 쿼리를 만들어야 한다. SELECT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPERS WHERE SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'Python') OR SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'C#') ORDER BY ID - MySQL에서 Python, C# 스킬을 가진 개발자를 찾기 위해 비트연산자인 AND 연산(&)을 사용하였다. - & 연산자는 두 개의 이진수를 비교하고, 둘 다 1인경우에 결과..

Database/SQL 2024.04.13

[Docker] Docker가 필요해진 이유

도커란 리눅스 컨테이너를 기반으로 한 Go 언어로 작성된 오픈소스 가상화 프로젝트 기존의 가상화 기술 하이퍼바이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식으로, 하이퍼바이저에 의해 관리되는 운영체제는 게스트 운영체제(Guest OS)라고 하고, 대표적인 가상화 툴로 VirtualBox, VMware 등이 있다. 가상 머신은 게스트 운영체제를 위한 라이브러리와 커널을 모두 포함하므로 배포할 때의 이미지의 크기가 커지고, 엄청난 크기의 이미지를 애플리케이션으로 배포하는 것은 이슈가 발생할 수 있다. 성능 손실의 문제도 발생할 수 있다. 하지만, 도커 컨테이너는 리눅스의 chroot, namespace, cgroup을 사용하여 프로세스 단위의 격리 환경을 만든다. 따라서 각 애플리..

DevOps/🗳 Docker 2024.04.11

웹 서버와 웹 애플리케이션 서버에 대해

서버를 설정하는 방법에 대해 알아보자. 웹 시스템에서 성능에 영향을 주는 것은 웹 서버 세팅, WAS 서버 세팅, DB 서버 세팅, 장비 세팅이 있다. WAS와 WS의 차이 WAS(웹 애플리케이션 서버)는 비즈니스 로직을 넣을 수 있고, 대표적으로 Tomcat, PHP, ASP 등이 있다. 반대로 WS(웹 서버)는 비즈니스 로직을 넣을 수 없으며 Nginx, Apache 등이 있다. 웹 서버(Web Server)는 클라이언트에게 요청을 받고 정적인 request을 받아 정적인 컨텐츠로 응답한다. 사용자의 접근이 많은 사이트에서는 정적인 파일들을 CDN(Content Delivery Network)이라는 서비스를 사용하여 저장한다. 웹 애플리케이션 서버(Web Application Server)는 db 조..