GitLab CI로 Docker 이미지 자동 빌드 & 푸시 파이프라인 구축하기 -2
·
CI-CD
이전 포스팅을 참고바랍니다. GitLab CI로 Docker 이미지 자동 빌드 & 푸시 파이프라인 구축하기 -1 Docekr hub 개인 private repo 생성" data-og-host="some4956.tistory.com" data-og-source-url="https://some4956.tistory.com/entry/GitLab-CI%EB%A1%9C-Docker-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%9E%90%EB%8F%99-%EB%B9%8C%EB%93%9C-%ED%91%B8%EC%8B%9C-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-1" data-og-url="htt..
GitLab CI로 Docker 이미지 자동 빌드 & 푸시 파이프라인 구축하기 -1
·
CI-CD
1. 개요 본 프로젝트에서는 GitLab CI 를 활용하여 Docker 이미지를 자동으로 빌드하고 배포하는 파이프라인을 구축할 예정입니다.Docker Image를 어디에 저장할 것인가 ?-> Docekr hub 개인 private repo 생성하여 해당 리포지토리에 이미지를 올릴것입니다. 추후 로컬 docker registry 연동도 테스트 해볼 예정 2. 전반적인 흐름 (간략 설명) GitLab Repository 생성 Docker Hub 개인 Private Repository 생성GitLab Runner 설치 및 GitLab 연동프로젝트에 Dockerfile과 .gitlab-ci.yml 파일 작성소스 코드 GitLab에 푸시CI 파이프라인 실행빌드 및 Docker 이미지 푸시 결과 확인 3...
[Redis] Redis Cluster 마스터-슬레이브 6노드 자동 구성 스크립트로 환경 구축
·
레디스 Redis
1. 들어가며1-1. Redis 단일 인스턴스의 한계 메모리 확장 한계 : 레디스는 메모리기반(in-memory) 저장소이기 때문에, 단일 인스턴스에서 사용하는 메모리는 기본적으로 서버 한대의 RAM 용량에 제한됨. 대용량 데이터를 캐싱하거나 저장할 경우, 단일 인스턴스만으로는 감당이 어려움 단일 장애 지점 (Single Point of Failure) : 단일 인스턴스로 구성된 redis는 해당 인스턴스가 꺼지면 전체 시스템이 영향을 받는다. 장애복구(failover)를 수동으로 해야함. 클라이언트가 자동으로 다른 서버로 연결될 수 없음 ex) 서비스 트래픽 급증으로 redis가 다운되면, 캐시 의존적인 기능이 모두 장애로 이어짐! 수평확장이 불가능 : 단인 redis 인스턴스는 슬롯분산(shardi..
[Kafka] 카프카 클러스터 분산구조 쉽게 알기 feat. 택배 물류센터
·
카프카 Kafka
먼저, 카프카의 "토픽"은 앞서 말한대로 데이터의 논리적인 그룹을 의미하며, 특정한 주제의 메시지를 저장하는 공간입니다.  그 토픽을 여러개의 "파티션"으로 쪼개서 여러 "브로커"에 분산 저장함으로써 더 빠르고 효율적인 처리를 가능하게 합니다. https://some4956.tistory.com/entry/Kafka-%EC%B9%B4%ED%94%84%EC%B9%B4%EB%9E%80-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%A3%BC%EC%9A%94-%EC%9A%A9%EC%96%B4%EC%A0%95%EB%A6%AC [Kafka] 카프카란? 개념과 주요 용어정리카프카(Kafka) 는 대용량 데이터를 빠르고 안정적으로 처리할 수 있는 고성능 분산 이벤트 스트리밍 플랫폼 입니다.  번외로, 카프..
[Kafka] 카프카란? 개념과 주요 용어정리
·
카프카 Kafka
카프카(Kafka) 는 대용량 데이터를 빠르고 안정적으로 처리할 수 있는 고성능 분산 이벤트 스트리밍 플랫폼 입니다.  번외로, 카프카가 언제부터 이렇게 유명하게 사용되었나 궁금하여 찾아보았습니다. - 2011년: LinkedIn에서 내부용 메시지 큐 시스템으로 자체 개발                LinkedIn이 Kafka를 Apache Software Foundation 에 기부하면서 오픈 소스로 공개됨.- 2012~2014년 : 대규모 데이터 스트리밍 표준으로 자리 잡음.                 Twitter, Netflix, Uber, Airbnb 같은 빅테크 기업들이 Kafka를 도입하면서 유명해짐. - 2017년 이후, 은행, 금융권, 이커머스, 클라우드 서비스 업체들이 대거 도입함. ..
[JAVA] 메서드 체이닝(Method Chaining) 이란? 사용 예시/ 주의사항
·
백엔드 back-end
메서드 체이닝이란 ? .setxxx().setxxx() 같은 코드 패턴은 개발을 하면서 많이 보았지만 정확한 이 개념에 대해서 자세히 알지 못해서 정리하게 되었다.  메서드 체이닝(Method Chaining)이란 객체지향프로그램(OOP) 에서  메서드 호출을 연속적으로 이어서 호출하는 패턴을 말한다.일반적으로 **Setter 메서드나 빌더 패턴(Builder Pattern)**에서 많이 사용된다. 1. 일반 방식 vs. 메서드 체이닝 방식 코드 차이 1) 일반적인 방식 ( 메서드 체이닝을 사용X) class Person { private String name; private int age; public void setName(String name) { this.name =..
[Redis] 트러블 슈팅 : 레디스 외부 연결 설정 후 에러 발생 / Failed to start redis-server.service - Advanced key-value store.
·
레디스 Redis
문제 발생 배경 AWS EC2 서버에 Redis를 설치한 뒤, 외부 접속을 허용하기 위해 /etc/redis/redis.conf 파일을 수정하고 Redis를 재시작(restart)했으나, Redis 서버 실행이 실패하는 문제가 발생했다.   redis-server.service: Failed with result 'exit-code'.Failed to start redis-server.service - Advanced key-value store.** 참고 ** 로그 보기 명령어 sudo journalctl -xeu redis-server.service sudo journalctl -u redis-server.service // 모든 로그 출력  redis 상태 확인 systemctl status..
[Redis] AWS EC2에서 Redis 설치 및 외부 접근 설정 가이드
·
레디스 Redis
목적 프로젝트 구현하면서 토큰(refresh token) 을 저장하기 위해 Redis를 활용하였다. 애플리케이션은 AWS EC2 서버에 배포 되었으므로 EC2 인스턴스에 Redis를 설치하고 외부에서 접근 가능하도록 설정한다.  작업 진행 단계1. EC2 에 Redis 설치하기 1.1 서버 연결  - (ubuntu 이용중)  1.2 Redis 설치 sudo apt updatesudo apt install redis-server 1.3 설치 확인 Redis가 제대로 설치되었는지 버전을 확인한다. sudo redis-server --version ex) 2. Redis 외부 접근 허용 설정 Redis는 기본적으로 외부 접근이 차단되어 있다. 이를 허용하기 위해 설정 파일을 수정한다.  2.1 Redis 설정..
[JAVA] Logger 선언: 정적(static) vs 인스턴스(instance) 방식의 차이, 권장방법?
·
백엔드 back-end
자바 로그 선언에 대해서 찾아보면 2가지 선언방법이 나옵니다. 정적선언LOGGER를 static으로 선언함으로써 클래스에 종속된 상태로 유지private static final Logger logger = LoggerFactory.getLogger(JavaClassName.class);인스턴스 선언 getClass() 를 사용해 현재 인스턴스의 클래스 타입을 기준으로 Logger를 선언 private final Logger log = LoggerFactory.getLogger(getClass());   https://slf4j.org/faq.html#declared_static SLF4J FAQGeneralities What is SLF4J? When should SLF4J be used? Is SLF4..
[Spring] DTO & Entity 차이, 분리이유 ?
·
백엔드 back-end
목차1. DTO2. Entity3. DTO,Entity 클래스가 분리되는 이유DTO, Entity 클래스의 개념과 쓰임을 다시 확실히 알고자 한다.  dto 와 entity class 는 자바(스프링) 에서 데이터 처리를 위해 사용되는 두개의 class 이지만 역할과 목적이 다르다.  dto,entity 가 가지고 있는 필드는 비슷하지만, 꼭 일치할 필요는 없다. entity에 있는 필드중 필요한 데이터만 dto 에 포함해서 전송하면 된다.   DTO - Data Transfer Object - VO(Value Object) 라고도 표현하는데, 계층간 데이터를 교환하기 위한 JAVA Beans 이다. - 데이터베이스 레코드의 데이터를 매핑하기 위한다.   - DTO 는 로직을 가지고 있지않고 getter..