๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ159 Ruby Development Kit์ Rubygem SSL ์ธ์ฆ ๋ฌธ์ ๋จ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ๊ณตํฌ์ SSL ์ค๋ฅ๋ฅผ ๋ ๋ง์ดํ๋ค. ์ด์ ๋ ์ด ๋ฌธ์ ํด๊ฒฐ์ ๊ทผ๋ณธ์ ๊ณ ์น๊ณ ๋์ ์ ๋๋ก ํฌ์คํ ์ ํด์ผํ ๋ฏ์ถ๋ค. gem install *** ๊ณผ ๊ฐ์ ๊ตฌ๋ฌธ์ ์คํํ์ ๊ณตํฌ์ ์๋ฌ ๋ฌธ๊ตฌ๋ค์ด ๋ํ๋ฌ๋ค. ERROR: SSL verification error at depth 1: self signed certificate in certificate chain (19) ERROR: Root certificate is not trusted (/C=KR/O=Somansa/CN=Somansa Root CA) ์ฐธ๊ณ ๋ก ์๋ฌ๋ฉ์์ง์ Somansa๋ ๊ตญ๋ด์ ๋ณด์์ ์ฒด์ธ๋ฐ, ํ ํ์ฌ๊ฐ ์ด ์ ์ฒด๋ฅผ ํตํด ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค. Self signed certificate in certificate chain ์ด ๋ฉ์.. 2020. 9. 24. ํ์ด์ฌ ๋ ์ง-์๊ฐ ์ฌ์ฉ๊ณผ ๊ณ์ฐ์ ์ ์ฉํ datetime ๋ชจ๋ ํ์ฉ ์์ ๋ชจ์ ํ์ด์ฌ์์ ๋ฆฌ์คํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋์ ๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ pandas์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ ์ง ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ผ์ด ์ ๋ฒ ์๋ค. ๋ณธ ํฌ์คํ ์์๋ ํํ๊ฒ ์ฌ์ฉ๋๋ datetime ๋ชจ๋์ ์ฌ์ฉ ์์๋ค์ ๋ ธํธ๋ถ์์ ์์ ํ ๋ด์ญ์ ์ญ ๋ถ์ฌ์ ๋ณด์ฌ์ค์ผ๋ก์จ datetime์ ๋ค์ํ ํํ์ ํ์ฉ์ ๋๊ณ ์ ํ๋ค. datetime๋งค๋ด์ผ์ ํตํด ๋์ฑ ์์ธํ ํ์ธํ๊ณ ๋ค์ํ ๊ธฐ๋ฅ์ ํญ๋๊ฒ ์ฌ์ฉํ ์๋ ์์ง๋ง, ์ฒ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์์ ์ ์ฅ์์๋ ์๋์์ ๋ณด์ธ ์์๋ค๋ง์ผ๋ก๋ ์ถฉ๋ถํ ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ผ๋ฆฌ๋ผ ๋ณธ๋ค. datetime ๋ชจ๋ ์ฌ์ฉํ๊ธฐ¶ In [2]: import datetime as dt now()ํจ์๋ฅผ ํตํด ํ์ฌ ์๊ฐ ๋ถ๋ฌ์ค๊ธฐ¶ In [3]: current_time = dt.datetime.now() In [4.. 2020. 9. 22. Git Push๋ฅผ ๊ท์ฐฎ๊ฒ ๋ง๋๋ ์๋ฌ ํด๊ฒฐ: Enter passphrase for key '~/.ssh/id_rsa' ๋ฌธ์ ์ Could not open a connection to your authentication agent. ๋ฌธ์ ๋๋ค ํด๊ฒฐํ๊ธฐ ์ธ์ ๊ฐ๋ถํฐ https๋ก git repository๋ก๋ถํฐ ์์ค๋ฅผ ๋ฐ์ ๋ ์๊พธ ๊ณ์ ํ์ธ์ด ๋จ๋๊ฒ ๊ท์ฐฎ์๋ค. ๊ทธ๋์ ssh key๋ฑ๋ก์ ํ๊ณ ํ๋ฒ ๊ท์ฐฎ์์ ๊ฐ์ํ๊ณ ๊ณ์ ํธํ๊ฒ ํ๋ ค๊ณ ssh ์ค์ ์ ๊ฐํํ๋ค. git push์ ์๋ ๋ก๊ทธ์ธ ์ค์ - username, password๊ทธ๋ง ์ ๋ ฅํ์ github respository์ git push -u origin master ๋ฅผ ํ์ ๋ ์๋์ ๊ฐ์ด ์๊พธ ๋ก๊ทธ์ธ์ ์์ฒญํ๋ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ ๋ฆฌ. repository์ฃผ์๋ฅผ https ๋ก ๋ฐ์์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์ ํ๋กํ ์ฝ์ ssh ๋ก ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ด๋ค.. gentlesark.tistory.com ํจ๊ป๋ณด๋ฉด ์ข์ ๊ธ ๊ทธ๋ฐ๋ฐ ์ด์ฉ ์ผ์ธ์ง ์์ ํ๋ ์ปดํจํฐ ์ค ํ ๋์ ์ง์์ ์ผ๋ก ์๋์ ๋ฉ์์ง๋ฅผ ๋ฑ๋ ๊ฒ์ด ์๋๊ฐ? (์ฐธ๊ณ .. 2020. 9. 11. Windowsํ๊ฒฝ์์ Python mysql ์ ์ ๋ฌธ์ ํด๊ฒฐ (Alchemy, MySQLdb ์ฌ์ฉ์) ์ด๋ฒ ๊ฒฝ์ฐ๋ ์๋์ ์ฝ๋์ฒ๋ผ pandas์ DataFrame๊ฐ์ฒด๋ฅผ mysql db์ ์ฝ์ ํ๋ ๊ณผ์ ์์ ๋ฐ์ํ ์๋ฌ์๋ค. engine = create_engine('mysql+mysqlconnector://'+MYSQL_USER+':'+MYSQL_PASSWORD+'@'+MYSQL_HOST_IP+':'+MYSQL_PORT+'/'+MYSQL_DATABASE, echo=False) df = pd.read_csv("./test.csv") with engine.connect() as conn, conn.begin(): df.to_sql('Table1', conn, if_exists='replace') ์๋ฌ ๋ด์ฉ์ ๊ฐ๋ต์ ์ผ๋ก ์๋์ ๊ฐ๋ค. MySQLdb._exceptions.OperationalError: (2059.. 2020. 9. 3. Python ๋ฆฌ์คํธ(list) csv ํ์ผ๋ก ์ฝ๊ณ ์ฐ๊ธฐ(๋ถ๋ฌ์ค๊ธฐ, ์ ์ฅํ๊ธฐ) ๋ฅ๋ฌ๋ ๋ฑ AI๊ด๋ จ ์์ ์ ํ๋ค๋ณด๋ฉด csv๋ฅผ ๊ฐ์ ธ์์ ์ด๊ณ ์์ ์ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ ๋ฒ ๋ง๋ค. ๊ทธ๋ฐ๋ฐ, ๋ง์ ์ง์ ๋ง๋ ์ฝ๋์์csv๋ฅผ ๋ฝ์๋ด๊ณ ๊ทธ ํ์ผ์ ๋ถ๋ฌ๋ค์ด๋ ค๋ค ๋ณด๋ฉด ์ฝ๋ ์์ฑ์ด ํท๊ฐ๋ฆด ๋๊ฐ ์๋ฐ. ๊ทธ๋์ ํน์ ์์ ๋ฅผ ๋ง๋ค์ด csvํ์ผ์ ์ฝ๋ ๊ณผ์ ๊ณผ ์ฐ๋ ๊ณผ์ ์ ๊ฐ๊ฐ ๋ณด์ด๋๋ก ํ๊ฒ ๋ค. Python ๋ฆฌ์คํธ csv๋ก ์ ์ฅํ๊ธฐ ํ์ด์ฌ ๋ชจ๋์ธ csv ๋ชจ๋์ importํ๊ณ ๋ฐ์ดํฐ๋ ๋ ์ง ๋ฐ์ดํฐ, ์ ์ ๋ฐ์ดํฐ, ๋ถ๋์์์ ์๋ฃํ ๋ฐ์ดํฐ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๋ค. ์์ ๋ก ๊ทธ๋ฆฐ๋ค๋ฉด ์ด ๋ฐฉํฅ์ผ๋ก ๊ทธ๋ฆด ๊ฒ ๊ฐ์ง๋ง, ํ์ด์ฌ ๋ฆฌ์คํธ๋ก ํํํ์ฌ ํ ๋ฐฉํฅ์ผ๋ก ๋์ด๋์๋ค. # csv ๋ชจ๋ importํ๊ธฐ import csv # list ๋ง๋ค๊ธฐ date = ['200801','200802','200803','200804','20080.. 2020. 8. 7. Python์ผ๋ก ์ค์๊ฐ ๋ก๊ทธ ํ์ผ ๋ชจ๋ํฐ๋ง ์ฝ๋ ๊ตฌํ ํ์ด์ฌ(Python)์ผ๋ก ์ค์๊ฐ(real-time) ๋ก๊ทธ(log) ํ์ผ ๋ชจ๋ํฐ๋ง(monitoring) ์ฝ๋ ๊ตฌํ Python์ผ๋ก ํ๋ก๊ทธ๋จ์ ๊ตฌํํ ๋ ๊ณ์ํด์ ๋ก๊ทธ๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด ๋ ๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ฐํ๋ ๋ก๊ทธ๋ฅผ ๊ณ์ํด์ ๋ชจ๋ํฐ๋งํ๋ ์ฝ๋๋ฅผ ๊ตฌํํด์ผ ํ ๋๊ฐ ์๋ค. ์๋ฅผ๋ค์ด ๊ณ ์ฑ๋ฅ HPC์์ ์์ ์ ๋๋ฆฌ๊ณ ํด๋น PC์์ logํ์ผ์ ์ถ๋ ฅํ๊ณ ์๋๋ฐ, ํด๋ผ์ด์ธํธ ์ฅ๋น์ธ ๋ด ์ปดํจํฐ์์ ํด๋น logํ์ผ์ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ์ด๋ฐ ๊ฒฝ์ฐ๊ฐ ๋๊ฒ ๋ค. ๋จผ์ ๋ก๊ทธํ์ผ์ ์ฐ๋ ์์์ฝ๋์ด๋ค. logging.py with open("log.txt", "w") as f: for i in range(100): text = "I love sark. %d\n" % i print(text, .. 2020. 7. 30. Python format ํจ์ ์ฌ์ฉ์ ์์ ๊ดํธ ๋ฃ๊ธฐ - ํ์ด์ฌ ๊ฟํ Python formatํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ต์ฅํ ํธํ๊ฒ ๋ค์ํ ๋ณ์๋ฅผ ์ ๋ ฅํ ์ ์๋ค. ์๋์ ์์ฒ๋ผ { } ์ค๊ดํธ ํ์์ ๊ดํธ ์์ :์ ์ฒด์๋ฆฌ์.์์์ ์๋ฆฌ์+์ต์ ํํ๋ก ํธํ๊ฒ string์ ๊ด๋ฆฌํ ์ ์๋ค. homepath = '/home/sark/dev/python/test' this_job = 3 num_job = 10 progress = this_job/num_job job_status = "Running" print(("Path:{}, Job({}/{}), Progress:{:4.2%}, Status:{}") .format(homepath,this_job,num_job,progress,job_status)) ์ถ๋ ฅ๊ฒฐ๊ณผ Path:/home/sark/dev/python/test, Job(.. 2020. 7. 27. ์๋ฐ(Java) ๋ฒ์ ํ์ธ ๋ฐ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ Java ๋ฒ์ ๋ณ๊ฒฝํ๊ธฐ(JDK ์ฌ๋ฌ๊ฐ ์ฌ์ฉ์) ๋ฆฌ๋ ์ค(Linux)์์ ์๋ฐ(Java) ๊ฒฝ๋ก๋ฅผ ๋จผ์ ํ์ธํ๊ณ ์ ํ๋ค๋ฉด, ์๋์ ๊ธ์ ์ฝ์ด๋ณด๋ ๊ฒ์ ์ถ์ฒํ๋ค! ์ฐ๋ถํฌ(Ubuntu)์์ ์๋ฐ(Java) ๊ฒฝ๋ก(path) ์ฐพ๊ธฐ ๊ฐ๋ ์ฐ๋ถํฌ์์ ์์ ํ๋ค ๋ณด๋ฉด, ๋ด๊ฐ ์๋ฐ๋ฅผ ๋ฐ๋ก ์์ถํ์ผ์ ๋ฐ์์ ์ค์นํ๋์ง apt-get ๋ช ๋ น์ด๋ก ์ค์นํ๋์ง๋ ํท๊ฐ๋ฆด ๋๊ฐ ์๋ค. (feat.๊ธฐ์ต๋ ฅ ๊ฐํด) ์ด์ ์ค์น๋ ์๋ฐ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ gentlesark.tistory.com Java ๋ฒ์ ์ ํ์ธํ๋ ๋ช ๋ น์ด๋ ์๋์ ๊ฐ๋ค. java -version openjdk version "1.8.0_252" OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~18.04-b09) OpenJDK 64-Bit Server VM (bui.. 2020. 7. 17. ์ฐ๋ถํฌ(Ubuntu) 16 ์์ 18๋ก ์ ๊ทธ๋ ์ด๋๊ฐ ์ ๋ ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ด๋ ๋ ์ธ๊ฐ๋ถํฐ ์ง์์ ์ผ๋ก Ubuntu 18๋ก ์ ๋ฐ์ดํธํ๋ผ๋ ๋ฉ์์ง๊ฐ ๋ด๋๋ฐ, OK ์๊ฒ ์ด ํ๊ณ ๋ฒํผ์ ๋๋ฌ๋ ๋ฐ์์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค. ์ฌ๋ฌ๋ฒ ๋ฐ๋ณต๋๋ '์ด๊ฑด ํฐ๋ฏธ๋์์ ํด๊ฒฐํด์ผํ ๋ฌธ์ ๊ฒ ๊ตฐ'ํ๋ฉฐ ํฐ๋ฏธ๋์์ ์ด๋์ ๋ ๋ง์ ธ๋ดค๋๋ฐ, ์๋์ง ์๋ค๊ฐ ๊ฒฐ๊ตญ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ํ๊ฒ ๋์ด ๊ธฐ์ ๋ง์์ผ๋ก ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ณต์ ํ๋ค. ๋ณธ ๊ฒฝ์ฐ๋ Ubuntu 16.04 LTS์์ 18.04 LTS๋ก ์ ๊ทธ๋ ์ด๋ ํ ํ๊ธฐ์ด๋ค. LTS๋ Long-Term Support๋ก ์ค๋๊ธฐ๊ฐ ์ ์ง๋ณด์๊ฐ ๋๋ ์์ ํ๋ ๋ฒ์ ์ ๋ปํ๋ค. ๋ฌธ์ ๋ ํฌ๊ฒ ๋ค์์ ๋๊ฐ์ง ๋ฐฉ์์ผ๋ก ๋ํ๋ ๊ฒ์ด๋ค. ๋จผ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ํ๊ธฐ ์ ์ ๋ค์์ ๋ช ๋ น์ด๋ค์ ์ ๋ ฅํด๋ณด์. sudo apt update sudo apt upgrade sudo apt dist-upgrade sudo.. 2020. 7. 17. ์ด์ 1 ยทยทยท 7 8 9 10 11 12 13 ยทยทยท 18 ๋ค์