반응형

전체 글 169

C# 병렬처리3 _ Mutex

이번에 오늘은 c#에 있는 병렬처리중 쓰레드 경합방지를 위한 Mutex 에 대해서 알고보고자 합니다.다른 경합방지를 위한 방법 중 lock 키워드, Mointor 클래스에 대해 궁금하신 분들은 아래 링크를 먼저 봐주세요https://opencv-master.tistory.com/177 C# 병렬처리2 _ lock오늘은 c#에 있는 병렬처리중 쓰레드 경합방지를 위한 Lock에 대해서 알고보고자 합니다. Lock 키워드lock은 object 키워드와 함께 사용되는데간단하게 말하면 현재 1번 쓰레드가 사용하고있으면 2번opencv-master.tistory.com https://opencv-master.tistory.com/178 C# 병렬처리2 _ Monitor오늘은 c#에 있는 병렬처리중 쓰레드 경합방지를..

Program/C# 2024.11.23

C# 병렬처리2 _ Monitor

오늘은 c#에 있는 병렬처리중 쓰레드 경합방지를 위한 Monitor에 대해서 알고보고자 합니다.다른 경합방지를 위한 방법 중 lock 키워드에 대해 궁금하신 분들은 아래 링크를 먼저 봐주세요https://opencv-master.tistory.com/177 C# 병렬처리2 _ lock오늘은 c#에 있는 병렬처리중 쓰레드 경합방지를 위한 Lock에 대해서 알고보고자 합니다. Lock 키워드lock은 object 키워드와 함께 사용되는데간단하게 말하면 현재 1번 쓰레드가 사용하고있으면 2번opencv-master.tistory.com  Monitor 클래스Monitor 클래스는 lock 키워드보다 좀 더 섬세한 작업이 가능한데, Enter와 Exit 메서드를 통해 다른 쓰레드들이 언제부터 언제까지 대기해야 ..

Program/C# 2024.11.22

C# 병렬처리1 _ lock

오늘은 c#에 있는 병렬처리중 쓰레드 경합방지를 위한 Lock에 대해서 알고보고자 합니다. Lock 키워드lock은 object 키워드와 함께 사용되는데간단하게 말하면 현재 1번 쓰레드가 사용하고있으면 2번,3번,4번 등등의 다른쓰레드에서는 접근할 수 없도록키워드 그대로 lock을 걸어버리는 것입니다.- Lock이라는 키워드는 가장 단순하게 그리고 직관적으로 사용할 수 있는 키워드입니다.- Lock 블록을 빠져나올 때 자동으로 Lock이 해제되기 때문에 사용하기 정말 편하죠.- 예외가 발생하더라도 안전하게 잠금이 해제됩니다. 사용 방법에 대한 예시를 한번 보겠습니다.예를들어 여러명이 한개의 통장에 돈을 넣는 상황을 가정해보겠습니다. 첫번째로 lock 키워드 없이 여러명이 한번에 병렬로 잔액을 넣게되는 메..

Program/C# 2024.11.20

C# Bitmap

오늘은 C#의 Bitmap에 대해서 알아보고자 합니다.Bitmap은 C/C++ 에서도 있는 개념입니다.C/C++에서 Bitmap은 구조체로 구현이 되어있고 데이터와 이를 다루는 함수가 분리되어 있습니다.그에 반해 C#에서 Bitmap은 클래스로 구현이 되어있고 데이터와 매서드가 클래스에 캡슐화 되어 있습니다.  C#에서 Bitmap클래스는 ( 위 이미지에서는 메서드만 나와있지만 )데이터인 Width, Hieght, PixelFormat(픽셀형식) , HorizontalResolution, VerticalResolution, Flags, Palette 등의 데이터도직접 접근할 수 있도록 캡슐화 되어 있습니다.그에 반해 C / C++에서의 Bitmap은 windows Gdi ( Graphic Device I..

Program/C# 2024.11.18

C# 얕은복사, 깊은복사

복사에는 얕은복사와 깊은복사 이렇게 2가지의 방법이 있습니다.간단하게 정리하면얕은복사 ( Shallow Copy )는 참조를 복사하는 것이고깊은복사 ( Deep Copy )는 데이터의 값을 복사하는 것 입니다. 깊은복사깊은복사는 위에서 설명한대로 A라는 변수에 1,2,3 이라는 데이터가 있었을 때변수에 담겨있는 1,2,3이라는 데이터만 가져와서 새로운 변수로 복사하는 것을 의미합니다. 얕은복사얕은복사 또한 위에서 설명한대로A라는 변수에 1,2,3 이라는 데이터가 있었을 때변수에 담겨있는 1,2,3이라는 데이터를 가져오는게 아니고A라는 변수가 사용하고 있는 메모리의 참조값을 가져오는 것을 의미합니다.좀 더 딥하게 컴퓨터 사이언스 측면에서 보게되면 프로그램으로 어떤 변수를 만들고 그 변수에 데이터를 저장하게..

Program/C# 2024.11.14

C# 병렬처리1 _ Parallel

오늘은 C#에 있는 병렬처리 Parallel 클래스에 대해서 알아보고자 합니다.현재 제가 하고 있는 프로젝트 중 그룹으로 묶인 도형을 Binary 처리된 이미지에 맞게Resize, Move, Rotate하는 메서드를 구현해야하는 작업이 생겼고,해당 메서드를 단순 for문을 사용해 구현했는데 당연하게도 메서드가 돌아가는 동안에는 Main UI 에 Lock이 걸려서 프로그램이 멈추는 현상이 나왔습니다.그래서 이걸 비동기 매서드로 만들어서 Main UI에 Lock이 걸리지 않도록 할지혹은 여러개의 쓰레드를 만들어서 멀티쓰레드를 사용할지 고민이 되었습니다. 비동기 매서드로 만들자니 물론 기존메서드 실행시간보다는 단축되겠지만 순차적으로 처리해야하기 때문에확실하게 단축되지는 않을 것이라고 판단되엇고,비동기 매서드를..

Program/C# 2024.11.11

OPENCV 왜곡보정

기존에 사용하던 Opencv 보정함수는 단순히 cv2.Undistortion 함수였는데 UndistortImageOptimal 함수에 대해서도 알아보게 되었음. 또한 배경의 장애물들로 인한 cv2.FindChessboardCorners 인식이 저하되어해당 이미지들의 ChessboardCorner를 강제로 찾아내는 과정에 대해서도 알게되었음. 기존에는 FOV 800mm의 크지않은 ChessBoard를 사용하였기 때문에 큰 무리없이 이미지 촬영을 진행하였는데이번 프로젝트에서는 FOV 3000mm의 넓은 CheckerBoard를 제작하여사용하였기 때문에 이미지 촬영이 쉽지 않았음.  위 이미지를 보면 알 수 있듯이 센터에서 촬영하는건 줄을 매달고 올라가지 않는 이상 불가능 하였음. 따라서 위 이미지를 사용하여..

Program/OPEN_CV 2024.10.29

소크라테스에게서 찾은 삶의 이정표

"소크라테스의 변명"은 2020년 첫 회사에 입사하며철학책을 접해보고자 논어와 함께 구매한 책이다.  그때는 첫 철학책이어서 처음 읽을 때 대화를 위주로 재미있게 봤었고2번정도 완독을 더 할때는 철학적인 접근을 하며소크라테스가 말하는 것의 개념을 위주로 봤다.  읽은지 3~4년정도 전의 내용이라 책의 내용이 많이 기억나지는 않지만 약 336페이지에 해당하는 많고 많은 내용 중에 읽을때부터 지금까지아직도 내 뇌리에 깊이 남은 내용이 하나 있다.바로 "대립점" 이라는 내용이다.  대립점은 소크라테스의 변명에서도 나오지만 플라톤 국가에서도 동일하게 나오는 개념으로 소크라테스가 깨우침을 원하는 사람을위해 많이 사용 하는 개념이기도 하다.  위 "대립점" 이라는 개념은 이해하기가 쉬워서인지아니면 다른 이유에서인지..

독서 2024.04.30

왜 일하는가?

왜 일하는가?​" 당신은 지금 하고있는 일을 왜 하고있는건지 정말 진지하게 생각해본적이 있는가? "​​나는 대학교 졸업때가 다가와서 어떤 회사를 가야할지 고민하다 전공과 관련된 한 회사를 고르게 되었고대학교를 졸업하고 시기가 되어 그 회사에 입사하게 되었다.​성적이 좋았음에도 불구하고 중소기업에 가려고고 했던 이유는 앞으로 사업을 하고싶다는 생각으로 인해 회사의 최전선에서 모든 방면으로 일을 배워보고싶다는 생각에서였다.​하지만 회사의 규모는 생각보다 컸고 나는 현재 약2년동안 같은 자리에서 거의 비슷한 일들을 처리하며 살아가는 중이었고​이번에는 정말 스타트업에서 다양한 업무를 맡아 일을 진행할 수 있는 기회가있어 퇴사절차를 밟고있다.​....​이런 와중에 발견하게 된 " 왜 일하는가" 라는 책은 앞으로 ..

독서 2024.04.30
반응형