개발/개발지식

개발/개발지식

회복성 패턴(Resilient patterns)

마이크로서비스 아키텍처(MSA)는 여러 독립적인 서비스들로 구성되어 있어, 하나의 서비스 장애가 전체 시스템에 미치는 영향을 최소화하는 것이 매우 중요합니다. 회복성 패턴(Resilient patterns)은 이러한 MSA 구조에서 시스템의 안정성과 복원력을 높이는 핵심 전략으로 작용합니다. 회복성 패턴(Resilient patterns)은 시스템이 일부 구성 요소의 장애나 오류에도 불구하고 정상적인 기능을 유지하고, 신속하게 복구할 수 있도록 돕는 설계 방법 또는 모범 사례를 말합니다. 특히 마이크로서비스와 같이 분산된 시스템 아키텍처에서 매우 중요한 역할을 합니다.예를 들어, 소프트웨어 아키텍처에서 흔히 사용되는 회복성 패턴에는 다음과 같은 것들이 있습니다:회로 차단기(Circuit Breaker):..

개발/개발지식

[Cache] 메모리 캐시와 디스크 캐시

메모리 캐시와 디스크 캐시는 컴퓨터 시스템에서 데이터를 더 빠르게 접근할 수 있도록 하는 두 가지 주요 캐시 기술입니다. 각 캐시의 장점, 단점, 그리고 사용되는 상황을 이해하면 효율적인 시스템 설계와 성능 최적화에 도움이 됩니다.메모리 캐시 (Memory Cache)정의: 메모리 캐시는 주로 RAM(Random Access Memory)에 저장되는 데이터로, CPU와 메모리 간의 데이터 전송 속도를 빠르게 하기 위해 사용됩니다.장점:속도: 메모리 캐시는 매우 빠릅니다. RAM의 접근 속도는 디스크보다 훨씬 빠르기 때문에 데이터에 빠르게 접근할 수 있습니다.낮은 지연 시간: 메모리에 저장된 데이터는 거의 즉각적으로 접근할 수 있어 지연 시간이 매우 낮습니다.단점:비용: RAM은 비싸기 때문에 대용량 데이..

개발/개발지식

[Cache] 페이지 캐시

페이지 캐시 기능은 웹 브라우저가 웹 페이지를 더 빠르게 로드하기 위해 사용하는 기술입니다. 이 기능은 사용자가 이미 방문한 페이지의 일부 또는 전체를 저장하여, 페이지를 다시 방문할 때 저장된 데이터를 사용해 빠르게 로드합니다. 페이지 캐시에는 여러 종류가 있으며, 가장 중요한 두 가지는 일반 HTTP 캐시와 BFCache(Back-Forward Cache)입니다.HTTP 캐시HTTP 캐시는 브라우저가 서버에서 가져온 리소스(예: HTML, CSS, JavaScript, 이미지 등)를 저장하여 동일한 리소스에 대한 반복적인 네트워크 요청을 줄이는 데 사용됩니다. HTTP 캐시는 서버와 클라이언트 간의 데이터 전송을 줄여 페이지 로딩 시간을 개선합니다. HTTP 캐시는 웹 페이지의 리소스를 저장하여 이후..

개발/개발지식

[Spring] Port 8080 is already in use 에러 해결 방법

발생 원인동일한 포트를 사용하는 어플리케이션을 번갈아가며 실행 시키는 경우 (이미 다른 하나가 실행중)IDE 상에서는 프로세스가 종료되었으나 실제 프로세스가 종료되지 않은 경우 해결 방법프로세스 종료하기lsof -n -i -P | grep 8080kill -9 3932 연관된 글 : 참고:https://deeplify.dev/back-end/spring/port-is-already-in-use

개발/개발지식

도메인 네임(Domain Name)

도메인 네임(Domain Name)은 인터넷 상에서 특정 컴퓨터나 네트워크를 식별하기 위해 사용되는 텍스트 주소입니다. 도메인 네임은 숫자로 구성된 IP 주소(예: 192.168.1.1) 대신 사람이 읽고 기억하기 쉬운 형태로 표현됩니다. 예를 들어, www.example.com은 특정 웹사이트의 도메인 네임입니다.도메인 네임의 구조도메인 네임은 여러 부분으로 구성되며, 각각의 부분은 점(.)으로 구분됩니다. 도메인의 각 부분은 계층 구조를 형성합니다. 가장 일반적인 구조는 다음과 같습니다:서브도메인: 예를 들어, www는 www.example.com에서 서브도메인입니다.도메인: example은 두 번째 수준 도메인입니다.최상위 도메인(TLD): com은 최상위 도메인입니다.www.example.com에..

개발/개발지식

트랜잭션

트랜잭션논리적인 작업 단위트랜잭션은 수행중에 한 작업이라도 실패하면 전부 실패하고, 모든 작업이 성공해야 성공합니다.트랜잭션(Transaction)은 데이터베이스나 메시지 큐와 같은 시스템에서 여러 단계의 작업을 논리적으로 묶은 단위를 의미합니다. 트랜잭션은 데이터의 일관성과 무결성을 보장하기 위해 사용됩니다. 주로 ACID(원자성, 일관성, 고립성, 지속성) 속성을 준수합니다.원자성(Atomicity):트랜잭션의 모든 작업은 전부 수행되거나 아무것도 수행되지 않아야 합니다. 즉, 모든 작업이 성공하면 트랜잭션을 완료하고, 한 가지 작업이라도 실패하면 트랜잭션을 롤백해야 합니다.일관성(Consistency):트랜잭션이 수행되기 전과 후에 데이터베이스는 일관된 상태여야 합니다. 즉, 트랜잭션이 수행되는 동..

개발/개발지식

디버깅/logger

이번에 일하는 회사에서 신입분이 들어오셔서 디버깅과 로거의 개념을 알려드리기위해 나도 정리를 해보았다. 디버깅을 하는 이유"디버그(debug)는컴퓨터 프로그램 상의 오류(버그)를 찾아내어 바로잡는 과정을 뜻한다.디버깅(debugging)이라고도 한다. "1. 버그 식별디버깅 도구는 애플리케이션의 실행 중에 발생하는 버그를 식별하는 데 사용됩니다. 프로그램이 의도한 대로 동작하지 않을 때, 디버깅 도구를 사용하여 코드의 어떤 부분에서 문제가 발생하는지 찾을 수 있습니다.2. 프로그램의 상태 분석디버깅 도구는 애플리케이션의 상태를 실시간으로 모니터링하고 분석할 수 있습니다. 변수의 값을 확인하거나 스택 추적을 통해 프로그램의 흐름을 이해할 수 있습니다. 이를 통해 애플리케이션의 오류 원인을 파악할 수 있습니..

개발/개발지식

[네트워크] 로드 밸런싱(Load balancing)

로드 밸런싱이란? 로드 밸런싱이란 부하 분산을 위해서 가상(virtual) IP를 통해 여러 서버에 접속하도록 분배하는 기능을 말한다. 로드 밸런싱에서 사용하는 주요 기술은 다음과 같다. NAT(Network Address Translation): 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기이다. DSR(Dynamic Source Routing protocol): 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념이다. Tunneling: 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념으로, 데이터를 캡슐화..

ideahamster
'개발/개발지식' 카테고리의 글 목록