Trial and Error

Trial and Error/Etc

게임 패치 시스템 관련 글 정리

게임 패치 시스템과 관련된 글 8개를 모으고 정리했다. 게임 패치 시스템이 기본적으로 어떻게 동작하는지에서부터 효율적으로, 잘 서비스를 하기 위해 CI/CD를 어떻게 하는지 이해를 하는데 도움이 된 글들이다. Those who cannot remember the past are condemned to repeat it - George Santayana 과거에서 배우지 못한 사람은 과거를 되풀이한다는 말이 있다. 새로운 기술들은 확실히 과거의 기술보다 여러모로 개선된 점들이 있지만, 더 복잡하고 어렵기도 하다(물론 신기술이 더 쉬울 때도 있음). 그래서 쉽거나 조금 더 익숙하다는 이유로 과거의 기술을 선택하면 처음에야 편하지만 시간이 지날수록 새로운 기술에서는 이미 해결한 문제를 맞닥뜨리게 되기도 한다😦...

Trial and Error/Git

[Git]Git에서 해시 함수를 사용하는 이유

깃허브에서 커밋을 하다 보면 아래의 이미지와 같이 해시를 볼 수 있다. 이걸 왜 사용하는 걸까 궁금했다. 파일이 변경되었는지를 확인하기 위해 사용하는 것 같긴 한데, 단순히 파일 내용만을 비교하는 건 아닌 거 같았다. 그리고 내용만 비교할 거면 line by line으로 하면 되는데, 왜 해시 함수를 거치는지 궁금했다. 답은 리눅스 토발즈가 2007년에 구글에서 Git을 발표한 동영상(https://youtu.be/4XpnKHJAok8?t=3389)에서 찾을 수 있었다. 위 동영상의 내용은 stackoverflow(https://stackoverflow.com/questions/28792784/why-does-git-use-a-cryptographic-hash-function)에도 잘 정리되어 있는데, ..

Trial and Error/Etc

[암호화]MD5, md5sum

MD5(Message-Digest algorithm 5) 128비트 암호화 해시 함수 단방향 암호화 프로그램이나 파일이 원본 그대로인지를 확인하는 무결사 검사 등에 사용 위와 같은 이유로 보안 용도의 사용은 권장되지 않지만, 고속 연산이 가능한 점과 임의 변경 패턴에 대해서는 충돌 가능성이 낮다는 점을 고려하여 네트워크로 전송된 파일의 무결성 확인 용도로는 여전히 사용되고 있다. 리눅스에서 파일을 MD5 해시 함수를 사용해서 암호화 할 때 'md5sum' 명령어를 사용한다. # 파일 만들기 md5sum > hash.md5 # MD5 확인 md5sum -c hash.md5

Trial and Error/Etc

[Windows] Windows New Terminial에서 WSL 예쁘게 사용하기

윈도우즈에서 코딩을 하면서 가장 불편했던 건 터미널이다. 리눅스, 맥에 비해 커스터마이징 하기도 힘들고 예쁘지도 않아서 사용하기 싫었다. 하지만 역시 내가 몰랐던 것 뿐이지 해결책은 있었다. 1. Microsoft Store에서 Windows Terminal Preview 설치하기 뭔가 아이콘부터 예쁘다. 순정 상태도 예쁘다. 더날나위 없이 만족스럽다. 하지만 여기서 멈추면 안된다. code ~/.bashrc # vscode로 .bashrc 편집 위의 명령어로 vscode를 실행하고 export PS1="\w$ " export PS1="\W$ " export PS1="\u@\W $ " export PS1="[\t] \u@\h:\w\$ " 맨 아래에 PS1 설정을 해줬다. PS1은 bash의 프롬프트 모양..

Trial and Error/Python

파이썬 konlpy이용해서 명사 빈도 수 세기

어렵지 않다. 진짜.. import pandas as pd from konlpy.tag import Okt 검색하면 꽤 많이 나오는 Twitter가 5.0버전부터 Okt로 바뀌었다고 한다. f = open('title.txt', 'rt', encoding='UTF8') lines = f.read() f.close() 파일은 열면 닫는 습관을 갖는게 좋다고 누군가가 말했다. 기억은 안난다. split = Okt() nouns = split.nouns(lines) 이렇게 하면 title.txt파일에서 읽어온 문장들의 명사만 남게 된다. word_list = [] for n in nouns: if len(n)>=2: word_list.append(n) 한글자 짜리는 핵심적인 키워드로 사용하기도 힘들고 대부분 ..

Trial and Error/Python

주피터 노트북에 아나콘다 가상환경 추가하기

1. 라이브러리 설치 $ pip install ipykernel 2. 가상환경 추가 $ python -m ipykernel install --user --name 가상환경이름 --display-name "주피터 노트북에서 뭐라고 보이게 할건지" 3. 가상환경 삭제 $ conda remove --name 가상환경이름 --all

Trial and Error/Git

Git remote branch name change과 latest commit message change

https://hello-i-t.tistory.com/9 Git remote branch 가져오기 기존에 학교에 다닐때는 git commit -m, git push, git pull 정도만 써서 branch를 도대체 어떻게 해야하는지 어려웠고, 분명 인터넷에 나온대로 했는데도 계속 오류가 생겨서 힘들었다. 그래서 공부했다. 1 hello-i-t.tistory.com 위의 글에서 언급한 것 처럼 나는 리모트 브랜치 이름도 잘못 만들어서 변경을 해야했고, 커밋 메시지도 형식에 맞추어 만들지 않아서 내용을 변경해야 했다. 그런데 어떻게 해야하는지 몰라서 한참을 헤맸다 ㅎㅎ 5시 퇴근인데 5시 16분까지 남아있다가(오류가 4시 55분에 생겨서 퇴근할까 말까 하다가 역시 오류를 남겨두고 퇴근하는건 찝찝해서) 16..

Trial and Error/Git

.git 폴더의 정체

도대체 .git 폴더가 뭐길래 계속 생기는지, 이게 왜 필요한지 궁금했다. 그런데 구글에서 찾다보니 너무 어려웠다. 그래서 쉽게 나온 블로그들 글을 찾다 찾다 나온 내용은 아래와 같다! .git의 정체는 Git 저장소이자 git으로 추적, 관리하는 대상이다. object 디렉토리에 객체가 생성되는 시점을 git add 명령어로 파일을 스테이징 시킬 때, staging area에 파일을 등록한다. 여기서 staging area란 직후의 commit에 어떤 것들이 포함될 지 알려주는 정보를 가지고 있는 파일을 말한다. 그러니까 즉, 우리가 github에서 프로젝트를 로컬로 클론하고 git add, git commit 이런식으로 변경사항을 만드는데, 바로 이런 변경사항을 .git 폴더에 저장을 해서, 우리가 ..

Trial and Error/Git

Git remote branch 가져오기

기존에 학교에 다닐때는 git commit -m, git push, git pull 정도만 써서 branch를 도대체 어떻게 해야하는지 어려웠고, 분명 인터넷에 나온대로 했는데도 계속 오류가 생겨서 힘들었다. 그래서 공부했다. 1. Git remote 갱신 $ git remote update2. 원격 저장소 branch 확인 $ git branch -r # -r(remote) 옵션으로 원격 저장소의 branch list를 볼 수 있다. $ git branch -a # -a(all) 옵션으로 로컬과 원격 저장소 모두의 branch list를 볼 수 있다.3. 원격 저장소 branch 가져오기 $ git checkout -t remote_branch_name이거 몰랐는데,, 나중에 오류가 생기고 나서 검색해..

Trial and Error/Python

konlpy DLL load failed 설치 오류

ImportError: DLL load failed: 지정된 모듈을 찾을 수 없습니다. 어제도 이 오류가 떠서 그냥 잤는데 무사해결했다! 회사 컴퓨터에서도 똑같은 오류가 뜨니 이상해서 혹시나하고 확인해보니 pip uninstall jpype1 pip install jpype1 이렇게 다시 설치해주면 된다!

Trial and Error/Python

파이썬 비트 확인하는 법

import platform print(platform.architecture())

Trial and Error/Python

파이썬 단어 빈도 계산하기

파이썬에서 엑셀 파일 불러오기 import pandas as pd df = pd.read_excel(r'파일 경로') print(df) 이렇게 파일을 불러오면 이런식으로 리스트가 쭉쭉쭉 나온다. 여기서 가장 빈도가 높게 나오는 단어들을 찾을거다. plist = df.values.tolist() 이렇게하면 dataframe에서 list로 변환을 할 수 있다. 리스트로 변환을 하는 이유는... 나는 리스트를 사용하는 걸 좋아하기 때문이다... 그런데 위에서 보면 알겠지만 제목 옆에 1.0 이랑 NaN이라는 값이 있다. 저건 내 나름대로 필요해서 엑셀파일에 표시해놨지만 지금은 필요없다. 그래서 저게 없는, 순수하게 제목만 있는 리스트를 만들었다. title = [] for i in range(len(plist..

박한결
'Trial and Error' 카테고리의 글 목록