전체 글 145

Github, Jenkins, Docker를 활용한 CI/CD - 3

이전 글에서 CI를 통해 Docker-compose.xml, dockerfiles 및 .jar file 이 jenkins 아카이브에 저장되었었다. 아카이브에 저장된 데이터들을 토대로 CD를 구현하기 위해 새로운 pipeline을 만든다. 1. 배포할 .jar 파일명2. public IP 명과금문제로 인해 IP가 바뀌게 되므로 이 두가지 값을 매개변수로 지정하여 사용할 예정이다. .jar 매개변수 명 : 이후에 작성할 script에서 호출하기 위한 이름Default Value : 초기 파라미터 값을 지정해준다. 잦은 변경이 일어나지 않을경우 유용하다설명 : 해당 파라미터가 어떤 파라미터인지 알아볼 수 있도록 설명하기 위한 부분 위와 동일하지만 public IP는 자주 바뀌기 때문에 default Value..

CI\CD 2025.05.19

Github, Jenkins, Docker를 활용한 CI/CD - 2

CI를 위한 pipeline 구성 젠킨스에서 하나의 CI/CD 프로젝트를 구축하기 위해서는 아이템(Item)을 생성하여야 한다.하나의 젠킨스 서버에 여러개의 아이템을 만들 수 있고 각각의 아이템들은 개발자가 설정하는 것에 따라 다르게 동작한다.젠킨스에서 아이템을 만드는 방법은 대표적으로 FreeStyle과 Pipeline이 존재한다.Freestyle장점웹 기반의 GUI를 통해 여러 플러그인을 쉽게 사용할 수 있다.단점:CI 파이프라인에 변경 사항을 만들기 위해서는 젠킨스에 로그인해 각각의 프리스타일 잡의 설정을 변경해야만 한다.CI/CD의 과정을 콘솔을 통해서만 확인할 수 있다.각각의 과정들을 한번에 보기 어렵다.Pipeline장점:파이프라인은 코드로 프로젝트 설정을 할 수 있어 프리스타일과 다르게 젠킨..

CI\CD 2025.05.17

Github, Jenkins, Docker를 활용한 CI/CD - 1

기본 세팅 github 토큰 발급Settings -> Developer settings -> Personal access tokens -> Tokens (classic) 필요한 권한 설정 후 생성 Docker 설치 Windows 11에 Docker Desktop 설치하기_2024.11목표Windows 11에 Docker Desktop 설치하기Docker 사용해보기 오랜만에 Docker설치하려고 하니 Docker 설치 UI가 바뀌어 2024.11.05 기준 다시 정리해보았습니다. 이번 정리에는 Docker 이미지 사용 예제도 함께herojoon-dev.tistory.com Docker 로 Jenkins 설치 docker로 jenkins 설치1. Jenkins를 Docker 이미지로 pulldock..

CI\CD 2025.05.17

docker로 jenkins 설치

1. Jenkins를 Docker 이미지로 pulldocker image pull jenkins/jenkins:jdk17 2. DockerfileFROM jenkins/jenkins:jdk17USER rootRUN apt-get update &&\ apt-get upgrade -y &&\ # 빌드가 완료된 프로젝트를 Jenkins(컨테이너) 외부의 서버에서 실행시켜야 하기 때문에 # ssh 를 통해 서버에 접속해 빌드된 프로젝트를 실행시키는 방법을 사용하기 위함 apt-get install -y openssh-client 3. docker-compose.ymlservices: jenkins: container_name: jenkins-container build: ..

CI\CD 2025.05.09

[Websocket] Redis pub/sub, WebSocket 기반 실시간 채팅 구현

1. RedisConfig RedisMessageListenerContainerRedis에서 발생하는 이벤트를 수신하는 리스너를 관리하는 빈 객체setConnectionFactory: Redis와의 연결을 담당하며 Redis 채널에서 들어오는 메시지를 수신하기 위해 사용한다RedisTemplateRedis 서버와의 데이터 전송 시 직렬화 및 역직렬화를 처리하고, Redis와의 상호작용을 담당한다Redis는 다양한 데이터 구조를 지원하지만, Java 객체를 Redis에 저장하려면 직렬화가 필요하다 Jackson2JsonRedisSerializerRedis에 저장되는 객체가 JSON 형태로 직렬화되고, Redis에서 가져온 데이터를 JSON으로 역직렬화할 수 있도록 설정한다. 2. WebsocketCon..

카테고리 없음 2025.05.08

[React] Vite 를 사용하여 React 설치 및 기본설정

1. npm create vite@latest : 리액트 파일 생성 명령어2. Y : 파일 생성 여부를 물어봄. y 입력 시 생성 진행3. 원하는 프로젝트 이름 입력, 키보드로 react선택, 키보드로 JS 선택4. 해당 폴더로 이동 npm i : package.json에 기록되어 있는 dependency 설치npm run dev → react 실행. index.html을 기준으로 실행됨http://localhost:5173/ : 해당 URL 접속 시 연결 확인 가능서버 종료 : 터미널 클릭 후 Ctrl + C main.html main.jsximport { StrictMode } from 'react'import { createRoot } from 'react-d..

FrontEnd 2025.04.26

docker란?, docker 사용방법

Docker어플리케이션을 컨테이너라는 독립적인 환경에서 실행할 수 있도록 해주는 오픈 소스 플랫폼이다.필요한 라이브러리, 종속성 등을 포함하여, 애플리케이션이 어디서나 동일하게 실행될 수 있게 해준다.Docker를 사용하면, 개발자는 애플리케이션을 "컨테이너"로 패키징하여 어떤 환경에서든 실행 가능하게 만들 수 있다.컨테이너(Container): 앱과 그 실행에 필요한 모든 파일, 라이브러리, 종속성을 포함하는 격리된 실행 환경앱이 어디에서나 일관되게 실행될 수 있게 해줌이미지(Image): 컨테이너를 실행하기 위한 템플릿어플리케이션, 라이브러리, 환경설정 등이 포함되어 있으며, 이를 바탕으로 컨테이너가 생성된다Dockerfile: 하나의 이미지를 생성하기 위한 설정 파일이미지를 어떤 기반으로 할지, 어..

CI\CD 2025.04.24

Filter, Spring Security

spring에서 모든 호출은 DispatcherServlet을 통과하게 되고 이후에 각 요청을 담당하는 Controller로 분배된다.이때, 각 요청에 대해서 공통적으로 처리해야 할 필요가 있을 때DispatcherServlet 이전에 단계가 필요하며 이 역할을 하는게 Filter다. Spring Security도 인증 및 인가를 위해 Filter를 사용하며, FilterChainProxy를 통해서 상세로직을 구현한다.Spring security에서 제공하는 인증방식: Form loginForm Login 기반 인증: 인증이 필요한 URL 요청 시 인증되지 않았다면 로그인 페이지를 반환하는 구조내부에서 인증을 처리할 때 가장 많이 사용되는 방식으로 usernamePasswordAuthenticationF..

CS 2025.04.23

[security] JWT와 Session의 차이

JWT (JSON Web Token)JWT는 JSON 포맷 형식으로 사용자 인증 정보를 담고 있는 토큰 기반 인증 방식이다.클라이언트 측에서 인증 정보를 유지하고, 요청 시 헤더 또는 쿠키에 포함시켜 서버에 전송한다.구조Header: 토큰의 타입(JWT ...)과 서명 알고리즘(암호화 알고리즘)Payload: 사용자 정보Signature헤더와 페이로드를 결합한 값을 서명 알고리즘을 통해 암호화하여 구현생성된 Signature를 JWT에서 받은 Signature와 비교하여 토큰의 변조 여부를 확인장점무상태성(Stateless): 서버가 사용자 상태를 유지할 필요가 없어 확장성에 유리하다분산 처리에 적합: 서버에 상태 정보를 저장하지 않기 때문에 여러 서버를 사용하여도 서버 간 세션 공유가 필요없다단점보안..

CS 2025.04.23

Claude 를 통한 MCP 구현

1. Claude Desktop 설치https://claude.ai/download 2. 회원가입 및 로그인 3. 좌측 상단의 줄 세개를 클릭 4. 파일 > 설정 탭을 클릭 5. 개발자 버튼 클릭 후, 설정 편집 클릭(화면이 조금 다를 수 있음) 6. 폴더가 열리며 claude_desktop_config.json 파일이 클릭되어 있을텐데, 해당 파일을 실행 7. 아직까지는 아무 값이 없으므로, 아래의 링크에서 필요한 기술의 소스코드 복사 (ex : firecrawl, jetbrains ...) GitHub - modelcontextprotocol/servers: Model Context Protocol ServersModel Context Protocol Servers. Contribute ..

웹 개발 종합 2025.04.19