개요 Dockerfile작성하는 법과 docker 이미지를 생성하는 방법에 대해 알아보자 설명 Dockerfile docker파일은 container로 띄우기전 image build를 위한 파일로 해당 image로 container가 실행되면서 필요한 package나 실행시킬 프로세스를 설정하는 파일이다. Dockerfile에 쓰이는 내용에 대해 자세히 알아보자 파일의 예시이다. 해당 내용을 보면 FROM, WORDIR, COPY등등 container가 실행될 때의 내용이 적혀있다. ex) FROM python:3.9-alpine WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . C..
CentOS7 Kafka 2.12-3.4.0 jdk 11 Kafka 설치 kafka 설치는 공식 홈페이지 https://kafka.apache.org/downloads 에서 받을 수 있다. kafka는 zookeeper가 있어야 돌아가므로 zookeeper먼저 실행후 kafka를 실행 시킨다. bin/zookeeper-server-start.sh config/zookeeper.properties bin/kafka-server-start.sh config/server.properties 이다. 기본포트는 zookeeper는 2181이고 kafka는 9092 이다. 포트는 각 설정 properties에서 할 수 있다. error가 없으면 기동 한것이다. 나는 나중에 kafka와 spring boot로 연결하..
Kafka Kafka는 Pub/Sub(Publisher/Subscriber) 모델을 사용하는 분산 스트리밍 플랫폼으로, 대량의 데이터를 실시간으로 처리하고 전달하는 데 사용된다. Kafka는 대용량의 데이터를 안정적이고 빠르게 처리할 수 있는 고성능 메시징 시스템으로 분류된다 Kafka cluster kafka cluster는 여러개의 kafka 서버(브로커)를 구성하고있는 집합체이다. Kafka 아키텍처 Kafka 아키텍처는 Producer, Broker, Consumer로 구성된다. Producer는 Kafka Topic에 데이터를 생성하고, Broker는 Kafka 클러스터에서 데이터를 저장하고 분배한다. Consumer는 Broker로부터 데이터를 가져와 처리한다. Topic은 분산 데이터 저장소..
예전에 유지보수중인 사이트중 사이트에서 다른사이트로 넘어가는 링크가 있었는데 이부분에서 sesison clustering이 제대로 되지 않아서 session Clustering을 하는 방법을 찾아보다가 그 당시에 많이 썻었다는 redis를 이용한 session Clustering을 만들었었다. 하지만 유지보중인 서버의 메모리가 좋지않아,,, memory기반인 redis는 결국 쓰지 못했다. 이번프로젝트에는 사용할 수 있는 cloud 서버여서 다시 적용해보기로했다...! 개요 -Redis 오픈 소스 In-Memory 데이터 구조 저장소이며, Key-Value 형식으로 데이터를 저장하고 캐시, 메시지 브로커 및 데이터베이스로 사용할 수 있다. Redis는 매우 빠른 속도와 고성능을 가지고 있어서 대규모 웹 ..
개요 mapping 되어있는 post, get으로 들어올 때 @RequestParam 또는 @RequestBody로 들어오는 데이터를 받아오는데 들어오는 것을 무조건 로그로 찍어내는 AOP를 만들러 보았다. 설명 - AOP AOP는 Aspect-Oriented Programming의 약자로 여러 부분에서 공통적으로 발생하는 작업 (cross-cutting concerns)을 모듈화하여 코드의 중복을 줄이고 유지 보수성을 향상시키는 프로그래밍 기법이다. 예를 들어, 로깅, 보안, 트랜잭션 처리 등은 어플리케이션의 여러 부분에서 공통적으로 발생하는 작업으로, AOP를 이용하면 이러한 작업들을 모듈화하여 코드의 중복을 피할 수 있다. 핵심 개념 1. Aspect : 어플리케이션에서 공통적으로 발생하는 작업을 ..
개요 Freestyle project에 있는 자주 쓰는 다양한 설정들을 알아보겠다.!!! 설명 1. General - 오래된 빌드 삭제 빌드내용은 항상 jenkins에 저장되어 있다. 위치는 {JENKINS_HOME}/jobs/{빌드 프로젝트이름}/builds 안에 빌드 번호로 1부터 쭈욱 있다. 이것도 내버려두다 보면 나중에 용량을 생각보다 많이 차지하게 된다. 그래서 빌드 유지기간, 보관할 최대개수를 설정하면 자동으로 삭제가 된다. - 이 빌드는 매개변수가 있습니다 빌드시 매개변수를 추가하는 것이다. 해당종류는 매우 다양하다. 해당 매개변수를 실제로 사용해본 예시를 들어 설명할 것이다. -Boolean Parameter 빌드 배포 시에 해당 톰캣등 서비스를 띄울 때 내리고 올리는 경우가 있는데 스테틱..
요즘 새로운 프로젝트에는 거의 쓰이진 않지만 유지보수 중인 프로젝트에 jenkins를 추가해달라는 요청이 있어해 주기로 했다.! 개요 dynamic web project 같은 경우에는 maven이나 gradle 처리 별도로 라이브러리가 저장되어 있는 repository를 사용하는 게 아니라 WEB-INF/lib에 라이브러를 넣고 web.xml 파일에 세부 설정을 해줘서 web을 사용하는 방식이다. 이 dynamic web project를 쉽게 컴파일하여 빌드해주는 것이 ant build이다. ant build는 build.xml파일에 어떻게 컴파일 및 빌드를 할지 설정한다. 사용할 프로젝트는 https://github.com/victory940209/testspringboot.git 안에 있는 testW..
개요 maven Java 프로젝트의 빌드, 의존성 관리 및 문서화를 자동화하기 위한 빌드 자동화 도구이다. Maven은 Java 기반 프로젝트에서 표준 빌드 프로세스를 정의하고 의존성 관리를 쉽게 처리할 수 있도록 지원한다. pom.xml 파일을 이용하여 프로젝트를 빌드하고 의존성을 관리한다. 해당 글은 pipeline을 이용한 것은 아니다 pipeline은 따로 정리할 것이다. 구현 1. 생성 + 새로운 item 버튼을 누르고 Freestyle project를 선택한다. 2. 형상관리 연결 해당 소스가 올라가 있는 형상관리를 선택하여 정보를 입력해 준다. 형상관리 연결 시 Credentials에 형상관리 연결 시 사용하는 계정아이디 비번을 치면 된다. username - 형상관리 ID password ..