## print() 함수
**장점:**
1. 파이썬 내장 함수로 별도 설치가 필요 없음
2. 간단하고 직관적인 사용법
3. 다양한 옵션(sep, end, file 등)으로 출력 형식 조정 가능
**단점:**
1. 변수명을 별도로 표시하지 않아 여러 변수 추적 시 혼란 가능
2. 복잡한 객체 출력 시 가독성이 떨어짐
**예시:**
```python
# 기본 사용법
name = "홍길동"
age = 30
print(name, age) # 홍길동 30
# 디버깅 목적으로 사용할 때는 보통 변수명을 포함해야 함
print(f"name: {name}, age: {age}") # name: 홍길동, age: 30
# 리스트 내용 확인
numbers = [1, 2, 3, 4, 5]
print("numbers:", numbers) # numbers: [1, 2, 3, 4, 5]
```
## ic() 함수 (icecream 패키지)
**장점:**
1. 변수명과 값을 자동으로 함께 출력해 가독성 향상
2. 복잡한 표현식도 명확하게 표시
3. 라인 번호와 함수명 표시 옵션으로 추적 용이
4. 컬러 출력으로 가독성 향상
**단점:**
1. 외부 패키지로 설치 필요 (`pip install icecream`)
2. 모든 프로젝트에서 표준으로 사용되지 않아 협업 시 설명 필요
**예시:**
```python
from icecream import ic
# 기본 사용법
name = "홍길동"
age = 30
ic(name, age) # ic| name: '홍길동', age: 30
# 복잡한 표현식 디버깅
numbers = [1, 2, 3, 4, 5]
ic(numbers, sum(numbers), len(numbers))
# ic| numbers: [1, 2, 3, 4, 5], sum(numbers): 15, len(numbers): 5
# 조건문 내부에서 사용
for i in range(3):
if i % 2 == 0:
ic(i, "짝수") # 변수명과 값을 함께 표시
```
## 실무 활용 비교
**print() 적합한 상황:**
- 간단한 로그 출력
- 사용자에게 보여줄 출력물 생성
- 외부 라이브러리 설치가 제한된 환경
**ic() 적합한 상황:**
- 복잡한 디버깅 시나리오
- 여러 변수를 동시에 추적할 때
- 코드 흐름을 명확하게 확인하고 싶을 때
print()는 가장 기본적인 도구로 어디서나 사용 가능하지만, ic()는 디버깅에 특화된 기능을 제공해 개발 효율성을 크게 높여줍니다.
python:: 파이썬 디버깅 도구 - print()와 ic() 비교
반응형