본문 바로가기
Programming/Python

Processing PythonMode Ex - 002

by The Programmer 2025. 4. 29.

1. Introduction

 
 참고 . Processing PythonMode Ex - 001에 해당하는 글은 Py5 관련 글을 참고하세요. 하단에 관련 주제를 짧게 다루고 있습니다.
 
Py5 도움말은 다음 사이트를 참고하세요. 이 글에서는 Processing PythonMode를 중심으로 다룹니다.
 
▶ Py5 공식 사이트, 공식 문서들
 
다음은 프로세싱 v4.4.1의 파이썬 모드에서 실행한 코드입니다. 프로세싱 내장 콘솔에 한글을 출력할 때 생길 수 있는 약간의 문제에 대한 해법을 담고 있습니다. 프로세싱의 Java 모드에서는 특별한 문제점을 찾을 수 없습니다. Python 모드에서는 내장된 파이썬 기준 버전이 v2.x.x(정확하게는 v2.7.3 최종 버전)이어서 파이썬 v3.x.x를 기준으로 일부 기능이 제한될 수 있습니다. 이하 코드들에서는 그 해법을 보여줍니다. 내장 콘솔에 직접 출력하는 해법과 외부 콘솔에 출력하는 방법 이 두 가지 모드를 보여줍니다.
 
■ Py5 vs. Processing PythonMode 비교
- Py5는 현재 파이썬 최신 버전인 v3.x.x와  잘 작동하고,
- 프로세싱 PythonMode는 현재 파이썬 v2.7.x 버전을 기준으로 만들어졌습니다.
 
- Py5는 설치 과정이 약간 복잡하고,
- 프로세싱 PythonMode는 비교적 설치가 간단합니다.
 
- 함수 명령어들의 모양이나 사용법은 둘 다 비슷합니다.
- Py5.rect(100, 100, 800, 480)    # Py5
- rect(100, 100, 800, 480)            # Processing PythonMode
 
- Py5가 좀 더 좋아 보입니다만, Processing PythonMode가 쓰기 쉽습니다만, 이 역시 장단점이 있습니다.
- 쓰기 쉬운 것이 배우기에도 좋지만, 고수가 되고 싶다면, 둘 다 장단점, 설치법 등을 알고 용도에 맞게 선택해서 사용할 수 있으면 좋겠습니다.
 
 
■ 프로세싱의  <파이썬 모드>에서 간단한 콘솔에서의 한글 출력 테스트 환경
1) 프로세싱 v4.4.1. x64(64비트용) 설치.
2) 프로세싱 파이썬 모드 4(이것도 버전이 있음. R. 4001) 설치.
3) 출력 테스트용 명령문 : 함수도 없이 단 한 줄로.
 
print("한국어".decode("utf-8"))
or
print(u"한국어입니다만!")
 
■  <파이썬 모드> 설치는 프로세싱이 먼저 설치가 완료되어 있어야 합니다. 이 상태에서 다음 과정을 따릅니다.
1) 프로세싱 실행.
2) 메뉴 / 스케치 / 내부 라이브러리 / Manage Libraries... / Modes / Python Mode for Processing 4 (4001) / install 선택.
(이 방식으로 설치하는 모든 설치에는 인터넷 연결이 필요합니다. 약간의 설치 시간이 걸립니다. 4001은 세부 버전을 뜻합니다. 버전업이 되면 이 숫자가 달라질 수 있습니다. 이 숫자 끝 자리가 조금 달라도 큰 문제는 없습니다.)
 
Windows 7과 같이 조금 오래된 운영체제(OS)에서는 테스트 환경이 달라져야 합니다.1) 프로세싱 v3.5.4. x86 ( 32비트용 다운로드) 설치 :프로세싱 버전 3.5.4는 32비트용으로서는 마지막 버전입니다. Windows 7을 사용하는 컴퓨터에서는 이 버전이 무난합니다. 하단 목록에서 'processing-3.5.4-windows32.zip' 파일을 다운로드 받아야 합니다. 다운로드 받은 파일의 내부에 프로세싱 폴더가 포함되어 있으며 이 폴더를 C:\ 루트 폴더에 복사, 붙여넣기 하시면 됩니다. 그럼 폴더 경로는 다음처럼 되어야 합니다.
 
C:\processing-3.5.4
 
이 폴더 내부에 있는 'processing.exe'가 주 실행 파일입니다. 이 파일을 탐색기에서 더블 클릭으로 실행하면 됩니다.
 
○  참고. 아이콘을 만들어서 실행하는 방법  :

더보기

참고. 아이콘을 만들어서 실행하는 방법  :

 

아이콘을 만들어서 실행하는 방법도 있습니다. Windows 탐색기로   'processing.exe' 파일을 찾고 이 파일명 위에서 <마우스 오른쪽 버튼>을 누르면 <팝업 메뉴>가 나타납니다. 여기서 <보내기>, <바탕 화면에 바로 가기 만들기>를 선택해서 바탕 화면에 아이콘을 만들어서 실행하면 됩니다. Windows 11의 경우, <보내기>가 안 보일 수도 있는데, <팝업 메뉴> 하단에 <추가 옵션 보기>를 선택하면 <보내기>가 나타납니다. 보통은. ^.^; < 바탕 화면에 바로 가기 만들기>를 선택하면 바탕 화면에 아이콘이 하나 새로 생겨납니다. 이 아이콘을 더블 클릭해서 실행하면 됩니다. 아이콘 이름은 적당하게 바꾸셔도 됩니다.

.

.

 

 
2) 프로세싱 파이썬 모드 3( R. 3063) 설치.
 
  위와 마찬가지로 <파이썬 모드> 설치는 프로세싱이 먼저 설치가 완료되어 있어야 합니다. 이하 설치 과정은 비슷합니다.
1) 프로세싱 실행.
2) 메뉴 / 스케치 / 내부 라이브러리 / Manage Libraries... / Modes / Python Mode for Processing 3 (3063) / install 선택.
(이 방식으로 설치하는 모든 설치에는 인터넷 연결이 필요합니다. 약간의 설치 시간이 걸립니다. 3063은 세부 버전을 뜻합니다. 버전업이 되면 이 숫자가 달라질 수 있습니다. 이 숫자 끝 자리가 조금 달라도 큰 문제는 없습니다. )
 
 
프로세싱에서의 한글 폰트 설정

더보기

참고 : 프로세싱에서의 한글 폰트 설정

 

1) 한글 폰트를 구해서 컴퓨터에 설치합니다.

- 한글 폰트는 평소에 추가 설치해두는 것이 좋습니다. 인터넷에서 무료 폰트를 다운로드 받습니다. 보통 다운로드된 파일들은 zip 압축 파일이거나 rar 압축 파일들이 많습니다.  다운로드 받은 파일의 압축을 풉니다. 이 파일들은 보통 ~~.ttf 혹은 ~~.ttc 파일 이름을 갖습니다.이 파일들을  다음 폴더에 복사/붙여넣기 하시면 됩니다.

 

C:\Windows\Fonts

 

- 추천 한국어 폰트 : 맑은 고딕, 나눔 고딕, D2Coding(=나눔 고딕 코딩) 폰트.

- 네이버나 구글에서 '무료 한글 폰트', '무료 한국어 폰트', '무료 한글 폰트 다운로드' 등의 키워드로 검색해보세요.

 

2) 프로세싱의 설정 메뉴에서 한글 폰트를 지정합니다.

- 메뉴 / 파일 / 환경 설정 / 언어(Language) : 한국어(Korean)

- 스케치 에디터와 콘솔 글꼴 선택 : D2Coding 또는 맑은 고딕 또는 나눔 고딕. (폰트 이름이 영어로 표시될 수도 있습니다.)

예) 맑은 고딕 : MalgunGothic, 나눔 고딕 : NanumGothic 

 

3) 추가 폰트로 폰트를 추가하지 않으면 한글 Windows 11이나 7에서 사용할 수 있는 폰트는 그 수가 제한됩니다. 굴림, 굴림체, 고딕, 고딕체 등 몇 개만 사용할 수 있습니다. 맑은 고딕이나 나눔 고딕 폰트들은 이들보다 모양이 더 개선된 폰트들입니다. 추가 폰트들이 없어도 위 설정을 지키면 한글이 표시될 수는 있습니다. 

.

.

 

 
 
파이썬 모드 콘솔에서 한글 출력 테스트 
print("한국어".decode("utf-8"))
 
실행은  Ctrl + R, 혹은 메뉴 / 스케치 / 실행에서 실행.
정상적으로 콘솔에 한글이 출력되면, 문제가 없으므로 문제가 없습니다. ^.^;
 
주의. 파이썬 모드인지 반드시 확인하세요. 우측 상단에 모드 표시 부분이 있습니다. 여기에 Java가 아니라 Python으로 표시되어 있어야 합니다.
 
 
 

2. Code

 
import os
import subprocess

os.system("start calc")    # 여기서 start는 optional. 이하에서는 필수. 테스트해 볼 것.
os.system("start cmd /k python -c \"print('안녕하세요, CMD 1, 여기는 외부 터미널 1')\"")
subprocess.Popen("start cmd /k echo 안녕하세요, CMD 2, 여기는 외부 터미널 2", shell=True)

print("안녕!!".decode("utf-8"))    # 가장 간단한 방법입니다.
print("Hello ?")

print("")    # 이 함수는 원래 자동 줄바뀜. 
print("1")
print("2, \n")

print("안녕! 여기는 내부 콘솔입니다!".decode("utf-8"))    # 가장 간단한 방법입니다.
print("Hello2 ?")
 
 

3. Result

 

[ 프로세싱 v4.4.1 x64 PythonMode에서의 콘솔에 한글 출력하기 ]

 

4. Notes

 
1) 필요한 외부 모듈을 불러옵니다. 여기서는 다음 두 개의 외부 모듈만 사용합니다. 프로세싱 파이썬 모드에서도 잘 작동됩니다.
 
import os
import subprocess
 
2) os 모듈의 system() 함수를 이용해서 시스템  CMD 콘솔에서 calc를 입력하고 엔터키를 친 것과 같은 효과를 냅니다. 여기서 calc는 실제로는 calc.exe를 나타내며, Windows에 처음부터 내장되어 있는 기본 계산기 프로그램을 뜻합니다. 여기서의 start는 생략 가능합니다.

os.system("start calc")    # 여기서 start는 optional. 이하에서는 필수. 테스트해 볼 것.
 
3) 다음 코드는 프로세싱 파이썬 모드에서 외부 시스템 터미널을 열고 파이썬 코드를 실행한 것과 같은 효과를 냅니다.
조금 복잡해 보여도 하나씩 살펴보면 이해할 수 있습니다.

os.system("start cmd /k python -c \"print('안녕하세요, CMD 1, 여기는 외부 터미널 1')\"")
 
차근 차근 하나씩 살펴보겠습니다. 먼저 시스템 함수 호출부터.
 
os.system()
위 함수는 시스템 콘솔을 열고 직접 실행한 것과 같은 효과를 내는 함수입니다.
 
os.system(".......")
파라미터로 문자열 형태를 전달받아야 합니다. 따옴표, 즉 <이중 인용 부호>를 사용해서 문자열 형태라는 것을 나타내야 합니다.
 
os.system("start cmd /k")
여기서 start는 Windows 명령 프롬프트에서 새로운 창을 열어 프로그램을 실행하는 명령입니다. 즉, os.system("start cmd /k")를 실행하면 새로운 CMD 창이 열리고, /k 옵션 덕분에 창이 닫히지 않고 유지됩니다.
 
start가 필요한 이유

  • 새로운 CMD 창을 열기 위해
  • cmd /k만 실행하면 현재 Python 프로세스 내에서 명령이 실행되지만, start를 사용하면 새로운 독립적인 CMD 창에서 실행됩니다.
  • GUI 환경에서 명령 실행을 보장하기 위해
    start를 사용하면 Python이 실행 중인 환경과 관계없이 CMD 창을 띄울 수 있습니다.

start는 새로운 CMD 창을 열 필요 없이 현재 Python 실행 환경에서 명령을 실행하고 싶다면 start를 생략할 수 있습니다.
 

 
Windows 운영체제에서 <시작> 버튼 메뉴 위에서  <마우스 오른쪽 버튼>, <실행>, 열기 명령 칸에 CMD라고 입력하고 <확인>이나 엔터키. 위 그림과 같이 'control" 이라는 글자 부분을 지우고 여기에 'CMD'라고 입력하면 됩니다. <인용 부호>는 제외합니다. 위 그림에서 보이는 'control'이라는 글자를 지우고 대신 'cmd'라는 글자만 입력하고 <확인> 클릭. 그러면 CMD 창이 열리게 됩니다.
 
키보드에서 단축 키 'Windows 키 + R 키'를 눌러도 위 그림과 같은 실행 창이 나타납니다. '열기' 부분에 'control' 대신 'CMD' 입력하고 <확인> 클릭. 그러면 다음과 같은 CMD 창이 나타납니다. CMD 창에 나타나는 정보는 약간씩 다를 수 있습니다.
 

[ CMD 창. ]

 
그리고 CMD 창은 컴퓨터 설정에 따라서 배경색과 글자 폰트, 글자 크기가 다를 수 있습니다.
 
컴퓨터의 설정에 따라 CMD창 대신에 PowerShell 창이 대신 나타날 수도 있습니다. PowerShell 창을 처음 보신 분은 CMD 창이랑 같은 역할을 하지만 CMD 창을 엄청나게 강화한 초강력 업그레이드 버전이라고 생각하셔도 됩니다. ^.^;
 

[ CMD 강화 버전인 PowerShell 창 ]

 
PowerShell을 공부하는 시간이 아니기 때문에 여기서는 CMD 창이랑 비슷한 역할을 하는 창이라는 것만 확인하고 넘어갑니다. PowerShell 만드신 분들은 성질(?)내실 것이 확실하지만. ^.^;
 
어쨌든 여기서 기억할 것은, 다음 명령이 실행되면, CMD 창이 열린다는 사실입니다. 
os.system("start cmd /k")
 
프로세싱의 파이썬 모드에서 실행하는 것이므로 프로세싱은 파이썬처럼 작동되고 프로세싱 파이썬 모드 자체에도 콘솔이 있지만, 이것을 사용하지 않고 프로세싱 외부에 있는 <운영체제의 콘솔>을 사용한다는 뜻이 됩니다. 외부 콘솔!
 
뒤에 있는 /k 옵션은 CMD 창에서 어떤 명령이 실행되고 나서 그 결과를 확인하고 싶기 때문에 CMD 창을 계속 열어두라는 뜻입니다. 이 경우, CMD 창닫기는 사용자가 직접 닫아야 합니다.
 
os.system("start cmd /k python")
위 코드는 CMD 창에서 파이썬을 실행하라는 뜻입니다.
 
실행하되 실행 조건을 하나 달아 옵션으로 추가합니다.
os.system("start cmd /k python -c")
 
-c 옵션은 CMD 창의 명령줄에서 직접 Python 코드를 실행할 때 사용됩니다. 즉, Python 인터프리터를 별도로, 독립적으로, 따로, 새로 다시 실행하지 않고 한 줄짜리 코드를 즉석에서 실행할 수 있도록 해줍니다. 물론 파이썬 인터프리터가 눈에 보이지는 않지만 백그라운드에서 숨어서 작동되고 있습니다. 어떤 방식이든 최종적으로는 파이썬 코드를 실행해야 하니까요. 따라서 -c 옵션은 파이썬 인터프리터가 실행되는 모습을 '눈으로 보고싶지는 않다'라는 뜻이 됩니다.
 
그런 다음, 실행하고자 하는 파이썬 코드 한 줄을 하나의 완전한 "문자열" 형태로 묶어서 제공해야 합니다. 문자열 형태라는 것이 중요합니다. 이 때문에 큰 따옴표, 즉 이중 인용 부호("...")가 필요합니다. 그럼 다음과 비슷한 형태가 됩니다만:
os.system("start cmd /k python -c "........"")        
# 아직 불완전한 부분적 코드. 빨간색 큰 따옴표 자리에 파이썬 코드를 입력함.
 
그런데 전체를 다시 살펴보면,  os.system() 함수 자체가 이미 문자열 형태로 실행되고 있기 때문에 큰 따옴표가 겹치는, 허용되지 않는 불필요 중복의 문제가 생깁니다.
os.system(""......"")        # 허용되지 않음.
 
파이썬에서는 문자열을 출력할 때, 큰 따옴표와 작은 따옴표 모두를 허용합니다. 짝만 맞추어 쓰면 됩니다. 그래서 파이썬의 경우, 보통 이런 중복 사태에 대한 해법으로 큰 따옴표 안에 작은 따옴표 방식을 쓰기도 하고 그 반대로 쓰기도 합니다. 
 
그래서 다음과 같이 고쳐야 합니다.
os.system("'......'")  또는  os.system('"......"')
 
그런데 일부 시스템에서는 작은 따옴표(단일 인용 부호, '...')가 문제를 일으킬 수도 있습니다. 그래서 가장 안전하게 강제로 큰 따옴표(이중 인용 부호, "...")를 사용하도록 특별한 방법을 동원합니다. <이스케이프 문자열>을 출력할 때 사용하는 방법입니다. 역슬래시를 추가하면 됩니다. 파이썬이나 프로세싱에서 자체적으로 어떤 메시지 정보를 주고 받고 하는 것이 아니라 파이썬이나 프로세싱 외부에 별도로 존재하는 <운영체제>에 특정 메시지 정보를 내보내야 하는 예외적인 경우와 같이, 큰 따옴표 안에 큰 따옴표를 사용해야만 하는 특수한 경우에 쓸 수 있습니다.
os.system("\"......\"")
 
다음처럼 시스템 함수가 이미 큰 따옴표(" ")를 사용하고 있고
os.system("  ")
 
전달할 파이썬 코드도 명령줄에서 실행할 것이기 때문에 한 덩어리인 것을 표시하기 위해 큰 따옴표로 묶어서 전달해야 합니다. 파이썬에서 운영체제로 CMD 창을 통해서 전달용. 배달용. 다음 한 줄 짜리 파이썬 코드 덩어리를 전달하겠다...라는 뜻.
print('어쩌고 저쩌고... ')

 
이 코드를 묶어서
"print('어쩌고 저쩌고... ')"
 
이 때문에 큰 따옴표가 2 쌍이 사용됩니다. 중복 오류를 피하기 위해서 슬래시! 이스케이프 문자열 방식!
os.system("\"......\"")
 
실제로 실행할 파이썬 명령은 다음 한 줄입니다.
print('안녕하세요, CMD 1, 여기는 외부 터미널 1')
 
최종적으로 이것을 전부 조립하면 다음과 같은 긴  명령줄이 탄생합니다. 짜잔~~~!
os.system("start cmd /k python -c \"print('안녕하세요, CMD 1, 여기는 외부 터미널 1')\"")
 
4) 아래는 약간 다른 방법으로 외부 콘솔을 실행합니다. 서브프로세스 모듈을 이용한 하위 프로세스 실행하기.
 
( 이 부분은 추가 설명이 필요함. 추후 업데이트.)
subprocess.Popen("start cmd /k echo 안녕하세요, CMD 2, 여기는 외부 터미널 2", shell=True)
 
5) 중요! 문자열을 디코드해서 출력하면 한글이 잘 나옵니다. 간단 명료한 방법입니다.

 
print("안녕!!".decode("utf-8"))    # 가장 간단한 방법입니다.
 
 파이썬 3은 원래 UTF-8 방식이 기본입니다만, 프로세싱 파이썬 모드에서는 콘솔에서 출력할 때 한글 출력이 제한됩니다. 프로세싱의 자바모드에서는 문제가 없습니다. 위 방법을 사용하면 한글을 정상 출력할 수 있습니다.
 
6) print() 함수와 줄바뀜
 
print() 함수는 기본적으로 실행 후, 자동으로 줄이 바뀝니다.  이 함수는 원래 줄바뀜을 포함하고 있습니다.

print("")
 
end="" 옵션을 추가해서 줄바뀜을 막을 수도 있습니다.
print("자동 줄바뀜 방어하기", end="")

7) 줄바뀜 이스케이프 문자
 
'\n'은 줄바뀜 문자입니다. 두 글자가 아니고 한 글자로 취급됩니다. 이스케이프 문자라고 합니다.
다음 코드에서는 print() 함수 자체가 줄을 한 번 바꾸고 '\n' 문자가 줄을 또 바꾸고 해서 결과적으로 줄이 두 번 바뀌게 됩니다.

 
print("2, \n")
 
 
■ 응용 연습 과제
1) 다른 이스케이프 문자들 예제
2) 기타 특수 문자 출력하기
3) 문자표 활용하기
4) 그림 문자 출력하기
5) 그림 문자 활용하기
 

 

5. Update 1 : Code

 
# KR Output OK. This must occur at the beginning of the file
from __future__ import unicode_literals


print("고맙습니다. Julius님!")
print("Thank you, Julia")
print("You are the best in the world!")

 
 

6. Update 2 : 프로세싱 파이썬 모드 콘솔에서 한글 출력 방법 정리


1) unicode_literals를 사용하기

# KR Output OK. This must occur at the beginning of the file
from __future__ import unicode_literals

2) 문자열을 유니코드(u"")로 선언하기

print(u"안녕하세요, 프로세싱!")

3) string.decode("utf-8") 출력 방식 사용하기

print("Hello, James".decode("utf-8"))

현재의 프로세싱 파이썬 모드에서는 위 3 가지 방법만이 정상으로 작동됩니다.

4) 결론 : 프로세싱 파이썬 모드에서 내장 콘솔에 한글 출력이 필요하다면,

from __future__ import unicode_literals

 
이 코드를 최상단에 추가하는 것이 가장 좋을 듯합니다. 단순 명확, 간단하고, 복잡하게 외부 파일을 쓰지 않고,
print() 함수로 출력시 일체의 다른 추가 처리가 필요없습니다.

^.^;

 

 

7. Update 3 : 프로세싱 파이썬 모드 콘솔의 특징

 
■ 공식 페이지 안내말 :
 
프로세싱 파이썬 모드 콘솔과 관련해서 참고할 만한 온라인 문서입니다.
 
  github.com/jdf/processing.py
 
위 문서에서 프로세싱 파이썬 모드에 대한 다음과 같은 힌트를 찾을 수 있습니다 : Source compatible with Python 2.7.3.
 
이 힌트를 고려하면, 프로세싱의 파이썬 모드 콘솔 출력과 관련해서 알아야 할 몇 가지 주의 사항이 있습니다.

Python 2.7 기반 코드의 특징 및 주의 사항들:

- print 문법 차이 :
Python 2에서는 print "Hello"처럼 괄호 없이 사용 가능하지만,
Python 3에서는 print("Hello")처럼 괄호를 반드시 사용해야 합니다.

- sys.setdefaultencoding("utf-8") 사용 가능 :
Python 2에서는 sys.setdefaultencoding("utf-8")을 사용하여 기본 인코딩을 변경할 수 있지만,
Python 3에서는 지원되지 않습니다.

(이론적으로는 그렇지만, 프로세싱 파이썬 모드에서 일단 이 옵션은 제한됩니다.)

- subprocess.run() 미지원 :
Python 3에서 추가된 subprocess.run()을 사용할 수 없으며,
대신 subprocess.call() 또는 subprocess.Popen()을 사용해야 합니다.

(이 부분은 아직 충분히 테스트해보지 못했습니다. 쿨럭... ㅡ.ㅡ;)

- 문자열 인코딩 처리 필요 :

Python 2에서는 문자열이 기본적으로 ASCII로 처리되므로,
한글을 정상적으로 출력하려면 .decode("utf-8")을 사용해야 합니다.

 
print("안녕하세요, 프로세싱!".decode("utf-8"))

결론적으로 코드 최상단에 다음 줄을 추가하는 방식이 가장 무난해 보입니다.

from __future__ import unicode_literals
 
 

8. Files

 
길지 않아서 직접 타이핑 권장!
 
 

9. Ref.

 
이전에 올린 Py5 글의 참고 문헌들을 참고하세요. ^.^; Py5 관련 글
 
  github.com/jdf/processing.py
 
 
Happy Programming!
 
^.^;