길벗 출판사에서 제공받아 작성하였습니다. 개발 블로그를 열심히 썼던 경험이 있고 지금 개발일을 하고 있지만 자연스럽게 알게 되는 것은 좋은 코드를 짜는 것 만큼이나 잘 설명하는 것의 중요성을 더욱 느끼게 됩니다. 실제로 업무에서 문제를 해결하는 과정은 단순히 정답을 찾는 것이 아니라왜 그 선택을 했는지를 기록하고 공유하는 과정까지 포함된다고 생각합니다. 그런 이유로 블로그를 운영했고 (지금도 마음은 있지만 체력이 안 따라 주는 상황ㅎㅎ;;)글을 쓸 때 마다 "이게 정말 누군가에게 도움이 될까?"라는 생각에 사로잡히고는 했습니다.글에 내용이 깊지 않고 요즘은 AI에게 물어보면 블로그 글 보다 훨씬 양질의 내용으로 알려주기 때문인데요 그 와중에 이 책을 읽게 되었고1부에서 부터 "왜 쓰는가", "무엇을 ..

전체 글
이번 도서 리뷰는 길벗체험단에 선정되어 제공받았습니다. 업무를 진행하면서 장비에서 수집되는 데이터를 기반으로 이상 여부를 판별하고로직을 설계하고 개선하는 업무를 하고 있습니다. 최근에는 AI를 활용한 자동화와 분석 효율 향상에도 관심이 많아다양한 방식으로 시도하고 있으며, 간단한 테스트 환경을 구성할 때 데이트 흐름을 검증하는 프로젝트도 하고 있습니다. 이런 업무를 하다 보면 단순히 알고리즘을 구현하는 것을 넘어데이터 자체를 얼마나 잘 이해하고 해석하느냐가 결과에 크게 좌우 한다는 점을 자주 느낍니다. 실제 현장 데이터는 불규칙한 패턴이 섞여 있는 경우가 많고이를 어떻게 정제하느냐에 따라 분석 방향이 완전히 달라질 때도 있습니다. 데이터 분석 역량은 어떤 직무라도 기본기라고 생각해 왔고 배우고 싶던 차에..
왜 쿠버네티스인가? : 개발자의 고민저는 꽤 오랜 시간 C# 기반 장비 제어 소프트웨어를 개발해 왔습니다.과거에는 단일 장비에 설치형 프로그램만 배포하면 끝이었지만,최근에는 수십대의 장비 상태를 실시간으로 모니터링하고,빈번하게 하는 업데이트를 설비 다운 없이 배포해야 하는 상황에 직면했습니다. 기존의 방식으로는 유지보수의 한계가 명확했고, 결국 팀에서는 컨테이너 환경의 도입을 결정했습니다.하지만 막상 처음 접해보는 환경에 막막함이 앞섰습니다. 컨테이너 개념돠 낯선데, 파드니 디플로이먼트니 하는 용어들은 공부해야 하는 짐처럼 느껴졌습니다.이론서들은 너무 딱딱했고, 실습 위주의 책들은 큰 그림을 그려주지 못했습니다. 그림으로 잡히는 '큰 틀'이 책의 가장 큰 장점은 제목 그대로 '그림' 입니다. 텍스트로만..
저는 현업에 있으면서 늘 새로운 도구와 기술이 나오면 한 번씩은 써보는 것을 즐기고 있습니다.최근 AI 기반 개발 도구들이 급격히 발전하면서, IDE만 잘 다루면 되는 시대는 끝나간다는 생각을 자주 하게 됩니다. 그런 의미에서 클로드 코드는 단순한 코드 보조 도구를 넘어,개발 워크플로우 전체를 혁신할 수 있다는 점에서 매우 흥미로웠습니다. 책은 총 4주차 까지 월화수목금 하루씩 내용을 읽을 수 있게 구분해 둬서 좋았고 저는 아직 2주차 까지 읽었는데 이때까지의 느낀 점과 책의 내용을 정리했습니다. | 1주차 : 설치부터 첫 실습까지 책의 첫 주차는 클로드 코드를 설치하고 실행하는 기본 과정부터 시작합니다.설치 과정은 생각보다 간간했고, 명령어 기반 인터페이스는 개발자인 저에게 친숙했습니다.특히, 내장..
이번 포스팅은 C# Winform에서 DataGirdView 도구에 자동으로 행 번호를 넣는 방법에 대해 알아보겠습니다.| DataGridView 기존 열 생성Form에 DataGridView를 생성하고 Col1, Col2, Col3이라는 열을 생성했습니다.기존에는 데이터를 늘려도 앞에 행 번호가 없는 것을 확인할 수 있습니다. | DataGridView에 행 번호 추가하기 DataGridView 속성에서 이벤트 항목의 RowPostPaint를 설정합니다.RowPostPaint 이벤트는 각 행이 그려질 때마다 호출되는 이벤트입니다.더블 클릭하면 이벤트가 자동으로 만들어지니까 활용해 보세요! 그리고 만들어진 RowPostPaint 이벤트 메서드에 코드를 작성합니다. private void dataGrid..
프로젝트를 진행하거나 레거시 코드를 보다 보면 Action과 event 키워드를 많이 사용하는 것을 볼 수 있습니다. 이번 포스팅은 Action과 event의 개념적 차이와 예시를 통해 정리하겠습니다.| 기본 개념 이해기본적으로 Action과 event는 모두 메서드의 실행을 전달하는 역할입니다.하지만 구조와 사용 방식에 차이가 있습니다. ✅ Action이란?Action은 C#에서 제공하는 내장 델리게이트(Delegate) 타입입니다.메서드를 참조하여 실행할 수 있는 포인터 역할을 하며, 반환값이 없는 메서드(=void 메서드)를 참조합니다. public delegate void Action(T obj); // 기본 정의 (System.Action) Action은 최대 16개의 매개변수를 받을 수 있으..
이번 포스팅은 C#에서 사용하는 CancellationToken과 CancellationTokenSource를하나로 묶어 처리하는 기능인 CreateLinkedTokenSource에 대해 작성하였습니다. 📌 CancellationToken과 CancellationTokenSource란?먼저 앞서 비동기 프로그래밍 게시글에서 작성했던 내용이지만 용어 정리를 먼저 하겠습니다.CancellationTokenSource: 취소 요청을 보낼 수 있는 주체입니다. .Cancel()을 호출하면 이와 연결된 CancellationToken에 취소 신호가 전달됩니다.CancellationToken: 취소 요청을 수신하고 감지하는 객체입니다. Task나 메서드에서 이 토큰을 받아들여야 작업 취소를 감지할 수 있습니다...
저는 C#을 주력 언어로 사용하며 "객체지향"은 이론이 아닌 매일 부딪히고 있는 단어였습니다. 특히 장비 제어, 영상 분석, 통신 모듈 등 다양한 컴포넌트를 다루다 보면 코드의 복잡도는 눈덩이처럼 불어났습니다.그리고 그 복잡도를 어떻게 다루느냐에 따라 프로젝트의 생명력, 유지보수의 기간이 달라지곤 했습니다.그런 의미에서 "객체지향시스템 디자인 원칙"은 단순히 객체지향을 설명하는 교과서가 아니라,복잡도와 싸우는 개발자에게 보내는 실전형 지침서라 부르고 싶네요ㅎㅎ 책은 JAVA로 예시 코드와 설명을 진행하였으나, C#과 크게 다르지 않아 읽는데 불편함은 없었습니다.1장. 모든 게 복잡도 관리다 – 현실을 꿰뚫는 도입첫 장부터 강렬했습니다. “소프트웨어 개발은 결국 복잡도를 관리하는 일”이라는 선언은 그간 ..