Go vs Python 간략 비교
2024. 11. 26. 23:08ㆍTucker의 Go 언어 프로그래밍
Go vs Python 입출력 철학
- Go: 컴파일 언어. 성능과 효율성 중시.
- I/O 작업은 바이트 스트림(Byte Stream) 중심.
- io, os, bufio 같은 패키지로 저수준 처리 지원.
- Python: 인터프리터 언어. 개발 편의성에 초점.
- 텍스트 스트림(Text Stream) 중심으로 작업.
- 문자열 입출력 위주로, 내부에서 바이트 스트림은 알아서 처리.
Byte Stream vs Text Stream
- 바이트 스트림: 데이터의 원시 형태. (Go)
- 네트워크 통신, 파일 I/O에서 많이 사용.
- 사람이 읽으려면 추가 변환 필요.
- 텍스트 스트림: 사람이 읽기 쉬운 문자 단위 데이터. (Python)
- 읽기 쉽고 편리하지만, 성능은 조금 손해.
Go의 I/O 주요 패키지
- io 패키지
- os 패키지
- bufio 패키지
버퍼(Buffer)
- 버퍼: 데이터를 일시적으로 저장하는 메모리 공간.
- 생산자: 데이터를 버퍼에 쌓음.
- 소비자: 버퍼에서 데이터를 읽음.
- 버퍼가 가득 차거나 플러시하면 출력.
- Go 버퍼링: 수동으로 Flush() 호출 필요.
- Python 버퍼링: 자동 플러시가 기본.
결론 : Go는 바이트 단위 저수준 처리로 성능 극대화, Python은 고수준 편의성으로 빠른 개발에 유리. 프로젝트에 맞게 선택하면 됨.
Go | Python | |
중심 | 바이트 스트림 | 텍스트 스트림 |
유형 | 수동 버퍼링 (Flush 필요) | 자동 버퍼링 지원 |
패키지 | bufio.Reader, bufio.Writer | io.BufferedReader, io.BufferedWriter |
'Tucker의 Go 언어 프로그래밍' 카테고리의 다른 글
Go 변수 선언과 타입 정리 (0) | 2024.11.24 |
---|