전체 글298 [Docker] 나 보려고 만든 도커 명령어 모음 기본 명령어 docker version : Docker 버전 확인 docker system info : Docker 실행 환경 확인 docker search nginx : Docker Registry에서 원하는 Image 조회하기 도커 이미지 빌드 명령어 docker build -t image:1.0 . : 현재 디렉토리 내에 Dockerfile 로 부터 이미지를 빌드하고, 태깅까지 처리한다 docker image -a : 구동된 도커 엔진을 통해서 자신의 로컬에 업로드된 모든 Docker Image 를 리스팅한다. docker rmi : 명시한 Docker Image를 삭제한다. 도커 이미지 저장/내려받기 명령어 docker pull joincedu/image:1.0 : Docker Registry에서.. Infra/Open Source 2024. 4. 14. [Docker] 도커 컨테이너 (python app) 구동하기 윈도우 환경에서 vim 에디터 사용하는 방법 참고하기 (에디터는 취향껏..) 파이썬 앱 도커라이징해보기 ! Dockerfile 을 만들고 Build 실행 Docker Image 를 만들고 Run 실행 Docker Container 구동해보기 도커파일 만들기 vim Dockerfile FROM python:3.7-bullseye COPY hello.py /src/ ENTRYPOINT python /src/hello.py 파이썬 파일 만들기 vim hello.py print("hello world haenny container") 도커 파일 실행하기 도커 이미지 빌드 docker build -f Dockerfile -t haenny-python-3.7 . 도커 파일 빌드 -f 파일 이름은 Dockerfile.. Infra/Open Source 2024. 4. 14. [Windows] 윈도우 환경 vim 설치하기 윈도우 환경에서는 vim 제공하지 않기 때문에 따로 설치가 필요함 설치 사이트 접속 download : vim online Downloading Vim Vim is available for many different systems and there are several versions. This page will help you decide what to download. Most popular: Details and options for: Mirrors Alternative sites to download Vim files from. Sources Build Vim your www.vim.org 설치 파일 다운로드 gvim_9.1.10000_x64.exe 설치 파일 실행 vim alias 설정하기 파워.. 운영체제 2024. 4. 14. [Docker] Mysql 설치하기 이전 글 보고 오기 [Docker] Windows10 Docker 설치하기 환경설정 도커를 사용하기 위해 가상화 기술인 Hyper-V 를 활성화 시켜주어야한다. 작업 관리자 - 성능 - 가상화 사용 설정을 확인한다. 제어판 - 프로그램 - 프로그램 및 기능 - Windows 기능 켜기/끄 haenny.tistory.com Mysql 설치 Unable to find image 'mysql:5.7' locally : 로컬에서 mysql 5.7 버전을 찾을 수 없어 도커 레지스트리에서 이미지를 다운받음 (pull) docker run --name haenny-mysql -e MYSQL_ROOT_PASSWORD={password} -d -p 3306:3306 mysql:5.7 Unable to find imag.. Infra/Open Source 2024. 4. 14. [Lombok] @Builder.ObtainVia 사용법과 toBuilder 개념 @Builder.ObtainVia https://projectlombok.org/features/Builder @Builder를 사용하여 여러분이 만든 클래스의 인스턴스를 생성하는 빌더를 만들 때 (이것은 메서드에 @Builder를 추가하지 않는 한 항상 해당됩니다), @Builder(toBuilder = true)를 사용하여 이 클래스 내부에 toBuilder()라는 이름의 인스턴스 메서드도 생성할 수 있습니다. 이 메서드는 현재 인스턴스의 모든 값으로 시작하는 새로운 빌더를 만듭니다. 또한 매개변수(생성자 또는 메서드의 경우)나 필드(타입에 @Builder를 사용하는 경우)에 @Builder.ObtainVia 주석을 넣어서 해당 필드/매개변수의 값을 이 인스턴스에서 가져오는 대체 수단을 나타낼 수 있.. JVM/Java 2024. 3. 21. [Kubernetes] K8S 배포 설정 Deployment, Service, Ingress 파악하기 Deployment Kubernetes Deployment Docs. 디플로이먼트는 파드와 레플리카셋에 대한 업데이트를 선언하는 영역 apiVersion: apps/v1 kind: Deployment metadata: name: haenny-deploy labels: app: haenny-deploy spec: replicas: 2 revisionHistoryLimit: 3# 유지할 ReplicaSet의 최대 개수 설정 selector: matchLabels: app: haenny template: metadata: labels: app: haenny spec: containers: - name: haenny image: openjdk11 command: - /java/openjdk/bin/java - .. Infra/Open Source 2024. 2. 2. [K8S] 파드 CreateContainerError 오류 해결 스펙 SpringBoot 2.7.16 openjdk11 상황 Failed | Error: Error Response from daemon: No command specified 스프링부트 프로젝트를 Docker 로 감싸 gitlab-ci.yaml 구성하여 K8S 컨테이너에 올리는 과정 중 발생한 오류이다. 사실 위의 오류가, 지금 작성하는 필자의 원인만 있는 것은 아니다. 컨테이너 구동하기 위해 실행되는 명령어에 있어 문제가 있을 때 발생하는 것 같은데, 나와 동일한 트러블 슈팅한 내용을 찾지 못했어서.. 혹시라도 동일한 원인이 있을 경우 도움이 될까 싶어 기록한다. 배포 프로세스 먼저 전체적인 CI/CD 배포 구성한 과정을 요약하자면 다음과 같다. girlab-ci.yaml : 프로젝트에서 설정한 Do.. Infra/Open Source 2024. 1. 30. [GitLab] Git SSH Key 등록하기 사전 작업 Git 설치 : [Git] Windows11 64bit 환경 Git 다운로드 및 설치하기 - ① Setup Git 실행 디렉토리 - 마우스 우클릭 - Open Git Bash Here 혹은 Git Bash 검색하여 실행 SSH Key 생성 ssh-keygen key 저장할 경로 설정 - 입력하지 않고 Enter 시 기본 경로에 저장됨 password 설정 - 입력하지 않고 Enter 시 패스워드 설정하지 않음 아래와 같이 ssh key 생성! Gitlab 에 SSH 키 등록 기본 경로 (혹은 본인이 지정한 경로) 이동 id_ed.pub 파일 메모장으로 오픈하여 내용 복사 Gitlab - 우측 상단 프로필 선택 - Edit profile 페이지 이동 - 좌측에 SSH Keys 페이지로 이동 .p.. SCM/Git + Github 2024. 1. 22. [Kubernetes] 윈도우 환경 kubectl 설치 및 설정하기 시작하기 전에 클러스터의 마이너(minor) 버전 차이 내에 있는 kubectl 버전을 사용해야 한다. 예를 들어, v1.29 클라이언트는 v1.28, v1.29, v1.30의 컨트롤 플레인과 연동될 수 있다. 호환되는 최신 버전의 kubectl을 사용하면 예기치 않은 문제를 피할 수 있다 쿠버네티스 버전 : v1.24.9 → kubectl 버전 : v1.24.1 을 설치하겠다 kubectl 설치 방법 다음과 같은 2가지 방법으로 윈도우에 kubectl을 설치할 수 있는데, 필자는 첫번째 방법으로 진행해보겠다. 윈도우에서 curl을 사용하여 kubectl 바이너리 설치 Chocolatey, Scoop, 또는 winget을 사용하여 윈도우에 설치 kubectl 설치 최신 패치 릴리즈 버전은 1.29 다운로.. Infra/Open Source 2024. 1. 18. [Docker] Windows10 Docker 설치하기 환경설정 도커를 사용하기 위해 가상화 기술인 Hyper-V 를 활성화 시켜주어야한다. 작업 관리자 - 성능 - 가상화 사용 설정을 확인한다. 제어판 - 프로그램 - 프로그램 및 기능 - Windows 기능 켜기/끄기 - Hyper-V 활성화 후 리부팅 Docker 설치 Docker Window 설치 파일 다운로드 설치 완료 후 재부팅 필요 Continue without signing in 클릭했음 실행 화면 VDI 환경에서 Docker 설치 시 오류 발생 팝업에 나와있는 사이트 접속하여 가이드 대로 실행하고 구글 서칭도 해보았지만, 해결되지 않았다. 원인 추측이 되신다면 답글을... Infra/Open Source 2024. 1. 16. [Java] 반복문 종류 및 특징 (for, while, do-while) 반복문 코드를 반복적으로 실행하고자 할 때 사용하는 구문 반복문 종류 : for, while, do-while for : 반복 횟수를 알고 있을 경우 주로 사용 while : 조건에 따라 반복할 때 주로 사용 for문 반복문의 대표로, 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복 수행한다. 구문 for ( 초기화 ; 조건식 ; 증감식 ) { // 실행 코드 } for(int i = 0; i < 10; i ++) { System.out.println(i); } 구조 초기화 : 반복할 변수의 초기값을 설정한다 조건식 : 반복할 조건식으로 true 라면 실행문을, false 라면 실행하지 않고 반복문을 벗어난다 증감식 : 반복할 변수를 더하거나, 빼는 등의 수행 방식을 설정하여 반복 횟수를 결정한다 En.. JVM/Java 2023. 11. 7. [Git] 자주 사용하는 Git 터미널 명령어 모음 git을 사용할 때, IntelliJ IDEA 와 Git Bash 를 같이 사용하고 있다. 대체적으로 충돌나거나 이력 확인 외에는 Git Bash 사용이 편해서, 관련해서 자주 사용하는 명령어를 정리했다. Git Document | 사이트 stash 로컬에서 작업 중이던 변경사항을 커밋하지 않고 저장하는 기능 (정말 유용) git stash -m 'message' # 작업중이던 변경된 파일들 stash 영역에 저장 git stash show [stash number] # stash 영역에 저장된 파일 보기 git stash list # 생성한 stash 리스트 보기 git stash apply [stash number] # 번호에 해당하는 stash 영역에 있는 파일들 불러오기 git stash drop.. SCM/Git + Github 2023. 10. 8. [Spring] @Valid 와 @Validated 활용한 유효성 검증 (Feat. Custom Valid Annotation 생성) 부제 : Java Bean Validation 과 Spring Framework Validation Validation의 정확한 동작 방식을 모른채, Validation Annotation 생성하여 해결하려다 원하는 대로 동작하지 않아 결국 유효성 검증 동작 방식을 찾아보게 되었다. 관련해서 동일한 난관에 부딪혔을 때 참고하면 좋을 것 같아 남긴다. 문제 상황 동일한 클래스에 대해 제약조건이 다른 경우 필자의 경우, 하나의 클래스에서 제약조건이 다른 경우 보다는 상속 관계를 가진 부모-자식 객체에서 동일한 필드에 대한 제약조건이 다른 경우였다. 결론에 언급하겠지만, 현 게시글의 해결책은 하나의 클래스에 대해 제약조건 설정하는 경우에 더 적합하긴 하다. 요구 사항 부모 객체 name 필드는 NotNull .. JVM/Spring 2023. 10. 4. [JUnit] JUnit의 Rollback 수행 관리 @Transactional method, class 단위로 설정 가능 테스트 시작 전 트랜잭션을 시작, 테스트 완료 후 항상 롤백하여 다음 테스트에 영향을 주지 않는다. class Test { @Test @Transactional void test1() { // ... } @Test void test2() { // ... } } @Rollback (false) class 단위 @Transactional 선언한 경우, 모든 메소드에 대해 적용된다. 이 때, 특정 메소드만 rollback 처리 제외되도록 설정 가능하다 @Transactional class Test { @Test void test1() { // ... } @Test @Rollback(false) void test2() { // ... } } .. JVM/JUnit 2023. 10. 3. [JUnit] 소개 - 6. MockMVC 란 ? MockMVC 테스트 코드를 작성하지 않은 경우, 포스트맨 등의 도구를 사용해 직접 호출해 서버를 디버깅해야하는데 MockMVC를 사용하면 이 과정을 건너뛸 수 있다 쉽게 말해, 웹 애플리케이션을 애플리케이션 서버에 배포하지 않고도 스프링 MVC의 동작을 재현하여 컨트롤러를 호출해주는 클래스이다. import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest @AutoConfigureMockMvc MockMVC Method 요약 method 설명 perform 요청 전송 시 사용 .. JVM/JUnit 2023. 9. 30. [JUnit] 소개 - 5. BDDMockito 란? BDDMockito BDD (Behavior-Driven Development Mockito) : 행위 주도 개발 테스트 대상의 상태의 변화를 테스트하는 것으로, 시나리오를 기반으로 테스트하는 패턴을 권장한다. BDD 권장 패턴 : Given, When, Then Mockito 와 차이 코드로 살펴보자 Mockito Example (given, when, then) @ExtendWith(MockitoExtension.class) public class MockAnnotation { @Spy UserService userService; @Test void test() { User user = new User("heng", 29); // given when(userService.getUser()).thenR.. JVM/JUnit 2023. 9. 27. [JUnit] 소개 - 4. Mokitio 란 ? Mockito Mockito 란 ? 복잡하게 얽혀있는, 의존성을 가지는 객체들을 가짜 객체로 만들어 테스트할 수 있는데 이런 객체를 Mock 객체라고 한다. (참고) Mockito는 관리가 어려운 Mock 객체를 손쉽게 사용하도록 지원해주는 프레임워크다. Mockito 단계 Mock 객체 생성 Mock 객체 행동 (Stubbing) : when 메서드를 통해 원하는 동작을 미리 정하고 이를 기반으로 테스트한다. Mock 작동 검증 (Verify) : 호출 등이 정확히 됐는지 확인한다. Mock 생성 방식 mock Method import static org.mockito.Mockito.mock; public class MockStudy { private UserService userService; @Te.. JVM/JUnit 2023. 9. 26. [JUnit] 소개 - 3. Annotation (TestInstance, TestMethodOrder, Tag) @TestInstance 테스트 인스턴스의 라이프 사이클을 설정하는 어노테이션 명시적으로 지정되지 않은 경우 기본 값 : PER_METHOD 라이프 사이클 PER_METHOD : 각 테스트 메소드마다 인스턴스가 생성 PER_CLASS : 테스트 클래스별로 테스트 인스턴스 생성 Example (PER_METHOD) import org.junit.jupiter.api.Test class Test { int number = 0; @Test fun add1() { number++ System.out.println("[add1] number is " + number); } @Test fun add2() { number++ System.out.println("[add1] number is " + number); }.. JVM/JUnit 2023. 9. 21. Spring Boot 3.0 버전업 Swagger 변경 사항 정리 Swagger 개발한 REST API 를 문서화해주는 도구로, 사용자가 편리하게 API 테스트할 수 있는 기능 사용 방법 Spring Boot 3.0 이하 버전 build.gradle dependencies 에서 springfox-boot-starter 추가하여 사용 implementation 'io.springfox:springfox-boot-starter:3.0.0' Spring Boot 3.0 이상 버전 Spring Boot 3.x 이상 부터는 springfox가 아닌 springdoc을 사용 implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' Annotations Swagger2 (Springfox) Swagger3 (.. JVM/SpringBoot 2023. 9. 20. [MyBatis] 동적 쿼리 <trim> 사용 방법 trim 속성 속성 설명 prefix 실행될 구문 쿼리 가장 앞에 붙여준다 prefixOverrides 실행될 구문 쿼리 가장 앞에, 해당하는 문자들이 있는 경우 자동으로 지워준다 suffix 실행될 구문 쿼리 가장 뒤에 붙여준다 suffixOverrides 실행될 구문 쿼리 가장 뒤에, 해당하는 문자들이 있는 경우 자동으로 지워준다 trim 문법 SELECT * FROM user WHERE id = #{id} OR user_name = #{userName} OR user_email = #{userEmail} 설명 prefix : 구문 맨 앞에 AND ( 가 붙음 prefixOverrides : trim 구문 안의 맨 처음 OR 로 시작할 경우 제거 suffix : 구문 맨 뒤에 ) 가 붙음 실행 쿼리 .. Database/MyBatis 2023. 9. 12. 이전 1 2 3 4 ··· 15 다음 추천 글 728x90 반응형