Redis와 NoSQL, Redis의 데이터 타입 이해하기
·
DevOps
Redis Redis는 REmote DIctionay Server의 줄임말로, Java의 Map과 같은 방식으로 데이터를 저장하는 데이터베이스.일반적인 관계형 데이터베이스와 다른 가장 큰 특징은 In-Memory 데이터베이스라는 점.Redis는 메모리, 즉 RAM에 데이터를 저장하기 때문에, 복잡한 입출력 과정이 필요하지 않다. 그래서 일반적인 관계형 데이터베이스에 비해 더 빠르게 동작하는 대신, 언제든 사라질 수 있는 데이터를 다룬다는 차이를 가진다.사용 예시 > 특정 게시글의 조회수와 같이 빠르게 업데이트 되는 데이터, 사용자 세션, 장바구니와 같이 시간이 지나면 삭제되는 데이터 등 NoSQL 관계형 데이터베이스는 일반적으로 테이블 형식으로 데이터를 저장하고, 그 데이터를 회수하기 위해 SQL을 사용..
프로그래머스 - 콜라츠 추측 Java
·
코테 문제 풀이/프로그래머스
문제 설명1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요.제한 사항입력된 수, num은 1 이상 8,000,000 미만인 정수입니다. class Solution { public int solution(long num) { int ..
Dockerfile & Docker Compose 사용하기
·
DevOps
Dockerfile  Dockerfile : 컴퓨터에서 돌아가는 앱을 만들기 위한 레시피 같은 존재. Dockerfile을 토대로 DockerImage 생성 가능. DockerImage는 앱을 실행하는데 필요한 모든 것을 담고 있다. Dockerfile 예제 ># DockerfileFROM ubuntu:latestMAINTAINER Your Name RUN apt-get update && apt-get install -y nginxCOPY index.html /usr/share/nginx/htmlEXPOSE 80CMD ["nginx", "-g", "daemon off;"] 위 Dockerfile은 Ubuntu 최신 버전을 기반으로 nginx를 설치하고 index.html 파일을 nginx의 html 디렉..
프로그래머스 - 두 정수 사이의 합 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 : 서킷 브레이커 라이브러리로, 서비스 간의 호출 실패를 감지하고 시스템의 안정성을 유지한다.서킷 브레이커 상태클로즈드 : 기본 상태로, 모든 요청을 통과 시킴. 이 상태에서 호출이 실패하면 실패 카운터가 증가함. 실패율이 설정된 임계값을 초과하면 서킷 브레이커가 오픈 상태로 전환됨.오픈 : 서킷 브레이커가 오픈 상태로 전환되면 모든 요청을 즉시 실패로 처리, 에러 응답 반환. 설정된 대기 시간이..