Web과 WAS란 ? 웹 서비스의 구조에 대해 알아보자 Web Server (웹 서버) 웹 서버란, HTTP 프로토콜을 기반으로 동작하는 서버로, 동작하는 방식은 클라이언트가 웹 서버에 HTTP 요청을 보내면 웹 서버는 HTTP로 응답하여 정적 리소스를 제공합니다. 대표 hstory0208.tistory.com 보통 웹 서비스는 아래의 그림처럼 Client ↔ Web Server ↔ WAS ↔ DB 이런식으로 요청 , 응답을 주고 받는다. WAS만으로도 웹 서비스를 제공할 수 있는데 왜 앞에 Web 서버를 붙여 같이 사용하는걸까? 그 이유는 다음과 같다. 1. 성능 향상 웹 서버는 정적 콘텐츠(이미지, CSS, JavaScript 등)의 처리에 최적화되어 있다. 따라서 웹 서버가 정적 콘텐츠를 처리하고 ..
📌 도커 컴포즈란?여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있는 하나의 애플리케이션을 만드는 것이다. 도커 컴포즈 설치# 도커 컴포즈 V2 버전 설치sudo curl -sSL "https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 실행 권한 설정chmod +x /usr/local/bin/docker-compose# 버전 확인docker-compose --version만약 위 명령어로 설치가되지 않는 다면 아래 공식 문서를 참고해 설치하도록 하자.https://docs..
📌 Docker 실행 sudo systemctl status docker # 1 sudo /etc/init.d/docker start # 2 Docker Image 관련 명령어 이미지 빌드 Dockerfile을 이용해서 이미지 생성 (제일 많이 쓰는 이미지 생성 방법) ➡ docker build -t {이미지명:태그명} {dockerfile의 경로} 이미지 삭제 도커 단일 이미지 삭제 ➡ docker image rm {이미지 ID 또는 이름} 모든 도커 이미지 삭제 (컨테이너가 있어서 이미지 삭제가 안될 시 -f 옵션을 붙여서 강제 삭제가능하다.) ➡ docker rmi {옵션} {이미지 ID 또는 이름} 이미지 조회 도커 이미지들 보기 ➡ docker images 현재 이미지 목록 확인 ➡ docker..
문제 설명 입출력 예제 풀이 코드 이 문제는 완전탐색 탐색 문제로 완전 탐색 답게 무식하게 숫자를 하나씩 더해가면서 해당 숫자가 몇번째 종말의 수인지 찾아야 한다. 그래도 반복문을 덜 타게 규칙이 있지 않을까?했지만 그런 규칙을 찾긴 힘들었다 다만 반복문을 덜타도록 탐색하는 수 num을 1부터가 아닌 종말의 수인 "666"부터 시작하도록 하였다. 정답 코드 import sys input = sys.stdin.readline n = int(input()) cnt = 0 # 몇 번째 종말의 수인지 카운팅 num = 666 while True: if "666" in str(num): # 666이 num에 포함되어 있다면 cnt = cnt + 1 if cnt == n: # 구하자고 하는 n번째 종말의 수와 같다..
문제 설명 입출력 예제 풀이 코드 이 문제는 현대오토에버 코딩문제에 나온 문제라고 한다. 사실상 실버난이도인 만큼 접근만 한다면 쉽게 풀 수 있는 문제다. 제한 사항을 보면 N, M 입력값의 제한 범위가 100,000이다. 이중 반복문으로 풀면 쉽게 풀수는 있겠지만 2중 반복문은 O(n^2) 시간 복잡도를 갖기 때문에 시간초과가 발생한다. 따라서 O(N)이나 O(logN)의 시간 복잡도로 풀어야 하는데 문제에서도 이미 정답을 말해줬다."구간합" 문제를 푸는 방법은 다음과 같다. 주어진 값들의 누적합을 갖는 리스트를 만든다. PrefixSum 여기서 PrefixSum에 0을 넣어 놓은 이유는 주어지는 구간 i가 1부터 시작하기 때문에 인덱싱에러를 방지하기 위해서이다. 각 수들의 합을 갖는 변수 total을..
무중단 배포란? 무중단 배포를 사용하지 않을 경우 실제 서비스를 서버 한대만을 사용해 운영한다고 가정해보자. 현재 서비스 중인 서비스는 application-V1을 배포한 서비스이다. 그런데 기능이 업데이트되어 application-V2를 새로 개발해 새로운 버전을 배포하려한다. 이 새로운 버전 V2를 배포하기 위해서는 V2 버전의 빌드 파일을 서버에 배포를 해야한다. V1과 V2는 서로 같은 포트를 사용하기 때문에 V2를 배포하기 위해서는 V1버전을 통해 실행하고 있는 서비스를 종료해야만한다. 이 경우 V1이 종료되고 V2 버전이 실행되는 사이 유저가 서비스를 이용할 수 없는 시간이 생기는데, 이를 "다운타임"이라고 한다. 무중단 배포 무중단 말 그대로 서비스가 중단되지 않은 상태로 새로운 버전을 배포..