반응형

Computer Science 15

Terraform + asdf를 활용한 여러 버전의 개발 환경 구성

Terraform과 asdf를 조합하면 여러 버전의 하이브리드 앱 개발 환경을 쉽게 구성하고, 인프라 및 개발 환경을 통합적으로 관리할 수 있다.1. 인프라 및 개발 환경을 코드로 관리 가능Terraform → 클라우드 및 시스템 환경 관리 (AWS, GCP, Kubernetes 등)asdf → 언어 및 도구 버전 관리 (Node.js, Dart, Flutter 등)여러 버전의 SDK 및 도구를 유지하면서도 일관된 환경 제공 가능2. 재현 가능한 개발 환경 구축.tool-versions + Terraform을 사용하면, 여러 버전의 하이브리드 앱 개발 환경을 손쉽게 구성 가능Terraform의 provisioner 기능을 활용하면 초기 개발 환경 자동화 가능Homebrew 설치 및 Terraform 설치..

DevOps 2025.02.16

Terraform에서 OCI 인스턴스 생성 시 `400-CannotParseRequest` 오류 해결

Terraform을 사용하여 Oracle Cloud Infrastructure(OCI)에서 VM 인스턴스를 생성하려고 할 때 다음과 같은 오류가 발생했다.Error: 400-CannotParseRequest, Incorrectly formatted request. Please refer to our documentation for help.Request Target: POST https://iaas.ap-chuncheon-1.oraclecloud.com/20160918/instancesTerraform 코드에서 compartment_id와 availability_domain 값을 직접 변수에서 가져와 사용하고 있었다.resource "oci_core_instance" "instance1" { avail..

DevOps 2025.02.08

[k8s] 프라이빗 클라우드 구축을 위한 K3s 추천 가이드

클라우드 환경을 직접 운영하려는 기업이나 개인 개발자는 경량화된 쿠버네티스(Kubernetes) 솔루션을 고려해야 한다. K3s는 CNCF(Cloud Native Computing Foundation)에서 공식 인증한 경량 쿠버네티스로, 저사양 환경에서도 원활하게 동작하며 프라이빗 클라우드 구축에 적합하다.1. K3s가 프라이빗 클라우드에 적합한 이유1.1. 가벼운 설치 및 운영기존 쿠버네티스(Kubernetes)는 설정이 복잡하고 운영 비용이 높다. 반면 K3s는 단일 바이너리(약 100MB)로 제공되며, 설치 과정이 간단하다. 불필요한 기능을 제거하고 최소한의 리소스로 동작하도록 설계되어 있어 저사양 서버에서도 실행할 수 있다.1.2. 낮은 리소스 사용량K3s는 불필요한 기능(예: 레거시 스토리지 드..

DevOps 2025.02.01

[Redux] Cannot read properties of null (reading 'useContext')

Redux 설정 시 store.js에서 리듀서 추가 누락 오류React 프로젝트에서 Redux를 설정할 때, store.js 파일에 combineReducers로 리듀서를 추가하지 않으면 다음과 같은 오류가 발생한다. 이 오류는 React의 useContext 훅을 사용하는 과정에서 발생한다.오류 메시지:Cannot read properties of null (reading 'useContext') && react.development.js:209 Warning: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reaso..

WSL을 활용한 윈도우 개발 환경 설정 가이드

WSL을 활용한 윈도우 개발 환경 설정 가이드윈도우에서 WSL(Windows Subsystem for Linux)을 사용하면 리눅스 기반 개발 환경을 간편하게 구축할 수 있다. 이 가이드는 WSL 설치부터 Ubuntu에 nvm(Node Version Manager)을 활용해 Node.js LTS 버전을 설치하는 과정을 다룬다.WSL 설치Powershell을 실행관리자 권한으로 Powershell을 실행한다.WSL 설치 명령어 실행아래 명령어를 실행하여 WSL과 기본 배포판(Ubuntu)을 설치한다. wsl --install설치 완료 후 Ubuntu 설정설치가 완료되면 Ubuntu가 자동으로 실행되고 초기 설정을 진행할 수 있다.Ubuntu에 nvm을 사용해 Node.js LTS 설치Node.js는 Ja..

Git version 2.35.2 - 'git status' 에러 코드 128

GIT 2.35.2 업데이트WSL(Windows Subsystem for Linux) 환경의 폴더를 SourceTree로 열 때 발생하는 오류 메시지에 대해 다룬다. 이 오류는 윈도우에서 로그인 중인 유저와 WSL에서 해당 파일/폴더의 소유자가 다를 때 발생한다. Git v2.35.2 이후에는 이를 보안상의 이유로 기본적으로 차단하며, 예외를 설정하여 폴더 접근을 허용해야 한다.이 문제를 해결하는 몇 가지 방법은 다음과 같다:특정 WSL 폴더를 안전한 디렉토리로 설정WSL 폴더를 등록할 때, //wsl$/Ubuntu-... 앞에 %(prefix)/를 추가해야 한다.예시 명령어: git config --global --add safe.directory '%(prefix)///wsl$/Ubuntu-20.0..

장고 서버에 https 적용하기 (Django + Gunicorn + Nginx + Let's Encrypt)

장고 프로젝트를 배포하여 http 서버에 연결하려면 중간 역할을 하는 WSGI(웹 서버 게이트웨이 인터페이스)가 필요합니다. 대표적인 WSGI로는 Gunicorn과 uWSGI가 있는데 그 중에 Gunicorn을 사용해 보았습니다. Gunicorn 연동을 위한 장고 프로젝트 세팅 먼저 장고 프로젝트의 settings.py에 STATIC_ROOT를 설정합니다. STATIC_ROOT = os.path.join(BASE_DIR, 'static/') STATIC_ROOT에 모든 정적 파일을 모아놓습니다. 그래야 Nginx에서 포워딩을 설정하기 편합니다. python manage.py collectstatic pip로 Gunicorn 설치 (Windows에서 실행은 지원하지 않으므로 Docker에 설치를 추천합니다..

[Ubuntu] MySQL Character Set을 UTF8로 설정하는 방법

MySQL의 기본 Character Set(인코딩)을 UTF8로 변경하면 다국어 데이터 처리에 적합한 환경을 구성할 수 있다. 이를 위해 MySQL 설정 파일을 수정해야 한다. 아래는 설정 방법에 대한 가이드이다.MySQL 설정 파일 수정MySQL 설정 디렉토리로 이동MySQL 설정 파일을 수정할 디렉토리로 이동한다. cd /etc/mysql/conf.d/새 설정 파일 생성 또는 기존 파일 편집새로운 설정 파일을 생성하거나 기존 파일을 편집한다. 여기서는 charset.cnf 파일을 사용한다. sudo vi charset.cnf다음 설정 추가파일에 아래 내용을 추가한다: [client] default-character-set = utf8mb4 [mysql] default-character-se..

DevOps/Linux Server 2020.04.19

[Ubuntu] APT 추천 패키지 자동 설치 해제하는 방법

Ubuntu 20.04 LTS 이전의 우분투에 패키지를 설치할 때 추천 패키지 및 제안 패키지가 자동으로 설치되는 것을 방지하려면 APT의 설정을 변경해야 한다. 이를 통해 설치할 패키지의 의존성만 설치되게 할 수 있다. 아래는 이를 설정하는 방법이다.1. APT 설정 파일 편집설정 파일 열기APT 설정 파일을 열기 위해 vi 또는 원하는 텍스트 편집기를 사용한다. 여기서는 99no-install-recommends 파일을 편집한다. sudo vi /etc/apt/apt.conf.d/99no-install-recommends다음 내용 추가파일에 아래 내용을 추가하여 추천 패키지 및 제안 패키지의 자동 설치를 방지한다: APT::Install-Recommends "false"; APT::Install..

DevOps/Linux Server 2020.04.19
반응형