c#(8)
-
C# 선그래프
C# 윈폼을 활용해서 동적차트를 만들어보았다. 차트 내에 여러개의 그래프가 있고, 그래프의 데이터는 List로 관리 데이터 저장 기능까지 구상하고 시작했다. 3종류의 데이터를 받아서, 차트로 표현했다. x축은 총 10개의 데이터가 나타나고 1초마다 값이 업데이트된다. 윈폼이 실행되면, 로딩이 완료된 뒤 Start 이벤트를 발생시킨다. Start이벤트는 차트 관련 설정들을 세팅하고 데이터 생성 스레드를 실행한다. 차트와 관련된 설정들을 기입했다. 아래 사진처럼 윈폼상에서 미리 설정해둬도 되지만, 프로그램을 실행하면서 유동적으로 값을 변경하기 위해, 코드상으로 정의해뒀다. ( 나중에 수정할 부분을 찾기 편하도록 ) GenerateData() 함수는, 랜덤 데이터를 생성하는 함수다. 지금은 데이터가 없어서 임..
2024.04.02 -
C# - class & structure
사내에서 지금까지 개발한 데이터 수집 엔진( 프로그램 )이 총 3가지 있다. 요약하자면 A->B->C 순으로 업그레이드 됐는데, 여전히 A, B 엔진이 적용된 곳이 있어서 그 중에서 B 엔진을 C 엔진에 맞게 업그레이드? 병합? 하는 작업을 진행했다. 병합 작업을 진행하면서, 나의 부족한 C# 개발 지식으로 다양한 오류를 접하게 됐다. 참조한 reference가 null 오류 컬렉션 수정 오류 등 너무 오류가 많아서 골치아팠다. 오류의 원인을 찾아보았다. 1. 비효율적인 class 사용 코드를 작성할 때 최소한의 class 단위로 구분해서 작성하라는 입사 초반 지시에 맞게 개발을 진행해왔다. 그러다보니 아무이유없이 무조건 class만 사용해서 개발해왔다. 변수 선언이나 구조를 잡을때도 무조건 class만..
2024.02.10 -
모니터링 자동화 - API Parsing
2023.12.24 - [개발/C#] - 모니터링 자동화 - 비동기 변경 모니터링 자동화 - 비동기 변경 2023.12.21 - [개발 기록/C#] - 모니터링 자동화 - Excel Write 모니터링 자동화 - Excel Write 2023.12.18 - [개발 기록/C#] - 모니터링 자동화 - Teamviewer 상태 관리 모니터링 자동화 - Teamviewer 상태 관리 2023.12.17 - [ iruk.tistory.com 지금까지 자동화를 한다고 개발을 했지만 생각해보면 자동화 라는 단어가 어울리지 않는다 프로그램 실행 후, 파일을 선택한 뒤 사용자가 직접 로그인(부정방지 문자, 구글 OTP)을 해야하는 단점을 고치고싶었다. API 호출 및 Parsing 사내 다른 파트에 요청해서 API를 ..
2024.01.01 -
모니터링 자동화 - 비동기 변경
2023.12.21 - [개발 기록/C#] - 모니터링 자동화 - Excel Write 모니터링 자동화 - Excel Write 2023.12.18 - [개발 기록/C#] - 모니터링 자동화 - Teamviewer 상태 관리 모니터링 자동화 - Teamviewer 상태 관리 2023.12.17 - [개발 기록/C#] - 모니터링 자동화 - 웹 크롤링 모니터링 자동화 - 웹 크롤링 C# Seleniu iruk.tistory.com 자동화에 필요한 메인 프로세스들은 구현이 완료됐고 각 프로세스를 어떻게 관리할지 고민하다가 비동기 & 프로그레스바 로 결정 이유 1. 사용자에게 진행상황을 표현 2. 동기식 사용 시, 프로세스가 끝날때 까지 다른 동작 불가능 ( ex) 프로그램 종료 ) 3. 클린코드 비동기식 로..
2023.12.24 -
모니터링 자동화 - Excel Write
2023.12.18 - [개발 기록/C#] - 모니터링 자동화 - Teamviewer 상태 관리 모니터링 자동화 - Teamviewer 상태 관리 2023.12.17 - [개발 기록/C#] - 모니터링 자동화 - 웹 크롤링 모니터링 자동화 - 웹 크롤링 C# Selenium 라이브러리를 활용해 모니터링 페이지의 데이터를 크롤링 테스트한다. 크롤링 함수 public bool GetMonit iruk.tistory.com 웹 크롤링 / 팀뷰어 API 호출로 받아온 데이터를 엑셀 보고서 파일에 자동 Write하는 로직을 추가한다. WriteExcel() bool형 함수 public bool WriteExcel(string filePath) { int retryCount = 0; bool success = fa..
2023.12.21 -
모니터링 자동화 - Teamviewer 상태 관리
2023.12.17 - [개발 기록/C#] - 모니터링 자동화 - 웹 크롤링 모니터링 자동화 - 웹 크롤링 C# Selenium 라이브러리를 활용해 모니터링 페이지의 데이터를 크롤링 테스트한다. 크롤링 함수 public bool GetMonitoringSiteData() { bool flag = false; #region 리스트 초기화 companyListMgr.companyIdList. Clear(); companyL iruk.tistory.com 웹 크롤링 기능에 이어, Teamviewer API 호출 내용 정리 수용가 별 PC 에 Teamviewer 소프트웨어를 설치. 해당 PC들을 id 및 이름 부여하여 원격 접속으로 관리. Teamviewer 사의 API 를 활용해서, 내가 등록한 PC들의 연결..
2023.12.18 -
모니터링 자동화 - 웹 크롤링
2023.12.17 - [개발 기록/C#] - 모니터링 자동화 - 구상 모니터링 자동화 - 구상 재직 과정에서, 비효율적인 업무를 진행하게 됐다. 수용가 관리 업무인데, 수용가 별 데이터 수신율, 장비 상태 등을 보고서로 작성하는 업무다. 가장 불만이었던 건, 업무 소요시간이 수용가 수 iruk.tistory.com 구상에 이어, 웹 데이터 크롤링 로직 추가 C# Selenium 라이브러리를 활용해 모니터링 페이지의 데이터를 크롤링 테스트한다. 크롤링 함수 public bool GetMonitoringSiteData() { bool flag = false; #region 리스트 초기화 companyListMgr.companyIdList. Clear(); companyListMgr.companyNameLi..
2023.12.17 -
모니터링 자동화 - 구상
재직 과정에서, 비효율적인 업무를 진행하게 됐다. 수용가 관리 업무인데, 수용가 별 데이터 수신율, 장비 상태 등을 보고서로 작성하는 업무다. 가장 불만이었던 건, 업무 소요시간이 수용가 수에 비례증가 한다는 것 수용가가 10곳이면 당연히 금방 하겠지만 수용가가 1200곳이면, 나 혼자서 감당 가능한가? 계속 되물었던 것 같다. 다른 업무에 밀리고 밀리다, 회사의 성장속도에 맞게 이 업무도 빨리 자동화되어야 겠다 싶어서 ( 사실 내가 바빠서 힘들어질까봐 ) 시간을 내서 자동화 하기로 결심했다. 목적은 딱 한가지에 초점을 두고있다. 10분 전에 입사한 신입사원도 진행할 수 있는 업무를 만들자. 회사 규모가 커지고, 수용가가 5000곳이 넘어갔을 때, 신입사원이 수용가 관리가 가능한가? 에 중점을 두고 제작..
2023.12.17