PeEn 149

Debian에서 네트워크 인터페이스를 Static으로 설정하기(IP고정)

Debian 리눅스에서 네트워크 설정을 수동(static)으로 구성해야 할 경우가 종종 있습니다. 서버 환경이나 가상 머신 환경에서 고정 IP를 부여하고자 할 때 유용합니다. 이 글에서는 interfaces 파일을 직접 수정하여 static IP를 설정하는 방법을 작성하겠습니다.🛠 1. 네트워크 인터페이스 설정 파일 열기sudo nano /etc/network/interfaces📄 2. 설정 내용 입력예를 들어 ens18이라는 인터페이스에 대해 아래와 같이 설정합니다:auto ens18iface ens18 inet static address 192.168.0.20 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 8.8.8.8 8.8.4.4..

Back-end/Linux 2025.04.03

ZFS 풀(Pool) 생성 및 구성 가이드

ZFS 설치가 완료되었다면, 이제 데이터를 저장하고 관리할 수 있는 ZFS 풀(pool) 을 생성할 단계입니다. 이 문서에서는 디스크 식별부터 RAID-Z 구성을 활용한 풀 생성까지의 과정을 소개합니다.🧭 1. 디스크 확인ZFS 풀을 구성하기 전에 사용할 수 있는 디스크 장치를 확인합니다. 다음 명령어로 시스템에 연결된 디스크 정보를 확인할 수 있습니다:sudo fdisk -l예시 결과:/dev/sda: 50 GiB/dev/sdb: 50 GiB/dev/sdc: 50 GiB여기에서는 /dev/sda, /dev/sdb, /dev/sdc 디스크를 묶어 하나의 ZFS 풀을 구성할 예정입니다. 해당 디스크는 iSCSI initiator 등을 통해 연결된 외부 디바이스일 수 있습니다.⚙️ 2. RAID-Z 기반 ..

DevOps/ZFS 2025.04.02

Debian에서 ZFS 설치 및 설정 가이드

본 저자는 데이터베이스 및 서비스에 대한 분산구축을 진행하다 실제 데이터베이스가 저장되는 영역에서의 분산에 대해 공부하다 ZFS를 알게 되었습니다. ZFS(Zettabyte File System)는 고신뢰성, 고성능, 고기능성을 갖춘 오라클 기반의 파일 시스템으로, 스냅샷, 복제, 자체 오류 복구, 압축 등의 기능을 기본으로 지원합니다. 본 가이드는 Debian 리눅스 환경에서 ZFS를 설치하고 정상적으로 사용할 수 있도록 구성하는 절차를 단계별로 작성하였습니다.✅ 1. APT 저장소 소스 등록ZFS는 Debian 기본 저장소에 포함되어 있지 않거나, 안정적인 설치를 위해 특정 버전의 패키지를 별도 저장소에서 받아야 하는 경우가 있습니다. 아래 저장소 주소들을 /etc/apt/sources.list 파일..

DevOps/ZFS 2025.04.02

Cephadm으로 클러스터 초기화와 Host 추가하는 방법

Cephadm을 활용하여 Ceph 클러스터를 구축할 때는 클러스터 초기화와 호스트(Host) 추가 작업이 필수적으로 요구됩니다. 이번 글에서는 클러스터의 초기화 단계부터 호스트 추가까지의 전체 과정을 체계적으로 안내합니다.클러스터 초기화하기Ceph 클러스터 구축의 첫 단계는 Mon(Monitor) 노드를 초기화하는 것입니다. 초기화 과정을 통해 클러스터의 중심 역할을 수행할 첫 Mon 노드를 설정하고 기본적인 클러스터 환경을 구성할 수 있습니다.다음 명령어를 사용하여 클러스터 초기화를 진행합니다.cephadm bootstrap --mon-ip {Mon노드IP} --initial-dashboard-user bioline --initial-dashboard-password {초기비밀번호}{Mon노드IP}에는..

DevOps/Ceph 2025.04.01

Cephadm으로 Ceph 클러스터에 Mon 노드 추가하기

Ceph 클러스터의 안정성과 가용성을 높이기 위해 모니터(Monitor, Mon) 노드를 추가해야 할 때가 있습니다. Cephadm 환경에서 새로운 Mon 노드를 추가하는 방법에 대해 이번 포스트에서 단계적으로 안내합니다.사전 준비 사항Mon 노드를 추가하기 전에 Ceph 클러스터에 호스트(Host)를 먼저 추가해야 합니다. 호스트를 추가하는 방법은 이전 포스트에서 다루었으며, 이번 글에서는 호스트 추가 과정이 이미 완료되었다고 가정합니다.Mon 노드 추가 방법Mon 노드를 추가할 때는 먼저 CIDR 형태로 IP와 서브넷 마스크를 설정한 뒤 아래 명령어를 통해 Daemon에 Mon을 추가하면 됩니다.ceph orch daemon add mon {호스트명}:{CIDR}{호스트명}에는 추가하려는 Mon 노드..

DevOps/Ceph 2025.03.31

Ceph 클러스터에 OSD를 추가하는 절차와 방법

Ceph 스토리지 클러스터를 관리하다 보면 스토리지 용량 증설이나 성능 최적화를 위해 OSD(Object Storage Daemon)를 새롭게 추가할 필요가 있습니다. 이 글에서는 Ceph 클러스터에서 Mon(Monitor) 노드에 OSD를 추가하는 과정을 단계별로 안내합니다.필수 준비 사항Ceph에서 새로운 OSD를 추가하기 전에, 먼저 클러스터에 호스트를 등록하는 과정이 완료되어 있어야 합니다. 이 과정에 대한 상세한 설명은 이전에 작성한 글을 참고해주세요. 여기서는 Host가 이미 정상적으로 추가되었다고 가정하고 진행합니다.추가적으로 OSD를 설치할 디바이스는 반드시 LVM(Logical Volume Manager)을 이용하여 준비 및 마운트된 상태여야 합니다. HDD나 SSD 같은 물리적 디바이스..

DevOps/Ceph 2025.03.30

Debian 환경에서 Cephadm으로 Ceph 클러스터 구축하기

백엔드 시스템을 운영하다 보면, 데이터 관리와 저장공간 확보에 점점 더 많은 신경을 쓰게 됩니다. 특히 서비스가 확장되면서 분산 처리의 필요성도 증가하게 되는데요. 이러한 문제를 해결하기 위해 많은 관심을 받고 있는 기술이 바로 분산 스토리지 솔루션인 Ceph입니다. 이번 글에서는 Kubernetes와 유사한 개념으로 관리할 수 있는 Cephadm을 사용하여 Debian 환경에 Ceph 클러스터를 설치하고 관리하는 방법을 알아보겠습니다.Cephadm 설치 과정먼저 Debian 리눅스에서 apt를 이용해 Cephadm을 설치합니다. 원활한 설치와 운영을 위해 root 권한으로 진행하는 것을 권장합니다.아래의 명령어로 cephadm을 설치할 수 있습니다.apt install cephadm이후 Ceph 운영에..

DevOps/Ceph 2025.03.29

Flutter MVVM 패턴 적용기

스파게티 언제까지 만들 거야나는 Back-end 개발자지만 회사 내 업무들을 보다 보면 다방면의 개발 분야를 접하게 된다. 그중 많은 부분을 차지하는 Front-end 부분을 자주 개발하게 되는데, 회사에서 Front-end로 사용하는 Flutter를 통해 개발을 진행하다 보니 내가 작성한 코드임에도 규모가 커지고 복잡해지면서 다시금 디자인 패턴에 대해 생각하게 되었다. 이에 Flutter에서 많이 사용하는 MVVM 패턴을 적용해 보기로 했다.Flutter 앱 개발에서 프로젝트 규모가 커질수록 코드가 복잡해지고 유지보수가 어려워진다. 이런 문제를 해결하기 위해 많은 개발자가 MVVM(Model-View-ViewModel) 패턴을 사용한다. 이번 글에서는 Flutter 프로젝트에서 MVVM 패턴을 쉽게 이..

Front-end/Flutter 2025.03.29

Android Intent startActivityForResult

startActivityForResult(intent,반환코드); 를 인텐트로 넘기는 구간에 작성 onActivityResult 매소드를 Override하여서 반환된 데이터를 처리한다 MainActivity.java public class MainActivity extends AppCompatActivity { TextView tvText; int Cnt=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvText = (TextView)findViewById(R.id.tvText); tvText.set..

Front-end/Android 2020.12.07