1. libpng warning: iCCP: known incorrect sRGB profile가 뜨는 원인

파이썬 pygame을 활용해서 프로젝트를 진행 중이었는데 갑자기 libpng warning: iCCP: known incorrect sRGB profile 메시지가 떴다. 실행에는 문제가 없었지만 게임이다 보니 frame마다 메시지가 떠서 디버깅하려고 작성한 print문이 보이지 않는 등 불편해서 구글링을 해보니 포토샵으로 이미지 편집을 한 것이 원인이었다. 포토샵에서 이미지 편집을 하면 일반 이미지 파일과 색상 정보를 다르게 저장해서 경고 메시지가 뜨는 것이다.  

 

 

 

2. libpng warning: iCCP: known incorrect sRGB profile 해결하기

포토샵으로 편집했던 이미지파일을 연 후 [편집] - [프로필 할당]을 클릭하고, [이 문서 색상 관리 안 함]을 선택 후 확인 버튼을 누르고 저장하면 된다.

1. 시작하며

이 글은 윈도우 환경에서 Python이 설치되어있고,

AWS RDS가 구축되어 있으며 Oracle과 연동되어있는 상태에서 시작합니다.

이 준비가 되어있지 않으신 분들은 구글링을 통해 먼저 진행해주세요. 

 

 

 

2.  cx_Oracle 설치

cmd창에서 pip install cx_Oracle 명령어를 실행하여 cx_Oracle을 설치합니다.

pip install cx_Oracle

 

 

 

3. Python bit 확인

사용 중인 Python bit를 확인합니다. 아래 코드로 확인할 수 있습니다.

import platform
print(platform.architecture())

 

 

 

4. Oracle Instant Clinet 다운로드

사용하는 Python bit에 맞는 Oracle Instant Clinet를 오른쪽 링크에서 다운로드합니다. (32bit, 64bit)

다운로드받은 zip파일을 압축 해제한 후 원하는 위치로 옮깁니다. 저는 C드라이브로 옮겼습니다.

 

 

 

5. 환경변수 추가

윈도우키를 누르고 "환경 변수"라고 검색해서 [시스템 환경 변수 편집]을 클릭한 후,

시스템 속성창에서 [환경 변수]를 클릭합니다.

 

 

[시스템 변수]에서 [Path]를 클릭 후 [편집]을 클릭합니다.

환경 변수 편집창에서 [새로 만들기]를 클릭 후 4번에서 압축 해제한 폴더의 경로를 추가합니다.

폴더의 경로는 파일 탐색기에서 경로 부분을 클릭하면 복사할 수 있습니다.

 

 

 

6. 재부팅

환경변수를 추가했으니 재부팅합니다.

 

 

 

7. DB 연결 예제

RDS의 사용자 이름, 비밀번호, 호스트 이름, 포트, SID를 확인합니다. sqldeveloper로 확인하면 편합니다.

오른쪽 사진은 예제에 사용할 SAMPLETABLE입니다.

 

 

import cx_Oracle
import os
import pandas as pd # pandas를 사용하지 않을거면 지워도 됩니다.

# 한글 설정
os.putenv('NLS_LANG', '.UTF8')

# DB 연결
connection = cx_Oracle.connect("사용자 이름/비밀번호@호스트이름:포트/SID")
cursor = connection.cursor()

# 쿼리 실행
cursor.execute("insert into SAMPLETABLE(id, name) values ('%d', '%s')" % (3, "테스트삼")) # insert 예제 1
cursor.execute("insert into SAMPLETABLE(id, name) values (:2, :3)", (4, "테스트사")) # insert 예제 2
cursor.execute("insert into SAMPLETABLE(id, name) values (5, '테스트오')") # insert 예제 3
cursor.execute("update SAMPLETABLE set name='사테스트' where id = 4") # update 예제
cursor.execute("delete from sampletable where id = 5") # delete 예제
cursor.execute("select * from SAMPLETABLE") # select 예제
result = cursor.fetchall()
print("실행 결과\n", "-" * 70, "\n", result, "\n\n\n")

# pandas로 확인하기 (pandas를 사용하지 않을거면 아래 세 줄은 지워도 됩니다.)
df = pd.DataFrame(result)
df.columns=[row[0] for row in cursor.description]
print("pandas 실행 결과\n", "-" * 70, "\n", df)

# commit
connection.commit()

# close
cursor.close()
connection.close()

예제 코드와 실행결과입니다.

insert 예제 1, 2, 3을 보면 다양한 방법으로 변수를 입력할 수 있다는 것을 알 수 있습니다. 

 

 

 

8. 참고한 사이트

https://medium.com/@praneeth.jm/connecting-to-an-oracle-rds-instance-from-python-b532b1d7b7ea

1. DroidEdit 어플 다운로드하기

무료 버전도 있지만 Git기능을 사용하려면 유료버전을 구매해야 합니다.

(참고로 설정 관련 포스팅을 하기 위해 어플을 삭제했더니 바로 환불이 됐습니다.

몇 시간 이내에 삭제해야 바로 환불을 해주는지는 모르겠지만 2,641원이 아까우신 분들은 시도해보세요...

그래도 이 포스팅을 보고 있다면 개발자일 텐데 커피 한잔 값으로 어플 개발자님께 감사를 전하는 것을 추천합니다!)

 

 

2. 언어 설정하기

화살표가 그려진 버튼을 누른 후 'Force Syntax...'을 눌러 원하는 언어로 설정합니다.

자체 컴파일 기능은 없으니 Syntax highlighting 옵션을 설정해준다고 생각하면 됩니다.

 

 

3. Extra Keys 설정하기

...버튼을 누른 후 Extra Keys에 체크하면, 오른쪽 사진처럼 tab, {} 등 핸드폰 키보드로 사용하기 힘든 키들이 추가됩니다.

이제 코딩할 준비를 마쳤으니 원하는 코드를 작성합니다.

 

 

4. Git 연동하기

...버튼을 누른 후 Settings...에 들어가서 Remote Files를 누르고, Add Repository를 누릅니다.

 

 

Repository Name, Repository URL, Username, Password를 입력한 후 Clone합니다.

Repository URL은 오른쪽 사진처럼 깃허브 해당 저장소에서 확인할 수 있고,

Username, Password에는 깃허브 아이디, 비밀번호를 입력하면 됩니다.

 

 

5. 저장하기

맨 왼쪽 저장버튼을 눌러 'Save'를 선택 후 아까 연동한 Git 저장소를 선택 후,

파일명을 입력하고 'Create'버튼을 누릅니다.

 

 

6. Commit 하기

화살표 버튼을 누른 후 'Git...'버튼을 누르고, 'Commit...'버튼을 누릅니다.

commit message와 commit할 파일들을 선택한 후 Commit버튼을 누릅니다.

 

 

7. Push 하기

화살표 버튼을 누른 후 이번에는 'Push'를 눌러 Push합니다. 

 

 

github를 통해 확인해보면 컴퓨터로 했을 때와 동일한 결과를 확인할 수 있습니다.

 

 

8. 마치며

새해를 맞이하여 1일 1커밋을 실천해보려고 하는데 당장 다음 주에 2박 3일 일정이 있어서

시작하자마자 실패할 위기에 처해서 검색 후 알아낸 방법입니다.

핸드폰으로 코딩하는 게 너무 불편해서 차라리 노트북을 들고 가는 게 낫겠다는 생각이 들기도 하고,

집 컴퓨터를 켜놓고 핸드폰으로 팀뷰어를 이용해서 원격으로 하는 방법이 더 편하겠다는 생각도 듭니다.

이외에도 가장 간단한 방법으로는 커밋 조작하는 방법이 있다고 합니다...

+ Recent posts