MS 워드 영어 한글 자동 변환 끄기
·
Windows
MS 워드 영어 한글 자동 변환 끄기 마이크로소프트 word에서 영어를 자동으로 변환해주는 기능이 있는데, 의도와 다르게 변환되는 경우가 종종 있어서 그냥 끄는게 낫다고 판단하였다. 순서 워드 왼쪽 위의 파일을 클릭하고 옵션 을 선택한다. 언어 교정 탭의 자동 고침 옵션 을 클릭한다. 한/영 자동 고침 체크를 해제하고 확인을 클릭하여 저장한다.
실습과 그림으로 배우는 리눅스 구조 학습 내용
·
Linux/Linux Structure
실습과 그림으로 배우는 리눅스 구조 학습 내용 실습과 그림으로 배우는 리눅스 구조 - 타케우치 사토루 Contents Chapter 1. 컴퓨터 시스템의 개요 Chapter 2. 사용자 모드로 구현되는 기능 Chapter 3. 프로세스 관리 Chapter 4. 프로세스 스케줄러 Chapter 5. 메모리 관리 Chapter 6. 메모리 계층 Chapter 7. 파일시스템 Chapter 8. 저장 장치 실습 환경 Surface Pro 7 - Microsoft CPU : 인텔® 코어™ i5-1035G4 프로세서 (6M 캐시, 최대 3.70GHz) 주요 정보 제품 컬렉션 10세대 인텔® 코어™ i5 프로세서 코드 이름 이전 제품명 Ice Lake 수직 분야 Mobile 프로세서 번호 i5-1035G4 상태 L..
Chapter 8. 저장 장치
·
Linux/Linux Structure
Chapter 8. 저장 장치 HDD의 동작 방식 HDD는 플래터platter라고 불리는 자기 장치에 데이터를 자기 정보로 기록하는 저장 장치이다. 데이터는 섹터sector라는 단위(512바이트 or 4KiB)로 읽고 쓴다. 섹터는 동심원 모양으로 원의 중심부터 바깥 방향으로 분할되어 있다. 플래터의 섹터 데이터를 읽으려면, 먼저 스윙 암을 움직여서 자기 헤드를 플래터의 위로 이동시키고, 그 다음 플래터를 회전시켜 자기 헤드를 목적 섹터의 바로 위에 오도록 한다. HDD로의 데이터 전송 흐름은 다음과 같다. 디바이스 드라이버가 데이터를 HDD에 전달한다. (섹터 번호, 섹터 개수, 읽기 쓰기 등) 스윙 암을 이동시키고 플래터를 회전시켜 자기 헤드를 섹터 위에 위치시킨다. 데이터를 읽거나 쓴다. 2, 3번..
Chapter 7. 파일시스템
·
Linux/Linux Structure
Chapter 7. 파일시스템 리눅스의 파일시스템 리눅스의 파일시스템에서는 데이터를 저장하는 일반 파일이 있고, 디렉터리directory는 일반 파일이나 다른 디렉터리를 보관할 수 있다. 이는 트리 구조로 되어있다. 리눅스 파일시스템은 ext4, XFS, Btrfs 등 여러가지가 존재하고, 각 파일시스템은 다룰 수 있는 파일의 사이즈, 파일시스템 사이즈, 파일 작성이나 삭제 및 읽기 쓰기의 처리 속도 등이 모두 다르다. 하지만 다음 시스템 콜을 통해 통일된 인터페이스로 접근할 수 있다. 시스템 콜 동작 creat(), unlink() 파일 생성, 삭제 open(), close() 파일 열기, 닫기 read() 파일로부터 데이터 읽기 write() 파일에 데이터 쓰기 lseek() 파일의 특정 위치로 이동..
Chapter 6. 메모리 계층
·
Linux/Linux Structure
Chapter 6. 메모리 계층 캐시 메모리 컴퓨터의 기본적인 동작 흐름 메모리에서 레지스터로 데이터를 읽는다. 레지스터의 데이터로 계산한다. 계산 결과를 메모리에 쓴다. 요즘의 하드웨어는 레지스터에서 계산하는 시간(위에서 2)보다 메모리에 접근하는 데 걸리는 시간(1, 3)이 훨씬 느리다. 따라서 1, 3의 느린 속도때문에 병목 현상이 생겨서 전체적인 레이턴시가 증가한다(느려진다). 캐시 메모리는 레지스터와 메모리 사이에서 중간 역할을 하여 1, 3의 속도를 고속화한다. 일반적으로 CPU에 내장되어 있지만, CPU 바깥에 있는 캐시 메모리도 존재한다. 또한 일부 경우(특정 타이밍에 커널이 캐시를 파기하는 등)를 제외하면, 캐시 메모리의 처리는 하드웨어에서 처리된다. 캐시 메모리 동작 과정 메모리에서 먼..
Chapter 5. 메모리 관리
·
Linux/Linux Structure
Chapter 5. 메모리 관리 메모리 통계 정보 free free 명령어로 메모리에 대한 정보를 알 수 있다. (단위 : KiB) $ free total used free shared buff/cache available Mem: 7729028 1552460 4177240 536648 1999328 5375580 스왑: 2097148 0 2097148 total : 시스템의 전체 메모리 용량 free : 표기 상 이용하지 않는 메모리 (available - buff) buff/cache : 버퍼 캐시, 페이지 캐시가 이용하는 메모리. free 필드의 메모리가 부족하면 커널이 buff/cache 메모리를 해제하고 할당해준다. available : 실질적으로 사용할 수 있는 메모리. free + buff/..
Chapter 4. 프로세스 스케줄러
·
Linux/Linux Structure
Chapter 4. 프로세스 스케줄러 프로세스 스케줄러는 여러 프로세스를 타임 슬라이스 방식으로 번갈아 처리한다. CPU는 한번에 하나의 프로세스만 처리할 수 있다. 시스템에서 CPU로 인식하는 것을 논리 CPU라고 하며, 하이퍼스레딩이 적용된 경우 각 하이퍼스레드가 논리 CPU로 인식된다. 테스트 프로그램으로 작동 방식 확인하기 알고자 하는 정보 논리 CPU가 특정 시점에 어떤 프로세스를 실행 중인가 각 프로세스의 진행률 테스트 프로그램 사양 명령어 라인 파라미터(nproc, total, resolution) 파라미터 설명 nproc 동시 동작 프로세스 수 total 프로그램이 동작하는 총 시간[ms] resolution 데이터 수집 시간 간격[ms] 각 프로세스의 동작 방식 CPU 시간을 total ..
Gnuplot
·
Linux/Linux Structure
Gnuplot 그래프를 그리는 툴로 유명한 gnuplot을 살짝 사용해보았다. 설치 우분투 20.04 기준, 패키지 매니저로 설치할 수 있다. $ sudo apt install -y gnuplot 사용법 기본 조작 다음과 같이 함수를 통해 출력할 수 있다. $ gnuplot G N U P L O T Version 5.2 patchlevel 8 last modified 2019-12-01 Copyright (C) 1986-1993, 1998, 2004, 2007-2019 Thomas Williams, Colin Kelley and many others gnuplot home: http://www.gnuplot.info faq, bugs, etc: type "help FAQ" immediate help: t..
Chapter 3. 프로세스 관리
·
Linux/Linux Structure
Chapter 3. 프로세스 관리 프로세스 생성의 목적 목적 1 : 같은 프로그램의 처리를 여러 프로세스가 분산해서 처리 (웹 서버의 리퀘스트 처리 등) 목적 2 : 전혀 다른 프로그램 생성 (bash에서 여러 프로그램 실행 등) 위의 작업을 할 때 fork() 함수와 execve() 함수가 호출되며, 내부적으로는 clone() 과 execve() 시스템 콜이 호출된다. fork() 함수 실행 중인 프로세스에서 자식 프로세스를 생성한다. 프로세스 생성 순서 자식 프로세스용 메모리 영역을 작성하고 부모 프로세스의 메모리를 복사한다. fork() 함수의 리턴 값이 다른 것을 이용하여 코드를 분기한다. fork.c 프로그램 예제 프로세스를 새로 만든다. 부모 프로세스는 자신의 PIDProcess ID와 자식 ..
Chapter 2. 사용자 모드로 구현되는 기능
·
Linux/Linux Structure
Chapter 2. 사용자 모드로 구현되는 기능 시스템 콜 프로세스는 커널의 도움이 필요한 경우 (프로세스 생성, 하드웨어 조작 등) 시스템 콜을 통해 커널에 처리를 요청한다. 시스템 콜의 종류 프로세스 생성, 삭제 메모리 확보, 해제 프로세스 간 통신 (IPC) 네트워크 파일시스템 다루기 파일 다루기(디바이스 접근) CPU의 모드 변경 프로세스는 유저 모드(사용자 모드)에서 실행되다가, 시스템 콜을 호출하면 CPU에서 인터럽트 이벤트가 발생한다. 이 인터럽트 이벤트가 발생하면 CPU는 커널 모드로 변경되어 동작하고, 처리가 끝나면 다시 유저 모드로 변경된다. 커널은 이 요청을 처리하기 전에 요구 사항의 유효성을 검사하여, 유효하지 않은 요청의 경우 시스템 콜을 실패했다고 처리한다. ex. 메모리를 허용..
리눅스 sar 명령어
·
Linux/Linux Structure
리눅스 sar 명령어 System Activity Report 시스템을 모니터링할 때 사용되는 명령어이다. -P 옵션 processor를 의미한다. $ sar -P CPU번호 주기(초) 일정 주기(초)마다 해당 코어의 활동을 볼 수 있다. $ sar -P 0 1 # 0번 프로세서에 대한 정보를 1초마다 확인 Linux 5.11.0-27-generic (ubun2-GL63-8RC) 2021년 09월 06일 _x86_64_ (8 CPU) 01시 02분 52초 CPU %user %nice %system %iowait %steal %idle 01시 02분 53초 0 5.05 0.00 2.02 0.00 0.00 92.93 01시 02분 54초 0 4.95 0.00 1.98 0.00 0.00 93.07 01시 02..
Chapter 1. 컴퓨터 시스템의 개요
·
Linux/Linux Structure
Chapter 1. 컴퓨터 시스템의 개요 프로그램 컴퓨터 시스템이 동작할 떄 하드웨어에서 다음의 순서가 반복된다. 입력 장치 또는 네트워크 어댑터를 통해 처리 요청이 들어온다. 메모리의 명령을 읽어 CPU를 실행하고 결과를 다시 메모리에 기록한다. 메모리의 데이터를 저장 장치에 기록하거나 네트워크를 통해 전송, 혹은 디스플레이에 출력하여 처리한다. 프로그램 위의 과정을 반복하여 사용자에게 필요한 하나의 기능으로 정리한 것이다. 종류 애플리케이션 : 사용자가 직접 사용한다. 오피스 프로그램이나 스마트폰의 앱 등이 있다. 미들웨어 : 여러 애플리케이션이 공통으로 사용하는 처리를 묶어서 애플리케이션의 실행을 도와준다. 웹 서버, 데이터베이스 등이 있다. 운영체제(OS) : 하드웨어를 직접 조작하여 애플리케이션..
윈도우 볼륨 조절 시 재생 중인 곡 팝업 창
·
Windows
윈도우 볼륨 조절 시 재생 중인 곡 팝업 창 음악이나 영상 재생 중에 볼륨을 조절하면 볼륨크기 오른쪽에 크게 재생 중인 미디어의 팝업이 나와서 화면을 가리는게 신경쓰였다. 윈도우에서 띄우는건줄 알았는데, 크롬이나 Groove 음악 프로그램때문에 나오는 창이었다. 크롬의 경우 간단하게 없앨 수 있는데, 나머지는 HideVolumeOSD 프로그램을 써야한다. 크롬 크롬 주소창에 chrome://flags/#hardware-media-key-handling를 입력하고, 해당 항목을 disabled로 변경한 후 크롬을 재시작하면 사라진다.
VSCode 스크롤이 너무 빠를 때
·
Utility/VSCode
VSCode 스크롤이 너무 빠를 때 설정(Ctrl + ,)에서 우측 상단의 설정 열기 아이콘을 클릭하여 settings.json 파일에 다음과 같이 작성한다. { ... "editor.mouseWheelScrollSensitivity": 0.5, ... } 소수점 단위로 설정 가능하다.
라즈베리파이 핀 맵
·
Raspberrypi
라즈베리파이 핀 맵 핀 맵 이미지 명령어 pinout 계속 위의 이미지들을 참고했었는데, 라즈베리파이에서 명령어로 pinout을 입력하면 터미널에 핀 맵이 나온다. $ pinout ,--------------------------------. | oooooooooooooooooooo J8 +====== | 1ooooooooooooooooooo PoE | Net | Wi 1o +====== | Fi Pi Model 4B V1.4 oo | | ,----. +---+ +==== | |D| |SoC | |RAM| |USB3 | |S| | | | | +==== | |I| `----' +---+ | | |C| +==== | |S| |USB2 | pwr |hd| |hd| |I||A| +==== `-| |---..
파이썬 고급 문법
·
Python/Syntax
고급 문법 열거 가능 객체 (iterable) for 문의 순회 대상 객체이다. __iter__() 메서드로 열거 가능 객체를 획득한다. iter(호출가능한객체, 반복을끝낼값) 함수로 __iter__() 메서드를 호출할 수 있다. 반복을 끝낼 값이 나오면 StopIteration 예외가 발생한다. 만약 클래스를 직접 구현하고 멤버 변수에 리스트가 있는 상황에서, 그 리스트를 순회하려면 __iter__() 메서드의 반환 값에 iter(해당리스트) 이런 식으로 iter 함수를 이용해 반환하면 된다. 매 루프마다 __next__() 메서드를 통해 다음 요소를 받는다. 첫 요소도 이걸로 받는다. next(반복가능한객체, 기본값) 함수로 __next__() 메서드를 호출할 수 있다. 마지막 요소에서 __next_..
파이썬 모듈과 패키지
·
Python/Syntax
모듈과 패키지 모듈 비슷한 성격의 변수, 함수들을 파일로 나눠서 정의하는 것이다. 파일명이 모듈명이다. 예제 util.py INCH = 2.54 def calcsum(n): total = 0 for num in range(n + 1): total += num return total main.py import util # from util import * # 비권장 (이름 충돌 우려) print(util.INCH) print(util.calcsum(10)) ''' stdout 2.54 55 ''' 모듈 테스트 __name__ 키워드는 모듈명으로 대체된다. 단독 실행된 경우 : "__main__" 모듈로 사용된 경우 : "모듈명" 이는 모듈 개발 시 테스트하기 편하..
파이썬 클래스
·
Python/Class
클래스 관련 정보와 조작 함수(메서드)를 묶어서 관리하는 방식이다. class 키워드로 정의한다. class Account: def __init__(self, balance): self.balance = balance def deposit(self, money): self.balance += money def inquire(self): print(f"잔액은 {self.balance}원 입니다.") account = Account(8000) account.deposit(1000) account.inquire() shinhan = Account(8000) shinhan.deposit(1000) shinhan.inquire() nonghyup = Account(1200000) nonghyup.inquire()..
파이썬 파일
·
Python/Syntax
파일 파일 입출력 윈도우에서는 파일 경로를 구분할 때 \\로 작성하는게 맞지만, 파이썬에서는 /를 쓰더라도 처리해주므로 OS에 독립적으로 작성할 수 있다. 파일 열기 open(파일경로, 모드[, encoding="문자셋"]) 모드 모드 설명 r 읽기, 파일이 없는 경우 예외 발생 w 쓰기, 파일이 없으면 새로 생김 a 추가 x 쓰기용으로 여나 기존 파일이 있는 경우 실패 t text 모드로 열기 (기본값) b binary 모드로 열기 파일 쓰기 write(데이터) f = open("live.txt", "wt", encoding="UTF-8") f.write("""삶이 그대를 속일지라도 슬퍼하거나 노하지 말라! 우울한 날들을 견디면 믿으라, 기쁨의 날이 오리니""") f.write("\n추가1") f.wr..
파이썬 예외 처리
·
Python/Syntax
예외 처리 예외 기본적으로 예외가 발생하면 프로세스가 종료된다. 예외 처리 예외 발생을 감지하고 대처할 수 있다. try: 실행할 명령 except 예외 as 변수: 오류 처리문 [else: # 없어도 됨 예외가 발생하지 않을 때의 처리] scores = ["89", "89점"] try: for score in scores: score_int = int(score) print(score_int) except: print("예외가 발생했습니다.") print("작업완료") ''' stdout 89 예외가 발생했습니다. 작업완료 ''' 예외 종류 예외 설명 NameError ValueError 값의 형식이 잘못됐을 때 ZeroDivisionError 0으로 나눴을 ..
파이썬 표준 모듈
·
Python/Syntax
표준 모듈 import 다른 파일에 정의된 변수, 함수, 객체 등을 사용하기 전에 파일을 가져온다. import 모듈 [as alias] from 모듈 import 함수명 전체 파일의 크기를 줄이려면 from 모듈 import 함수명 의 형식으로 작성하는게 좋다. 아래의 출력 결과는 모두 같다. import math print(math.sqrt(2)) from math import sqrt print(sqrt(2)) import math as m print(m.sqrt(2)) from math import sqrt as sq print(sq(2)) 수학 (math) https://docs.python.org/ko/3/library/math.html 상수 상수 설명 pi 원주율 tau 원주율 2배 e 자연..
파이썬 컬렉션 관리
·
Python/Syntax
컬렉션 관리 컬렉션 관리 함수 enumerate 시퀀스의 인덱스와 요소를 튜플로 묶어서 순회한다. enumerate(시퀀스 [, start]) race = ['저그', '테란', '프로토스'] print(list(enumerate(race))) ''' stdout [(0, '저그'), (1, '테란'), (2, '프로토스')] ''' 시작 숫자를 정할 수 있다. score = [88, 95, 70, 100, 99] for no, s in enumerate(score, 1): print(f"{no}번 학생의 성적 : {s}") ''' stdout 1번 학생의..
파이썬 집합(Set)
·
Python/Syntax
집합(Set) 중괄호로 묶는다. 중복을 허용하지 않는다. 순서가 보장되지 않는다. 메서드 연산 기호 메서드 설명 추가 add(값) 집합에 값이 없으면 추가한다. 제거 remove(값) 집합에서 값을 제거한다. 값이 없으면 예외 발생 합집합 union(집합2) 두 집합의 모든 원소 교집합 & intersection(집합2) 두 집합의 공통 원소 차집합 - difference(집합2) 왼쪽 집합의 원소 중 오른쪽 집합의 원소가 아닌 것 배타적 차집합 ^ symmetric_difference(집합2) 한쪽 집합에만 있는 원소 부분 집합 포함집합이면서 여분의 원소가 더 있음
파이썬 사전(Dictionary)
·
Python/Syntax
사전(Dictionary) key와 value의 쌍으로 구성된다. 중괄호로 묶는다. { 키1:값1, 키2:값2, ... } 키를 통해 값을 반환받을 수 있다. dic = { 'boy': '소년', 'school': '학교', 'book':'책' } print(dic['boy']) print(dic['book']) ''' stdout 소년 책 ''' 존재하지 않는 키를 입력하면 예외가 발생한다. dic = { 'boy': '소년', 'school': '학교', 'book':&#39..
파이썬 튜플(Tuple)
·
Python/Syntax
튜플(Tuple) 불변 자료 집합이다. 추가, 수정, 삭제를 할 수 없고 읽기만 가능하다. 리스트보다 속도가 빠르다. 소괄호를 생략해도 된다. Unpack 튜플의 요소 하나하나에 대입하는 방식이다. names = "이순신", "김유신", "강감찬" lee, kim, kang = names # unpack print(lee) print(kim) print(kang) ''' stdout 이순신 김유신 강감찬 ''' d, m = divmod(7, 3) print("몫", d) print("나머지", m) ''' stdout 몫 2 나머지 1 '''
파이썬 리스트(List)
·
Python/Syntax
리스트(List) 리스트는 순서가 있고 변경 가능한 자료의 집합이다. 중복을 허용한다. 대괄호로 묶는다. 문자열처럼 인덱싱과 슬라이싱을 할 수 있다. nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(nums[:]) print(nums[2:5]) print(nums[:4]) print(nums[6:]) print(nums[1:7:2]) print(nums[0]) ''' stdout [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 3, 4] [0, 1, 2, 3] [6, 7, 8, 9] [1, 3, 5] 0 ''' 기존 값을 삭제하면서 동시에 새로운 값을 삽입할 수 있다. nums = [0, 1, 2, 3, 4, 5, 6..
파이썬 함수
·
Python/Syntax
함수 반복되는 코드를 함수로 정의하여 중복을 최소화한다. def 함수명(인수 목록): 명령 블록 pass 파이썬이 번역할 때 아무것도 하지 않고 넘기는 더미 역할의 키워드이다. 코드 블록을 당장 구현하지 않을 경우 pass를 쓰고 넘어가면 에러가 발생하지 않는다. def 함수명(인수 목록): pass 출력 함수 입력 함수 인수 변수 연산자 조건문 반복문
파이썬 반복문
·
Python/Syntax
반복문 while 문 조건이 참인 동안 명령 블록을 실행한다. while (조건): 명령 블록 for 문 컬렉션의 요소를 하나씩 꺼내서 명령 블록을 실행한다. for 제어변수 in 컬렉션: 명령 블록 break 반복문 탈출 continue continue 이후 명령을 실행하지 않고 다음 반복을 시작한다.
파이썬 조건문
·
Python/Syntax
조건문 if 조건이 참이면 명령 블록을 실행 if (조건): 명령 age = int(input("나이를 입력하세요 : ")) if age < 19: print("애들은 가라") 비교 연산자 연산자 설명 == 같다 != 다르다 좌변이 우변보다 크다 = 좌변이 우변보다 크거나 같다 논리 연산자 연산자 설명 and 두 조건이 모두 참이면 참 or 두 조건 중 하나라도 참이면 참 not 조건이 거짓이면 참 거짓 값 False None 0 "" : 비어있는 문자열 [], () : 비어있는 컬렉션 블록 구조 코드 블록은 모두 동일한 들여쓰기를 해야 한다. 전체적인 형태 if 조건1: 명령 블록 elif 조건2: 명령 블록 ... else: 명령 블록
파이썬 연산자
·
Python/Syntax
연산자 대입 및 산술 대입 변수에 값을 저장하는 것이다. 연산의 결과를 값으로 사용할 수 있다. 선언하지 않은 변수를 읽으면 예외가 발생한다. NameError: name &#39;변수명&#39; is not defined 산술 기호 설명 + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 ** 거듭제곱 // 몫 % 나머지 복합 대입 연산자 변수의 반복 사용을 줄여주는 축약 표현이다. a += 1 a -= 1 a *= 1 a /= 1 a **= 1 a //= 1 a %= 1 타입 변환 정수와 문자열 문자열끼리만 + 연산자로 연결할 수 있다. 다른 타입을 연결하려면 str() 함수로 변환해야 한다. 변환 함수 함수 설명 str() 문자열로 변환 int() 10진수로 변환 int(정수, 진법) 진법 기반으로 정수를 10진..