Linux

    [Docker] Docker 기본 명령어 알아보기

    [Docker] Docker 기본 명령어 알아보기

    Docker Hub에서 Image Download Docker pull command를 사용하여 DockerHub 에 등록된 이미지 다운로드 합니다. 다운로드 할 이미지는 ubuntu 18.04 이미지입니다. 사용법은 pull 명령어 뒤에 다운로드 할 이미지의 이름과 버전을 명시해줍니다. $sudo docker pull ubuntu:18.04 18.04: Pulling from library/ubuntu 5c939e3a4d10:Pull complete c63719cdbe7a: Pull complete 19a861ea6baf: Pull complete 651c9d2d6c4f: Pull complete Digest: sha256:8d31dad0c58f552e890d68bbfb735588b6b820a46e45..

    [Jenkins] Clone / Checkout Timeout 에러 처리

    [Jenkins] Clone / Checkout Timeout 에러 처리

    Jenkins에서 Git plugin을 사용하여, github의 프로젝트를 clone / check 시 timeout 에러가 발생하는 경우가 있다. Pull Request를 가져와 Jenkins에서 파이프라인을 수행하려할 때 아래와 같이 에러가 발생한다면 설정을 추가해주면 된다. ... > /usr/bin/git checkout -f f4dkcjp123lkk3344.... # timeout=10 ERROR: Timeout after 10 minutes ... Timeout이 발생할 수 있는 부분은 크게 2부분이다. clone, checkout 동작 시 repository에서 clone하거나, branch로 checkout 시 큰 용량이라면 문제가 발생할 수 있다. clone Configure > Bran..

    shared memory with mutex

    많은 분들이 pthread의 mutex를 thread 기반 프로그래밍에서만 사용할 수 있다고 생각합니다. 공유메모리를 사용하는 멀티 프로세스 환경에서도 Lock, Unlock을 위해 pthread_mutex를 사용할 수 있습니다. 아래 코드는 master와 slave로 나눠 2개의 프로세스가 공유메모리에 대해 접근하기 위한 방법입니다. 공유메모리에 pthread_mutex_t와 int형 변수를 가진 구조체를 올려두고 각 프로세스에선 mmap으로 매핑하여 사용합니다. 이때 자원을 함께 접근하여 사용하기 위해서는 pthread_mutex_t가 2개의 프로세스가 공유해야 하는데요, 그러긴 위해선 mutex의 attribute를 PTHREAD_PROCESS_SHARED로 설정해줘야 합니다. 아래 코드 중 69,..

    [Jenkins] Pipeline Syntax

    이 글은 지속적으로 업데이트 중입니다. Syntax 구성 Agent Post Stages Steps Agent section Jenkins는 다양한 일을 처리해야 합니다. 이때 하나의 머신에서 하나의 Job만들 수행하게 되면, 여러 Job을 순차적으로 밖에 수행을 할 수 없습니다. Agent section은 여러 node를 두고 job을 처리할 수 있도록 합니다. 어떤 node가 어떤 일을할지, 새로운 node를 생성하거나, 또는 docker image를 이용할 수도 있습니다. Post section Post section은 stage가 완료된 이후 실행하는 것 입니다. 파이프라인 또는 스테이지의 실행이 완료되었을 때 실행됩니다. always, changed, fixed, regression, abort..

    [Swagger / Fix] Swagger UI WhiteLabel error

    문제 상황 Swagger 설정 중 아래와 같은 의존성으로 pom.xml로 설정을 하였습니다. io.springfox springfox-swagger2 3.0.0 io.springfox springfox-swagger-ui 3.0.0 Swagger 버전은 3.0.0으로 swagger2와 swagger-ui 의존성을 설정하였었습니다. 이 상태에서 실행 시 api-docs 는 잘 실행되었지만, swagger-ui는 실행이 정상적으로 되지 않고 WhiteLabel 문제가 발생함을 확인하였습니다. 해결 방법 먼저 위에서 정의했던 2개의 의존성을 삭제하였습니다. 삭제한 후 아래의 의존성을 추가하여 주었습니다. io.springfox springfox-boot-starter 3.0.0 그 이후 서버 재시작을 하고 h..

    [Spring] REST API Version 관리

    Versioning 버전관리라는 것은 단순하게 사용자에게 보여주는 항목을 관리하는 것이 아닌 REST API 설계가 변경되거나 또는 Application의 구조가 변경되었을 시에도 버전을 변경해야 할수도 있다. 또한 사용자들이 어떤 버전을 사용해야 할지 가이드를 해야할 수 도 있습니다. 또한 회사, 팀마다 어떻게 Version 관리를 하는 방식은 매우 다릅니다. REST API의 새로운 버전을 오픈, 배포해도 고객들은 기존의 주 버전을 계속 사용하기를 원할수도 있고 새로운 API Version을 사용하길 원할 수도 있습니다 REST API 에서 Version을 관리하는 4가지 방법에 대해 정리하고자 합니다. Versioning 방법 URI versioning Request Parameter version..