반응형

전체 글 165

주니어 개발자와의 협업에 대한 생각

어떻게하면 주니어 개발자를 효과적으로 매니징하면서 프로젝트의 품질과 팀의 생산성을 높일 수 있을까?를 고민하며작성한 글로 다른 분들께도 도움이 되었으면 합니다. 1. 관리직이 직면한 현실적 고민저는 Vision과 Motor 구조 설계에 4~5년 경험이 있는 개발자였습니다. 그런데 올해 사업을 준비하면서 제 주요 업무는 투자 유치와 관련된 비개발 업무로 이동했습니다.이 과정에서 개발의 주요 부분을 2년차 주니어 개발자에게 위임해야 하는 상황에 놓였고, 곧 몇 가지 현실적인 문제에 직면하게 되었습니다.주요 문제:주니어 개발자가 구상된 기능을 제대로 구현하기 어려운 경우가 발생함.필요한 기능만 구두로 전달하고 "알아서 해봐"라는 방식의 위임은 시간을 벌 수 있지만 오히려 혼란과 비효율을 초래할 수 있음.기술 ..

Program/생각 2025.01.14

C# 프로젝트 Error 정리

프로젝트를 베이스부터 만들던 도중 나오는 에러들에 대해서 해당 글에 정리한다. 1. OpencvSharp 로드 에러System.TypeInitializationException: 'The type initializer for 'OpenCvSharp.Internal.NativeMethods' threw an exception.'DllNotFoundException: Unable to load DLL 'OpenCvSharpExtern' or one of its dependencies: 지정된 모듈을 찾을 수 없습니다. (0x8007007E)  현재 위와같은 에러가 발생하였는데 구글 서칭과 클러드에게 물어보니 아래와같은 답변이 돌아왔다.Any CPU는 프로그램이 32비트(x86)와 64비트(x64) 환경 모두..

Program/C# 2025.01.08

장비/설비 모듈 설계 (1)

FA(Factory Automation) 장비와 설비 개발에서는 모듈 구성과 설계 방식이 작업 효율성과 유지보수성에 중요한 영향을 미칩니다.이번 글에서는 제가 경험한 설계 방법과 더 나아가 이를 개선하기 위한 아이디어를 공유하려 합니다.특히, 많은 장비 개발자들이 사용하는 시퀀스 기반 설계와 이를 더욱 유연하고 확장 가능한 방식으로 발전시키는 방법에 대해 작성해 보겠습니다. 1. FA 장비의 모듈 구성FA 장비는 기본적으로 다양한 기능별로 구분된 모듈로 구성됩니다.제가 경험한 대부분의 설비들은 아래와 같은 주요 모듈로 나뉘었습니다.VISION 모듈: 카메라와 검사 라이브러리 및 딥러닝등을 이용해 제품이나 공정을 검사.MOTOR 모듈: 모터 제어 (이동, 보간, 축 상태 수집) 등의 작업 수행.DIO 모듈..

Program/Design 2024.12.21

C# netDxf 라이브러리 (1)

오늘은 C#의 Nuget 패키지 중 하나인 netDxf 라이브러리에 대해 알아보려 합니다.기존 프로젝트에서 dwg 도면을 읽어와야하는게 메인이기 때문에 가장 많이 사용하는 라이브러리 중 하나이기도 합니다. 우선 netDxf 라이브러리에 대한 목차입니다.netDxf 라이브러리 시작하기netDxf란?라이브러리 소개주요 특징기본 사용법NuGet 패키지 설치DXF 파일 생성하기DXF 파일 읽기실전 활용기존 도면에 도형 추가하기 (선, 원, 폴리라인)레이어 관리기존 도면에 도형 추가하기  텍스트 추가하기   netDxf란?netDxf는 AutoCAD DXF 파일을 읽고 쓸 수 있게 해주는 오픈소스 .NET 라이브러리입니다. 이 라이브러리를 사용하면 복잡한 DXF 파일 포맷을 이해하지 않아도 손쉽게 CAD 파일을 ..

Program/C# 2024.12.16

C# 유닛(단위)테스트(2)

기존 프로젝트에서 유닛 테스트 추가하기앞서 유닛(단위)테스트(1)에서는 유닛 테스트 작성 방법에 대해 알아보았습니다.https://opencv-master.tistory.com/190 C# 유닛(단위)테스트(1)오늘은 C#에서의 유닛(단위) 테스트에 대해 알아보려 합니다. C#에서 유닛(단위) 테스트란?유닛 테스트(Unit Test)는 프로그램의 작은 조각(주로 클래스나 메서드)이 올바르게 작동하는지 검증하는opencv-master.tistory.com 이번에는 이미 존재하는 프로젝트에 유닛 테스트를 추가하는 방법을 단계별로 살펴보겠습니다.기존 프로젝트에서 유닛 테스트를 작성하려면 테스트 프로젝트를 새로 생성하여 기존 프로젝트를 참조하는 방식으로 진행하는 것이 가장 좋은 방법입니다.왜 테스트 프로젝트를 ..

Program/C# 2024.12.09

C# 유닛(단위)테스트(1)

오늘은 C#에서의 유닛(단위) 테스트에 대해 알아보려 합니다. C#에서 유닛(단위) 테스트란?유닛 테스트(Unit Test)는 프로그램의 작은 조각(주로 클래스나 메서드)이 올바르게 작동하는지 검증하는 과정입니다. "유닛(Unit)"은 프로그램의 가장 작은 독립 실행 단위를 의미합니다.쉽게 말해, 코드가 우리가 기대한 대로 동작하는지 자동으로 확인하는 테스트입니다.  유닛 테스트의 종류수동 테스트사람이 직접 입력 값을 넣고 결과를 확인하는 방식.단점: 반복 작업이 많아 시간이 오래 걸림.자동화 테스트테스트 코드를 작성하여 자동으로 테스트를 수행.장점: 반복적으로 실행 가능하고, 실수 확률이 적음.  C#에서 유닛 테스트의 방식C#에서는 주로 다음과 같은 유닛 테스트 프레임워크를 사용합니다.MSTestMi..

Program/C# 2024.12.09

C# 디스크I/O

오늘은 언어에 국한되는 특별한 기능은 아니지만 디스크 I/O에 대해서 구체적으로 알아보고자 합니다. 디스크 I/O란?디스크 I/O (Input / Output)은 컴퓨터 시스템에서 가장 기본적이면서도 중요한 개념입니다.간단히 설명하자면 컴퓨터의 메인 메모리(RAM)와 보조 저장장치 (하드디스크, SSD 등) 사이에서 데이터를 읽고(read)쓰는 (write) 모든 작업 (물리적 동작)을 의미합니다.주요 예시를 살펴보자면1. 하드디스크의 경우 - 실제로 원판(플래터)이 분당 7200번 정도 회전합니다 - 디스크 헤드가 물리적으로 움직여서 데이터가 있는 위치로 이동합니다. - 헤드가 디스크 표면을 읽어서 전기 신호로 변환합니다.2. SSD의 경우 - 전기 신호를 통해 NAND 플래시 메모리 셀에 접근합니다...

Program/C# 2024.12.07

테크스펙의 새로운 중요성과 AI 시대의 변화 ( Chat GPT )

아래 글은 ChatGPT 와 대화한 내용을 ChatGPT가 요약한 내용입니다. 문서가 아니라 '결과'를 위한 테크스펙많은 조직이 테크스펙을 단순히 형식적인 문서 작업으로 여기는 경우가 있습니다. 하지만, 테크스펙은 단순한 기록 이상의 가치를 지닙니다. 테크스펙은 프로젝트의 비전과 세부 실행 계획을 연결하며, 개발팀과 다양한 이해관계자 간의 효율적인 의사소통을 가능하게 합니다. 무엇보다 "문서를 위한 문서 작성"이 아닌, 실질적인 실행과 결과로 이어지는 도구가 되어야 합니다.테크스펙이 왜 중요한가?명확한 의사소통의 핵심 도구프로젝트 초기에는 다양한 부서, 예를 들어 PM, 디자이너, 마케팅 등과의 협업이 필요합니다. 이 과정에서 테크스펙은 모든 이해관계자가 같은 방향을 바라볼 수 있게 하는 역할을 합니다...

Program/생각 2024.12.04

테크스펙의 새로운 중요성과 AI 시대의 변화

아래 글은 Claude.ai와 대화한 내용을 Claude.ai가 요약한 내용입니다.   테크 스펙(Technical Specification)의 모든 것: AI 시대의 새로운 가치 들어가며소프트웨어 개발부터 제조 장비 개발까지, 모든 기술 프로젝트에서 테크 스펙(Technical Specification)은 핵심 문서입니다. 특히 AI 시대를 맞아 테크 스펙의 중요성은 더욱 커지고 있습니다. 이번 글에서는 테크 스펙의 의미부터 실제 활용 방법, 그리고 AI 시대에서의 새로운 가치까지 상세히 알아보겠습니다. 테크 스펙이란?테크 스펙은 기술적 구현 계획을 문서화한 것입니다. 단순한 기능 명세서가 아닌, 프로젝트의 기술적 청사진이자 의사소통 도구입니다. 특히 "문서를 위한 문서"가 아닌, 실제 개발에 도움이 ..

Program/생각 2024.12.04

Git과 GitHub _ (2) 개인 프로젝트 관리 ( 소스트리 )

0. Git-Flow 브랜치 전략 이해하기기본 브랜치 구조는 다음과 같이 잡습니다.main : 제품 출시용 브랜치develop : 개발 진행용 브랜치feature/* : 새로운 기능 개발용 브랜치 ( 예:feature/servo-control )customer/* : 고객사별 버전 관리용 브랜치 ( 예:custoemr/samsung-v1) 1. 초기설정소스트리 설치 후 최초로 해야 할 설정GitHub/Gitlab 계정 연동SSH 키 설정 (보안을 위해 권장).gitignore 파일 설정 (빌드 파일, 임시 파일 등 제외) 2. 저장소 클론저장소 클론New > Clone from URL 클릭원격 저장소 URL 입력 ( 그림2 )로컬 저장소 위치 지정 ( 실제 프로젝트를 진행할 PC 경로 )클론 버튼 클릭d..

Program/GitHub 2024.12.01
반응형