일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- CS
- CI/CD
- 컨테이너
- 백엔드
- 자바
- 영속성 컨텍스트
- Container
- JPA
- web server
- 배포
- virtualization
- vm
- 가상화
- computer science
- Java
- 스프링
- 스프링 부트
- Spring Security
- 스프링 시큐리티
- spring batch
- 데이터베이스
- 웹 서버
- ORM
- mysql
- spring boot
- 스프링 배치
- Spring
- HTTP
- spring cloud
- 도커
- Today
- Total
목록전체 글 (149)
개발 일기

EC 스터디 📁 INTRO HTTP (Hypertext Transfer Protocol) 웹에서 데이터를 주고받기 위한 통신 규약(프로토콜)OSI 7계층 중 L7 즉, Application Layer에 해당클라이언트-서버 구조 (Request ↔ Response)우리가 주로 개발할때 가장 흔하게 접할 수 있는 프로토콜이며 아래 DevTools에서 네이버 화면을 띄웠을때도 h2 즉, HTTP/2.0이 사용되는 것을 확인할 수 있다.현재는 위 오른쪽 그림과 같이 HTTP/2.0이 주로 사용되고 있으며 유투브, 구글 등에서는 h3까지도 사용되고 있다. 🌱 HTTP/0.9 (1991년)HTTP의 시작은 1989년 팀 버너 리(Tim Berners-LEE)에 의해 제안된 인터넷의 하이퍼 텍스트 시스템으로 최초..

워크플로(Workflow)란?특정 순서에 따라 발생하는 반복적인 프로세스와 작업을 관리하는 시스템이다.즉, 마이크로서비스 기준으로 보면, 하나의 비즈니스 로직을 처리하기 위해 여러 개의 마이크로서비스가 순차적 또는 병렬적으로 협업하는 일련의 흐름을 의미한다. 각 마이크로서비스는 자신만의 책임 영역을 가지고 있으며, 전체적인 프로세스가 성공적으로 완료되기 위해서는 이들 서비스 간의 올바른 상호작용이 필요하다. 앞 챕터들에서는 마이크로서비스 간 통신을 다뤘고 이번 챕터는 여러 마이크로서비스가 협력해서 비즈니스 프로세스를 구현하는 방법에 대해 다룬다.분산 시스템에서 워크플로우를 모델링하고 구현하는 것은 쉽지 않을 수 잇다.이를 해결하기 위해 분산 트랜잭션을 사용하는 것과 그와 관련된 함정을 살펴보고, (필자 ..

마이크로서비스 아키텍처를 구축할때 어떻게 모델링을 하면 좋을지? 서비스 간 경계를 어떻게 결정하는 것이 좋을지?에 대한 답변이 있는 챕터이다.🔹 마이크로서비스의 경계우선, 올바른 마이크로서비스 경계를 구성하는 데 필요한 세 가지 핵심 개념인 정보 은닉, 응집력, 결합에 대해 정리해보자. 1️⃣ 정보 은닉 (Information Hiding)모듈 경계를 정의하기 위해 David Parnas가 만든 개념. 모듈(또는 마이크로서비스) 경계 뒤에 가능한 한 많은 세부 정보를 숨기려는 욕구를 나타낸다. 따라서 다른 서비스와의 결합을 최소화하고, 각 서비스가 다른 서비스에 대해 필요한 것만 공유하고 필요한 최소한만 공개 되도록 하여 독립적인 변경과 안전한 배포를 가능하게 한다.향상된 개발 시간 : 독립적인 모듈..

최근 분산환경에 관심이 생겨 해당 도서를 학교 도서관에서 관련 도서를 빌렸고 필요한 부분을 골라 읽으면서 주요 내용을 정리해보고자 한다.https://github.com/iamindian/References_Books/blob/master/Building%20Microservices%20Designing%20Fine-Grained%20Systems%202nd%20By%20Sam%20Newman.pdf References_Books/Building Microservices Designing Fine-Grained Systems 2nd By Sam Newman.pdf at master · iamindian/References_BMy reference books. Contribute to iamindian/R..

Java Garbage Collector(GC)는 자바에서 메모리 관리를 자동화하는 핵심 기능입니다. 수동으로 메모리를 해제해야 하는 C/C++과 달리, Java에서는 동적으로 할당했던 메모리 영역(Heap 영역) 중 GC가 더 이상 사용되지 않는 객체를 자동으로 감지하고 메모리에서 제거할 수 있다 . why? 사용이 끝난 객체가 메모리에 계속 남아있으면 메모리 누수(Leak)가 발생 → OutOfMemoryError이를 방지하고 효율적인 메모리 회수를 위해 GC가 필요함[GC 알고리즘 - Reference Counting]개념Root Space : Stack 변수와 전역 변수 등 heap 영역 참조를 담은 변수Heap영역에 선언된 객첵들이 각각 reference count라는 별도의 변수를 들고있음해당..
✅ SOLID 원칙이란?어떤 분야든, 잘하기 위해선 '원칙'이 있다.스포츠에는 기본 자세가 있고, 요리에는 레시피가 있으며, 수학에는 공리(axiom)가 존재한다. 이러한 원칙은 그 분야를 체계적이고 효율적으로 다룰 수 있게 돕는 일종의 '교범'이다. 객체지향 프로그래밍(OOP)도 마찬가지다. 유지보수하기 쉬운, 확장 가능한(유지보수성, 확장성, 재사용성) 소프트웨어를 만들기 위해서는 단순히 클래스를 나누는 것만으로는 부족하다. 객체지향 설계의 5대 원칙, SOLID가 바로 그 교범이다. 이번 글에서는 이 SOLID 원칙이 무엇이고, 왜 중요한지, 그리고 Java 코드 예시와 함께 실제로 어떻게 적용할 수 있는지를 정리해보았다.1️⃣ S - 단일 책임 원칙 (SRP, Single Responsibil..
삼성 SW 역량테스트 2022 하반기 오전 1번 문제 싸움땅을 풀면서 아래와 같은 코드를 작성했다.더보기삼성 SW 역량테스트 2022 하반기 오전 1번 문제 싸움땅import java.util.*;import java.io.*;/** * - n*n 격자에서 진행 * - 각 격자에 무기 * - 초기에 무기들이 없는 빈 격자에 플레이어들이 위치하며 각각은 초기 능력치 가짐(모두 다름) * * 숫자 * - 빨간색 배경의 숫자 = 총의 공격력 / 플레이어의 초기 능력치 * - 노란색 배경의 숫자 = 플레이어의 번호 * * Round 설명 * 아래 과정을 1번 부터 n번 플레이어까지 "순차적으로" 진행해야 한 라운드가 끝난다. * 1-1. 첫 번째 번호 플레이어 부터 본인이 향하고 있는 방향대로 한칸 이동.(..

소프트웨어 개발에서 100% 완벽한 시스템을 구축하는 것이 이상적이지만, 현실적으로는 매우 어렵다. 특히 Microservices Architecture와 같이 분산 환경에서 운영되는 서비스에서는 하나의 서버 장애가 전체 시스템으로 전파되는 문제가 발생할 수 있다.이는 단순한 장애를 넘어, MSA를 도입한 근본적인 목적 자체를 무의미하게 만들 수 있다.따라서 완벽함을 추구하기보다는, 장애 상황에서도 전체 시스템이 무너지지 않도록 유연하게 대응할 수 있는 구조, 즉 Fault Tolerance (내결함성)를 갖추는 것이 중요하다. 이는 개별 마이크로서비스에서 발생한 오류나 장애가 전체 서비스로 확산되지 않도록 방지하는 데 핵심적인 역할을 한다.이러한 내결함성을 실현하는 방법 중 하나로, Circuit Br..