1. OpenFeign이란? OpenFeign이란 Spring Cloud에서 제공하는 선언적 HTTP 클라이언트이다.마치 인터페이스를 정의하듯이 API 호출을 할 수 있는 라이브러리입니다. 기존 RestTemplate이나 WebClient와 다르게, 인터페이스만 정의하면 자동으로 구현체를 만들어 주기 때문에 코드가 깔끔하고 유지보수가 편리하다. 2. OpenFeign을 사용하는 이유 1) 인터페이스만 정의하면 API 호출 가능 기존 RestTemplate은 다음과 같이 직접 HTTP 요청을 생성해야 한다.RestTemplate restTemplate = new RestTemplate();String response = restTemplate.getForObject("http://localhost:808..
1. VueVue.js(뷰)는 프로그레시브(Progressive) 자바스크립트 프레임워크로, 사용자 인터페이스(UI)를 만들기 위해 사용된다.한마디로 웹 화면을 더 동적으로 만들고 유지보수를 쉽게 해주는 도구 2. 특징1) 컴포넌트 기반화면을 작은 단위로 나눠서 개발 가능재사용성과 유지보수성이 높음2) 반응형(Reactivity) 시스템데이터가 변경되면 자동으로 화면이 업데이트됨3) 단일 파일 컴포넌트(SFC, .vue 파일)HTML, CSS, JS를 한 파일에서 관리 가능코드 가독성이 좋고 유지보수가 쉽다.4) 확장성Router, Pinia, CLI/Vite 등 다양한 툴을 지원하고 있다.CLI와 Vite는 Vue 개발 환경을 제공하는 빌드 도구Vite 기반에서 Vue 프로젝트 생성하기Node.js 설..
1. 낙관적 락 (Optimistic Lock)충돌이 자주 발생하지 않는다고 가정하고, 데이터를 갱신할 때 충돌을 감지하여 처리하는 방식 동작 방식데이터를 조회할 때 특정 버전 정보를 함께 가져옴업데이트할 때 기존 버전과 비교하여 변경되지 않았으면 업데이트버전이 다르다면 충돌이 발생한 것으로 생각하고, 갱신 실패 처리 후 재시도 또는 오류 반환장점동시성이 높은 환경에서 성능이 좋음 (락을 걸지 않으므로 대기 시간이 없다)데드락 발생 가능성 X단점충돌이 자주 발생하면 성능 저하충돌 감지를 위한 추가 로직 필요사용 예시 @Entitypublic class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Lon..
1. Kafka란?Kafka란 분산 메시징 시스템으로, 대량의 데이터를 빠르고 안정적으로 처리할 수 있는 이벤트 스트리밍 플랫폼이다.마이크로서비스 아키텍처에서 서비스 간의 비동기 통신을 위해 자주 사용된다. 특징발행/구독 메시징 시스템 메시지를 Producer(생산자) 가 전송하면, Consumer(소비자) 가 구독(Subscribe)하여 가져가는 구조.메시지를 토픽(Topic) 단위로 관리하여 여러 Consumer가 동시에 구독 가능.고성능 & 확장성 분산 처리 기반이라 대량의 데이터를 빠르게 처리 가능.여러 개의 브로커(Broker) 가 클러스터를 이루어 확장 가능. 내결함성 복제(Replication) 기능을 지원하여 데이터 손실 방지.파티션(Partition) 을 사용하여 장애 발생 시 다른 브로..
1. 멀티 모듈이 왜 필요할까?Spring Boot로 프로젝트를 개발하다 보면, 코드가 점점 커지면서 관리가 어려워지고 같은 코드를 여러 곳에서 중복해서 쓴다는 문제점이 있다. 이런 문제를 해결하기 위해 멀티 모듈 프로젝트를 사용하면 여러 서비스 모듈을 독립적으로 관리할 수 있다.2. 멀티 모듈 프로젝트란? Spring Boot에서 프로젝트를 개발할 때 단일 프로젝트 방식과 멀티 모듈 프로젝트 방식이 있다.각 방식의 차이를 비교하고, 멀티 모듈이 필요한 경우와 실제 사용 사례를 살펴보자. 멀티 모듈 vs 단일 모듈단일 모듈서로 다른 프로젝트에서 공통된 코드가 사용된다면, 코드를 복붙해서 사용해야한다.여러 프로젝트에서 사용하기 위해 IDE, 인스턴스를 N개 실행해야 한다.하나의 수정에도 전체 프로젝트를 빌..
1. 웹소켓(WebSocket)이란? 웹소켓은 클라이언트와 서버 간의 양방향 통신을 가능하게 하는 프로토콜이다.기존 HTTP 요청-응답 방식은 클라이언트에서 요청을 해야지만 서버에서 응답을 해서 값을 가져오는 반면,웹소켓은 한 번 연결하면 지속적으로 데이터를 주고받을 수 있어 실시간성이 중요한 서비스에 적합하다. 특징 1. Persistent Connection HTTP는 요청-응답 후 연결이 끊기지만, 웹소켓은 한 번 연결되면 유지됨2. 양방향 통신클라이언트와 서버가 서로 데이터를 계속 주고받을 수 있음3. 낮은 오버헤드HTTP보다 헤더 크기가 작아 네트워크 비용 절감4. 빠른 데이터 전송연결이 유지되고 있으므로 응답 속도가 빠름 그리고 STOMP(Simple Text Oriented Messagin..