반응형

Study 152

AR glasses 기반의 무릎 관절 치환 수술 navigation 시스템 (FDA 510k 승인; 미국 의료기기 인허가 승인)

💻 AR glasses 기술이 수술에 적용된 제품 사례 (FDA 510k 승인; 미국 의료기기 인허가 승인) 🐾 AR glasses 기반의 무릎 관절 치환 수술 navigation 시스템 👊 무릎 관절 치환 수술은 관절염으로 인한 손상된 무릎을 임플란트로 대체하는 수술입니다. 이 수술은 환자의 무릎에 임플란트를 잘 배치하는 것이 중요합니다. 간단히 설명하자면 환자가 수술 후 걷거나 생활함에 있어 큰 문제가 없도록 무릎을 임플란트로 바꾸어주어야 합니다. 👍 이를 위해 의료영상 및 computer vision 기술을 기반으로 하는 수술 navigation 기술 또는 로봇 수술 기술이 발전하였습니다. 최근 프랑스의 pixee medical에서 의료영상 및 computer vision에 AR을 더하여 수술 중 ..

Study/Article Scrap 2021.06.15

개발을 잘 하는 습관 : make it work, make it right, make it fast

👨‍🎓 블로그 아티클; 개발을 잘하는 습관 🐾 개발이라는 일을 할 때 잘하는 방법과 순서가 없을까? 👊 SW 개발은 단순히 소스코드를 잘 작성하는 것이 중요한 게 아니라고 생각합니다. 결과적으로는 고객에 해당하는 사람들이 만족하며 SW를 사용할 때 SW 개발이라는 일을 잘한다고 생각합니다. 👍 아직 연차가 적어서 완벽한 소스코드에 대한 갈망(?)이 좀 있습니다. 이때 이 글을 보게 되었습니다. 이 글을 읽고 완벽보다는 수정을 고려한 개발 프로세스를 인정하고 받아들이는 연습을 스스로 해야겠다는 생각이 들었습니다. 📋 간단 자료 소개 “make it work, make it right, make it fast” 루틴 일단 동작하게 만듭니다 옳게 만듭니다 ... 상도덕(?)에 어긋나는 코드는 안됩니다! 더 나..

Study/Article Scrap 2021.06.15

알고리즘 문제를 풀며 성장하는 사람들에게...

👨‍🎓 블로그 아티클; 518일 동안 단 하루도 빠지지 않고 알고리즘을 풀었다. 🐾 개발자의 역량을 위한 알고리즘 문제 풀기 👊 저는 의공학이라고 하는 의료기술 관련 학문을 전공하였습니다. 그리고 의료기기의 응용소프트웨어 개발을 업으로 하고 있습니다. 어쨌든 SW 개발을 강력하게(?) 전공하지는 않았기 때문에 일을 하면서 부족한 부분을 많이 느끼고는 합니다. (물론 SW 개발에 대한 부족함은 개인적으로만 느끼고 일에는 지장이 없을 수도 있습니다.) 👊 2년 차에 접어들면서 나름의 역량 강화를 위해 알고리즘 관련 문제를 하루에 1시간씩 풀기로 결심하였습니다. 최대한 매일매일 퇴근 후 꾸준히 문제를 풀었습니다. 하지만 시간이 지날수록 문제를 푸는 것에 의의를 두고 성장이라고 하는 부분에서는 더디어졌다는 생각..

Study/Article Scrap 2021.06.15

의료분야에 접목된 메타버스 : 외과 수술 교육에서의 접목

🐾 외과 수술은 수술 술기 방법에 대해 익히고 공유하는 것이 중요합니다. 수술 술기를 더 배워야 할 필요가 있는 외과 의사(혹은 의대 학생)는 여러 환자를 수술하며 굳어진 보편적인 수술방법을 익히는 것이 필요합니다. 또 여러 특이한 케이스의 환자에 대하여 수술 방법을 공유하는 것을 통해 간접적인 경험을 늘릴 수 있습니다. 이러한 특이 환자 케이스에 대한 경험 공유는 실제 수술 중 그 상황을 맞닥뜨렸을 때 해결하여 환자에게 문제없이 수술을 마칠 수 있습니다. 👊 그래서 보통 실제 수술에 참관을 통해 익히거나 수술 중 사진 및 동영상 촬영을 통해 만들어진 자료를 바탕으로 수업에서 또는 학회에서 설명하며 공유하는 것이 일반적입니다. 하지만 코로나 19 상황으로 인한 비대면 기술이 보편화, 상용화되었고 또 메타..

Study/Article Scrap 2021.06.06

ThreadPool 사용 예시

ThreadPool은 무엇일까? 또 어디에 사용하면 좋을까? 여러 thread를 사용하며 프로그램을 동작시키는 경우 리소스 관리로 인한 문제가 발생할 수 있다. 여기서 리턴 값을 받지 않아도 되는 동작이 있다면 ThreadPool이라는 것을 사용하며 효율적으로 리소스를 관리할 수 있다. ThreadPool은 기존에 있는 thread에 할당하여 사용하는 방법이다. ThreadPool은 새로운 thread가 아닌 기존에 존재하는 thread를 재사용하여 효율적으로 리소스를 관리할 수 있다. 리턴 값을 받을 필요가 없는 예시로는 소프트웨어 동작 로그가 있다. 문제의 정의 하나의 객체에서 어떤 값을 파일로 저장한다. 이때 여러 thread에서 이 객체의 파일 저장을 수행할 수 있다. A라는 동작 이후 저장할 수..

Study/C# 2021.05.28

WPF multi-thread (dispatcher, background worker)

멀티스레드(Multi-thread)란? 컴퓨터에서 프로그램을 사용할 수 있다. 이러한 프로그램을 사용하면 컴퓨터 내부에서는 하나의 프로세스(Process)에 하나의 프로그램을 할당하여 다룬다. 프로그램에서 여러 기능을 동시에 사용할 수 있다. 게임을 예시로 들어보자. 컴퓨터 게임은 하나의 프로그램이다. 이 게임에서는 배경음악이 흘러나온다. 동시에 방향키의 입력을 받아서 게임 상의 캐릭터를 조종할 수 있다. 이와 같은 동작은 하나의 프로세스 내부에서 여러 스레드(thread)가 각각의 기능을 수행할 수 있기 때문이다. 예시로 설명한 게임에서 배경음악을 실행하는 스레드가 동작 중인 동시에 방향키의 입력을 받으면 캐릭터를 조종하는 스레드가 동작 중이라고 볼 수 있다. 이러한 여러 스레드를 사용하는 것을 멀티스..

Study/C# 2021.04.14

C#에서 화면의 특정 부분 capture하기

문제의 정의 프로그램에서 화면 캡처(capture) 기능을 제공해야 할 때가 있다. 여기서 전체 화면에 대한 캡처가 아닌 부분 화면의 캡처가 필요한 경우도 있을 것이다. 이와 같이 부분 캡처를 수행하기 위한 C# 코드를 알아보자. 방법 이 방법을 수행하기 위한 코드는 Visual Studio 2012에서 수행되었다. C#에서 기본적으로 제공하는 네임스페이스(namespace) 중 System.Drawing과 System.Drawing.Imaging을 사용하여 특정 부분의 화면을 사각형을 캡처하고 이미지로 저장할 수 있다. 이 네임스페이스를 사용하기 위해 C# 프로젝트에서 참조를 먼저 추가해야 한다. 프로젝트를 생성하고 '참조'에 오른쪽 마우스 클릭을 하여 '참조 추가'를 선택하자. 이후 '어셈블리-프레임..

Study/C# 2021.04.08

C#에서 kd-tree 사용하기 (3차원, 2차원 상의 특정 점에서 가장 가까운 점 찾기)

문제의 정의 3차원의 모델 데이터를 점들로 표현할 수 있다. 그리고 외부의 어떤 한 점이 있을 때, 이 점으로부터 가장 가까운 한 점을 모델 데이터에 속하는 점들에서 찾고자 한다. 방법; kd-tree 여러 가지 방법이 있을 수 있다. 가장 간단한 방법은 모든 점들을 저장하고 외부의 한 점과 거리를 모두 측정하여 가장 가까운 점을 찾으면 된다. 하지만 이 방법은 매우 오래 걸릴 수 있다. 이를 효율적으로 가장 가까운 점을 찾기 위해서 kd-tree를 사용할 수 있다. kd-tree는 수많은 점들을 효율적으로 접근할 수 있는 구조를 만들어 데이터들을 저장해두는 방식이다. 효율적으로 접근할 수 있는 구조로 되어 있기 때문에 원하는 점을 빨리 찾을 수 있다. 데이터를 효율적으로 접근하기 위한 구조는 이진트리 ..

Study/C# 2021.02.28

이벤트 호출 시 null 확인 코드의 중요성

상황에 대한 설명 이벤트를 정의하고 이벤트에 맞추어 실행하고자하는 함수를 추가 할 수 있다. 예를 들어 이벤트가 발생하였을 때 특정 데이터를 넘겨주는 동작을 하고자하는 경우가 있다. 이를 다이어그램으로 나타내면 아래의 그림과 같다. 상황에 대한 코드 작성 1 : 이벤트를 호출하여 데이터를 받아보자 이러한 경우 아래와 같이 코드를 작성하여 사용할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 public class EventSource { private EventHandler Updated; public void RaiseUpdates() { counter++; Updated(this, counter); } private int counter; } cs 위의 코드에서 바로 RaiseUpdate..

Study/C# 2021.02.08

C# WPF에서 MVC 디자인 패턴 연습 예제 구현하기

MVC란 무엇일까? MVC를 설명하기 전 간단하게 디자인 패턴에 대해서 설명해보고자 한다. 소프트웨어를 제작함에 있어 디자인 패턴이란 어떻게 설계하여 코드들을 작성할 것인지에 대한 방법들이다. 소프트웨어마다 ‘사용자가 누구인가?’, ‘어떤 상황에서 사용되는 소프트웨어인가?’ 등에 따라서 작성된 코드들을 배치하고 엮어 동작할지 조금씩 다르다. 엑셀과 같은 소프트웨어를 만들 때, 소프트웨어가 잘 동작하기 위해 코드를 엮는 방법과 효율적으로 코드를 작성하는 방법이 있을 수 있다. 반면에, 웹 기반에서 동작되는 소프트웨어는 이와 다른 방법이 있을 수 있다. 이러한 방법을 패턴화하여 개발자들이 소프트웨어를 설계하고 코드를 작성할 때 하나의 형식으로 의사소통을 할 수 있다. 이것이 소프트웨어의 디자인 패턴이다. 여..

Study/C# 2021.01.25
반응형