Today_I_Learned
-
[Git] RebaseToday_I_Learned 2024. 2. 7. 16:37
작성 목적 다소 의미가 빈약한 commit 이력들을 깔끔하게 관리할 수 있는 방법을 찾다가 Git 에 Rebase와 Squash 라는 기능이 있다는 것을 알게 되었다. 먼저 Rebase 기능을 조사하기 위해 Git 공식 문서 (https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-Rebase-%ED%95%98%EA%B8%B0)를 참고 하였다. 그러나 Git 공식 문서의 한글 번역본이 이해하기 어려웠던 부분이 있어 내 수준에 맞게 좀 더 풀어 써보려 한다. Git의 Reabse는 Branch를 합칠 때 Merge와 다르게 Commit history를 깔끔하게 선형적으로 만들어주는 기능이다. 브랜치를 Rebase한 결과물은 Merge를 수행한 결과물..
-
[Ubuntu16.04][Python3] Python3 버전 복구Today_I_Learned/Python 2023. 12. 1. 15:13
[환경] Ubuntu 16.04 Python3.8 ( -> Ubuntu 16.04 의 기본 버전인 Python3.5 로 복구가 목표) [요약] pyhon3 링크 변경 python3 경로의 하위 파일을 python3.5의 파일들로 교체 특정 버전의 python 제거 (선택사항) 필요한 Package들 재설치 pyhon3 링크 변경 python3 명령어로 python 기본 버전이 실행되도록 하고 싶다면 python3 명령어에 연결된 링크 설정을 변경해야 한다. 단순히 update-alternatives 로 변경했을 경우 update-alternatives 로 다시 원래 버전을 지정해주면 된다. sudo update-alternatives --config python3 -> 원하는 python 버전의 번호 입..
-
[사용법] virtualenvwrapperToday_I_Learned/Python 2023. 11. 21. 15:41
virtualenv 만 달랑 사용해오다가 virtualenvwrapper 란 패키지를 알게되어 사용법을 기록한다. 간단 설명 virtualenvwrapper 는 virtualenv 모듈의 확장팩 격인 패키지이다. virtualenv로 생성한 가상 환경을 보다 편리하게 사용할 수 있도록 이것 저것(ex. 가상환경 생성/삭제, 실행, 조회 등을 한 줄의 명령어로 제공, 여러 개의 가상환경들을 한꺼번에 관리할 수 있는 기능 등)을 제공하는 패키지이다. 전제 조건 ubuntu 22.04 이상 (필자의 환경) python3.8 ~ 3.11 python3-pip 설치 완료 virtualenv 모듈 설치 완료 설치 python3 -m pip install virtualenvwrapper 이 때 설치 Log를 잘 확인..
-
List 정렬 기준, iterable객체의 요소가 iterable 일 때Today_I_Learned/Python 2023. 11. 1. 16:17
작성 의도 반복 가능한(iterable) 객체의 모든 Element 역시 반복 가능한 객체 일 때 (ex. 2차원 List, [(1, 2, 3), (4, 5, 6), …] 등) sort()나 sorted() 함수를 이용하여 정렬을 진행하면 python에서는 기본적으로 각 Element의 첫 번째 요소를 기준으로 오름차순 정렬을 수행한다. 그러나 각 Element의 첫 번째가 아닌, 특정 순서의 값으로 정렬을 진행하고 싶은 경우엔 sorted() 나 List의 내장 함수인 sort() 함수의 key parameter를 잘 활용해야 한다. (* key parameter는 함수(callable)를 인자로 받는다.) 다음 글을 읽으면 key parameter를 통해 함수를 여러 번 호출하지 않고도 복잡한 정렬을..
-
class method vs. static methodToday_I_Learned/Python 2023. 9. 26. 11:23
공통점 별도 인스턴스 생성없이 클래스를 대상으로 클래스 이름 뒤에 바로 '. ' 오퍼레이터를 붙여서 호출 가능 ex) class ExampleClass: class_name = "ExampleClass" @classmethod def example_class_method(cls): print(f"{self.class_name}: This is classmethod.") @staticmethod def example_static_method(): print(f"{self.class_name}: This is staticmethod.") ExampleClass.example_class_method() >>> ExampleClass: This is classmethod. ExampleCalss.example_..
-
이터레이터 iteratorToday_I_Learned/Python 2023. 9. 17. 11:29
요소(element)를 하나씩 차례대로 꺼낼 수 있는 객체. 이터레이터를 사용하는 이유는 꺼내올 요소 전체를 미리 생성하지 않고, 필요한 값만 하나씩 생성하여 메모리 사용을 줄이기 위함이다. = 지연 평가 방식 lazy evaluation 반복 가능한 객체만이 이터레이터로 변환될 수 있다. 반복 가능한(iterable) 객체: 요소가 여러 개이고 한 번에 요소를 하나씩 꺼낼 수 있는 객체. for 문과 같은 반복 구문에 적 용할 수 있는 리스트 같은 객체. (iterable object ≠ iterator) 객체의 반복 가능 여부는 __dir__(객체) 로 조회하여 ‘__iter__’가 존재하는지 확인하면 된다. __iter__가 있다는 것은 그 객체가 반복 가능하다는 것이지 반드시 이터레이터라는 의미는..
-
Ubuntu22.04 에 Python 구 버전(ex.3.8) 을 기본 버전으로 설정Today_I_Learned/Linux 2023. 6. 3. 19:01
Python Linux에서 Defautl python version 을 바꿀 때 https://linux.how2shout.com/install-python-3-9-or-3-8-on-ubuntu-22-04-lts-jammy-jellyfish/ 1. 원하는 version의 python 설치 1) Add PPA for Python old versions sudo apt install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa 2) Check Python Versions you want sudo apt-cache policy python(version) 3) Install Python sudo apt install python(..
-
[vi/vim] 드래그 Drag, 복사, 붙여 넣기, 삽입Today_I_Learned/Linux 2023. 4. 20. 23:04
Linux 사용 시 nano 대신 vi 쓰는 연습 중... (작성을 위해 찾다가 알게 된 것인데 요즘 환경들은 vi 를 실행해도 자동으로 vim 이 실행된다 함.. vi 를 실행했을 때 문자열에 Color 가 입혀져 출력되는 건 vim 이 실행된 것이라고 보면 될 듯.) 1. 드래그 효과 단축키 : v / ctrl + v / Shift + v (대문자 V 라고 생각하면 됨.) 1) v : Visual mode 로 전환. Visual mode 전환 후 방향키로 커서를 움직여 원하는 문자열을 드래그 할 수 있다. 일반적으로 문서 작성할 때 드래그하는 것과 동일한 방식으로 동작한다. 2) ctrl + v : Visual Block mode 로 전환. Visual Block mode 는 세로 드래그를 할 수 있..