본문 바로가기

분류 전체보기

(65)
아두이노 (Arduino)와 라즈베리파이 (Raspberry Pi) 학부 시절, 아두이노와 라즈베리파이 둘 다 실습해 보았다. 그러나 이 둘이 어떤 차이점이 있고 어떤 용도에 적합한지 생각을 안 해보았는데, 지금이라도 글을 작성해 본다. 라즈베리파이(Raspberry Pi)와 아두이노(Arduino)는 모두 임베디드 시스템이나 전자제어가 필요한 제품에 많이 사용되며, 각각 특징이 다르기 때문에 쓰임새도 조금씩 다르다. 🔌 아두이노 (Arduino)아두이노는 센서나 간단한 하드웨어 제어에 특화된 마이크로컨트롤러이며, 빠르게 반응해야 하거나 반복적인 작업에 적합하다.주로 사용되는 제품/분야:스마트 조명 (예: 움직임 감지해서 불 켜기)자동문/자동 잠금장치온도/습도 조절기드론이나 로봇의 센서 제어DIY 스마트 화분 (토양 습도 측정해서 물주기)장난감, 인터랙티브 아트 (LE..
스택(Stack)과 힙(Heap) 메모리 구조 설명 📌 스택(Stack) 메모리스택은 지역 변수와 함수 호출 정보를 저장하는 메모리 영역입니다.그림에서는 스택(Stack) 메모리가 높은 주소에서 낮은 주소로 자라는 구조로 표현되었습니다. 스택에 저장된 데이터:주소데이터0xB5D37E44CarrayNum2 = 0x1F771163C00 (힙의 배열 주소)0xB5D37E444arrayNum = 0x1F771163C00 (힙의 배열 주소)0xB5D37E440num2 = 5 (값 타입)0xB5D37E43Cnum = 5 (값 타입) ✔ 값 타입(int)인 num과 num2는 직접 값이 저장됨.✔ 참조 타입(int[])인 arrayNum과 arrayNum2는 힙을 가리키는 주소(참조)만 저장됨.📌 힙(Heap) 메모리힙은 참조 타입 객체(배열, 클래스 인스턴스 등..
[C# WinForm] UI 스레드 (메인 스레드) 와 작업 스레드 (백그라운드 스레드) UI 스레드 (메인 스레드)역할:폼과 컨트롤을 생성하고 관리하며, 사용자 입력(클릭, 키 입력 등)과 같은 이벤트를 처리합니다.Windows 메시지 루프(Message Loop)를 통해 모든 UI 이벤트를 순차적으로 처리합니다.특징:UI 업데이트는 반드시 이 스레드에서 실행되어야 합니다.다른 스레드에서 UI에 접근할 경우 Invoke나 BeginInvoke 같은 메서드를 통해 UI 스레드로 작업을 넘겨야 합니다.타이머 관련:System.Windows.Forms.Timer:UI 스레드의 메시지 루프에서 동작하는 타이머입니다.타이머의 Tick 이벤트는 UI 스레드에서 호출되므로, UI 컨트롤의 직접 업데이트가 가능합니다.단, UI 스레드가 바쁘면 타이머 이벤트가 지연될 수 있습니다.작업(백그라운드) 스레드역..
[C# Winform 타이머] System.Windows.Forms.Timer, System.Threading.Timer, System.Timers.Timer System.Windows.Forms.TimerUI 스레드 기반:이 타이머는 Windows Forms 애플리케이션에 최적화되어 있어, UI 스레드의 메시지 루프에 의해 동작합니다.이벤트 발생:타이머 이벤트(예: Tick 이벤트)는 항상 UI 스레드에서 실행되므로, UI 업데이트를 별도의 스레드 동기화 없이 직접 처리할 수 있습니다.정밀도:UI 스레드가 바쁘거나 다른 작업으로 인해 메시지 큐가 밀리면 타이머 이벤트가 지연될 수 있습니다.System.Threading.Timer백그라운드 스레드 기반:이 타이머는 .NET 스레드 풀의 백그라운드 스레드에서 콜백을 실행합니다.이벤트 발생:콜백이 UI 스레드가 아닌 별도의 스레드에서 실행되기 때문에, UI 업데이트가 필요하면 Invoke나 BeginInvoke 같..
프로그램 실행 시 운영체제의 메모리 관리 과정 (가상 메모리, 페이징) 1️⃣ 운영체제가 프로세스에 해당하는 가상 메모리 공간을 할당프로세스가 실행되면, 운영체제는 해당 프로세스만의 독립적인 가상 메모리 공간을 설정함.2️⃣ 당장 실행에 필요한 부분만 RAM에 적재 (지연 로딩, Demand Paging)프로그램 전체를 한 번에 RAM에 올리지 않고, 실행에 필요한 페이지만 RAM에 적재함.이 방식이 지연 로딩(Demand Paging) 이라고 불림.3️⃣ 추가적인 페이지가 필요하면, 페이지 폴트(Page Fault)가 발생하여 RAM에 로드실행 중에 프로세스가 아직 로드되지 않은 메모리를 참조하면 운영체제는 해당 페이지를 HDD/SSD에서 RAM으로 불러옴.4️⃣ RAM 공간이 부족하면 Swap을 활용하여 메모리 관리만약 RAM이 부족하면, 운영체제는 오래 사용하지 않은 ..
브라우저 주소창에 www.naver.com 을 입력했을 때 벌어지는 일 (호스트 파일, DNS, ISP) 1. host 파일 검색2. DNS 캐시 검색3. ISP의 DNS 서버가 DNS 쿼리 보내기4. naver 서버의 IP 주소 획득5. TCP 연결6. HTTP Request7. HTTP Response8. 웹 페이지 로드 1. host 파일 검색host 파일이란 ?호스트 파일은 로컬 시스템에서 사용하는 정적인 호스트 이름과 IP 주소 매핑 정보를 저장하는 텍스트 파일입니다.주로 작은 네트워크 환경이나 로컬 시스템에서 사용되며, 특정 도메인에 대한 IP 주소를 직접 지정할 수 있습니다. 호스트 파일은 windows 기준 아래 경로에서 찾을 수 있습니다.C:\Windows\System32\drivers\etc\hosts# For example:## 102.54.94.97 rhino.acme...
CSR(Certificate Signing Request) 이란? CSR(Certificate Signing Request)CSR은 인증서 서명 요청을 의미하며, 인증서를 발급에 필요한 정보를 포함하는 데이터 형식이다.CSR에는 다음 정보가 포함된다. 1. DN (Distinguished Name, 주체 정보) - 조직명, 도메인 이름, 국가 등 인증서 요청자의 정보2. 공개키 (Public Key) - 인증서에 포함될 공개키 (RSA/ECC 등) 3. 서명 알고리즘 (Signature Algorithm) - CSR을 생성할 때 사용한 해시 및 서명 알고리즘 (e.g. sha256WithRSAEncryption)4. 서명 (Signature) - DN + 공개키를 서명 알고리즘(SHA-256 등)으로 해싱한 후, 개인키로 암호화한 값. 이는 CSR의 무결성을 보장하는 ..
C# 정수 자료형 정수형의 특징 C#은 다음과 같은 미리 정의된 정수 계열 형식을 지원합니다. sbyte -128~127 부호 있는 8비트 정수 System.SByte byte 0~255 부호 없는 8비트 정수 System.Byte short -32,768~32,767 부호 있는 16비트 정수 System.Int16 ushort 0~65,535 부호 없는 16비트 정수 System.UInt16 int -2,147,483,648 ~ 2,147,483,647 부호 있는 32비트 정수 System.Int32 uint 0~4,294,967,295 부호 없는 32비트 정수 System.UInt32 long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 부호 있는 64비트 정수 S..
2024년 목표 1. 대학원 진학 - 연세대학교 공학대학원 컴퓨터소프트웨어 - 한양대학교 공학대학원 컴퓨터공학 - 서강대학교 정보통신대학원 소프트웨어공학 교육과정표를 바탕으로 내게 맞는 학과 및 학교 선택하기(최소 3개 대학원)
2월 업무정리 1. 개발환경 구축 매뉴얼 제작 - 안드로이드 스튜디오 개발 환경 추가 필요 - 신규 입사자분들께 지속적으로 피드백 받은 후 보완 2. 사내 플랫폼 모니터링 - 장애예측 충전기 모니터링 - 미충전종료 충전기 원인 분석 -> 로그 분석을 통한 에러 내용 및 원인 파악, 실제 코드상에서 해당 에러 내용이 어디에 정의되어있고, 어떻게 처리되고 있는지 파악 3. 급속 충전기 UI 프로그램 소스 분석 -> OCPP 1.6 프로토콜 인터페이스 설계서 문서 시간내서 꼼꼼히 보기 4. 내달 주요 업무 1) OCPP FULL 인증 시험 준비 2) SVN 백업 스케줄러 생성 및 테스트