Python 사전 튜토리얼: 방법, 예제 및 일반적인 패턴

  1. 홈
  2. 블로그
  3. 소프트웨어 개발

소프트웨어 개발

Python 사전 튜토리얼: 방법, 예제 및 일반적인 패턴

사전은 JSON 응답부터 구성까지 Python의 모든 곳에 있습니다. 생성하고 읽고 업데이트하는 방법을 배운 다음 실제 프로젝트에서 사용할 계산, 그룹화 및 병합 패턴을 선택하세요.

읽는 시간 9분
Python 사전 튜토리얼: 메서드, 예제 및 일반적인 패턴

핵심 요약

  • Python 사전은 키와 값 쌍을 저장하고 해당 키로 값을 매우 빠르게 조회합니다.
  • 대괄호로 인해 KeyError가 올라가므로 키가 누락되었을 수 있는 경우 get()을 사용하십시오.
  • 키는 문자열, 숫자, 튜플과 같이 해시 가능해야 합니다. 목록은 키가 될 수 없습니다.
  • copy()은 얕으므로 deepcopy를 사용하지 않는 한 중첩된 데이터는 공유된 상태로 유지됩니다.

목록이 번호가 매겨진 상자의 행인 경우, Python 사전은 레이블이 있는 사전입니다. 위치보다는 이름으로 원하는 것을 요청합니다. 이것이 사전이 JSON 데이터, 구성, 캐시 및 Python 자체의 대부분 뒤에 있는 이유입니다.

이 튜토리얼은 기본부터 시작하여 숙련된 개발자가 매일 사용하는 패턴으로 넘어갑니다. Python 3.13에서 모든 예제를 실행했으며 표시된 출력은 해당 실행에서 나온 것입니다.

사전이란 무엇입니까?

사전 또는 dict은 키를 값에 매핑합니다. 각 키는 한 번만 나타나며 값은 목록이나 기타 사전을 포함하여 무엇이든 될 수 있습니다.

유형 액세스 방법 주문하다 중복 다음에 가장 적합
목록 위치 예 허용됨 시퀀스
튜플 위치 예 허용됨 고정 기록
세트 회원 전용 아니요 허용되지 않음 독특한 아이템
딕셔너리 열쇠 게재 신청서 열쇠는 독특하다 이름으로 조회

Python 3.7부터 사전은 공식적으로 삽입 순서를 유지합니다. 많은 오래된 튜토리얼에서는 여전히 이를 순서가 없다고 부르는데, 이는 더 이상 사실이 아닙니다. 다른 유형에 대한 더 광범위한 비교는 Python 목록 대 튜플 대 집합을 참조하세요.

사전은 해시 테이블을 사용하므로 조회가 빠릅니다. 사전에 항목이 10개든 100만 개든 키를 확인하는 데는 거의 같은 시간이 걸리는 반면, 목록 검색은 항목이 많아질수록 속도가 느려집니다.

사전 만들기

user = {"name": "Asha", "age": 31, "city": "Pune"}

empty = {}
from_keywords = dict(name="Asha", age=31)
from_pairs = dict([("a", 1), ("b", 2)])

중괄호가 가장 일반적인 형태입니다. 하나의 트랩: {}은 빈 세트가 아닌 빈 사전을 생성합니다. 빈 세트의 경우 set()가 필요합니다.

안전하게 값 읽기

값을 읽는 방법에는 두 가지가 있으며 키가 존재하지 않는 경우 차이점이 중요합니다.

user["name"]                  # 'Asha'
user["email"]                 # KeyError: 'email'

user.get("email")             # None
user.get("email", "not set")  # 'not set'

키가 있어야 하는 경우 대괄호를 사용하여 누락된 키가 크게 실패하도록 합니다. API 응답의 선택적 필드와 같이 부재가 일반적인 경우 get()을 사용하세요. 키를 확인하려면 값이 아닌 키를 확인하는 in 연산자를 사용하세요.

"city" in user    # True
"Pune" in user    # False

추가, 업데이트 및 제거

키에 할당하면 키가 있으면 업데이트되고, 없으면 추가됩니다.

user["age"] = 32
user["email"] = "asha@example.com"
print(user)

# {'name': 'Asha', 'age': 32, 'city': 'Pune', 'email': 'asha@example.com'}

Python은 항목을 제거하는 여러 가지 방법을 제공합니다.

user.pop("city")          # returns 'Pune' and removes it
user.pop("phone", None)   # no error if it is missing
del user["email"]         # removes it, and raises KeyError if missing
user.clear()              # empties the dictionary

값을 다시 원하면 pop()을 사용하십시오. 두 번째 인수로 기본값을 전달하면 키가 없을 때 발생하는 오류를 방지할 수 있습니다. popitem()는 가장 최근에 추가된 쌍을 제거하고 반환합니다.

사전 반복

반복하면 키를 직접 얻을 수 있습니다. 키와 값을 모두 얻으려면 items()을 사용하십시오.

user = {"name": "Asha", "age": 32}

for key, value in user.items():
    print(key, "=", value)

# name = Asha
# age = 32

keys(), values() 및 items()은 복사본이 아닌 라이브 뷰를 반환하므로 이후 변경 사항을 반영합니다. Python은 RuntimeError를 발생시키기 때문에 사전을 반복하는 동안 키를 추가하거나 제거하지 마십시오. 그렇게 해야 한다면 list(user)를 반복하세요.

팁: 사전에서 in 확인은 빠르지만 "Pune" in user.values()은 모든 값을 스캔해야 합니다. 대용량 데이터에 대해 이 작업을 자주 수행하면 사전의 키가 잘못된 방향으로 입력될 수 있습니다.

사전 방법 치트 시트

방법 기능
get(k, 기본값) 값을 반환하거나 키가 누락된 경우 기본값을 반환합니다.
keys() 키의 뷰를 반환합니다.
values() 값의 뷰를 반환합니다.
items() 키와 값 쌍의 보기를 반환합니다.
update(other) 다른 사전에서 추가하거나 덮어씁니다.
팝(k, 기본값) 키를 제거하고 해당 값을 반환합니다.
popitem() 마지막으로 추가된 쌍을 제거하고 반환합니다.
기본값 설정(k, v) 값을 반환하고 키가 누락된 경우 먼저 v를 삽입합니다.
copy() 얕은 복사본을 반환합니다.
clear() 모든 것을 제거합니다
dict.fromkeys(키, v) 키 목록에서 사전을 구축합니다.

사전 병합

일반적인 요구 사항은 기본값 위에 사용자 설정을 적용하는 것입니다. 키가 충돌하면 오른쪽이 승리합니다.

defaults = {"theme": "light", "lang": "en"}
saved = {"theme": "dark"}

defaults | saved
{**defaults, **saved}

# Both give: {'theme': 'dark', 'lang': 'en'}

| 연산자에는 Python 3.9 이상이 필요하지만 ** 버전은 이전 버전에서도 작동합니다. 둘 다 새 사전을 만듭니다. 대조적으로, defaults.update(saved)과 defaults |= saved는 defaults를 제자리에서 변경합니다.

이해와 정렬

Dictionary comprehension은 list comprehension이 목록에 대해 하는 것과 마찬가지로 읽을 수 있는 단일 줄에 새 사전을 만듭니다.

prices = {"pen": 10, "book": 250, "bag": 900}

{k: v for k, v in prices.items() if v > 100}
# {'book': 250, 'bag': 900}

값을 기준으로 정렬하려면 key 함수를 sorted()에 전달하세요. 가장 큰 값을 가진 키를 찾으려면 max()을 사용하십시오.

sorted(prices.items(), key=lambda item: item[1], reverse=True)
# [('bag', 900), ('book', 250), ('pen', 10)]

max(prices, key=prices.get)
# 'bag'

사전에는 sort() 메서드가 없으며 sorted()는 쌍 목록을 반환합니다. 사전을 해당 순서로 원하면 결과를 dict()으로 묶습니다.

패턴 계산 및 그룹화

두 가지 작업이 끊임없이 발생합니다. 첫 번째는 계산입니다. 기본값은 0인 get()을 사용하여 수행할 수 있습니다.

words = "to be or not to be".split()

counts = {}
for word in words:
    counts[word] = counts.get(word, 0) + 1

print(counts)
# {'to': 2, 'be': 2, 'or': 1, 'not': 1}

표준 라이브러리는 Counter을 사용하여 이를 더욱 짧게 만듭니다.

from collections import Counter

Counter(words).most_common(2)
# [('to', 2), ('be', 2)]

두 번째는 그룹화이며 defaultdict은 누락된 값을 생성하므로 여기서 이상적입니다.

from collections import defaultdict

orders = [("Asha", 1200), ("Ben", 300), ("Asha", 800)]

by_customer = defaultdict(list)
for name, total in orders:
    by_customer[name].append(total)

print(dict(by_customer))
# {'Asha': [1200, 800], 'Ben': [300]}

이것이 없으면 추가하기 전에 각 키가 존재하는지 확인해야 합니다. 이와 동일한 패턴은 API 데이터 또는 로그 라인을 집계하는 데 적합합니다. 사전이 비어 있거나 키가 누락된 경우 Python 예외 처리 가이드에서는 결과 KeyError를 처리하는 방법을 보여줍니다.

중첩된 데이터 및 복사 트랩

JSON은 중첩된 사전 및 목록에 직접 매핑되므로 키를 연결하는 경우가 많습니다. 체인 get()은 레벨이 누락되었을 때 이를 안전하게 유지합니다.

response = {"user": {"profile": {"city": "Pune"}}}

response["user"]["profile"]["city"]               # 'Pune'
response.get("user", {}).get("settings", {}).get("theme")   # None

중첩된 데이터를 복사할 때는 주의하세요. copy()은 최상위 수준만 복제하므로 내부 사전은 원본과 공유됩니다.

settings = {"db": {"host": "localhost"}}

shallow = settings.copy()
shallow["db"]["host"] = "prod"

print(settings["db"]["host"])
# prod

복사본을 변경하면 원본이 변경되는데 이는 불쾌한 버그가 될 수 있습니다. 완전히 독립적인 복사본을 얻으려면 copy.deepcopy(settings)을 사용하십시오.

사전 키는 무엇입니까?

키는 해시 가능해야 하며 이는 일반적으로 변경할 수 없음을 의미합니다. 문자열, 숫자, 불변 값의 튜플이 모두 작동합니다. 목록과 사전은 다음을 수행하지 않습니다.

{["a"]: 1}

# TypeError: unhashable type: 'list'

그 이유는 키의 해시가 해당 값이 저장되는 위치를 결정하기 때문입니다. 키가 변경될 수 있으면 Python은 더 이상 키를 찾을 수 없습니다. 복합 키가 필요한 경우 {("Pune", 2026): 120}과 같은 튜플을 사용하세요.

일반적인 실수

  • 옵션 키에 대괄호를 사용합니다. 키가 없을 수 있는 경우 get()에 도달하세요.
  • get()는 키가 존재한다는 것을 의미한다고 가정합니다. None은 누락되었거나 저장된 None를 의미할 수 있습니다. 차이가 중요한 경우 in를 사용하세요.
  • 변경 가능한 기본값을 사용합니다. dict.fromkeys(names, []) 모든 키에 동일한 목록이 제공됩니다. 대신 이해력을 사용하십시오.
  • 반복 중 크기 변경. 키 복사본을 반복합니다.
  • 고정된 알려진 필드에 사전을 사용합니다. dataclass가 더 명확할 수 있으며 필드 이름의 오타를 잡아냅니다.

마무리

사전은 약간의 연습에 대한 보상입니다. 선택적 키는 get(), 루프는 items(), 가장 일반적인 두 가지 작업은 Counter과 defaultdict를 기억하세요. 연습하려면 작은 JSON 파일을 가져와서 레코드 수를 세고 그룹화하는 코드를 작성하세요. 언어를 처음 사용하는 경우 초보자를 위한 Python 튜토리얼부터 시작하세요.

자주 묻는 질문

Python에서 사전이란 무엇입니까?

사전은 키와 값 쌍을 저장하는 내장 컬렉션입니다. 키로 값을 조회하므로 데이터 양이 많아도 빠르게 찾을 수 있습니다.

Python 사전은 주문되나요?

예. Python 3.7부터 사전은 키가 삽입된 순서를 유지하는 것이 보장됩니다. 기존 키를 업데이트해도 위치는 변경되지 않습니다.

get()과 대괄호의 차이점은 무엇입니까?

대괄호는 키가 누락된 경우 KeyError를 발생시킵니다. get()은 None 또는 사용자가 제공한 기본값을 반환하므로 선택적인 키에 적합합니다.

사전에 중복 키가 있을 수 있나요?

아니요. 각 키는 고유합니다. 기존 키에 할당하면 해당 값이 대체되고, 리터럴이 키를 반복하면 마지막 값이 적용됩니다.

Python에서 두 사전을 어떻게 병합합니까?

|를 사용하세요. Python 3.9 이상에서는 b, 이전 버전에서는 {**a, **b}입니다. 둘 다 새 사전을 구축하고 키가 충돌하면 b의 값이 승리합니다.

계속 학습하세요

Stack Quora와 작업

테스트, 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% 적용 범위가 여전히 버그를 놓칠 수 있는 이유 및 합리적인 대상.

기사 읽기 →
데이터베이스 및 SQL

SQL의 DELETE vs TRUNCATE vs DROP: 차이점, 롤백 및 사용 시기

테스트된 SQL을 통해 DELETE 대 TRUNCATE 대 DROP에 대해 설명합니다. 각각의 제거, 롤백, 트리거, ID 재설정, 속도 및 PostgreSQL, MySQL, SQL Server 및 SQLite의 차이점.

기사 읽기 →
데이터베이스 및 SQL

SQL 뷰 설명: 예제를 통해 함정 생성, 사용 및 방지

우리가 실행한 쿼리로 설명된 SQL 뷰: 뷰 생성, 실시간 결과, 열 숨기기, 성능, 업데이트 가능하고 구체화된 뷰, 손상된 종속성 및 모범 사례.

기사 읽기 →
소프트웨어 개발

TypeScript 인터페이스와 유형: 실제 차이점, 컴파일러로 테스트

TypeScript 인터페이스 대 유형, 실제 컴파일러로 확인: 둘 다 할 수 있는 것, 하나만 할 수 있는 것, 선언 병합, 확장 대 교차점 및 따라야 할 간단한 규칙.

기사 읽기 →
소프트웨어 개발

Python *args 및 **kwargs 설명: 명확한 예가 포함된 유연한 함수

Python *args 및 **kwargs는 우리가 실행한 코드(패킹 및 언패킹, 매개변수 순서, 키워드 전용 및 위치 전용 인수, 데코레이터 및 일반적인 오류)를 설명했습니다.

기사 읽기 →
소프트웨어 개발

Python Lambda 함수: 구문, 실제 사용 및 사용하지 말아야 할 경우

Python 람다 함수는 구문, 키를 사용한 정렬, 맵 및 필터, 클로저, 후기 바인딩 트랩, 일반 def가 더 나은 선택인 경우 등 우리가 실행한 코드로 설명되었습니다.

기사 읽기 →
인공지능

AI 에이전트란 ​​무엇입니까? 작동 방식, 간단한 에이전트 루프를 사용하여 실행할 수 있음

AI 에이전트란 무엇입니까? 우리가 실행한 작은 Python 루프, 실제 위험 및 간단한 챗봇이 더 나은 선택일 때 에이전트 루프, 도구, 메모리 및 가드레일에 대한 일반 가이드입니다.

기사 읽기 →
DevOps

모니터링과 관찰 가능성: 로그, 지표, 추적을 통한 실제 차이점

모니터링과 관찰 가능성 설명: 알려진 오류와 알려지지 않은 오류, 로그, 지표 및 추적, 결제 사건 안내, 골든 신호, OpenTelemetry 및 유용한 경고.

기사 읽기 →
DevOps

Docker 볼륨과 바인딩 마운트: 컨테이너 데이터를 올바른 방식으로 유지

Docker 볼륨과 바인드 마운트 설명: 컨테이너 데이터가 사라지는 이유, 명명된 볼륨, 바인드 마운트, tmpfs, Compose 예제, 백업, 권한 및 각 사용 시기.

기사 읽기 →
테스트 자동화

TDD와 BDD: 주요 차이점, 두 가지 방식으로 구축된 하나의 기능 및 각 사용 시기

TDD와 BDD는 두 가지 방식으로 구축된 하나의 할인 기능, 즉 우리가 실행한 코드를 사용한 적록 리팩토링, 주어진 시점 시나리오, 도구, 장단점 및 각 사용 시기를 설명합니다.

기사 읽기 →
소프트웨어 테스트

UAT(사용자 승인 테스트): 프로세스, 체크리스트 및 실제 사례

사용자 승인 테스트는 누가 실행하는지, QA와 어떻게 다른지, 7단계 프로세스, UAT 테스트 사례 템플릿, 체크리스트, 승인 기준 및 일반적인 실수에 대해 설명했습니다.

기사 읽기 →
데이터베이스 및 SQL

SQL NULL 값 설명: IS NULL, COALESCE, NULLIF 및 피해야 할 함정

우리가 실행한 쿼리를 통해 설명된 SQL NULL 값: 3개 값 논리, IS NULL, COALESCE, NULLIF, 집계, 조인 및 정렬이 NULL을 처리하는 방법 및 조용히 발생하는 버그.

기사 읽기 →
데이터베이스 및 SQL

SQL CASE WHEN 문: 구문, 실제 예 및 일반적인 실수

우리가 실행한 쿼리로 설명된 SQL CASE: 단순 및 검색 양식, 조건 순서, SUM이 있는 피벗, COUNT 트릭, 사용자 정의 정렬, 업데이트 및 피해야 할 NULL 트랩.

기사 읽기 →
소프트웨어 개발

JWT란 무엇입니까? 실제 예제로 설명되는 JSON 웹 토큰

JWT란 무엇입니까? JSON 웹 토큰은 세 부분, 즉 우리가 실행한 코드에서 구축 및 변조된 토큰, JWT 대 세션, 저장소, 새로 고침 토큰 및 보안 실수를 설명했습니다.

기사 읽기 →
소프트웨어 개발

JavaScript 이벤트 루프 설명: 예제가 포함된 호출 스택, 마이크로태스크 및 타이머

호출 스택, 작업 및 마이크로태스크 대기열, setTimeout 0이 즉시 실행되지 않는 이유, 차단, 기아 및 인터뷰 퀴즈 등 우리가 실행한 코드로 JavaScript 이벤트 루프를 설명했습니다.

기사 읽기 →
소프트웨어 개발

Python 생성기 및 수율 설명: 실제 예제로 메모리 절약

Python 생성기와 항복은 우리가 실행한 코드로 설명됩니다. 일시 중지 및 재개 방법, 측정된 메모리 절약, 파이프라인, 무한 시퀀스, 항복, 전송 및 공통 트랩.

기사 읽기 →
인공지능

임베딩이란 무엇입니까? 벡터와 코사인 유사성을 간단하게 설명

임베딩이란 무엇입니까? 벡터, 코사인 유사성 및 의미론적 검색에 대한 일반 언어 가이드로, 우리가 실행한 작은 예, 일반적인 용도, 모델 선택 및 알려진 한계를 제공합니다.

기사 읽기 →
DevOps

블루-그린 배포와 카나리아 배포: 차이점, 장단점 및 선택 방법

블루-그린 배포와 카나리아 배포에 대한 설명: 각각의 작동 방식, 비용, 위험 및 롤백, 테스트한 안정적인 사용자 버킷팅, 데이터베이스 마이그레이션, 롤링 업데이트 및 선택 방법.

기사 읽기 →
테스트 자동화

불안정한 테스트: 원인과 해결 방법

우리가 실행한 데모를 통해 불안정한 테스트에 대해 설명했습니다. 주요 원인, 확인 및 진단 방법, 시기, 공유 상태 및 날짜, 격리 프로세스에 대한 적절한 수정 사항.

기사 읽기 →
소프트웨어 테스트

부하 테스트와 스트레스 테스트 비교: 차이점, 측정항목 및 k6 예

부하 테스트와 스트레스 테스트 비교 설명: 각각의 증명, 스파이크 및 흡수 테스트, 중요한 측정항목, 평균이 잘못된 이유, k6 예 및 테스트 계획 방법.

기사 읽기 →
소프트웨어 테스트

테스트 케이스와 테스트 시나리오: 주요 차이점, 예 및 각각의 사용 시기

테스트 케이스와 테스트 시나리오 설명: 명확한 정의, 병렬 테이블, 시나리오에서 케이스로 가져온 하나의 비밀번호 재설정 기능, 템플릿 및 각 사용 시기.

기사 읽기 →
데이터베이스 및 SQL

SQL 쿼리 최적화: 타이밍에 따라 실행 계획을 읽고 느린 쿼리를 수정합니다.

백만 개의 행에서 테스트된 SQL 쿼리 최적화: 실행 계획 읽기, 올바른 인덱스 추가, 분할할 수 없는 필터 수정, 복합 인덱스 및 키 세트 페이지 매김 사용.

기사 읽기 →
데이터베이스 및 SQL

SQL 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방향 매트릭스, 수준 척도, 각 항목을 설정하는 사람 및 버그 분류 실행 방법.

기사 읽기 →
데이터베이스 및 SQL

SQL 하위 쿼리 자습서: 유형, 상관 하위 쿼리 및 EXISTS(예제 포함)

스칼라, IN, FROM 및 SELECT 하위 쿼리, 상관 하위 쿼리, EXISTS, NOT IN NULL 트랩 및 하위 쿼리 대 JOIN 대 CTE 등 우리가 실행한 쿼리가 포함된 SQL 하위 쿼리 자습서입니다.

기사 읽기 →
데이터베이스 및 SQL

SQL 트랜잭션 및 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 튜토리얼: 클라우드 계정 없이 시작하여 초기화, 계획 및 적용을 배우고 변수, 출력, 상태, 모듈 및 안전한 팀 워크플로를 학습합니다.

기사 읽기 →
DevOps

Docker와 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와 흔한 실수, 성능 팁까지 정리했습니다.

기사 읽기 →