본문 바로가기

반응형

전체 글

Git Rebase 이해하기 포크한 저장소를 최신 원본과 동기화시키기 위해 rebase 명령어를 사용합니다. REBASE 과정 및 원리 보다 쉬운 이해를 위해 상황 순서에 맞게 번호를 붙였습니다. 1. 원본 저장소 fork 우리가 원본 저장소의 코드를 내 원격 저장소로 fork하게 되면 아래와 같은 상황입니다. 2. 내 원격 저장소 clone 그리고 이렇게 fork 한 내 원격 저장소를 로컬로 clone 하여 가지고 오면 아래와 같은 상황이 됩니다. 이와 같은 상황에서 원본 저장소에서부터 가져온 커밋들을 base라고 부릅니다. 원본 저장소와 포크를 받아온 나의 원격저장소, 그리고 클론을 받은 로컬에는 모두 같은 해시값의 커밋들로 이루어집니다. git은 base가 교체되지 않는 한, base가 같은 저장소에만 push를 할 수 있습니.. 더보기
스프링 필터 지난번 포스팅에서 커스텀 스프링 필터의 오류를 작성하였으니 이번 포스팅에서는 스프링 필터 구조에 대해서 자세하게 적고자 합니다. 스프링 필터에 대해서 설명하기 전, 서블릿과 서블릿 컨테이너에 대해서 간략하게 요약해보았습니다. 해당 개념이 모호하신 분들은 한번 읽고 스프링 필터에 대해서 읽어주세요. 서블릿이란 서블릿이란 Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 웹을 만들 때 다양한 요청과 응답이 있고 이러한 요청과 응답을 간단한 메서드 호출로 처리해주는 기술이 서블릿의 역할이다. 서블릿 컨테이너란 서블릿을 담고 관리해주는 컨테이너이다. 서블릿 컨테이너는 구현되어 있는 서블릿 클래스의 규칙의 맞게 서블릿을 관리해준다. 클라이언트에서 요청을 하면 컨테.. 더보기
Spring Batch 개요 Spring Batch 용어 1. Job Job은 배치처리 과정을 하나의 단위로 만들어 놓은 객체이다. 배치처리 과정에서 전체 계층 최상단에 위치한다. 2. JobInstance JobInstance는 Job의 실행의 단위를 나타낸다. Job을 실행시키게 되면 하나의 JobInstance가 생성된다. 어떤 하나의 JobInstance가 실패하여 다시 실행을 시키게 되면 이 JobInstance는 실행 시점의 데이터만 처리한다. 3. JobParameters JobInstance를 구분하는 구분자이다. JobInstance에 전달되는 매개변수 역할이다. JobParameters는 String, Double, Long, Date 4가지 형식만을 지원한다. 4. JobExecution JobExecution은.. 더보기
Spring으로 개발하며 맞닥뜨린 CORS! 앞서, CORS에러 문제 해결방법에 대하여 설명하기 전에 CORS에 대하여 간략하게 설명하고자 합니다. 더 자세한 내용을 알고 싶다면 해당 페이지에서 확인하는 것을 추천드립니다. CORS란? 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청을 실행합니다. 위에 나온 시나리오를 요약해보았습니다. 클라이언트(=브라우저)의 웹 컨텐츠가 'https://foo.example'이고, https://bar.ot.. 더보기
인덱스 구조 및 탐색 with 친절한 SQL 튜닝 인덱스 탐색 과정 인덱스 탐색 과정은 수직적 탐색과 수평적 탐색, 두 단계로 이루어진다. 테이블에서 데이터를 찾는 방법은 크게 두 가지로 나누어진다. 1. 테이블 전체를 스캔한다. 2. 인덱스를 이용한다. 인덱스는 큰 테이블에서 소량 데이터를 검색할 때 사용한다. 온라인 트랜잭션 시스템에서는 소량 데이터를 주로 검색하므로 인덱스 튜닝이 중요하다. 인덱스 튜닝의 첫 번째 요소는 인덱스 스캔 과정에서 발생하는 비효율을 줄이는 것이고, 두 번째는 테이블 액세스 횟수를 줄이는 것이다. 이 두 가지 요소 중 더 중요한 것은 랜덤 액세스 최소화 튜닝이다. SQL 튜닝은 랜덤 I/O와의 전쟁이다. 기본적으로, 데이터 베이스 성능이 느린 이유는 디스크 I/O 때문이다. 읽어야 할 데이터량이 많고 그 과정에서 디스크 I.. 더보기
서비스와 스택 서비스 단일 도커 호스트에 대한 컨테이너 배포는 docker container run 명령으로 컨테이너를 일일히 실행하거나 컴포즈를 사용해 여러 컨테이너를 동시에 실행하는 방법이 있다. 어떤 특정한 문제를 해결하기 위해 만들어진 애플리케이션은 단일 컨테이너 혹은 여러 컨테이너로 구성될 수도 있으며 그것들이 복제된 집합으로 이루어졌을 수도 있다. 이렇게 애플리케이션을 구성하는 일부 컨테이너를 제어하기 위한 단위로 서비스라는 개념이 생겨났다. $ docker container exec -it manager \ > docker service create --replicas 1 --publish 8000:8000 --name echo registry:5000/example/echo:latest hbp13rv25.. 더보기
도커 스웜 컨테이너를 단일 도커 호스트에 배치하는 것은 쉽다. 그러나 많은 트래픽을 처리하는 시스템들은 대개 여러 컨테이너가 각기 다른 호스트에 배치된다. 도터 스웜은 여러 도커 호스트를 클러스터로 묶어주는 컨테이너 오케스트레이션 도구의 한 종류다. 이런 컨테이너 오케스트레이션 도구 없이는 도커 호스트 여러 대를 사용하는 확장성 있는 애플리케이션을 만들기가 매우 어렵다. 어느 도커 호스트에 어떤 컨테이너를 배치해야 하는지, 서로 다른 호스트에 위치한 컨테이너 간의 통신은 어떻게 제어하는지 등의 조율을 오케스트레이션 도구 없이 하기 힘들다. 이름 역할 대응하는 명령어 컴포즈 여러 컨테이너로 구성된 도커 어플리케이션을 관리(주로 단일 호스트) docker-compose 스웜 클러스터 구축 및 관리(주로 멀티 호스트) .. 더보기
AWS RDS Backup AWS Backup RDS Backup And Restore RDS 생성시, 일반적으로 자동 백업(Automated Backup)을 설정할 수 있다. 자동 백업 활성화시, 매일 자동으로 데이터에 대한 완전한 스냅샷을 만들고, 트랜잭션 로그를 캡처한다. 전체 DB 인스턴스의 백업을 한다. 이 백업을 사용하면 보존 기간 내에 언제든지 특정 시점으로 복구(PITR) 수행이 가능하다. AWS Snapshot​ DB 인스턴스의 특정 시점을 스냅샷으로 생성한다. 자동으로 생성 가능하며, 수동으로도 생성 가능하다. 자동 생성된 스냅샷: 'RDS > 스냅샷 > 시스템' 에서 확인 가능 수동 생성된 스냅샷: 'RDS > 스냅샷 > 수동' 에서 확인 가능 스냅샷을 사용하여 새 DB 인스턴스를 생성 할 수 있다. 전체 백업.. 더보기

반응형