728x90

Server 24

CAP 이론

일관성(Consistency), 가용성(Availability), 분할 내구성(Partition tolerance)의 세 가지 특성을 설명하는 분산 시스템의 이론입니다. 이 이론은 분산 시스템이 어떻게 동작해야 하는지에 대한 가이드라인을 제공합니다. 일관성(Consistency) 모든 노드가 동일한 순간에 동일한 데이터를 볼 수 있어야 합니다. 어떤 노드에서 데이터가 갱신되면, 이 변경 사항은 다른 모든 노드에 즉시 반영되어야 합니다. 가용성(Availability) 모든 요청은 성공 또는 실패로 완료되어야 하며, 응답이 없는 상태는 없어야 합니다. 어떤 노드가 실패하더라도 시스템은 계속해서 작동할 수 있어야 합니다. 분할 내구성(Partition Tolerance) 네트워크의 일시적인 분할(네트워크 장..

Server 2024.02.03

낙관적인락(Optimistic Locking) / 비관적인(Pessimistic Locking)

낙관적인 락(Optimistic Locking): 서버에서 락을 제어 한다. JPA -> @Version 속성 사용 Mybatis -> update_reg_date 같은 컬럼으로 제어 (JPA @Version 과 비슷하다.) 사용 예시 은행 계좌 잔액 변경: 여러 사용자가 동시에 계좌 잔액을 변경할 수 있지만 충돌이 발생할 가능성이 낮은 경우 특징: 데이터를 읽을 때 락을 걸지 않고 읽은 후 업데이트 시에 일관성을 확인 충돌이 발생할 경우 재시도(retry)를 통해 해결 데이터의 버전 관리 필요 (버전 번호 또는 타임스탬프) 장점: 읽기 성능 향상 데이터를 읽을 때 락을 걸지 않아 동시성이 높아짐 충돌 발생 시 재시도를 통해 해결 가능 단점: 재시도 로직 필요 데이터의 일관성을 확인하기 위한 버전 관리 ..

Server 2023.08.09

[Jmeter]부하 테스트_Window 기준

사용 계기 백엔드 개발을 하면서 부하 테스트는 필수적인 작업 중 하나입니다. 하지만 보통 Postman과 같은 툴로는 원하는 결과를 도출하기 어렵다는 것을 느꼈습니다. 그러던 중 우연히 알게 된 Jmeter은 DB에 접속하여 SQL문으로 바로 부하테스트를 할 수 있을 뿐만 아니라 RestAPI 테스트를 요청할 수 있는 기능들이 있었습니다. 여러 가지 데이터들로 결과를 얻을 수 있기 때문에, 좀 더 상세한 결과를 얻고자 할 때 매우 유용한 툴입니다. 이번에는 Jmeter을 처음 사용해보았지만, 기초적인 사용 방법을 정리해보고자 합니다. JMeter란? JMeter은 Apache 소프트웨어 재단에서 개발 및 유지보수하는 오픈 소스 부하 테스트 도구입니다. Java로 작성되었으며, 다양한 프로토콜 (HTTP,..

Server 2023.05.11

Docker 공부 하면서 주로 사용하는 명령어

계속해서 업데이트 될 예정 주로 사용 하는 명령어 위주로 CREATE Image 생성 docker build -t docker-image . docker-image : 이미지 이름 . : 생성 경로 Container (최초)실행/생성 docker run -dp 8080:8080 -e JAVA_OPTS=‘-Dspring.profiles.active=’ --name docker-container docker-image -d : Daemon으로 백그라운드에서 실행 -p : Input_Port:Target_Port로 외부에서 접근 Input_Port를 Docker 내의 Target_Port로 PortForward한다 JAVA_OPTS : 서버에서 사용 되는 환경변수, JAVA 뿐 아니라 환경에 따를 변수를 설정..

Server 2023.04.16

도커 사용법[2]

기본 설정 테스트용 Project // getting-started > app 의 프로젝트에서 진행을 합니다. git clone https://github.com/docker/getting-started.git1. Dockerfile 생성 프로젝트에 Dockerfile만들어서 Docker Image를 만드는 설정파일? 실행 파일을 작성합니다. # syntax=docker/dockerfile:1 FROM node:18-alpine // node 기반의 이미지를 생성(ubuntu, centos, adoptopenjdk/openjdk11 etc...) WORKDIR /app // RUN,CMD,ENTRYPOINT에서 설정한 실행 파일이 실행될 디렉토리 위치를 지정한다. COPY . . // 파일을 이미지에 추..

Server 2023.04.16

도커 사용법[1]

개요 이제 슬슬 도커도 해볼때가 되었다. 아니 늦었다 Kubernetes와 Docker Docker란?(부두 노동자) Docker는 애플리케이션 개발, 배송 및 실행을 위한 개방형 플랫폼입니다. Docker를 사용하면 애플리케이션을 인프라에서 분리하여 소프트웨어를 신속하게 제공할 수 있습니다. 애플리케이션을 관리하는 것과 동일한 방식으로 인프라를 관리할 수 있습니다. Docker의 방법론을 활용하면 코드 작성과 프로덕션에서 실행 사이의 지연 시간을 크게 줄일 수 있습니다. 기본 개념 Container -> 배포하고 테스트하는 단위. 느슨하게 격리된 환경 애플리케이션을 실행 하는데 모든 요소를 포함 하므로 현재 호스트에 설치된것에 의존할 필요가 없다. 주어진 호스트에서 동시에 많은 컨테이너를 실행할 수 있..

Server 2023.04.16

Was VS Ws

Was Vs Ws Web Application Server Vs Web Server 둘의 차이가 모호하다 Ws 정적인 컨텐츠를 제공 하는 서버 ex Apache, Nginx, IIS, WebtoB 등 Was 동적인 컨텐츠 제공 하는 서버(필요에 따라 정적인 컨텐츠도 가능 하다) ex Tomcat, WebLogic, WebSphere, Jeus, JBoss 등 내부 구성 request -> Container -> Servlet -> thread -> container -> response Ws 사용 이유 정적인 컨텐츠를 Ws로 사용하고 동적인 컨텐츠를 Was를 사용하므로서 각 서버의 부담을 줄여 준다.

Server 2023.04.16

이미지 최적화

개요 웹 서비스를 개발 하다 보면 대량의 이미지를 화면에 띄우기도 한다. 이때 고화질의 이미지 이거나 수많은 양의 이미지를 불러오게 되면 서비스의 질의 저하 된다. 만약 Netflix, Youtubu같이 썸네일이 많은 서비스 같은 경우(심지어 영상이 주요 서비스 이다.) 이미지를 최적화 해주지 않으면 제대로된 서비스를 제공하기 어렵다. 그렇기 때문에 이미지 최적화 방법을 모색 하였고 이미지 최적화 블로그에서 잘 정리 되어 있는 내용을 찾았다. 이 글은 위의 블로그 내용을 한번 더 정리 한 내용이다. 이미지 최적화의 장점 웹 페이지 바이트를 절약할 수 있다. 사이트 성능 향상 브라우저가 다운로드해야하는 바이트가 줄어든다. 클라이언트의 대역폭에 여유가 생긴다. 콘텐츠를 더 빨리 다운로드하여 화면에 렌더링한다..

Server 2023.04.16

Cookie vs LocalStorage vs SessionStorage

개요 Cookie와 LocalStorage다시 한번 확인을 해봐야 하는 계기가 생겼다. Nuxt를 개발 할때 사용자 인증 유무에 따라 Login페이지 강제 이동을 시켜야 할때가 있었는데 Vue에서는 Vuex를 사용하여 LocalStorage에 사용자 정보를 입력하여 MiddleWare에서 처리를 했다. 하지만 Nuxt에서는 SSR처리를 하다보니 상세 페이지 및 로그인외 페이지에 직접 접근을 하게 되면 화면이 보였다가 Login페이지로 이동하였다. 이유는 Vue에서는 CSR기반이다 보니 바로 LocalStorage에 접근을 하지만 Nuxt에서는 Server단계에서 LocalStorage에 접근을 못하니 이러한 문제가 생겼다. 추후에 Nuxt에 ServerMiddleWare가 있다는 것은 알았지만 한번더 상..

Server 2023.04.16

Nginx WebSocket, Proxy Error

nginx WebSocket, Proxy Error hop by hop 헤더란? Hop-By-Hop 이란? "end-to-end 헤더"와 달리 현재 요청을 처리하는 프록시에서 처리 및 소비하도록 설계된 헤더입니다. 요청이 끝날 때까지 요청에 표시되도록 설계되었습니다 Http Basic document Http document Hop-by-Hop document Nginx Hop-By-Hop Socket Nginx Hop by hop Setting 본인이 직접 사용을 하지 않았다고 해도 pm2, ws,needle, rxjs, systeminformation, caniuse-lite, js-git등 생각보다 많은 모듈 안에서 webSocket이 사용되고 있다. 따라서 WebSocket사용에 따른 Nginx에..

Server 2023.04.16
728x90