본문 바로가기

lesson83

빅 엔디안과 리틀 엔디안 빅 엔디안과 리틀 엔디안은 바이트 순서를 나타내는 방식이다. 빅 엔디안은 가장 중요한 바이트(최상위 바이트)가 가장 낮은 주소에 저장된다. 예) 32비트 상에서 0x12345678 => 주소 | 바이트 || ============= 0x001 | 0x12 || 0x002 | 0x34 || 0x003 | 0x56 || 0x004 | 0x78 || 리틀 엔디안은 가장 중요한 바이트가 가장 높은 주소에 저장된다. 예) 32비트 상에서 0x12345678 => 주소 | 바이트 || ============= 0x001 | 0x12 || 0x002 | 0x34 || 0x003 | 0x56 || 0x004 | 0x78 || Intel이나 AMD의 CPU가 대다수 리틀 엔디안을 따르고 있는 편이다. 사실상 PC용으로 .. 2024. 2. 6.
자유 저장소와 자동 메모리 메모리 구조에서 힙과 스택은 각각 자유 저장소와 자동 메모리라는 호칭을 가지고 있다. 먼저 자유 저장소라고 하는 힙 영역에 대해 알아보자. 여기서의 힙은 힙 자료구조와는 다르다는 것을 기억할 필요가 있다. 아래에서 설명할 자동 메모리와 다르게 사용자가 직접 할당하고 해제도 해줘야 한다는 특징이 있다. 다음으로 자동 메모리라고 하는 스택 영역에 대해서 알아보자. 자동 메모리에는 자동변수가 사용이 된다. 자동변수에는 기본적으로 auto라는 키워드가 생략되어 있다. 여기서 메모리는 자동으로 관리된다. 자동으로 관리된다는 말의 의미는 무엇인가? 프로그래머가 신경쓰지 않아도 자동으로 메모리를 해제하기 때문이다. 2024. 1. 28.
시스템 프로그래밍 03. 파일 다루기 01. 개요 02. 파일 정보 검색 파일 정보 검색 : stat(2) SYNOPSIS #include #include #include int stat(const char *pathname, struct stat *statbuf); 파일 기술자로 파일 정보 검색 : fstat(2) SYNOPSIS #include #include #include int fstat(int fd, struct stat *statbuf); 03. 파일 권한 접근 제어 파일 접근 권한 검색 : access(2) SYNOPSIS #include int access(const char *pathname, int mode); 파일명으로 접근 권한 변경 : chmod(2) SYNOPSIS #include int chmod(const ch.. 2024. 1. 25.
시스템 프로그래밍 02. 디렉터리 다루기 01 개요 리눅스에서는 파일은 파일면, inode, 데이터 블록으로 구성된다. inode는 번호로 저장되며, 파일의 소유자나 크기 등의 정보와 실제 데이터를 저장하고 있는 데이터 블록의 위치를 나타내는 주소들이 저장되어 있다. 02 리눅스 파일의 특징 리눅스 파일에는 일반 파일, 특수 파일, 디렉토리로 구분할 수 있다. 03 디렉터리 생성과 삭제 디렉터리 생성 : mkdir(2) SYNOPSIS #include #include int mkdir(const char *pathname, mode_t mode); 디렉터리 삭제 : rmdir(2) SYNOPSIS #include int rmdir(const char *pathname); 04 디렉터리 관리 현재 작업 디렉터리의 위치 검색 1 : getcwd(3.. 2024. 1. 25.
네트워크 프로그래밍 02. 소켓 시작하기 01. 오류 처리 리눅스에서는 errno.h를 통해 오류 코드 확인 err_quit() 함수와 err_display() 함수 02. 소켓 초기화와 종료 윈속 프로그램은 최초 소켓 함수를 호출하기 전에 반드시 윈속 초기화 함수인 WSAStartup() 함수를 호출해야 한다. 이때 사용 가능한 프로토콜은 운영체제에 따라 다르다. 실습 2-1 윈속 초기화와 종료하기 /// 03. 소켓 생성과 닫기 먼저 소켓을 생성해야 한다. 프로토콜에 따른 주소 체계를 알아야 한다. 소켓 타입에 대해 정확하게 알아야 한다. 프로토콜에는 TCP와 UDP가 존재한다. 마지막에는 소켓을 닫는 과정이 필요하다. 실습 2-2 소켓 생성과 닫기 /// 2024. 1. 19.
통계학 시리즈 1장 https://zpub.tistory.com/164 1. 가설검정 zpub.tistory.com 2장 https://zpub.tistory.com/165 2. 상관분석(1/2) zpub.tistory.com 3장 https://zpub.tistory.com/166 3. 상관분석(2/2) zpub.tistory.com 4장 https://zpub.tistory.com/167 4. 회귀분석(1/2) zpub.tistory.com 5장 https://zpub.tistory.com/168 5. 회귀분석(2/2) zpub.tistory.com 6장 https://zpub.tistory.com/169 6. 범주형 자료분석 zpub.tistory.com 7장 https://zpub.tistory.com/170 .. 2024. 1. 11.
네트워크 프로그래밍 01. 네트워크와 소켓 프로그래밍 인터넷 통신 수행 개체는 호스트와 라우터로 구성된다. 이 때 따라야 하는 규칙이 있다. 이를 통신 프로토콜이라고 한다. 여기서 흔히 L1 ~ L7 스위치라고 부르는 장비들의 명칭이 유래한다. 여기서 각 계층 별로 프로토콜의 구조가 다양하게 존재하는데, 응용 계층 -> TELNET, FTP, HTTP, SMTP... 전송 계층 -> TCP / UDP 인터넷 계층 -> IP 네트워크 접근 계층 -> 장치 드라이버, 네트워크 하드웨어 로 구성된다. TCP와 UDP에 대한 차이점도 꼭 집고 갈만한 주제이다. TCP(Transmission Control Protocol) UDP(User Datagram Protocol) 연결형 프로토콜 - 연결이 설정된 후 통신이 가능하다. 비연결형 프로토콜 - 연결 없이 통신 .. 2024. 1. 4.
네트워크 프로그래밍 00. 시작 목표: TCP/IP 소켓 프로그래밍 공 기간: 2023.12.25 ~ 2023.12.29 (5일) 참고도서: TCP/IP 소켓 프로그래밍 리눅스를 위주로 사용 https://product.kyobobook.co.kr/detail/S000061352062 TCP/IP 소켓 프로그래밍 | 김선우 - 교보문고 TCP/IP 소켓 프로그래밍 | 네트워크 프로그래밍의 체계적인 학습다양한 소프트웨어 프레임워크를 사용해 손쉽게 결과물을 만들어낼 수도 있지만 저수준의 기술을 아예 모르면 문제 발생 시 대처 product.kyobobook.co.kr Chapter 01 네트워크와 소켓 프로그래밍 https://zpub.tistory.com/269 네트워크 프로그래밍 01. 네트워크와 소켓 프로그래밍 인터넷 통신 수행 개체.. 2023. 12. 27.
시스템 프로그래밍 01.리눅스/유닉스 시스템 프로그래밍의 이해 01. 리눅스/유닉스 시스템 프로그래밍이란 - 시스템에서 제공하는 시스템 콜을 이용해 프로그램 작성하기 -대다수 시스템 프로그래밍은 리눅스 기반으로 진행됨 02. 리눅스/ 유닉스 시스템 표준 - POSIX라는 유닉스 기반 인터페이스에 대한 이해 필요 - ANSI C 표준을 준수해야 한다 - 리눅스에서 안드로이드 등 우리가 일반적으로 많이 쓰는 운영체제들도 많이 파생되었다. 03. 시스템 프로그래밍 - 시스템 호출과 C언어 라이브러리는 실행 과정이 다르다. - man 명령어를 통해 각 함수가 시스템 호출인지 라이브러리 함수인지 알 수 있다. - 명령어에 대한 설명은 1번, 시스템 호출은 2번, 라이브러리 함수는 3번 섹션에 위치하고 있다. - errno-base.h에서 오류 코드 확인할 수 있다. #ifn.. 2023. 12. 15.
정규 표현식 01. 집합, 문자 클래스 01) 집합 - 대괄호, []은 집합을 나타내는 기호 -하이픈(-)은 범위를 나타내는 기호 - 캐럿(^)은 not을 의미한다. 문자 클래스: 위의 이론적 내용에 대한 복습을 위해서 리트코드 125번 문제를 가져와보겠다 https://leetcode.com/problems/valid-palindrome/ Valid Palindrome - LeetCode Can you solve this real interview question? Valid Palindrome - A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, .. 2023. 12. 15.