분류 전체보기 323

[ 리눅스 마스터 ] 3. 디렉터리 구조 및 역할

1. 디렉터리 종류와 특징 / : 루트 디렉토리 /bin : 바이너리. 기본명령어 들어있음 /boot : 부팅파일 (grub, config ...) /dev : 장치파일 (disk, cpu...) /etc : 서비스의 환경설정파일, 부팅, 실행, 스크립트 파일 등 /home : 사용자 홈 디렉토리 생성 위치 /lib : 라이브러리. 언어해석기 /lost+found : fsck사용. 시스템복구용으로 사용됨 /mnt : 원격장치 사용시 경로 /media : 로컬장치 사용시 디렉토리 /opt : 응용프로그램이 설치될 때 /misc : autofs 사용시 기본적으로 사용됨. 자동 파일 시스템 /root : 관리자 디렉토리 /sbin : 시스템 바이너리 약자. 시스템 명령어. root만 사용 /tmp : 임시저장..

OS/Linux 2021.08.06

[ 리눅스 마스터 ] 2. 리눅스 구조

1. 부트 매니저 부팅을 도와주는 프로그램. 하나의 컴퓨터에 다양한 O/S가 있을 경우 선택해서 부팅할 수 있게 도와줌. MBR에 설치됨. (HDD의 맨 앞에 위치. 0번째 섹터. 512Byte. 부트매니저 프로그램+파티션 정보 저장) GRUB이 대표적. 여러 파일시스템을 지원하며 커널의 인자 조정이 가능하여 동적인 부팅을 지원함. a : grub.conf에서 kernel과 관련된 매개변수를 추가할 수 있음. e : grub.conf에서 부팅 목록의 모든 항목을 직접 편집 가능. c : 상호 대화식으로 명령어 입력 가능 2. GRUB의 환경설정 파일 '/boot/grub/grub.conf' - boot : 부팅이 되는 HDD 지정 하기. - default : 전원을 켰을 때 기본적으로 부팅되는 운영체제를..

OS/Linux 2021.08.06

[ 리눅스 마스터 ] 1. 하드웨어

하드웨어 자동으로 인식가능. (최신기기는 수동으로 등록) 하드디스크 드라이브 IDE /dev/hda 에 마운팅됨 SCSI : 직렬화 구조. SATA : 하드디스크 드라이브의 속도와 연결 방식을 개선함. /dev/sda 에 마운팅됨 3. 모니터와 비디오 어댑터 X-window 기반의 GUI 환경에서 중요 4. 네트워크 인터페이스 이더넷(근거리통신규격. 2계층. CSMA/CD 충돌장치. Intel이 대표적) 모뎀(변조, 복조기) ATM, ISDN 지원. 무선랜 지원. 기본적으로 IP주소, 넷마스크, 게이트웨이, DNS서버(자동) 사용하여 네트워킹함. 5. CD-ROM 및 DVD-ROM 파일 형식. /dev/cdrom(원본은 /dev/sr0)에 심볼릭 링크 파일이 생성됨 6. RAID 여러개의 HDD에 데이..

OS/Linux 2021.08.06

[ Python : 동시성과 병렬성 문법 배우기 ] 3. Concurrency CPU Bound, I/O Bound

1. Concurrency 논리적인 개념 CPU의 가용성을 극대화함. 싱글코어에 멀티스레드 패턴을 사용함. 일정량을 처리 후 다음 작업으로 넘김. 제어권을 주고받으며 작업하는 패턴 (vs Parallelism) 물리적. 멀티코어. 별개의 작업 처리 후 합침 2. Blocking I/O vs Non-Blocking I/O Blocking I/O : 시스템 콜 요청시 커널 I/O 작업 완료시까지 응답을 대기함. 제어권을 커널이 소유. 응답전까지 대기(block) -> 다음 작업 수행 X Non-Blocking I/O : 커널 I/O 작업 완료 여부 상관없이 즉시 응답. 주기적으로 시스템 콜을 통해서 I/O 작업 완료 여부 확인 Async : I/O 작업 완료 여부에 대한 Noty는 커널에서 유저로 전달됨 S..

Python 2021.08.01

[ Python : 동시성과 병렬성 문법 배우기 ] 2. Parallelism with Multiprocessing

1. Process vs Thread, Parallelism Parallelism : 완전히 동일한 시점에 태스크를 실행함. 다양한 파트로 나누어서 실행. (합 나누어서 구하고 취합하기) 하나의 코어가 아님. 멀티 프로세싱을 사용함 동시성 1개의 싱글코어에서 멀티쓰레드. 번갈아가며 처리. 컨텍스트 스위칭이 빠름 병렬성 멀티코어에서 각자의 일 끝내고 합침. 2. Join, is_alive 'multiprocess.Process' 모듈 사용 프로세스를 생성할 수 있음. start() : 실행 terminate() : 종료시키기 join() : 자식프로세스 끝나기 전까지 기다린 후 종료하기 is_alive() : 프로세스 상태 출력 3. Naming, Parallel Processing 생성자의 첫번째 필드에..

Python 2021.08.01

[ Python : 동시성과 병렬성 문법 배우기 ] 1. Multithreading

* 이 포스팅은 인프런강의 "동시성과 벙렬성 문법 배우기" 강의를 듣고 공부한 내용의 포스팅임 1. Multithreading Difference between Process and Thread 프로세스 : 운영체제에서 할당 받는 자원 단위 cpu동작 시간, 주소 공간(독립적)을 할당받음. 파이프, 파일, 소켓으로 프로세스간 통신 (context switching) 스레드 : 프로세스 내 실행단위. 프로세스 자원 사용. stack만 별도이며 나머지는 공유함. 메모리를 공유하며 한 스레드가 다른스레드에 영향을 끼침 -> 동기화가 필요함 멀티 스레드 : 여러 스레드로 구성 후 처리. 교착상태 발생가능 자원 소모가 감소고 통신 부담도 적어지지만 디버깅이 어려움 멀티 프로세스 : 문제 시 프로세스를 죽임. 캐시..

Python 2021.08.01

[Python 고급] 2. Meta class

* 이 포스팅은 인프런의 "파이썬 고급 (필수문법+오픈소스 패키지 배포)" 강의를 듣고 공부한 포스팅임 1. Meta class 모든 클래스를 칭함 클래스를 생성하는 과정에서 커스텀하는 과정의 역할을 수행함 (프레임워크 작성 시 필수) 동적 생성 type : 모든 클래스의 원형이며 커스텀 생성 함수임. 검증에 자주 사용됨 (엄격하게 class 생성 과정에 영향을 받음) 2. type 동적 클래스 생성 type( name, bases(상속을 받을 클래스), dict(인스턴스 메소드, 필드 등 값 전달) ) -> 클래스가 생성됨 3. 메타클래스 상속 metaclass 속성 사용하여 커스텀 메타 클래스를 생성함. 타입 상속 __new__() : 클래스 인스턴스를 생성함 초기화 __init__() : 인스턴스 ..

Python 2021.08.01

[Python 고급] 1. variable scope, context Manager

1. variable scope 전역변수 지역에서 읽을 수 있음 지역에서의 지역변수와 전역변수의 이름이 같을 때, 전역 변수 선택 시 'global' 키워드 붙여주기 nonlocal 키워드 (global 객체도 아니고 inner block의 변수도 아니므로) closer의 변수에 접근 시 선언식으로 키워드 사용하기 locals() 내부필드-메서드(지역전체) 를 dict로 리턴함 globals() 전역함수/변수를 dict로 리턴 키값에 접근해 값 변경가능 2. Context Manager 원하는 타이밍에 정확하게 리소스를 할당 및 반환 해줌 파일 I/O 시에 전용 클래스로 사용함. with 문과 같이 쓰임 __enter__(self) : with 구문에 진입하는 시점에 자동으로 호출되는 메소드 __exit..

Python 2021.07.31

[Python 중급] 2. 파이썬 병행성

* 병행성(Concurrency) : 한 컴퓨터가 여러일을 동시에 실행함. -> 내가 한 일들의 마지막 시점을 알아야 함. * 병렬성(Parallalism) : 여러 컴퓨터가 여러 일을 동시에 실행 1. 병행성 iterator : 반복가능한 객체를 생산함(iterable) __iter__ : 반복가능한 객체의 함수. 이터레이터가 생산됨. 반복시 iter()함수로 인자 1개씩 접근함 ( next() ) Generator 반복 가능한 객체를 리턴함. 코루틴과 연동하며 작은 메모리 조각을 뜻함. yield시 next()호출시에 리턴할 변수를 출력함. 다음 yield로 이동함 Coroutine 단일 싱글 스레드 스택 기반 비동기 작업 * 스레드(멀티스레드) OS에서 관리. CPU 코어에서 실시간, 시분할 비동기..

Python 2021.07.31

[Python 중급] 1. 파이썬 클래스, 시퀸스, 일급함수

* 이 포스팅은 인프런의 '파이썬 중급' 강의를 듣고 요약한 내용임 1. 파이썬 클래스 심화 클래스 & 메소드 클래스 기반의 개발은 객체지향 개발법으로 코드 재사용을 통하여 중복을 크게 줄일 수 있다. 데코레이터 클래스 메소드 : @classmethod 스태틱 메소드 : @staticmethod (인스턴스나 클래스로 호출이 가능함) 2. 파이썬 데이터 모델 매직 메소드 클래스 안에 정의 할 수 있는 특별한 method - 파이썬의 핵심 구조 built-In : 이미 만들어짐 모든 데이터 타입은 '클래스'임 __add__(), __str__(), __sub__(), __le__(), __ge__() 데이터 모델 추상화 데이터 모델 설계 - NamedTuple : Tuple + dictionary 키, 값을..

Python 2021.07.31