전체 글

전체 글

    [유닉스 시스템 프로그래밍] Ch08. 메모리 매핑

    [유닉스 시스템 프로그래밍] Ch08. 메모리 매핑

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch07. 시그널 학습목표 통신프로그램이 무엇인지 이해한다. 메모리 매핑을 이용한 IPC 기법을 이해한다. 메모리 매핑 함수를 사용해 프로그램을 작성할 수 있다. 목차 1. 메모리 매핑의 개념 2. 메모리 매핑 함수 3. 메모리 매핑 해제 함수 4. 메모리 매핑의 보호모드 변경 5. 파일의 크기 확장 6. 매핑된 메모리 동기화 7. 데이터 교환하기 1. 메모리 매핑의 개념 메모리 매핑 - 파일을 프로세스의 메모리에 매핑 - 프로세스에 전달할 데이터를 저장한 파일을 직접 프로세스의 가상 주소 공간으로 매칭 - read, write 함수를 사용하지 않고도 프로그램 내부에서 정의한 변수를 사용해 파일에서 데이터를 읽거나 쓸 수 있음 메모리 매핑과..

    [Python] 수식 최대화

    [Python] 수식 최대화

    programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 파이썬 코드 # 우선순위가 낮은 기호를 기준으로 split() def calc(priority, n, expression): if n == 2: # 마지막 인덱스일 경우 기호 상관없이 eval()에서 연산 수행하면 됨 return str(eval(expression)) if priority[n] == '*': res = eval('*'.join([calc(priority, ..

    [Head First Design Patterns] 07 어댑터 패턴과 퍼사드 패턴

    [Head First Design Patterns] 07 어댑터 패턴과 퍼사드 패턴

    (본 강의 노트는 한빛 미디어의 [Head First Design Patterns]책을 기반으로 하고 있습니다) 07 어댑터 패턴과 퍼사드 패턴 Adapter Pattern & Facade Pattern 07-01. Adapter Pattern 목적 클래스의 인터페이스를 클라이언트가 원하는 형태의 또다른 인터페이스로 변환. 어댑터는 호환되지 않는 인터페이스 때문에 동작하지 않는 클래스들을 함께 동작할 수 있도록 만들어줌 (aka. Wrapper in Java) 어댑터 패턴 정의 디자인 패턴 요소 요소 설명 이름 어댑터(Adapter) 문제 사용 객체의 API가 서로 다름 해결방안 함수를 변환하는 객체를 중간에 넣음 결과 변경 최소화 객체를 감싸는 역할을 함(Object Wrapping) - 서로 호환되지..

    [C++] 키패드 누르기

    [C++] 키패드 누르기

    programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr ver 1.0 거리계산 배열 이용하기 github.com/jiminAn/Algorithm/blob/master/etc/Programmers_2020_kakao_Internship1_ver1.0.cpp jiminAn/Algorithm SW Expert Academy 알..

    [유닉스 시스템 프로그래밍] Ch07. 시그널

    [유닉스 시스템 프로그래밍] Ch07. 시그널

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch07. 시그널 학습목표 시그널의 기본 개념을 이해한다. 시그널을 보내는 방법을 이해한다. 시그널을 받아서 처리하는 기본적인 방법을 이해한다. 시그널 집합의 개념과 사용방법을 이해한다 sigaction 함수를 사용해 시그널을 처리하는 방법을 이해한다. 알람 시그널의 처리방법을 이해한다. 시그널 관련 기타 함수들의 사용방법을 이해한다. 목차 1. 시그널의 개념 2. 시그널의 종류 3. 시그널 보내기 4. 시그널 핸들러 함수 5. 시그널 집합 6. sigaction 함수의 활용 7. 알람시그널과 인터벌 타이머 8. 기타 시그널 관련 함수 01. 시그널의 개념 시그널이란? 소프트웨어 인터럽트 프로세스에 뭔가 발생했음을 알리는 간단한 메시지를 비..

    [Head First Design Patterns] 06 커맨드 패턴

    [Head First Design Patterns] 06 커맨드 패턴

    (본 강의 노트는 한빛 미디어의 [Head First Design Patterns]책을 기반으로 하고 있습니다) 06 커맨드 패턴 Command Pattern 목적 - 요구사항(요청, 명령)을 객체로 캡슐화시킴. 이를 이용해서 다른 요구사항을 지닌 클라이언트를 매개변수화 시킬 수 있고, 요구사항을 큐에 넣거나 로그로 남길 수 있으며 작업 취소(undo) 기능을 지원할 수도 있음 요소 설명 이름 커맨드(Command) 문제 사용 객체의 API가 서로 다름 해결방안 실행과 요청을 분리 결과 작은 클래스가 많아지지만, 객체 사용에 필요한 복잡성을 제거하고 감춤(함수 이름이 동일해짐) 커맨드 패턴 클래스 다이어그램 문제(1) - 홈오토메이션용 리모컨 1. 사용하려는 객체가 많고, API가 서로 다른 경우 - 차..

    [Programming Language Pragmatics] 06 Control Flow(1)

    [Programming Language Pragmatics] 06 Control Flow(1)

    [06 Control Flow (1) ] 6.0~6.1.2 Table of Contents 6.0 Introduction 6.1. Expression Evaluation - 6.1.1 Precedence and Associativity - 6.1.2 Assignments 6.0 Introduction Control flow or ordering in program execution Sequencing : 절차지향언어에서는 기본적으로 순차적으로 코드 실행 Selection(alternation) : 조건문 : 특정 런타임 컨디션에 의존함, 가장 자주 볼 수 있는 구조의 조건문은 if 와 case(switch) 문임 Iteration : 반복문 : 반복적으로 특정 부분의 코드가 실행됨 예로는 for/do, ..

    [Programming Language Pragmatics] 03 Names, Scopes, and Bindings(3)

    [Programming Language Pragmatics] 03 Names, Scopes, and Bindings(3)

    (해당 강의노트는 Michael L. Scott의 [Programming Language Pragmatics: 4th edition] 책을 기반으로 작성되었습니다) [ 03 Names, Scopes, and Bindings(3)] 3.4~3.7 Table of Contents 3.4 Implementing Scope - 3.4.1 Symbol Tables - 3.4.2 Association Lists and Central Reference Tables 3.5 The Meaning of Names within a Scope - 3.5.1 Aliases - 3.5.2 Overloading - 3.5.3 Polymorphism and Related Concepts 3.6 The Binding of Refere..