전체 글 100

Cloud > 학습 동기

Docker와 Kubernetes를 제대로 학습하고 싶었다. 안 쓰는 게임용 PC를 홈 서버로 구축하려고 했는데 게임용으로 사둔 PC를 서버로 쓰기에는 하드웨어가 아깝다고 생각했고, 또한 멀티 부팅을 위한 준비가 너무 귀찮고 번거로웠다 고민 후 게임용 PC는 자주 사용하지 않더라도 게임하는 데 사용하기로 했고, 서버용 PC를 구매하려고 하였다. 그런데 쿠버네티스를 설치하고 제대로 운영해보려면 또 번거로운 준비 과정이 필요하다. 하드웨어 구입 비용도 든다. 내가 시스템 엔지니어나 DevOps도 아닌데 수동으로 모든 걸 공부하고 준비하는 게 과연 의미가 있을 것인가에 대한 회의감이 들었다 클라우드 플랫폼 중 가장 유명하고 많이 쓰이는 AWS를 사용하기로 결정했다. 사실 AWS는 예전에 조금 공부해보았고 생각..

Cloud 2024.06.02

Maven > Lombok 설정

pom.xml org.projectlombok lombok 1.18.32 true 롬복 애너테이션을 달고 빌드를 하면 아래와 같이 인텔리제이 알림을 주는데, 예전에는 IDE 설정을 해야 빌드가 되는 것으로 알았는데 설정하지 않아도 빌드가 되는 것을 확인하였다 다만 위 알림이 계속 떠서 불편하다 Preferences > Build, Execution, Deployment > Compiler > Annotation Processors > Enable annotation processing 체크

Java/Build > Maven 2024.05.20

MyBatis-Spring-Boot-Starter > 멀티 모듈 프로젝트에서 다양한 방식으로 사용해보기

동기새 Spring Boot 프로젝트를 만들어 MyBatis-Spring-Boot-Starter을 적용할 때는 쉬운데, Spring MVC 프로젝트를 부트로 전환할 때 기본기가 부족해서 그런지 잘 되지 않아 학습 프로젝트를 만들어가며 이해해보려고 한다  사용 기술GradleJava 8Spring Boot 2여기서는 2.7.18 사용H2 DB내장 DB를 사용해 테스트mybatis-spring-boot-autoconfigure  mybatis-spring-boot-autoconfigure 적용https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure 사용 버전에 따라 MyBatis-Spring, Spring Boot 버전이 결정되니 적..

Spring/MyBatis 2024.04.18

Spring Boot > Fully executable jar 실행 시 MyBatis 에러

에러 내용 Caused by: java.lang.ClassNotFoundException: Cannot find class: 별칭 at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:200) 환경 org.mybatis.spring.boot:mybatis-spring-boot-starter 의존성 사용 SqlSessionFactory 빈을 직접 등록해서 사용 원인 SqlSessionFactory 빈을 별도로 등록하지 않고 스프링 부트 자동 설정을 통해 빈이 등록되도록 하면 문제가 없다 org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure 의존성의 MybatisAuto..

Spring/Spring Boot 2024.04.18

Jenkins > 설정 > 3. 깃헙 연동을 위한 Credential 추가

깃헙에서 소스 코드를 받아서 빌드하기 위해서 깃헙 저장소에 대한 권한이 있어야 한다깃헙 > 개인 액세스 토큰 만들기Settings > Developer settings > Personal access tokens > Generate new token > Generate new token (classic) 버튼 클릭 Expiration: No expiration Scopes: 일단 repo만 체크해도 됐다 생성된 토큰을 잘 복사해둔다젠킨스 > Credential 추가Manage Jenkins > Security > Credentials > System > Global credentials (unrestricted) >이건 자유롭게 설정해도 됨 Add Credentials 버튼 클릭 Kind: Usernam..

CI, CD/Jenkins 2024.04.09

Jenkins > 운영 > Job 백업, 복구

테스트 환경구 젠킨스 버전: 2.150.3신 젠킨스 버전: 2.440.2Job은 어디에 생성될까?젠킨스는 DB가 아닌 파일로 설정을 관리한다 젠킨스 잡은 젠킨스 홈 디렉터리의 jobs 디렉터리에 생성된다. 환경에 따라 젠킨스 홈 디렉터리는 달라질 수 있다예)사용자 홈 디렉터리/.jenkins/var/lib/jenkins $ ls jobsjobA jobB잡 이름에 해당하는 디렉터리가 있다 $ ls jobs/jobAconfig.xml ..잡 설정 파일 등이 있다잡 백업, 복구보통 애플리케이션을 빌드하기 위해 젠킨스를 사용할 텐데, 시간을 들여 열심히 여러 잡 생성을 해둘 텐데 어떤 이슈로 위 파일들이 삭제되거나 하면 다시 설정을 해야하는 번거로움이 발생할 수 있다. 사실 이것보다는 젠킨스 서버를 옮긴다던지 ..

CI, CD/Jenkins 2024.04.07

Jenkins > 설정 > 2. GitHub 계정으로 로그인할 수 있게 하기

GitHub 계정으로 로그인할 수 있게 하기GitHub OAuth를 통해 젠킨스 사용자의 인증/인가를 관리할 수 있다GitHub OAuth App 만들기GitHub > Settings > Developer settings >https://github.com/settings/developers OAuth Apps > New OAuth App > Application name: 적절히 입력Homepage URL: 젠킨스 URIAuthorization callback URL: ${Homepage URL}/securityRealm/finishLogin(${}는 Placeholder임) 등록을 하면 Client ID가 발급된다. Generate a new client secret 버튼을 클릭해 이것도 발급받자. ..

CI, CD/Jenkins 2024.04.05

Linux > 환경변수 설정을 파일에 추가해야할 때 리디렉션 사용하기

예를 들어 JAVA_HOME 환경변수 설정을 환경변수 파일에 추가하는 경우이다 직접 추가한다면 아래와 같이 할 것이다 $ vi .profile JAVA_HOME=/경로/jdk export PATH=$JAVA_HOME/bin:$PATH 직접 작성하지 않고 스크립트 등을 통해 자동화를 하는 경우엔 어떻게 해야할까? 아래와 같이 echo와 파일 연결 리디렉션을 사용하면 된다 echo ' export JAVA_HOME=/경로/jdk export PATH="$JAVA_HOME/bin:$PATH" ' >> ~/.profile PATH 뒤에 쌍따옴표를 사용한 것을 주목하자 그렇지 않고 아래와 같이 설정하면 어떻게 될까? echo " export JAVA_HOME=/경로/jdk export PATH=$JAVA_HOME..

OS/Linux 2024.04.04

Jenkins > 1. 설치 > Docker 기반

설치 환경OS: Ubuntu 22.04 9/2/2024 기준 젠킨스 최신 LTS 버전은 2.462.1이며 Java 17을 사용한다https://hub.docker.com/r/jenkins/jenkins  일단 Jenkins 띄워보기가볍게 시작해보면서 어떤 식으로 컨테이너에서 젠킨스가 동작하고 있는지 확인해보자compose.ymlservices: jenkins: image: jenkins/jenkins:2.462.1-lts-jdk17 container_name: jenkins ports: - "80:8080" $ docker compose up 눈여겨봐야할 로그는 아래와 같다..jenkins | Running from: /usr/share/jenkins/jenkins.warje..

CI, CD/Jenkins 2024.04.04

Redis > 설치 > Docker Compose 기반 Replication, Sentinel, Cluster

테스트를 위한 환경 준비 복제, 센티널을 테스트하려면 여러 대의 서버와 IP가 필요하다. 가장 먼저 VirtualBox 같은 가상화 프로그램을 사용하면 되겠다고 생각했다. 지금 사용하고 있는 컴퓨터가 맥북 M1인데 ARM 기반이기 때문에 흔히 알고 있는 가상화 프로그램이 정상 동작하지 않는다. 거기다 회사에서는 라이선스 이슈도 있다 참고: https://www.inflearn.com/questions/1176432/apple-m1-max-%EC%97%90%EC%84%9C%EB%8A%94-virtualbox-%EC%84%A4%EC%B9%98%EB%A5%BC-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%B4%EC%95%BC%ED%95%A0%EA%B9%8C%EC%9A%94 찾아보니 맥용 가상..

NoSQL/Redis 2024.04.03