개발자 24

git :: 깃 브랜치 생성하여 개발용/운영용 형상 관리하기 (development, master 브랜치)

git 으로 프로젝트 형상 관리를 할 때 1) 코드를 편하게 수정, 반영하며 쓸 개발용 저장소 2) 안정성이 검증된 버전만 관리할 배포/운영용 저장소 이렇게 분리시켜 관리를 할 때가 많다. 1) => development branch 2) => master branch 각각 이렇게 두 개의 branch 로 나누어 형상을 관리한다. 1. 브랜치 새로 생성 git 웹페이지에서 프로젝트 좌측 상단의 'Branch' 를 클릭하면 브랜치 목록과 현재 선택된 브랜치(여기서 development)를 확인할 수 있다. 'Find or create a branch...' 라고 쓰여있는 입력 칸에 새 branch 명을 입력하면(stage) 이렇게 'Create branch: stage' 라고 하단에 뜬다. 클릭하면 바로 ..

:: git 2021.11.23

python :: 파이썬 Bytes to String 변환하기

파이썬 subprocess 라이브러리를 이용하여 리눅스 커맨드를 실행한 후 실행 결과 내용물을 받아왔다. (* 참고: https://toramko.tistory.com/11) String 형태로 받아올 것을 기대하고 코드를 짰더니 TypeError: must be str, not bytes TypeError 에러가 났다. String 이 아닌 Bytes 타입이라니..? subprocess 실행 후 받아온 결과를 찍어보았다. b'Hello Toramko.\n' 이렇게 'b' 로 시작되는 형태가 출력되었는데, 이는 String 이 아닌 Bytes 타입이다. 그렇다면 Bytes -> String 으로 변환하려면? sentence = str(sentence, "utf-8") 요렇게 해주면 된다. 매우 간단!

:: python 2021.11.18

NLP :: Transformer 기반 문장 생성(Text Generation)과 decoding 옵션

* https://huggingface.co/blog/how-to-generate 위 사이트를 참고하여 작성한 내용입니다. :) Open-ended Text Generation(개방형 텍스트 생성)이란 기계가 주어진 context에 이어질 문장을 생성해내는 것이다. 주어진 문장들을 토대로 기계가 스스로 이야기를 써내려갈 수 있게 하는 기술! 언젠가 기계가 작가 대신 글을 쓰는 날이 오지 않을까? 하고 생각해보았다면 그게 이 분야 이야기일 것이다. (그치만 사람만이 불어넣을 수 있는 창의적인 표현력과 감성이 있어서 '대체'는 어려울 거라 생각한다 :) ) transformer 기반 언어 모델이 발전함에 따라 최근 이 Open-ended Text Generation 분야에도 큰 발전이 있었다. (transf..

:: ai/nlp 2021.11.17

python :: 파이썬 코드 실행 시간(elapsed time) 측정하기

파이썬 스크립트 내 특정 코드 실행 시간을 측정할 때 datetime 라이브러리를 사용하면 된다. from datetime import datetime start_time = datetime.now() # # 실행시간 측정을 원하는 코드 입력 # end_time = datetime.now() elapsed_time = end_time - start_time 이렇게 작성하고 실행시키면, 0:00:37.615328 이런 형태의 결과가 출력된다. 타입이 무엇인고 하니, 라고 한다. 이는 int 타입과 연산이 불가능하다. total_elapsed_time = 0 total_elapsed_time += elapsed_time # TypeError: unsupported operand type(s) for +=: ..

:: python 2021.11.14

python :: 파이썬 스크립트로 리눅스 명령어(command) 실행하기

리눅스 shell command 를 실행하는 파이썬 스크립트 작성 시 사용하는 라이브러리 두 가지가 있다. 1. os import os os.system('command') 위와 같이 간단하게 작성하면 실제 커맨드가 리눅스 서버에서 잘 실행된다. 하지만 실행 결과 내용물을 받아오는 건 잘 안된다. result = os.system('command') # 0 result 에 찍어보려 해봤자 int 형 숫자를 반환할 뿐이었다. (아마도 실행 결과코드일 것 같다. 0 은 커맨드 실행 성공 코드) 2. subprocess 커맨드 실행 결과 값을 받아오고 싶다면 subprocess 를 사용하는 게 낫다. import subprocess result = subprocess.check_output('command',..

:: python 2021.11.10

python :: 파이썬 zfill 로 문자열, 숫자 앞에 0 붙이기 (01, 002)

문자열이나 숫자 앞에 0을 붙여서 출력하고 싶을 때 (ex. 1 대신 '01', 2 대신 '002') 파이썬에서는 zfill 을 사용한다. # zfill(k) => 문자열 길이가 k가 될 때까지 0으로 채운다. "1".zfill(2) # "01" "2".zfill(3) # "002" 위와 같이 사용하면 되는데 여기서 중요한 점은 문자열(string) 에 사용한다는 점이다. 숫자 a는 str(a) 으로 문자열 변환 후 zfill 을 사용해야 한다. 숫자가 아닌 다른 문자열 앞에도 같은 방법으로 '0'을 붙일 수 있다. 위 내용을 활용하여 0~99 까지의 숫자를 00, 01, ..., 99 로 나타낸 리스트를 만들면 다음과 같다. aa = [str(i).zfill(2) for i in range(100)] ..

:: python 2021.06.30

python :: 파이썬 딕셔너리(dictionary) <-> json 변환하기, 딕셔너리 출력 포맷 '(홑따옴표) 대신 "(쌍따옴표) 로 나타내기

파이썬에서 REST api 요청 및 응답 처리를 위해 dictionary json 변환을 자주 한다. 이 때 json 라이브러리를 이용하면 간단히 변환할 수 있다. 1. json -> dictionary import json data = json.loads(json_data) # json_data: json 형식 데이터 2. dictionary -> json import json data = json.dumps(dic) # dic: dictionary 형식 data 2번의 경우 파이썬 딕셔너리의 포맷을 '(홑따옴표) 대신 "(쌍따옴표)로 변경할 때도 사용할 수 있다. import json dic = {'key1': 'value1', 'key2': 'value2'} print(json.dumps(dic))..

:: python 2021.06.29

python :: 파이썬 logging 활용하여 일단위 로그 파일 생성하기 (feat. 로깅이란)

개발을 하다 보면 에러가 자주 발생한다. (내가 짠 코드가 한 번에 잘 실행되면 불안할 정도..) 이 때, 에러의 원인을 찾기 위해 우리는 실시간으로 '로그'를 찍는다. (logging) 혹은 잘 돌고 있는지 확인하기 위해 찍기도 한다. 그런데 이 로그들을 파일로 기록해야 할 때가 있다. - 로그량이 너무 많아서 확인이 어려울 때 - 매 시간 로그를 들여다보기 어려울 때 (ex. 프로젝트가 운영 단계에 접어들어 24시간 내내 돌기 시작한 경우) 이럴 때 'logging' 을 이용하여 로그를 파일로 남겨 나중에 천천히 확인할 수 있다. 1. Logger 선언, 출력 형식 지정 import logging logger = logging.getLogger(__name__) logger.setLevel(loggi..

:: python 2021.06.28

python :: 파이썬 텍스트 파일 내 특정 단어 치환(replace)하기

파일 내 특정 단어를 다른 단어로 치환할 때 파이썬에서는 replace 를 사용한다. def replace_in_file(file_path, old_str, new_str): # 파일 읽어들이기 fr = open(file_path, 'r') lines = fr.readlines() fr.close() # old_str -> new_str 치환 fw = open(file_path, 'w') for line in lines: fw.write(line.replace(old_str, new_str)) fw.close() # 호출: file1.txt 파일에서 comma(,) 없애기 replace_in_file("C:\\test\\file1.txt", ",", "") ** 'r'(read) 모드로 파일을 읽어들인 ..

:: python 2021.06.23

python :: 파이썬 requests 로 REST API 호출하기

파이썬 requests 라이브러리를 사용하면 REST API를 호출하는 코드를 비교적 간단하게 작성할 수 있다. import requests import json def send_api(path, method): API_HOST = "http://www.example.com" url = API_HOST + path headers = {'Content-Type': 'application/json', 'charset': 'UTF-8', 'Accept': '*/*'} body = { "key1": "value1":, "key2": "value2" } try: if method == 'GET': response = requests.get(url, headers=headers) elif method == 'POS..

:: python 2021.06.21
300x250