본문 바로가기

전체 글230

podman podman과 docker는 모두 OCI 표준을 따르는 컨테이너 개발, 관리, 실행을 위한 오픈소스 도구라는 점에서 공통점을 가지고 있다. 하지만 얼마나 더 구조적으로 효율적, 보안적인 차이점을 알아보는 것이 이번 포스팅의 목표이다. [ Demon의 부재 ] Podman은 데몬이 없다는 정메서 다른 컨테이너 엔진과 다르다. 도커에서의 데몬은 dockerd라는 프로세스가 존재한다. 이 프로세스는 도커가 시작됨과 동시에 실행되어 사용자 명령어를 서버로 입력받는 역할을 한다. 그렇다면 Podman은 어떻게 사용자의 명령어를 받아서 실행할까? 라는 의문점이 있을 수 있다. Podman은 사용자가 명령어를 실행하면 Podman 바이너리 파일이 실행되어 명령을 직접 처리한다. 그래서 백그라운드에서 돌아가는 프로세스.. 2023. 12. 17.
리눅스 종류 및 yum [목적] 요즘 회사에서 페도라 계열의 리눅스인 RHEL과 Rocky 리눅스를 많이 사용하고 있다. 공모전을 나가거나, 학부연구생 시절에도 centos, ubuntu, 라즈베리파이만 사용했었는데 다른 리눅스 버전들이 뭐가 있는지 알아두면 좋을 것 같아서 간단히 정리하고 싶다. [ 리눅스 패키지 설치 ] yum이란? CentOS, Fedora, Red Hat Enterprise Linux(RHEL)과 같은 RPM(Red Hat Package Manager) 기반 시스템을 위한 명령줄 패키지 관리 유틸리티. 소프트웨어 패키지(rpm)를 설치, 업데이트, 제거 및 관리하는 프로세스를 단순화 함. 기업에서 서버를 설치할 경우, 폐쇄망에서 패키지를 설치해야할 경우가 있다. 폐쇄망에서는 일반적인 yum repo를 사.. 2023. 12. 14.
JAVA 메모리 모델(메모리 구조 X) [ 컴퓨팅 환경 ] 현대에서 우리가 사용하는 모든 컴퓨터들은 멀티 프로세서, 코어, 스레드 환경이다. 자바는 JVM을 통해 운영체제를 통해 CPU의 쓰레드에 task를 할당한다. [ 메모리 모델과 메모리 구조 ] 다른 사람들이 포스팅해놓은 블로그를 보면, 제목이 메모리 모델이라고 적혀있는데 메모리 구조를 설명하는 경우가 많다. 자바에는 volatile를 사용하여 cpu l1캐시에 캐싱될 변수를 메인 메모리에 할당하여 동시성 문제를 해결하고, final 변수 상를 정의하며, syncchronized를 사용하여 동일한 자원에 대한 동시 접근을 막는다. 위에서 언급한 3개 혹은 그 이상의 키워드들이 어떠한 순서대로 할당되고 실행되는지를 정의하는게 메모리 모델이고, 메모리 구조는 JVM이 어떻게 생겨먹었는지 설.. 2023. 12. 10.
Redis 구축 및 백업 옵션 설정 목적 개인 프로젝트에서 하는데 Redis를 사용하게 되었다. 서버가 업그레이드 될 때 Redis 프로세스를 내렸다 올려야하는데 Redis는 In-memory DB이므로 프로세스가 내려가면 데이터가 날라간다. 지금 Redis에는 로그인한 사용자 정보를 관리하고 있으므로, 이 데이터가 날라가면 모든 사용자가 로그아웃되게 된다. 그러므로 데이터 백업 옵션을 설정해야하고, 그 과정을 기록한다. 백업 옵션 비교 AOF RDB RPO 모든 CRUD를 기록하므로 낮은 RPO를 제공함 특정 주기마다 스냅샷을 생성하므로 스냅샷 생성 주기마다 RPO가 다를 수 있음 오버헤드 지속적으로 로깅하므로 I/O가 커짐 특정 주기마다 실행하므로 낮음 옵션 설정 방법 appendonly yes AOF 옵션 활성화 dir /data 데.. 2023. 12. 3.