프로그래머스 - 두 정수 사이의 합 Java
·
코테 문제 풀이/프로그래머스
문제 설명두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.제한 조건a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.a와 b의 대소관계는 정해져있지 않습니다. class Solution { public long solution(int a, int b) { long answer = 0; int tmp = 0; if(a>b){ tmp = a; a = b; b ..
프로그래머스 - 하샤드 수 Java
·
코테 문제 풀이/프로그래머스
문제 설명양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. class Solution { public boolean solution(int x) { int sum = 0; int num = x; while(num!=0){ sum += num%10; num /= 10; } return x%sum==0 ? true : false; }} 각 자릿수..
[🐙 Git & Github ] Github Actions 을 활용한 CI/CD 파이프라인 구성하기
·
Git
CI/CD  CI/CD는 지속적 통합 Continuous Integration과 지속적 배포 Continuous Deploy/Delivery를 의미한다.  지속적 통합(CI)이란? CI는 개발자들이 코드 변경사항을 자주 공유하고 통합하는 과정이다.빈번한 코드 업데이트 : 개발자들이 작업을 자주 중앙 저장소에 올림.자동화된 검증 : 코드가 올라갈 때 마다 자동으로 빌드와 테스트가 실행됨.빠른 문제 발견 : 통합 과정에서 발생할 수 있는 문제를 조기에 발견하고 해결.  지속적 배포(CD)란? CD는 검증된 코드를 자동으로 배포하는 과정이며 두 가지 형태로 나뉜다.지속적 전달 Continuous Delivery : 배포 준비가 완료된 코드를 수동으로 배포지속적 배포 Continuous Deploy : 검증된 ..
CI/CD와 Docker 이해하기
·
DevOps
CI/CD  지속적인 통합 Continuous Integration지속적인 서비스 제공 Continuous Delivery지속적인 배포 Continuous Deployment  Docker 도커를 사용하는 이유애플리케이션 개발과 배포가 편리해짐 Docker Container 내부에서 여러 소프트웨어를 설치해도 호스트 OS에는 영향이 없음.CI 과정의 테스트에서 Docker 활용.어떤 서버에 올리더라도 같은 환경으로 구성된 컨테이너로 동작하기 때문에 표준화된 배포를 구성할 수 있음.→ 애플리케이션의 독립성과 확장성이 높아짐 Docker 설치 ( Mac 기준 ) homebrew를 이용해 Docker, Docker compose 설치# 사전에 homebrew 설치 필수# docker for mac설치brew ..
서킷 브레이커 Resilience4j와 API 게이트웨이 이해하기
·
Spring
서킷 브레이커 서킷 브레이커는 마이크로서비스 간의 호출 실패를 감지하고 시스템의 전체적인 안정성을 유지하는 패턴외부 서비스 호출 실패 시 빠른 실패를 통해 장애를 격리하고, 시스템의 다른 부분에 영향을 주지 않도록 함.상태 변화 : 클로즈드 → 오픈 → 하프-오픈  Resilience4j Resilience4j : 서킷 브레이커 라이브러리로, 서비스 간의 호출 실패를 감지하고 시스템의 안정성을 유지한다.서킷 브레이커 상태클로즈드 : 기본 상태로, 모든 요청을 통과 시킴. 이 상태에서 호출이 실패하면 실패 카운터가 증가함. 실패율이 설정된 임계값을 초과하면 서킷 브레이커가 오픈 상태로 전환됨.오픈 : 서킷 브레이커가 오픈 상태로 전환되면 모든 요청을 즉시 실패로 처리, 에러 응답 반환. 설정된 대기 시간이..
클라이언트 사이드 로드 밸런싱 FeignClient와 Ribbon 이해하기
·
Spring
로드 밸런싱 로드 밸런싱은 네트워크 트래픽을 여러 서버로 분산시켜 서버의 부하를 줄이고, 시스템의 성능과 가용성을 높이는 기술.서버 간 트래픽을 고르게 분배하여 특정 서버에 부하가 집중되는 것을 방지.종류 : 클라이언트 사이드 로드 밸런싱, 서버 사이드 로드 밸런싱 클라이언트 사이드 로드 밸런싱 클라이언트 사이드 로드 밸런싱은 클라이언트가 직접 여러 서버 중 하나를 선택하여 요청을 보내는 방식.클라이언트는 서버의 목록을 가지고 있으며, 이를 바탕으로 로드 밸런싱을 수행.  FeignClient FeignClient는 Spring Cloud에서 제공하는 HTTP 클라이언트로, 선언적으로 RESTful 웹 서비스를 호출 할 수 있음.Eureka와 같은 서비스 디스커버리와 연동하여 동적으로 서비스 인스턴스를 ..