- Terraform은 Git에 보관할 수 있는 텍스트 파일로 인프라를 생성하고 변경합니다.
- 핵심 워크플로는
init,plan,apply이며,plan는 변경 사항이 발생하기 전의 모습을 보여줍니다. - 상태 파일은 Terraform이 관리하는 내용을 기록합니다. 이를 보호하고 절대로 Git에 커밋하지 마세요.
- 모듈을 사용하여 패턴을 재사용하고, 팀으로 작업할 때 잠금 기능이 있는 원격 상태를 사용하세요.
클라우드 콘솔을 클릭하는 것은 하나의 서버에 적합합니다. 스테이징 및 프로덕션에서 동일한 설정이 필요하거나 누군가 지난 3월에 방화벽 규칙을 변경한 사람이 누구인지 묻는 경우에는 문제가 발생합니다. 이 초보자를 위한 Terraform 튜토리얼에서는 인프라를 코드로 설명하고 도구를 사용하여 이를 현실화하는 더 나은 방법을 보여줍니다.
대부분의 튜토리얼은 클라우드 계정으로 시작하므로, 아무것도 배우기도 전에 청구 위험이 추가됩니다. 컴퓨터에 파일을 생성만 하므로 실수에 따른 비용이 전혀 발생하지 않는 Terraform의 local 공급자부터 시작하겠습니다. 이러한 예제와 샘플 출력은 이 기사에서 실행하지 않은 표준 그림이며 정확한 표현은 버전에 따라 다릅니다.
테라폼이란 무엇입니까?
Terraform은 HashiCorp의 IaC(Infrastructure as Code) 도구입니다. HashiCorp 구성 언어인 HCL로 구성 파일을 작성하여 원하는 최종 결과를 설명합니다. 그런 다음 Terraform은 거기에 도달하기 위해 무엇을 생성, 변경 또는 삭제할지 알아냅니다.
공급자라는 플러그인을 통해 플랫폼과 통신합니다. AWS, Azure, Google Cloud, Kubernetes, GitHub, Cloudflare 등을 위한 공급자가 있으므로 모든 공급자에서 하나의 워크플로를 사용할 수 있습니다.
한 가지 알아야 할 사항: 2023년에 HashiCorp는 Terraform을 비즈니스 소스 라이선스로 전환했습니다. 그런 다음 커뮤니티에서는 매우 유사한 명령과 구성을 사용하는 오픈 소스 포크인 OpenTofu를 만들었습니다. 여기서 배우는 내용은 대체로 두 가지 모두에 적용됩니다.
왜 코드형 인프라인가?
| 질문 | 수동 콘솔 작업 | 테라폼 |
|---|---|---|
| 누가 뭘 바꿨나요? | 알아내기 어렵다 | 힘내 역사 |
| 스테이징을 프로덕션에 복사할 수 있나요? | 조심스럽게 클릭하세요 | 코드 재사용 |
| 이 변화는 무엇을 하게 될까요? | 나중에 알게 되잖아 | terraform plan 먼저 보여드리겠습니다 |
| 누군가 그것을 검토할 수 있습니까? | 쉽지는 않다 | 일반적인 풀 요청 |
| 재해 복구 | 사람의 기억력에 따라 다름 | 코드에서 재생성 및 데이터 백업 |
Terraform은 또한 선언적입니다. “서버를 세 번 만듭니다”가 아니라 “서버가 세 개 있어야 합니다”라고 말합니다. 이미 2개가 있으면 1개를 추가합니다. 단순히 단계를 반복하는 스크립트는 결국 세 개를 더 생성하게 될 수 있습니다.
Terraform 설치
운영 체제에 대한 공식 HashiCorp 지침을 사용하여 설치한 후 작동하는지 확인합니다.
terraform -version
프로젝트에 대한 빈 폴더를 만듭니다. Terraform은 현재 폴더의 모든 .tf개 파일을 읽으므로 폴더 하나는 구성 하나와 같습니다.
첫 번째 구성
main.tf이라는 파일을 만듭니다.
terraform {
required_providers {
local = {
source = "hashicorp/local"
version = "~> 2.5"
}
}
}
resource "local_file" "greeting" {
filename = "${path.module}/hello.txt"
content = "Hello from Terraform\n"
}
resource 블록을 보세요. 작성하는 거의 모든 것이 이 모양을 따릅니다. local_file는 리소스 유형이고, greeting은 구성 내에서 이에 대한 사용자 고유 이름입니다. 이들은 함께 주소를 형성합니다: local_file.greeting. 내부 인수는 원하는 것을 설명합니다.
워크플로: 초기화, 계획, 적용
테라폼 초기화
그러면 폴더가 준비되고 요청한 공급자가 다운로드됩니다. 시작할 때 한 번 실행하고 공급자나 모듈을 추가할 때마다 다시 실행하세요. 또한 정확한 공급자 버전을 기록하는 .terraform.lock.hcl 파일도 생성됩니다. 해당 파일을 Git에 커밋합니다.
terraform init
테라폼 계획
이는 코드를 기존 코드와 비교하고 아무것도 건드리지 않고도 계획된 변경 사항을 표시합니다.
terraform plan
# local_file.greeting will be created
+ resource "local_file" "greeting" {
+ content = "Hello from Terraform\n"
+ filename = "./hello.txt"
}
Plan: 1 to add, 0 to change, 0 to destroy.
많은 계획을 읽을 것이므로 기호를 배우십시오.
| 기호 | 의미 |
|---|---|
+ |
만들기 |
~ |
현재 위치에서 업데이트 |
- |
파괴하다 |
-/+ |
파괴하고 재창조하라 |
테라폼 적용
그러면 계획이 다시 표시되고 확인을 요청한 후 변경됩니다.
terraform apply
yes을 입력하면 hello.txt가 나타납니다. 이제 terraform plan을 다시 실행하세요. 현실이 이미 코드와 일치하므로 변경 사항이 보고되지 않습니다. 반복적으로 실행해도 더 이상 변경되지 않는 이 속성을 멱등성이라고 합니다.
변화와 파괴
content 줄을 편집하고 terraform plan를 실행합니다. Terraform은 차이점을 발견하고 변경을 제안합니다. 이 리소스의 경우 파일을 대체합니다. 데이터베이스를 다시 만들면 데이터가 손실될 수 있으므로 실제 인프라의 교체에 주의하세요.
다음으로 hello.txt을 직접 삭제하고 다시 계획하세요. Terraform은 해당 항목이 누락되었음을 확인하고 이를 다시 만들 것을 제안합니다. 코드와 현실의 차이를 드리프트라고 하며, 이를 감지하는 것이 도구의 주요 이점 중 하나입니다.
이 구성에서 관리하는 모든 항목을 제거하려면 다음을 실행하세요.
terraform destroy
변수 및 출력
하드 코딩된 값은 코드 재사용을 방지합니다. 입력 변수는 구성을 유연하게 만들고 출력은 유용한 값을 다시 보고합니다.
# variables.tf
variable "environment" {
type = string
description = "Deployment environment"
default = "dev"
validation {
condition = contains(["dev", "staging", "prod"], var.environment)
error_message = "Use dev, staging or prod."
}
}
# main.tf
resource "local_file" "config" {
filename = "${path.module}/${var.environment}.txt"
content = "environment=${var.environment}\n"
}
# outputs.tf
output "config_path" {
value = local_file.config.filename
}
명령줄에서 값을 설정하거나 자동으로 로드되는 terraform.tfvars이라는 파일에 값을 유지합니다.
terraform apply -var="environment=staging"
출력에서 local_file.config.filename을 사용하는 것도 리소스가 서로를 참조하는 방식입니다. Terraform은 이러한 참조를 읽고 항목을 생성하는 올바른 순서를 결정합니다.
Terraform 상태
신청하시면 terraform.tfstate이라는 파일을 찾으실 수 있습니다. 이는 Terraform이 관리하는 내용에 대한 기록으로, 코드를 실제 객체에 매핑합니다. 이것이 없으면 Terraform은 local_file.greeting가 해당 특정 파일인지 알 수 없습니다.
여기서는 세 가지 규칙이 중요합니다.
- Git에 상태를 커밋하지 마세요. 일반 텍스트로 비밀번호와 기타 비밀을 포함할 수 있습니다.
- 손으로 편집하지 마십시오.
terraform state list,terraform state mv과 같은 명령을 사용하십시오. - 팀 프로젝트에는 원격 백엔드를 사용하세요. 공유 백엔드는 상태를 중앙에 저장하고 잠그므로 두 사람이 동시에 신청할 수 없습니다.
다음은 미리 생성한 버킷과 함께 Amazon S3를 사용하는 일반적인 백엔드입니다.
terraform {
backend "s3" {
bucket = "my-company-terraform-state"
key = "shop/prod/terraform.tfstate"
region = "ap-south-1"
encrypt = true
use_lockfile = true
}
}
팁: .terraform/, *.tfstate, *.tfstate.* 및 비밀이 포함된 *.tfvars 파일을 제외하는 .gitignore로 모든 프로젝트를 시작하세요.
실제 클라우드 리소스
클라우드로 이동해도 워크플로는 변경되지 않습니다. 다음은 AWS의 S3 버킷입니다. 먼저 가격을 확인하고 연습하는 동안 만든 모든 것을 폐기하세요.
provider "aws" {
region = "ap-south-1"
}
resource "aws_s3_bucket" "reports" {
bucket = "my-unique-reports-bucket-2026"
tags = {
Environment = var.environment
ManagedBy = "terraform"
}
}
Terraform은 AWS CLI 설정 또는 환경 변수에서 자격 증명을 가져옵니다. .tf 파일에 액세스 키를 쓰지 마십시오.
모듈
모듈은 단순히 다양한 입력으로 호출할 수 있는 Terraform 파일의 폴더입니다. 이는 함수와 매우 유사하게 작동하므로 패턴을 한 번 정의하고 재사용할 수 있습니다.
project/
main.tf
modules/
reports_bucket/
main.tf
variables.tf
outputs.tf
module "staging_reports" {
source = "./modules/reports_bucket"
environment = "staging"
}
module "prod_reports" {
source = "./modules/reports_bucket"
environment = "prod"
}
공용 Terraform 레지스트리에도 기성 모듈이 있지만 사용하기 전에 먼저 읽어보고 버전을 고정하세요. 모듈을 너무 일찍 구축하지 마십시오. 패턴을 최소한 두 번 반복할 때까지 기다리십시오.
안전한 팀 작업흐름
- 브랜치를 생성하고
.tf파일을 변경합니다. 복습이 필요한 경우 초보자를 위한 Git 튜토리얼을 참조하세요. terraform fmt과terraform validate를 실행합니다.- 검토를 위해
terraform plan의 출력을 첨부하여 풀 요청을 엽니다. - 승인 후에는 통제된 단일 장소(이상적으로는 파이프라인)에서 저장된 계획을 적용하세요.
계획을 저장하면 검토한 내용을 정확하게 적용할 수 있습니다.
terraform plan -out=tfplan
terraform apply tfplan
이는 CI/CD 및 GitHub Actions에 자연스럽게 들어맞습니다. Terraform은 일반적으로 클러스터를 프로비저닝하고 Kubernetes와 같은 도구를 사용하여 그 위에서 애플리케이션을 실행합니다.
일반적인 실수
- 계획서를 읽지 않고 신청합니다. 데이터베이스에 하나
-/+를 두는 것은 매우 비용이 많이 드는 놀라움일 수 있습니다. - 한 대의 노트북에 상태를 유지합니다. 노트북을 잃어버리면 Terraform이 인프라를 추적할 수 없게 됩니다.
- 콘솔을 수동으로 변경합니다. 드리프트가 발생하고 다음 적용 시 실행 취소될 수 있습니다.
- 고정되지 않은 버전 사용. 의도적으로 업그레이드가 이루어지도록 공급자 및 모듈 버전을 고정합니다.
- 하나의 거대한 구성을 사용합니다. 환경이나 시스템별로 분할하면 실수로 인한 피해가 제한됩니다.
마무리
이제 거의 모든 Terraform 작업의 기본 아이디어인 리소스 선언, 계획 검토, 적용 및 국가 보호를 확인했습니다. 워크플로가 자연스럽게 느껴질 때까지 local 공급자와 연습한 다음 무료 계층 계정에서 하나의 작은 실제 리소스를 관리하세요. 두 명 이상의 사람 또는 두 개 이상의 환경이 관련되면 원격 상태 및 모듈을 가져옵니다.
자주 묻는 질문
Terraform은 어떤 용도로 사용되나요?
Terraform은 서버, 네트워크, 데이터베이스, DNS와 같은 인프라를 수동으로 구성하는 대신 코드로 설명하여 생성하고 관리하는 데 사용됩니다.
Terraform은 무료인가요?
Terraform CLI는 비즈니스 소스 라이선스에 따라 무료로 사용할 수 있지만 일부 경쟁적인 상업적 사용은 조건에 따라 제한됩니다. HCP Terraform에는 유료 계층이 있으며 OpenTofu는 오픈 소스입니다.
Terraform과 Ansible의 차이점은 무엇인가요?
Terraform은 주로 인프라를 선언적으로 프로비저닝합니다. Ansible은 주로 기존 시스템에 소프트웨어를 구성합니다. 많은 팀이 Terraform을 먼저 사용하고 나중에 Ansible을 모두 사용합니다.
Terraform 상태 파일이란 무엇입니까?
구성을 실제 리소스에 매핑하는 기록입니다. Terraform은 이를 사용하여 변경 사항을 해결합니다. 비밀을 담을 수 있으므로 안전하게 저장하고 Git에 들어가지 않도록 하세요.
Terraform을 배우려면 프로그래밍을 알아야 합니까?
설마. HCL은 간단하고 선언적입니다. AWS 네트워킹과 같이 관리하는 플랫폼을 이해하는 것은 일반적으로 언어 자체보다 어렵습니다.
계속 학습하세요
테스트, WordPress 또는 SEO에 도움이 필요하십니까?
우리는 팀이 더 나은 소프트웨어를 출시하고 사이트를 성장시킬 수 있도록 돕습니다. 현재 진행 중인 작업을 알려주시면 명확한 다음 단계를 제안해 드리겠습니다.
추가 가이드 테스트, AI 및 최신 개발
이 기사가 마음에 드셨나요? 주제를 선택하고 최신 튜토리얼로 바로 이동하세요.
AI 환각 설명: 언어 모델이 사물을 구성하는 이유와 이를 줄이는 방법
AI 환각은 그것이 무엇인지, 언어 모델이 환각을 생성하는 이유, 일반적인 유형, 접지 및 프롬프트를 통해 환각을 줄이는 방법, 그리고 우리가 실행한 간단한 점검에 대해 설명했습니다.
기사 읽기 →DevOps환경 변수 설명: .env 파일, 비밀 및 구성이 올바르게 완료되었습니다.
우리가 실행한 Python 예제를 통해 설명된 환경 변수: 읽기 및 설정, 모든 값이 문자열인 이유, .env 파일, 프로세스 상속, 비밀 및 유효성 검사.
기사 읽기 →소프트웨어 개발API 속도 제한 설명: 알고리즘, 헤더 및 429 오류 처리
우리가 실행한 시뮬레이션을 통해 설명된 API 속도 제한: 토큰 버킷, 고정 창, 슬라이딩 창, 429 응답, 속도 제한 헤더, 백오프를 사용한 재시도 및 테스트 제한.
기사 읽기 →테스트 자동화Python에서 조롱: unittest.mock, 패치 및 테스트를 거짓말로 만드는 실수
Unittest.mock을 사용하여 Python에서 모의, 테스트됨: 모의 및 return_value, 부작용, 이름이 사용되는 패치, 사양 및 자동 사양, 모의 날짜 및 일반적인 실수.
기사 읽기 →소프트웨어 테스트코드 커버리지 설명: 회선 커버리지와 분기 커버리지 및 100%의 실제 의미
실제 Coverage.py 실행을 통해 설명되는 코드 적용 범위: 라인, 분기 및 조건 적용 범위, 보고서 읽기, 100% 적용 범위가 여전히 버그를 놓칠 수 있는 이유 및 합리적인 대상.
기사 읽기 →데이터베이스 및 SQLSQL의 DELETE vs TRUNCATE vs DROP: 차이점, 롤백 및 사용 시기
테스트된 SQL을 통해 DELETE 대 TRUNCATE 대 DROP에 대해 설명합니다. 각각의 제거, 롤백, 트리거, ID 재설정, 속도 및 PostgreSQL, MySQL, SQL Server 및 SQLite의 차이점.
기사 읽기 →데이터베이스 및 SQLSQL 뷰 설명: 예제를 통해 함정 생성, 사용 및 방지
우리가 실행한 쿼리로 설명된 SQL 뷰: 뷰 생성, 실시간 결과, 열 숨기기, 성능, 업데이트 가능하고 구체화된 뷰, 손상된 종속성 및 모범 사례.
기사 읽기 →소프트웨어 개발TypeScript 인터페이스와 유형: 실제 차이점, 컴파일러로 테스트
TypeScript 인터페이스 대 유형, 실제 컴파일러로 확인: 둘 다 할 수 있는 것, 하나만 할 수 있는 것, 선언 병합, 확장 대 교차점 및 따라야 할 간단한 규칙.
기사 읽기 →소프트웨어 개발Python *args 및 **kwargs 설명: 명확한 예가 포함된 유연한 함수
Python *args 및 **kwargs는 우리가 실행한 코드(패킹 및 언패킹, 매개변수 순서, 키워드 전용 및 위치 전용 인수, 데코레이터 및 일반적인 오류)를 설명했습니다.
기사 읽기 →소프트웨어 개발Python Lambda 함수: 구문, 실제 사용 및 사용하지 말아야 할 경우
Python 람다 함수는 구문, 키를 사용한 정렬, 맵 및 필터, 클로저, 후기 바인딩 트랩, 일반 def가 더 나은 선택인 경우 등 우리가 실행한 코드로 설명되었습니다.
기사 읽기 →인공지능AI 에이전트란 무엇입니까? 작동 방식, 간단한 에이전트 루프를 사용하여 실행할 수 있음
AI 에이전트란 무엇입니까? 우리가 실행한 작은 Python 루프, 실제 위험 및 간단한 챗봇이 더 나은 선택일 때 에이전트 루프, 도구, 메모리 및 가드레일에 대한 일반 가이드입니다.
기사 읽기 →DevOps모니터링과 관찰 가능성: 로그, 지표, 추적을 통한 실제 차이점
모니터링과 관찰 가능성 설명: 알려진 오류와 알려지지 않은 오류, 로그, 지표 및 추적, 결제 사건 안내, 골든 신호, OpenTelemetry 및 유용한 경고.
기사 읽기 →DevOpsDocker 볼륨과 바인딩 마운트: 컨테이너 데이터를 올바른 방식으로 유지
Docker 볼륨과 바인드 마운트 설명: 컨테이너 데이터가 사라지는 이유, 명명된 볼륨, 바인드 마운트, tmpfs, Compose 예제, 백업, 권한 및 각 사용 시기.
기사 읽기 →테스트 자동화TDD와 BDD: 주요 차이점, 두 가지 방식으로 구축된 하나의 기능 및 각 사용 시기
TDD와 BDD는 두 가지 방식으로 구축된 하나의 할인 기능, 즉 우리가 실행한 코드를 사용한 적록 리팩토링, 주어진 시점 시나리오, 도구, 장단점 및 각 사용 시기를 설명합니다.
기사 읽기 →소프트웨어 테스트UAT(사용자 승인 테스트): 프로세스, 체크리스트 및 실제 사례
사용자 승인 테스트는 누가 실행하는지, QA와 어떻게 다른지, 7단계 프로세스, UAT 테스트 사례 템플릿, 체크리스트, 승인 기준 및 일반적인 실수에 대해 설명했습니다.
기사 읽기 →데이터베이스 및 SQLSQL NULL 값 설명: IS NULL, COALESCE, NULLIF 및 피해야 할 함정
우리가 실행한 쿼리를 통해 설명된 SQL NULL 값: 3개 값 논리, IS NULL, COALESCE, NULLIF, 집계, 조인 및 정렬이 NULL을 처리하는 방법 및 조용히 발생하는 버그.
기사 읽기 →데이터베이스 및 SQLSQL CASE WHEN 문: 구문, 실제 예 및 일반적인 실수
우리가 실행한 쿼리로 설명된 SQL CASE: 단순 및 검색 양식, 조건 순서, SUM이 있는 피벗, COUNT 트릭, 사용자 정의 정렬, 업데이트 및 피해야 할 NULL 트랩.
기사 읽기 →소프트웨어 개발JWT란 무엇입니까? 실제 예제로 설명되는 JSON 웹 토큰
JWT란 무엇입니까? JSON 웹 토큰은 세 부분, 즉 우리가 실행한 코드에서 구축 및 변조된 토큰, JWT 대 세션, 저장소, 새로 고침 토큰 및 보안 실수를 설명했습니다.
기사 읽기 →소프트웨어 개발JavaScript 이벤트 루프 설명: 예제가 포함된 호출 스택, 마이크로태스크 및 타이머
호출 스택, 작업 및 마이크로태스크 대기열, setTimeout 0이 즉시 실행되지 않는 이유, 차단, 기아 및 인터뷰 퀴즈 등 우리가 실행한 코드로 JavaScript 이벤트 루프를 설명했습니다.
기사 읽기 →소프트웨어 개발Python 생성기 및 수율 설명: 실제 예제로 메모리 절약
Python 생성기와 항복은 우리가 실행한 코드로 설명됩니다. 일시 중지 및 재개 방법, 측정된 메모리 절약, 파이프라인, 무한 시퀀스, 항복, 전송 및 공통 트랩.
기사 읽기 →인공지능임베딩이란 무엇입니까? 벡터와 코사인 유사성을 간단하게 설명
임베딩이란 무엇입니까? 벡터, 코사인 유사성 및 의미론적 검색에 대한 일반 언어 가이드로, 우리가 실행한 작은 예, 일반적인 용도, 모델 선택 및 알려진 한계를 제공합니다.
기사 읽기 →DevOps블루-그린 배포와 카나리아 배포: 차이점, 장단점 및 선택 방법
블루-그린 배포와 카나리아 배포에 대한 설명: 각각의 작동 방식, 비용, 위험 및 롤백, 테스트한 안정적인 사용자 버킷팅, 데이터베이스 마이그레이션, 롤링 업데이트 및 선택 방법.
기사 읽기 →테스트 자동화불안정한 테스트: 원인과 해결 방법
우리가 실행한 데모를 통해 불안정한 테스트에 대해 설명했습니다. 주요 원인, 확인 및 진단 방법, 시기, 공유 상태 및 날짜, 격리 프로세스에 대한 적절한 수정 사항.
기사 읽기 →소프트웨어 테스트부하 테스트와 스트레스 테스트 비교: 차이점, 측정항목 및 k6 예
부하 테스트와 스트레스 테스트 비교 설명: 각각의 증명, 스파이크 및 흡수 테스트, 중요한 측정항목, 평균이 잘못된 이유, k6 예 및 테스트 계획 방법.
기사 읽기 →소프트웨어 테스트테스트 케이스와 테스트 시나리오: 주요 차이점, 예 및 각각의 사용 시기
테스트 케이스와 테스트 시나리오 설명: 명확한 정의, 병렬 테이블, 시나리오에서 케이스로 가져온 하나의 비밀번호 재설정 기능, 템플릿 및 각 사용 시기.
기사 읽기 →데이터베이스 및 SQLSQL 쿼리 최적화: 타이밍에 따라 실행 계획을 읽고 느린 쿼리를 수정합니다.
백만 개의 행에서 테스트된 SQL 쿼리 최적화: 실행 계획 읽기, 올바른 인덱스 추가, 분할할 수 없는 필터 수정, 복합 인덱스 및 키 세트 페이지 매김 사용.
기사 읽기 →데이터베이스 및 SQLSQL UNION 대 UNION ALL: 테스트된 차이점, 예 및 성능
SQL UNION과 UNION ALL은 우리가 실행한 쿼리(중복, 둘 다 따르는 규칙, 실제 데이터 버그, 측정된 성능, INTERSECT 및 EXCEPT, 각각의 사용 시기)를 설명합니다.
기사 읽기 →소프트웨어 개발JavaScript Fetch API 튜토리얼: GET, POST, 오류 처리 및 시간 초과
로컬 서버에 대해 테스트된 JavaScript Fetch API 튜토리얼: GET 및 POST, 404가 발생하지 않는 이유, 재사용 가능한 도우미, 쿼리 문자열, 시간 초과, CORS 및 일반적인 실수.
기사 읽기 →소프트웨어 개발Python 파일 처리: 읽기, 쓰기, CSV, JSON 및 pathlib 예제 포함
우리가 실행한 코드로 설명된 Python 파일 처리: 개방형 모드, 대용량 파일 읽기, CSV, JSON, pathlib, 바이너리 파일, 안전한 쓰기, 오류 처리 및 일반적인 실수.
기사 읽기 →소프트웨어 개발Python 클래스 및 객체: 실제 예제가 포함된 OOP 튜토리얼
우리가 실행한 코드로 설명된 Python 클래스와 객체: __init__, 메소드, 클래스 대 인스턴스 속성, 상속, 속성, 던더 메소드, 데이터 클래스 및 일반적인 실수.
기사 읽기 →인공지능대규모 언어 모델이란 무엇입니까? LLM의 작동 방식, 과대광고 없이 설명
대규모 언어 모델이란 무엇입니까? LLM은 토큰, 임베딩, 주의, 훈련, 온도 및 컨텍스트 창, 작은 다음 단어 데모 및 실제 한계 등 일반 언어로 설명됩니다.
기사 읽기 →DevOps초보자를 위한 Linux 명령: 예제가 포함된 필수 터미널 가이드
탐색, 파일, 로그 보기, grep, 파이프, 권한, 프로세스 및 아카이브 등 작업별로 그룹화된 초보자를 위한 Linux 명령과 실용적인 로그 분석 예제가 포함되어 있습니다.
기사 읽기 →테스트 자동화셀레늄 대 극작가: 주요 차이점, 코드 비교 및 선택할 항목
Selenium과 Playwright 비교: 아키텍처, 대기, 브라우저 및 언어 지원, 디버깅, 두 도구 모두에서 동일한 테스트, 마이그레이션 조언 및 선택 방법.
기사 읽기 →소프트웨어 테스트등가 분할: 실제 예제를 통해 설명되는 테스트 설계 기법
등가 분할 설명: 유효한 파티션과 유효하지 않은 파티션을 찾는 방법, 연령, 비밀번호 및 쿠폰에 대한 작업 예제, 실행한 테스트, 경계와 쌍을 이루는 이유.
기사 읽기 →소프트웨어 테스트소프트웨어 테스팅의 심각도와 우선순위: 차이점, 매트릭스 및 실제 사례
소프트웨어 테스팅의 심각도와 우선순위에 대한 설명: 명확한 정의, 예제가 포함된 4방향 매트릭스, 수준 척도, 각 항목을 설정하는 사람 및 버그 분류 실행 방법.
기사 읽기 →데이터베이스 및 SQLSQL 하위 쿼리 자습서: 유형, 상관 하위 쿼리 및 EXISTS(예제 포함)
스칼라, IN, FROM 및 SELECT 하위 쿼리, 상관 하위 쿼리, EXISTS, NOT IN NULL 트랩 및 하위 쿼리 대 JOIN 대 CTE 등 우리가 실행한 쿼리가 포함된 SQL 하위 쿼리 자습서입니다.
기사 읽기 →데이터베이스 및 SQLSQL 트랜잭션 및 ACID 설명: COMMIT, ROLLBACK 및 격리 수준
COMMIT, ROLLBACK, 저장점, 잠금, 격리 수준, 더티 읽기, 교착 상태 및 모범 사례 등 우리가 실행한 은행 이체를 통해 SQL 트랜잭션 및 ACID를 설명했습니다.
기사 읽기 →소프트웨어 개발Git 명령 치트 시트: 실제로 사용하는 명령과 예제
실제 데모 저장소의 출력과 함께 설정, 준비, 분기, 원격, 숨김, 기록 및 실행 취소 실수 등 작업별로 그룹화된 Git 명령 치트 시트입니다.
기사 읽기 →소프트웨어 개발JavaScript Promises 설명: then, catch, Promise.all 및 일반적인 실수
우리가 실행한 코드로 설명된 JavaScript Promise: 상태, then 및 catch 체인, 오류 처리, Promise.all, allSettled, race 및 기타, 이벤트 루프 및 일반적인 실수.
기사 읽기 →소프트웨어 개발Python 사전 튜토리얼: 방법, 예제 및 일반적인 패턴
우리가 실행한 코드가 포함된 Python 사전 튜토리얼: 사전 생성, 읽기 및 업데이트, 주요 방법, 병합, 이해, 패턴 계산 및 그룹화, 일반적인 실수.
기사 읽기 →인공지능RAG 란 무엇입니까? 실제 예제를 통해 설명되는 검색 증강 생성
RAG란 무엇인가요? 검색 증강 생성은 인덱싱, 청킹, 임베딩, 검색, 소규모로 작동하는 Python 예제, 평가 및 일반적인 실패 등 단계별로 설명됩니다.
기사 읽기 →DevOps초보자를 위한 Terraform 튜토리얼: 첫 번째 파일부터 모듈까지 코드로서의 인프라
초보자를 위한 Terraform 튜토리얼: 클라우드 계정 없이 시작하여 초기화, 계획 및 적용을 배우고 변수, 출력, 상태, 모듈 및 안전한 팀 워크플로를 학습합니다.
기사 읽기 →DevOpsDocker와 Kubernetes: 주요 차이점, 함께 작동하는 방식 및 필요한 사항
Docker와 Kubernetes에 대한 설명: 각각의 기능, 동일한 앱이 두 가지 모두에서 실행됨, Docker Compose와 Swarm 비교, dockershim 변경 사항 및 필요한 사항을 결정하는 방법.
기사 읽기 →테스트 자동화초보자를 위한 Pytest 튜토리얼: 고정 장치, 매개변수화 및 실제 예제
pytest 9.2에서 실행한 테스트(어설션, 픽스쳐, 매개변수화, conftest, 마커, tmp_path, Monkeypatch, 유용한 플래그 및 CI)가 포함된 초보자를 위한 pytest 튜토리얼입니다.
기사 읽기 →소프트웨어 테스트소프트웨어 테스팅 라이프사이클(STLC): 6단계, 시작 및 종료 기준, 예
소프트웨어 테스팅 수명주기는 시작 및 종료 기준, 결과물, 작업된 로그인 기능 예, STLC 대 SDLC 및 Agile의 STLC를 포함하는 6개의 STLC 단계를 설명합니다.
기사 읽기 →소프트웨어 개발Git merge vs rebase: 차이점, 예제, 언제 무엇을 쓸까
Git merge vs rebase를 실제 로그 출력, 비교표, rebase의 황금률, 안전한 팀 워크플로로 설명합니다.
기사 읽기 →소프트웨어 개발파이썬 리스트 컴프리헨션: 문법, 예제, 피해야 할 때
파이썬 리스트 컴프리헨션 설명: 문법, 필터링, if-else, 중첩 반복문, 실제 측정 시간, 그리고 일반 for 반복문이 더 나은 경우.
기사 읽기 →데이터베이스 및 SQL예제로 쉽게 배우는 SQL JOIN (Inner, Left, Right, Full)
샘플 테이블과 쿼리로 SQL JOIN을 단계별로 이해하세요. INNER, LEFT, RIGHT, FULL, CROSS, SELF와 흔한 실수, 성능 팁까지 정리했습니다.
기사 읽기 →