C# SMS 전송기 소소한 업데이트

프로그래밍/Talk 2023. 1. 26. 23:29

이전에 C#으로 제작해서 현재 판매중인 SMS 전송기 프로그램을 업데이트 하였습니다. 관련글 : https://pgh268400.tistory.com/283 1. 더블 버퍼링 적용해서 DataGridView 스크롤 렉 제거 2. 엑셀 파일 읽는 Logic을 비동기적으로 변경 - DataGridView 로딩하는건 Invoke() 를 이용해서 Thread-Safe하게 작업 - 성능 향상을 위해 C#의 나름 최신 기술인 Task랑 async & await 를 도입해서 엑셀 파일을 로딩합니다. 이래도 데이터 다 불러오고 DataGridView에 데이터 바인딩할때는 Invoke때문에 메인 쓰레드에서 처리해야되서 여전히 데이터가 크면 로딩할 때 프리징 걸립니다 ㅡㅡ. 이건 근본적으로 DataGridView 성능이 ..

Article Thumbnail
IDA PRO는 신이다.

프로그래밍/Talk 2022. 12. 26. 21:05

CrackMe 풀면서 올리디버거 쓰다가 한번 써봤는데 진짜 그래프 모드만 봐도 달달하네요. 디버깅 모드 키면 지금 깜빡깜빡 거리면서 어디로 점프뛸지도 알려주고, F5 누르면 C언어 비슷하게 복구도 해주고 (디컴파일) Main 함수도 찾아주고.. 진짜 효자가 따로 없습니다. 이 프로그램 쓰면서 아쉬운건 제 지능이네요 ㅋㅋㅋ.. 윈도우 API도 귀찮아서 공부안하고 VB6.0 으로 만들어진 구닥다리 프로그램 구조도 잘 모르고.. 이건 몰라도 되긴한데 IDA도 기능이 엄청 많은거 같은데 좀 더 공부해봐야 겠습니다. IDA Pro 쓰면서 딱 한가지 아쉬웠던 점은 프로그램에 패치(어셈블) 하는 단축키가 없다는 점이였네요. 디버깅 하면서 어셈블리 코드 바꾸는데 Edit - Patch - Assemble 을 계속 눌러..

Article Thumbnail
2023 강의 작성 고민중입니다.

프로그래밍/Talk 2022. 12. 19. 21:23

현재 제 블로그에서 제대로 강의 작성된 글이 C랑 Python 정도 밖에 없습니다. 사실 완성도가 제일 높은건 C고 Python은 2달도 안되는 기간에 작성해서 내용이 좀 허접합니다. 그래서 추가로 강의글을 작성해볼까 하는데 현재 작성에 고민중인 내용은 아래와 같습니다. 1. 시스템 소프트웨어 2. 자료구조 3. C# 4. Java 사실 1, 2 는 강좌라기 보다 그냥 강의 노트 정리에 가까울 거 같고 C#이나 Java 중에 더 작성하기 만만해보이는건 자료가 좀더 많은 Java인데 실제로 제가 많이 써본건 C#이라 고민이 되는군요 총총... 기록 안하면 또 다 까먹어버릴탠데.. 고민을 좀 해봐야겠습니다

Article Thumbnail
아 내가 해냈다. [과제 제출 성공]

프로그래밍/Talk 2022. 12. 1. 02:20

앞에서 시달리던 과제 제출에 드디어 성공했습니다. 이걸 제출 성공하네.. 빨리 C랑 C++ 망하고 Rust 가 다 독차지 해버렸으면 좋겠네요 ㅎㅎ. 아마 이번 과제는 난이도상 제출 성공 인원이 그래봤자 10명 안밖이 아닐까 싶습니다. 요새 C언어 과외까지 해서 나름 C언어 내용에 꾀차고 있다고 생각했는데 이중 연결 리스트 구현에서 제 머리가 터져버렸습니다 진로 관련해서는 이미 있는거 뜯는 보안쪽이나(디어셈블리) Python, Java 같은 High Level 개발자가 마음에 갑니다. 이번에 OS 스케줄러 구현에 시달리면서 느꼈는데 커널 개발이나 시스템 프로그래밍은 제 분야가 아닌거 같아효 ㅎㅎ 그냥 추상화된 문자열 타입이나 Syntatic Sugar 이 행복하단걸 몸소 채감했습니다. 그리고 리눅스에서 C..

Article Thumbnail
[C/C++] 연결리스트 구현은 되도록 라이브러리(인터넷)를 사용합시다

프로그래밍/Talk 2022. 11. 29. 00:58

혹시 본인이 과제로 연결 리스트를 구현할일이 생겼다? 그러면 본인이 정말 머리가 잘돌아가는 유능한 프로그래머가 아니라면.. 되도록 인터넷이나 라이브러리를 참고해서 구현하는것을 추천드립니다. (사실 참고하라곤 했는데 복붙하고 유사도 검사 피하기 위해 변수 이름 정도만 바꾸는게 편합니다.) 아니 직접 구현하는게 자기 실력느는데 무슨 소리냐? 네 이것도 맞습니다.. 당연히 자기가 직접 구현해봐야 실력이 늘지요 ㅎㅎ; 근데 단일 연결리스트는 직접 구현한다고 쳐도, 이중 연결 리스트는 정말 제대로 생각했는데도 C/C++ 동적할당 & 포인터 특성상 NULL 포인터를 참조한다던가, 잠정적으로 어디선가 문제가 터져서 공포의 Segmentation Fault(메모리 참조 오류) 를 만날 가능성이 높습니다. 그러므로 되도..

Article Thumbnail
[C] 쓰레드 스케줄러 과제 구현 90% -> 50%...

프로그래밍/Talk 2022. 11. 27. 03:34

pthread 계열의 Thread 함수를 직접 구현하고, 스케줄러까지 구현해서 쓰레드를 Round Robin 형태로 스케줄링 실행하는 과제를 진행하고 있습니다. 저번에는 비슷하게 시스템 콜로 Tree를 구현했었는데 이번건 진짜 말도 안되게 어렵네요. 머리가 아파집니다. 분명 다 제대로 구현했다고 생각했는데 thread_join() 구현하는 부분에서 계속 프로그램이 터지네요 ;; 과제하라고 테스트 케이스를 던져줬는데 계속 내용도 바뀌고 출력이 어떻게 나와야 한다는 것도 없으니 제대로 진행하고 있는지도 모르겠고 짜증만 납니다 ㅡㅡ. C로 연결리스트도 만들고, 컨텍스트 스위칭도 구현해보고, clone() 으로 쓰레드도 생성해보고 사실 초반에 잘 돌아갈때까진 나름 즐거웠는데 join 에서 막히니 시간은 계속 뺏..

Article Thumbnail
[C++] infix -> postfix 수식 변환 & 계산기 구현

프로그래밍/Talk 2022. 10. 30. 23:08

* 해당 글은 구현을 단순히 기록차 남겨놓은 후기 글 입니다 강의글이 아니므로 따로 자세한 설명을 넣진 않습니다. 자세한 구현 방식은 나중에 자료구조 탭을 추가하여 제대로 작성할 예정입니다. C++ 에서 infix 수식 (중위 표기법) 을 받아서 postfix 수식 (후위 표기법) 으로 변환 후 그 postfix 수식에 대한 값을 계산해 결과값을 출력하는 기능을 구현했습니다. 뭐 이번에도 과제때문에 억지로 구현한거긴 합니다. 사실 프로그래밍을 하면서 일반적으로 리터럴에 적는 여러가지 수식들은 자연스럽게 컴퓨터가 읽어내 계산할 수 있도록 컴파일러가 처리해줍니다만, 실제로 수식 문자열을 입력받아서 계산하는 기능은 생각보다 굉장히 어려운 기능입니다. (당장 수식을 계산하는 방법을 머리 속으로 생각해보면, 정수..

Article Thumbnail
[C++] 다항식 클래스 100% 구현 완성!

프로그래밍/Talk 2022. 10. 6. 03:09

단일 연결 리스트 구조를 이용해서 무려 "다항식" 을 저장할 수 있는 Class를 구현했습니다! 과제라서 어쩔 수 없이 꾸역 꾸역 하긴 했는데 온갖 버그와 싸운 끝에 일단 구현 완성하긴 했네요. (사실 만들고 나니 왜 만든건지 잘 모르겠습니다. 울프람 알파 쓰면 안되나?) C/C++ 로 프로그래밍 하면서 느낀건데 얘내들은 뭔가 완성해도 "와 됐다!" 가 아니라 "어 됐네? 근데 왜 됐지?" 라는 말이 먼저 나옵니다 ㅋㅋ 특히 메모리 참조 오류를 너무 많이 쳐맞았더니 거의 사용한적 없는 Visual Studio 의 디버깅 툴이 참 고마워지더라구요. Rust 좋아하는 분들이 C/C++ 도 Rust가 대체할 것이다 이렇게 강하게 말하는 경우가 있습니다. 좀 비약이 강한 말이긴 하지만 솔직히 C는 몰라도 C++..

Article Thumbnail