본문 바로가기
728x90
반응형

python11

리팩터링 7장 7. 캡슐화 모듈을 분리하는 가장 중요한 기준은 감추어야할 부분들을 다른 곳에서 보이지 않고 얼마나 잘 숨기느냐에 있다. 대표적인 형태로는 아래와 같은 방법으로 캡슐화해서 숨길 수 있다. 레코드 캡슐화하기(1) 컬렉션 캡슐화하기(2) 기본형 데이터는 기본형을 객체로 바꾸기(3) 방법을 통해서 캡슐화할 수 있다. 리팩터링 중 임시 변수가 걸리적 거릴때는 임시 변수를 질의 함수로 바꾸기(4)를 활용한다. 클래스는 본래 정보를 숨기는 용도로 설계되는데, 클래스 추출하기(5), 클래스 인라인하기(6) 를 활용해 클래스를 만들 수 있다. 클래스는 내부정보 뿐만아니라 사이의 연결관계를 숨기는 데도 유용한데 이 때 위임 숨기기(7)를 활용한다. 너무 많이 숨기다보면 인터페이스가 비대해지니 이 때 반대 기법인 중재자 .. 2023. 3. 15.
리팩터링 2탄 5/6장 5. 리팩터링 카탈로그 보는법 책읽는 사용법이라 생략! 6. 기본적인 리팩터링 6.1 함수추출하기 코드가 무슨일은 하는지 파악하고, 독립된 함수로 추출하고 목적에 맞게 이름을 붙이자. 지역변수는 매개변수로 받도록 하자. 6.2 함수인라인하기 간접호출은 유용할 수 있지만 쓸데없는 간접 호출, 과하게 쓰이는 간접호출은 거슬리니 함수를 인라인하자. 6.3 변수 추출하기 표현식이 복잡해서 이해하기 어려울 때 짖역 변수를 활용해 표현식을 관리하기 쉽게 만들자. 6.4 변수 인라인하기 추출한 변수가 표현식과 다를 바 없을 때 변수를 인라인 하자. 6.5 함수 선언 바꾸기 더 좋은 함수 이름이 떠오른다면 바꾸자. 주석을 작성해보면 함수의 이름이 역으로 떠오를 수도 있다. 6.6 변수 캡슐화하기 데이터를 옮길(변경).. 2023. 2. 22.
리팩터링 2/3/4장. 2장. 리팩터링 원칙 리팩터링이란 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 방법. '리팩터링'을 하느냐, '기능추가'를 하느냐를 명확히 구분해서 작업하자. 3의 법칙 (1)일단 그냥해 (2)중복? 일단 그냥해 (3)중복 또? 그러면 리팩토링하자. 내부동작을 이해해야 할 시점에 리팩터링해야 효과를 제대로 볼 수 있다. 코드리뷰시 다른사람의 코드를 이해하는데 도움을 줄 수 있다. 궁극적인 목표는 개발속도를 높여서 더 적은 노력으로 더 많은 가치를 창출하는 것이다. 브랜치따서 개인이 개발 오래하면 나중에 통합할 때 다른 사람이 브랜치 업데이트할 때 힘드니 지속적 통합(CI)을 하자. **리팩토링 계획이 있을시 먼저 팀원에게 해당 계획을 공유하자.** .. 2023. 2. 12.
리펙터링 1장. 함수추출하기: 프로그램에 새로운 기능을 추가하기 편한 구조가 아닌 경우에 새로운 기능을 추가하려면 먼저 기능을 추가하기 쉬운 형태로 리펙터링한 후 기능을 추가하라. 별도의 함수로 쪼갤 때, 반복해서 바뀌는 변수의 경우 함수호출시 초기화를 하도록 하라. 조금씩 변경하고 매번 테스트하는 것은 리팩터링 절차의 핵심이다. 매개변수 역할이 뚜렷하게 나타나지 않으면 a/an을 붙여 바꾸면 유용하다. 변수 인라인하기: 임시 변수를 질의 함수로 바꿔 로컬 범위에 존재하는 이름이 많아지지 않도록 하라. 반복문에서 변수 값이 각각 누적될 때, 반복문을 쪼개면 리팩터링하기가 더 수월해진다. 함수선언바꾸기: 함수 이름 변경 책: 리팩터링 2판) 2023. 2. 7.
python matplotlib.pyplot 한글 깨짐 해결하기. 전에도 몇번 그래프 출력시 한글이 깨져서 찾아서 해결하곤 했는데, 외워지질 않고 반복되서 블로그에 올려보기로 하였다. ttf 파일이라고 해서 폰트 파일은 다음의 링크를 통해 원하는 폰트를 다운 받을 수 있다. https://hangeul.naver.com/2017/nanum [네이버 한글한글 아름답게 : 나눔글꼴] 한글의 아름다움, 나눔글꼴로 나눕니다. hangeul.naver.com 아래는 이미 해결하여 x축 라벨은 한글입력이 되었고, y축 라벨은 해결방법을 적용하지 않아 계속 깨져있는 상태다. 천천히 잘 따라하면, 한번에 쉽게 해결이 가능하다. 위의 링크를 통해서 ttf 파일을 다운받았으면, 아래의 코드처럼 font_path에 ttf파일이 담겨진 경로를 담아주고, font_manager 함수를 사용해.. 2020. 5. 24.
scatter plot 그리기 가볍게 산점도를 그려보자. In [9]: import matplotlib.pyplot as plt import pandas as pd import re UCI 사이트에서 iris 데이터를 다운받았음.¶ https://archive.ics.uci.edu/ml/datasets.php In [6]: iris=pd.read_csv('iris.data', header=None) iris.columns = ["sepal length","sepal width",'petal length','petal width','class'] In [17]: iris['class'] = iris['class'].map(lambda i: re.sub('Iris-','',i)) In [18]: iris Out[18]: sepal len.. 2020. 5. 14.
728x90
반응형