반응형

전체 글 169

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

Git과 GitHub _ (1) 개인 프로젝트 관리

GitHub Token 예전 GitHub에서는 인증할 때 아이디/패스워드를 사용해서 로그인 인증을 했는데2020년 7월 이후 깃헙 정책변경으로 토큰 인증이 필수적이라고 합니다. 그리고 지금 2024년 11월 30일 기준으로 봤을 때PAT ( Personal Access Token ) 이 아닌 Fine-grained Token 이 새로 생겼네요. 위 Fine-grained Token은 2022년 10월에 베타버젼으로 출시 되었고2023년 7월에 정식으로 출시된 토큰이라고 합니다. 기존에 있던 Personal Access Token과 비교해봤을 때 주요 특징은1. 리포지토리(저장소) 단위로 접근 권한을 설정할 수 있음. 2. 각 권한에 대해 읽기/쓰기 수준을 개별적으로 지정할 수 있음. 3. 만료 기간을 최..

Program/GitHub 2024.11.30

좋은 프로그램이란 무엇인가?

참고해보면 좋은 블로그 글조엘 온 소프트웨어 (1)https://opencv-master.tistory.com/180 조엘 온 소프트웨어 _ 비트와 바이트 : 프로그래밍 실전(1)2장 기본으로 돌아가기기본으로 돌아가기에서는 문자열을 덧붙이는 strcat 이라는 함수를 예시로들며 나오게 됩니다.위 2장에 대한 저의 생각을 작성하기 전에 잠깐 이 함수에 대해서 알아보겠습opencv-master.tistory.com 조엘 온 소프트웨어 (2)https://opencv-master.tistory.com/182 조엘 온 소프트웨어 _ 비트와 바이트 : 프로그래밍 실전 (2)5장 ~ 8장 손쉬운 기능명세 작성법 기능 명세의 중요성 프로젝트를 시작하기 전 기능명세 작성에 대한 중요성은 5장에 나오는 아래 3문장으로 ..

독서 2024.11.28

조엘 온 소프트웨어 _ 비트와 바이트 : 프로그래밍 실전 (3)

11장 고리타분한 버그 수정 고리타분한 버그수정에 관련해서는 중요한 핵심내용만 짚고 넘어가고싶습니다. 버그를 모두 수정하는 작업이 어떤 값어치가 있는지 계산기를 두드려 보십시오.저는 이 챕터 제목이 11장을 모두 대신한다고 생각했습니다. 개발자분들이라면 아시겠지만 프로그램을 제작하고나서 배포를 하게되면 어쩔수없이 버그들이 발견되곤합니다.그런데 여기서 이 버그들을 바로 수정해야할지 혹은 이정도 버그들은 지금 바로 수정하지 않고, 넘어가도 될지 판단하기가 모호할때가 있습니다. 그럴때에는 위 제목처럼 이 버그를 모두 수정하는 작업이 "어떤 값어치가 있는지"를 계산해보는 것입니다.버그를 수정해야하는가? 아니면 다른 효율적인 기능들을 추가하는 작업에 시간을 사용해야하는가? 이에 관련된 아주 좋은 예가 2가지 나오..

독서 2024.11.27

조엘 온 소프트웨어 _ 비트와 바이트 : 프로그래밍 실전 (2)

5장 ~ 8장 손쉬운 기능명세 작성법 기능 명세의 중요성 프로젝트를 시작하기 전 기능명세 작성에 대한 중요성은 5장에 나오는 아래 3문장으로 요약할 수 있습니다." 모든 사람이 명세서 작업을 해야 한다고 생각은 하지만, 아무도 명세서 작업을 하지 않습니다. "" 명세서 작업을 하지 않는 관례는 소프트웨어 프로젝트에서 가장 크고 불필요한 위험 요인을 짊어지는 행동입니다. "" 명세서 작업을 생략하고 바로 코드 작성으로 뛰어드는 프로그래머나 소프트웨어 개발자일수록 놀라 자빠질 정도로 생산성이 낮습니다. 즉 형편엇는 코드를 작성하거나 조잡한 소프트웨어를 양산하며, 결국 전혀 쓸데없는 거대한 위험을 자초해 프로젝트를 위협합니다. " 그런데 저는 위 내용을 보면서 ' 팀단위로 거대한 프로젝트를 진행하기 위해서는 ..

독서 2024.11.26

C# _ Interface

오늘은 c#에 있는 Interface 키워드에 대해서  대해서 알고보고자 합니다. 목차인터페이스란?인터페이스의 기본 개념클래스와 인터페이스의 차이점인터페이스 구현하기기본 구현방법다중 인터페이스 구현 예시인터페이스 구현 시 주의사항실무에서 자주 사용되는 인터페이스 패턴의존성주입(DI)에서의 활용Repository 패턴 예시전략 패턴 구현하기C# 8.0 이후의 인터페이스 새로운 기능기본 구현 메서드정적 메서드프라이빗 메서드  인터페이스란? 인터페이스 기본 개념인터페이스는 조금 추상적으로 느껴질 수 있지만, 실제로는 매우 실용적인 개념입니다.쉽게 말해서 인터페이스는 '이런 기능은 반드시 있어야 해!' 라고 정의해놓은 설계도와 같습니다. 기본적인 인터페이스 코드를 한번 보겠습니다. public interface..

Program/C# 2024.11.24

조엘 온 소프트웨어 _ 비트와 바이트 : 프로그래밍 실전(1)

2장 기본으로 돌아가기기본으로 돌아가기에서는 문자열을 덧붙이는 strcat 이라는 함수를 예시로들며 나오게 됩니다.위 2장에 대한 저의 생각을 작성하기 전에 잠깐 이 함수에 대해서 알아보겠습니다.( 이렇게 코드를 설명하는 내용은 책에 많지않아 코드에 대한 내용은 간간히 작성할 것 같습니다. ) strcatstrcat 이라는 함수는 C/C++ 언어에서 기본적으로 사용되는 문자열을 연결하는 함수입니다.해당 함수의 코드구성을 살펴보면 아래와 같습니다.char* strcat(char* dest, const char* src){ char* original_dest = dest; // 원본 포인터 저장 // 1. dest의 널 종료 위치로 이동 while (*dest != '\0') { ..

독서 2024.11.23
반응형