본문 바로가기

강의/Udacity ML

(42)
4.22 VC 시나리오 #2 1단계: 변경한 내용과 코드가 얼마나 잘 수행되었는지에 대한 메시지를 보고 커밋 기록을 확인한다. - 로그 확인 2단계: 이 커밋에서 모델이 가장 높은 점수를 받은 것 같으므로 살펴본다. - 커밋 번호를 확인한다. 코드를 검사한 후 어떤 수정 사항이 잘 수행되었는지 확인하고 해당 코드를 모델에 사용한다. 3단계: 이제 변경 사항을 개발 부서에 다시 병합하고 업데이트된 권장 엔진을 푸시할 수 있다. - develop으로 돌아와 분기를 병합하고 푸시한다.
4.21 VC 시나리오 #1 1단계: 이 저장소의 로컬 버전이 랩탑에 있으며, 최신 버전을 얻으려면 개발 지점에서 가져와야 한다. - develop 브랜치를 체크아웃하여 변경 - 최신 변경사항을 Pull하여 가져옴 2단계: 이 기록 정보 기능에 대한 작업을 시작하면 기록 정보라는 새 분기를 만들고 이 분기에서 코드 작업을 시작한다. - 새 브랜치를 생성한다. - 기능 작업 후 commit -m '기능' 포맷으로 커밋한다. 3단계: 그러나 작업 중간에 다른 기능을 사용해야 합니다. 따라서 이 인구통계학적 분기에 대한 변경 사항을 적용하고 개발 분기로 다시 전환한다. - 지금까지의 작업 커밋 - 다른 분기로 전환 4단계: 이 안정적인 개발 분기에서 새 기능에 대한 다른 분기를 만든다. - 새 분기 생성 5단계: 새 분기에 대한 작업을 ..
4.15 문서화 문서화 추가 텍스트 또는 소프트웨어 코드에 포함된 설명된 정보 설명서는 코드의 복잡한 부분을 명확히 하고 코드를 더 쉽게 탐색할 수 있도록 하며 프로그램의 여러 구성 요소가 사용되는 방법과 이유를 신속하게 전달할 수 있다. 프로그램의 여러 레벨에 따라 다양한 유형의 설명서를 추가할 수 있다. 인라인 코멘트 - 라인 레벨 문자열 - 모듈과 기능 레벨 프로젝트 문서 - 프로젝트 레벨 인라인 코멘트 인라인 주석은 코드 전체에서 해시 기호를 따르는 텍스트다. 코드의 일부를 설명하는 데 사용되며, 향후 기여자가 작업을 이해하는 데 도움을 준다. 코멘트는 종종 복잡한 코드의 주요 단계를 문서화한다. 코멘트가 코드를 설명하면 독자는 코드를 이해하지 않아도 된다. 그러나 다른 이들은 이것이 잘못된 코드를 정당화하기 위..
4.14 실습 : 선물 코스트 정리하기 특정 값 이상의 품목에 대해 과세하는 프로그램 import time import numpy as np with open('gift_costs.txt') as f: gift_costs = f.read().split('\n') gift_costs = np.array(gift_costs).astype(int) # convert string to int start = time.time() total_price = 0 for cost in gift_costs: if cost < 25: total_price += cost * 1.08 # add cost after tax print(total_price) print('Duration: {} seconds'.format(time.time() - start)) ## R..
4.11 공통책 찾기 실습 #Optimizing Code: Common Books" #Here's the code your coworker wrote to find the common book ids in `books_published_last_two_years.txt` and `all_coding_books.txt` to obtain a list of recent coding books." import time import pandas as pd import numpy as np with open ('books_published_last_two_years.txt') as f: recent_books = f.read().split('\\n') with open('all_coding_books.txt') as f: coding_bo..
4.6 모듈화된 코드 작성 팁: 드라이 (반복하지 않음) 반복하지 말 것. 모듈화를 통해 코드의 일부를 재사용할 수 있다. 함수 또는 루프에서 반복되는 코드를 일반화하고 통합할 수 있다. 팁: 로직을 추상화하여 가독성 향상 코드를 함수로 추상화하면 반복성이 낮아질 뿐만 아니라 기술 함수 이름으로 가독성도 향상된다. 논리를 함수로 추상화하면 코드를 더 쉽게 읽을 수 있지만, 오버엔지니어링이 가능하고 모듈이 너무 많을 수 있으므로 판단할 것. 팁: 엔티티 수(기능, 클래스, 모듈 등) 최소화 인라인 로직 대신 함수 호출을 사용할 경우 단점이 있다. 코드를 불필요한 양의 기능과 모듈로 분할한 경우, 구현 세부 정보를 볼 수 없는 작은 크기로 보려면 여기저기 뛰어다녀야 한다. 더 많은 모듈을 만든다고 해서 반드시 효과적인 모듈화가 되는 ..
4.4 클린 코드 작성 클린 코드 작성 : 의미 있는 이름 사용하기 서술적이고 암시적인 유형 Boolean의 경우 조건임을 명확히 하기 위해 is_ 또는 has_로 접두사를 지정할 수 있다. 또한 함수에 동사를 사용하고 변수에 명사를 사용하는 것과 같은 유형의 말을 사용할 수도 있다. 일관되지만 명확하게 구분하라. age_list와 age는 ages와 age보다 구별하기 쉽다. 약어 및 단일 문자 피하기 코드에 대한 대상자를 기준으로 이러한 예외를 적용할 시기를 결정할 수 있다. 다른 데이터 과학자와 함께 작업하는 경우 특정 변수가 상식이 될 수 있다. 전체 스택 엔지니어로 작업하는 경우 이러한 경우에도 더 많은 설명적 이름을 제공해야 할 수 있습니다 (예외에는 카운터 및 일반 산술 변수 포함). 긴 이름은 설명하는 이름이 아..
4.3 코드 리팩토링 리팩터링 코드를 재구성하여 외부 기능을 변경하지 않고 내부 구조를 개선한다. 이렇게 하면 프로그램을 실행한 후 프로그램을 정리하고 모듈화할 수 있다. 계속 작동시키면서 최고의 코드를 작성하는 것은 쉽지 않기 때문에, 고품질 코드를 생산하기 위해서는 시간을 할당하는 것이 필수적이다. 초기 시간과 노력이 필요함에도 불구하고, 이는 장기적으로 개발 시간을 단축함으로써 진정한 성과를 거둘 수 있다. 지속적으로 코드를 개선하고자 할 때 훨씬 더 강력한 프로그래머가 된다. 자주 리팩토링 할 수록 좋은 코드를 구조화하고 작성하기가 쉬워집니다.

LIST