병.의원 소프트웨어 개발 업체 | 2015년 ~ 현재
C# 관련 강의 유튜브 운영 : 까불이코더(https://www.youtube.com/@kaburi-coder) 2022 ~
현재 사용 중인 주력 기술 스택은 다음과 같습니다.
프로그래밍 언어: C#, TypeScript, Dart, Python, VB.NET
데스크탑 애플리케이션: WinForms, WPF
모바일 앱 개발: Flutter
웹 개발: React, Next.js, Express, NestJS
Gen AI: LangChain, LangGraph
컨테이너 및 오케스트레이션: Docker, Kubernetes, Helm, ArgoCD ..
CI/CD: GitHub Actions
DataBase: MySql, Postgresql, MongoDB, SQLITE 등
2015년부터 현재까지 소프트웨어 개발 분야에서 다양한 프로젝트를 성공적으로 이끌어온 경험을 보유하고 있습니다.
기술 리더로서 팀을 이끌며 효율적인 개발 프로세스를 유지하고, 최신 기술 스택을 적극적으로 도입하여 소프트웨어의 품질과 사용자 경험을 향상시키는 데 주력하고 있습니다.
현재는 데스크톱과 웹의 통합 개발을 주도함과 동시에, 사내 직원 교육을 책임지고 있습니다.
또한 사용자 친화적인 애플리케이션 개발과 배포 자동화, DevOps 도입을 통해 프로젝트의 전반적인 성공에 기여하고 있습니다.
지속적인 자기계발을 통해 변화하는 기술 환경에 유연하게 대응하며, 높은 열정으로 새로운 도전에 임하고 있습니다.
강의
수강평
- C# WinForm 사용자 정의 컨트롤 활용. 실무 역량 키우기
- C# 프로그래밍 기초부터 실전 활용까지
게시글
질문&답변
asp.net blazor 강의는 현재 계획없으신가요
강의를 시청해주셔서 감사드립니다. ㅎㅎ아쉽게도 현재는 ASP.NET 강의 계획은 없습니다... ㅠㅠ
- 0
- 2
- 23
질문&답변
강의자료
강의 자료는 초반부에는 화면상 보여지는 블로그 주소로 들어가셔서 참고하시면 되겠습니다.중반부 이후로 파일 형태로 제공되고 있습니다. 감사합니다.
- 0
- 2
- 59
질문&답변
~ 연산자 이해가 안되요
맨 앞자리가 부호를 나타내고 나머지를 10진수로 변환하면 정수 값이 반환 된다는 것은 반은 맞고 반은 틀린 말입니다. 양수인 경우는 부호 숫자 외 나머지 수를 10진수로 변환하면 그 값이 저희가 알고 있는 값이 맞습니다.이진수 (0111) 로 예를 들어보도록 하겠습니다.맨 앞 0 은 양수를 나타내고 나머지 111 => 4 + 2 + 1 = 7 이 됩니다.하지만 음수인 경우는 다릅니다. 이진수 (1111) 로 예를 들어보면맨 앞의 1은 음수를 나타내고 나머지 111 => 4 + 2 + 1 = 7 의 부호만 - 를 붙여 -7이 되는 것이 아닙니다.먼저 1의 보수 후, 2의 보수를 진행하고 부호를 붙여야 음수를 구할 수 있습니다.1의 보수 => 0000 2의 보수 => 0001 = 1 => 부호 추가 => -1 이 됩니다.위 계산을 또 다른 방식으로 해석하면1111 에서 맨 앞자리(부호 -): 2^3 = -8 두번째 자리(+) : 2^2 = 4 세번째 자리(+) : 2^1 = 2 네번째 자리(+) : 2^0 = 1 --------------------------- 결과 = -1이 됩니다. 사람 입장에선 어려워 보일 수 있으나 컴퓨터 입장에선 훨씬 연산이 쉽고 효율적입니다. 컴퓨터 시스템이 2보수 방식으로 계산되는 뺄셈 예제를 보여드릴게요다음은 5-3에 대한 예제입니다. 0101 (5) + 1101 (-3, 2의 보수) ------- 10010 (5비트가 되지만, 맨 앞(왼쪽) 1비트는 버림) 남은 4비트는 0010 => 결과는 2 따라서 다음과 같은 장점이 있습니다.1. 덧셈과 뺄셈을 동일한 회로로 처리할 수 있음2의 보수 표현을 사용하면 덧셈과 뺄셈을 같은 방식(가산기)으로 계산할 수 있습니다.예를 들어, 5 + (-3)을 계산할 때, -3을 2의 보수로 바꿔서 5에 더하면 결과가 바로 나옵니다.별도의 뺄셈 회로가 필요 없습니다.2. 0이 유일하게 표현됨1의 보수 방식(모든 비트를 반전)에서는 +0과 -0이 모두 존재(예: 0000=+0, 1111=-0)해서 혼란을 줍니다.2의 보수에서는 0을 한 번만 표현할 수 있습니다.3. 오버플로우 처리가 쉽고, 수식이 단순함2의 보수에서는 오버플로우(자릿수 초과) 발생 시, 하위 비트만 남기면 결과가 올바릅니다.수식이 단순해서 컴퓨터 하드웨어 설계가 쉬워집니다.
- 0
- 5
- 78
질문&답변
thread join 사용
엄청난 열정에 놀랐습니다. ㅎㅎ 아래에 AI 답변도 존재하지만 추가로 정리해드리겠습니다. WinForms에서 Join() 사용 시 UI 멈춤현상메인(UI) 쓰레드에서 GoThread.Join()을 호출하면, 해당 쓰레드가 종료할 때까지 현재 쓰레드에서 대기하게 됩니다.UI와 관련된 처리는 모두 메인 스레드에서 이뤄지므로 Join()에서 대기하는 동안 폼이 멈춘것 처럼 보이게 돼요.**해결방안**쓰레드 작업이 끝나는 것을 기다리면서 UI가 멈추지 않게 하려면,Join()을 직접 호출하지 말고, 쓰레드 작업이 끝났을 때 UI에 알리거나(예: 이벤트, 콜백),BackgroundWorker, Task, async/await 등 비동기 프로그래밍 패턴을 사용하는 것이 좋습니다.(일반적으로 async/await를 가장 추천 드립니다.)쓰래드 객체를 null로 설정하는 것?쓰레드가 끝나면, 해당 Thread 객체는 더 이상 사용할 수 없으므로 필요하면 null로 만들어주는 것도 괜찮은 방법입니다. (null 을 할당하여 참조를 해제해주면 가비지 컬렉터가 빠르게 수거할 수 있어요.)하지만 꼭 null로 만들 필요는 없고 쓰래드가 살아있는지(IsAlive 속성)만 체크해서 필요할 때 Thread객체를 새로 만들어도 괜찮습니다.C#에서 클래스의 명시적 종료(소멸) 방법C#에는 C++의 delete처럼 객체를 “즉시” 소멸시키는 문법이 없습니다.C#의 객체는 해당 객체를 참조하는 곳이 없을 때(즉, 사용하지 않게 되었을 때)가비지 컬렉터(GC)가 자동으로 메모리를 정리(소멸)합니다.IDisposable 인터페이스를 구현하고 Dispose()를 호출하는 것도 사실 메모리 자체는 GC가 회수하는 것 입니다.
- 0
- 4
- 66
질문&답변
21. PickList(디자이너 생성) 강좌 문의
제가 놓친 부분을 찾아서 알려주셔서 감사드립니다. 해당 부분은 텍스트로 설명 추가하여 수정했습니다.
- 0
- 1
- 35
질문&답변
블로그 글
질문 글을 늦게 확인했네요 ㅠ.ㅠ블로그 글은 여전히 존재합니다 ~!
- 0
- 2
- 66
질문&답변
Delegate 내용은 어디서 다루나요?
14. 대리자 섹션을 보시면 됩니다. 감사합니다 ^^
- 0
- 2
- 72
질문&답변
Xunit private 메서드 테스트
해당 문의 사항에 대한 강의가 업로드 되었습니다. 감사합니다. https://inf.run/NwUf1
- 0
- 2
- 80
질문&답변
자원정리 개념
인프런 AI 인턴의 설명이 훌륭하네요 ㅎㅎ제가 obj = null로 할당한 예제를 보여드린 것으로 약간 헷갈리신 것 같습니다. null 할당은 객체가 GC의 대상이 되도록 도울 수 있습니다. 왜냐면 GC는 참조가 되지 않은 객체를 메모리에서 제거하거든요.즉 변수에 null을 할당하는 것은 메모리에서 객체를 직접 해제하는 행위가 아닙니다. finally블록은 설명드렸다시피 return문을 만나더라 해도 반드시 실행이 보장되는 코드 블록입니다.그러하여 일반적으로 finally에는파일 스트림 (FileInputStream, FileOutputStream 등)네트워크 소켓 연결 (Socket)데이터베이스 연결 (Connection)그래픽 리소스 등위 항목의 자원을 정리할 때 주로 사용된다고 보시면 되겠습니다. 반드시 위와 같은 경우가 아니더라해도 제가 예제로 보여드린 바와 같이 더 이상 사용되지 않는힙 영역의 객체를 참조를 끊어주기 위해서도 종종 사용된다고 보시면 되겠습니다.
- 0
- 2
- 85
질문&답변
강의 영상 오류
수정하여 다시 업로드했습니다.불편함을 드려 죄송합니다.그리고 감사드립니다~!
- 0
- 1
- 62