Tech (58) 썸네일형 리스트형 [Docker] Docker Root Directory (도커 스토리지) 변경 도커를 사용해서 개발을 하다보면 도커 이미지들이 계속해서 쌓이게 된다. 버전별로 빌드된 도커 이미지들은 작으면 몇 MB 에서 nvidia, gpu 와 관련된 이미지들의 경우에는 20GB 정도까지 용량이 커지곤 한다. 이러한 이미지들이 계속해서 쌓이면 로컬 디스크의 용량이 부족해지는 경우가 있다. 이 글에서는 이런 상황을 해결하기 위하여 마운트된 디스크와 같이 특정 위치로 도커 스토리지의 위치를 변경하는 법을 정리한다. 1. Docker Root Directory 도커 데몬은 도커와 관련된 파일들, 컨테이너 정보, 도커 이미지, 볼륨 정보, 서비스 정보 등등 도커와 관련된 정보들을 특정 디렉토리에 저장하여 사용한다. 이러한 디렉토리를 Docker Root Directory 라고 하는데 해당 디렉토리의 기본.. [Linux] 디스크 마운트 (fdisk, mkfs, mount, df) 서버의 디스크 용량을 확인하고 추가 디스크를 마운트 작업을 정리한다. 1. 디스크 상태 확인 서버의 현재 디스크 정보를 fdisk 명령어를 사용하여 확인한다. fdisk 명령어는 서버의 디스크 파티션 정보를 출력하거나 디스크 파티션을 조작하는데 사용하는 명령어이다. 아래와 같이 fdisk 의 l 옵션을 사용하여 디스크 파티션 목록을 확인할 수 있다. 디스크 파티션 조회 결과로 /dev/xvda 에 연결되어 있는 디스크와 /dev/xvdb 에 연결되어 있는 디스크 두가지를 확인할 수 있다. 이중에서 /dev/xvda 디스크는 /dev/xvda1 으로 파티션이 나누어 있지만 /dev/xvdb 디스크는 파티션이 설정되어 있지 않은 것을 확인할 수 있다. df 명령어로 디스크의 용량을 확인하면, 위의 이미지에서.. [Linux] 사용자 권한 (sudo, sudoers, chmod, chown) linux 서버를 사용하기 위해서 사용자 계정을 만들어서 사용하다보면 권한 문제에 부딪히게 된다. 서로 다른 사용자가 만든 파일에 접근하거나 시스템 설정 등을 위해서 root 권한이 필요하곤 하다. 이와 관련해서 sudo 권한과 파일의 권한을 조작하는 chmod, chown 등을 정리해본다. 1. sudo sudo 는 Super User DO 의 줄임말로 명령어의 앞에 붙여서 사용하는 명령어이다. 일반적으로 root 권한이 없는 사용자가 sudo 를 사용하여 superuser, root 권한으로 명령어를 실행할 수 있도록 해준다. 이를 통해서 시스템의 관리자 권한을 root 계정뿐만 아니라 여러명이 사용할 수 있도록 한다. - sudoers sudo 명령어가 어떤 명령을 실행할 수 있는지는 /etc/su.. [Linux] 사용자 계정 생성 (adduser, useradd) 서버를 운영하면서 root 계정이 아닌 각각의 사용자별로 계정을 생성해야했다. 이에 더해서 때로는 특정 계정이 sudo 를 사용할 수 있도록 sudo 권한을 부여해야 하는 경우도 발생하였다. 이와 관련해서 ubuntu 에서 계정을 생성하는 방법과 권한 부여와 관련된 내용을 정리하려고 한다. 이 글은 Ubuntu 20.04.3 LTS 버전을 기반으로 작성하였다. 1. ubuntu 계정 생성 ubuntu 에서 계정을 생성하는 명령어는 두가지가 존재한다. adduser 와 useradd 이다. 두 명령어는 모두 사용자 계정을 생성하는 명령어지만 계정 생성시에 계정 정보 입력, 홈 디렉토리 생성, 쉘 설정 등을 함께할 것인지, 계정만 생성할 것인지에 차이가 있다. adduser 의 경우에는 계정 생성시에 계정 .. [SQLAlchemy] imperative mapping SQLAlchemy 의 ORM 기능을 사용하기 위해서는 DB 의 테이블과 애플리케이션의 클래스를 매핑해야 한다. SQLAlchemy 에서는 테이블과 클래스를 매핑하는 방법으로 두가지 방법을 제공해준다. 하나는 Declarative Mapping, 다른 하나는 Imperative Mapping 이다. Declarative Mapping 은 클래스를 구현할 때 SQLAlchemy 의 DeclarativeBase 를 상속받음으로 명시적으로 ORM 에 의해 매핑될 클래스로 선언하는 방법이다. 반면에 Imperative Mapping 은 일반 클래스를 SQLAlchemy 의 Table 객체를 registry 에 매핑하여 등록함으로써 해당 클래스와 테이블을 매핑시켜주는 방식이다. 프로그램을 구현하면서 파이썬 클래스.. [SQLAlchemy] Relationship - CASCADE SQLAlchemy 를 사용하면 여러 테이블간의 relationship 을 생성하여 운영할 수 있다. 테이블들의 relationship 다루어 운영을 하다보면 하나의 테이블에 대한 동작이 다른 테이블에 영향을 주는 경우가 발생한다. 이러한 경우 DB 를 다루기 위해 복잡하고 반복적인 작업이 필요할 수 있다. SQLAlchemy 에서는 관계가 맺어진 객체들간의 작업을 간편하고 자동화하기 위한 "relationship cascade" 라는 기능을 제공한다. 이 기능을 사용하면 relationship 을 가진 테이블간에 어떻게 동작할 것인지, 어떻게 영향을 끼칠 것인지를 정의할 수 있다. 1. Cascade 란? Cascade 는 SQLAlchemy ORM 기능으로 객체들간의 관계를 정의할 때 사용할 수 있는.. [Spring] JaCoCo 테스트 코드를 작성하다 보면 단순히 내가 작성한 테스트 코드의 성공 여부 외에도 얼마나 내가 테스트 코드를 잘 작성하고 있는지 확인할 필요가 있다. 이럴 때 사용하는 것이 코드 커버리지 툴인데, 이러한 툴들을 사용하면 내가 작성한 테스트 코드의 커버리지와 기준에 미치는지 여부 등을 리포트 형식으로 체계적으로 확인할 수 있다. 1. JaCoCo JaCoCo 는 Java 코드의 커버리지를 체크하는 라이브러리이다. 테스트 코드를 실행하고 그 결과로 html 이나 xml, csv 형식의 리포트를 생성한다. 이 리포트를 통해서 소스 코드 중에서 테스트 되어지는 라인과 분기들에 대해서 확인할 수 있다. 이 글에서는 spring 프로젝트에서 JaCoCo 를 사용하여 테스트 커버리지를 확인하는 방법을 설명할 것이다. .. [Spring] lombok - @Builder 1. @Builder @Builder 는 객체에 Builder 패턴을 자동으로 적용해주는 lombok 의 어노테이션이다. Builder 패턴은 복잡한 객체를 간단하게 생성할 수 있도록하는 디자인 패턴 중 하나로 생성자를 통한 생성이 아닌 빌더의 필드별 함수를 통해서 객체를 생성한다. @Builder 는 클래스 레벨에 붙이거나 생성자 또는 메서드에 붙여서 파라미터를 활요한 Builder 패턴을 자동으로 생성해준다. 2. @Builder class 만약에 클래스가 @Builder 로 지정된다면 클래스의 모든 필드를 매개변수로 받는 private 생성자가 자동으로 생성된다. 이때 생성자는 컴파일러를 통해 자동으로 생성되기 때문에 사용자가 따로 생성자를 구현하거나 @XArgsConstructor 형식의 어노테이.. 이전 1 2 3 4 5 ··· 8 다음 목록 더보기