이 프로젝트는 Excel용 VBA를 사용하여 개발된 매크로의 사용을 설명하기 위해 만들어졌으며 선택한 녹색 에너지 주식 그룹의 데이터 수집 및 시각화를 자동화하는 데 사용할 수 있습니다. 이는 매크로 사용 기능과 작업을 반복적으로 사용할 수 있도록 버튼과 같은 그래픽 인터페이스를 사용하여 매크로를 자동화하는 방법을 보여주기 위해 사용되었습니다. 이 프로젝트에는 2017년과 2018년에 수집된 12개 주식의 주식 데이터가 사용되었습니다. 사용된 데이터에는 종목 코드, 개시 및 마감 주식 가치, 일일 일일 거래량이 포함되었습니다. 이를 통해 분석 대상 각 주식의 첫 번째 및 마지막 주가와 전체 거래량을 확인할 수 있습니다.
이 프로젝트의 또 다른 목표는 매크로를 완성하는 데 필요한 컴퓨팅 성능을 최적화하기 위해 리팩토링을 사용하여 코드 효율성을 향상시키는 방법을 살펴보는 것이었습니다. 이를 위해 우리는 기능적이지만 분석하려는 각 주식 시세 표시기에 대한 전체 데이터 세트의 반복을 완료하기 위해 프로그램이 필요한 코드의 초기 버전을 사용했습니다. 목표는 프로그램이 데이터 세트의 반복을 완료하고 첫 번째 버전과 동일한 데이터를 얻으도록 요구하는 원본 코드의 리팩터링 버전을 개발하는 것이었습니다.
시작하기 위해 우리는 분석하려는 각 주식의 연간 총 재고량과 연간 실적을 수집할 수 있는 기능 코드를 개발했습니다. 아래에 제공한 코드에서 볼 수 있듯이 데이터 집합의 반복을 완료하고 다음 주식으로 이동하기 전에 Excel 워크시트에 데이터를 삽입하여 각 주식에 대해 데이터가 수집되었습니다.
코드에는 프로그램이 실행되고 결과를 표시하는 데 걸린 시간을 표시하는 타이머가 포함되어 있습니다. 이를 사용하여 각 연도의 데이터 세트에 대한 데이터를 수집하기 위해 초기 코드를 완료하는 데 필요한 시간을 비교할 수 있습니다. 이는 아래 이미지에서 볼 수 있듯이 매년 코드 실행 시간을 제공했습니다. 이는 초기 코드가 2017년 데이터세트를 완료하는 데 0.6289062초가 걸렸고 2018년 데이터세트를 완료하는 데 0.6171875초가 걸렸음을 보여줍니다.
원래 작업 코드의 리팩토링을 통해 데이터 세트의 총 반복 횟수를 줄여 작업 실행 속도를 향상시켜 보다 효율적인 컴퓨팅 사용을 달성할 수 있습니다. 이 코드를 리팩터링하려면 개발 중인 매크로에 두 가지 구성 요소를 추가해야 했습니다. 첫 번째는 분석 중인 데이터 세트의 각 데이터 라인에 대해 반복되는 각 티커에 대한 인덱스였습니다. 데이터 세트 내의 각 데이터 라인에 대해 프로그램은 어떤 티커가 존재하는지 식별하고 지수 값과 관련된 관련 데이터를 저장합니다. 두 번째는 각 주식 시세 표시기에 대한 여러 데이터 포인트를 저장하는 데이터 배열 모음이었습니다. 배열에 저장된 각 값은 수집된 순서에 따라 검색될 수 있으므로 이 데이터를 사용된 티커 인덱스에 다시 연결할 수 있었습니다. 이 두 도구를 사용하면 아래 샘플에 표시된 대로 코드를 리팩토링할 수 있습니다.
초기 코드의 실행 시간을 결정하는 데 사용된 것과 동일한 코드를 사용하면 분석을 위해 리팩토링된 코드에서 관찰된 실행 시간의 개선이 있는지 확인할 수 있었습니다. 아래 이미지에서 볼 수 있듯이 2017년과 2018년의 데이터 분석을 완료하는 데 걸린 시간은 새로운 코드를 사용하여 경쟁되었으며 이를 초기 사용된 코드와 비교하는 데 사용되었습니다. 이를 통해 2017년 데이터 세트를 완료하는 데 0.5273438초가 걸렸고 2018년 데이터 세트를 완료하는 데 0.516825초가 걸렸다는 것을 알 수 있습니다.
초기 및 리팩토링 코드 실행 완료 시간을 기준으로 수집된 정보를 보면 2017년 데이터세트에서는 0.1015624초, 2018년 데이터세트에서는 0.1103625초가 감소한 것으로 나타났습니다.
코드를 리팩토링하는 과정에는 사용에 있어 몇 가지 장점과 단점이 있습니다. 먼저 몇 가지 장점을 살펴보겠습니다.
코드 리팩토링 사용의 몇 가지 단점.
여기에 표시된 예에는 코드 효율성을 향상시키기 위해 완료된 리팩토링에 대한 몇 가지 장단점이 있었습니다.
코드 변경으로 인한 긍정적인 생각은 다음과 같습니다.
데이터 수집을 위해 완료된 반복 횟수를 줄여 분석을 완료하는 데 사용되는 시간을 줄였습니다.
더 큰 데이터 세트와 더 많은 검색 기준으로 쉽게 확장할 수 있는 더욱 강력한 코드가 생성되었습니다.
데이터에 대한 보다 심층적인 분석이 필요한 경우 다른 계산이나 분석에 사용할 수 있는 데이터를 저장하기 위해 배열을 활용했습니다.
이 코드에서 리팩토링을 사용하는 데 있어 부정적인 요소 중 일부는 다음과 같습니다.
https://www.c-sharpcorner.com/article/pros-and-cons-of-code-refactoring/" ↩ ↩ 2