본문 바로가기
반응형

IT188

[파이썬] 개발툴에서 파이썬으로 엑셀 작업하기 VS code와 같은 개발 tool에서 엑셀 작업을 진행할 수 있습니다. 사용했던 간단한 기능들 공유합니다. 파이썬 코드로 엑셀을 열고 편집합니다. from openpyxl.styles import Font, Border, Side, PatternFill, Alignment from openpyxl import load_workbook wb = load_workbook('C:\\Users\\user\\Downloads\\test.xlsx') ws = wb.active #행 삽입 ws.insert_rows(0) # 병합하기 ws.merge_cells("B1:D1") # B1부터 D1까지 합치기 ws["B1"].value = "a" # 글씨체 볼드 thin_border = Border(left=Side(st.. 2023. 2. 23.
[운영체제] 메모리 관리 물리적 메모리를 관리하는 방법에 대해 알아보자 메모리는 일반적으로 os상주영역과 사용자 프로세스 영역이 있다. 사용자 프로세스 영역은 연속할당과 불연속할당이 방법이 있다 연속할당 1. 고정분할 방식 - 프로그램이 들어갈 사용자 영역을 미리 파티션으로 나누어 놓음 - 물리적 메모리를 몇 개의 영구적 분할로 나눔 - 분할의 크기가 모두 동일한 방식과 서로 다른 방식이 존재 외부조각: 빈 공간인데 프로그램이 올라갈 수 없는 작은 분할 내부조각: 프로그램크기가 분할크기보다 작을 때 남는 메모리공간 2. 가변분할 방식 - 사용자 프로 미리 나눠놓지 않고 실행될때마다 순서대로 쌓는 것 - 프로그램 B가 끝나면 D는 공간이 안 맞아서 안 들어가고 외부조각으로 채움 - 프로그램의 크기를 고려해서 할당 Hole 발생 가.. 2023. 2. 20.
[운영체제] 메모리 메모리에 대해 알아보자 논리적 주소 - 프로세스마다 독립적으로 가지는 주소 공간 - 각 프로세스마다 0번지부터 시작 - CPU가 보는 주소는 논리적 주소다 물리적 주소 - 메모리에 실제 올라가는 위치 ※ 주소 바인딩: 주소를 결정하는 것 상징적 주소 -> 논리적 주소 -> 물리적 주소 주소 바인딩이 언제 이뤄지는가 1. Compile time binding - 논리적 주소를 바탕으로 올린다 - 논리적 주소와 물리적 주소가 같다 - 컴파일러는 절대 코드 생성 - 시작 위치 변경시 재컴파일 - 지금은 사용하지 않는다 2. Load time binding - 메모리에 올라갈떄 물리적 주소가 결정된다 - 컴파일러가 재배치가능코드를 생성한 경우 가능 3. Execution(Run) time binding - 메모.. 2023. 2. 20.
[운영체제] 교착상태(deadlock) 교착상태란 무엇인가? 그림을 보면 어느 누구도 움직이지 못하는 상황이다. 이처럼 자원이 모두 사용 중이어서 프로세스들이 계속 기다리는 상태를 교착상태라고 한다. Deadlock: 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태 - 자원(resource): 하드웨어, 소프트웨어 등을 포함하는 개념 - ex) 시스템에 2개의 tape drive가 있다. 프로세스 A와 B가 각각 하나의 tape drive를 보유한 채 다른 하나를 기다리고 있다. deadlock 발생의 4가지 조건 1. 상호배제: 매 순간 하나의 프로세스만이 자원을 사용할 수 있음 2. 비선점: 프로세스는 자원을 스스로 내어놓을뿐 강제로 빼앗기지 않음 3. 보유대기: 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유 자원을.. 2023. 2. 18.
[머신러닝] 미리 학습된 언어 모델과 트랜스포머 최근 BERT, GPT 같은 모델이 주목받게 된 이유는 성능 때문이다. 미리학습된 프리 트레인 모델이기 때문에 이 모델들을 사용하면 어떤 태스크든지 점수가 이전과 비교해 좋은 결과를 얻을 수 있다. 언어 모델 단어 시퀀스에 확률을 부여하는 모델, 단어 시퀀스를 입력 받아 해당 시퀀스가 얼마나 그럴듯한지 확률을 출력하는 모델이다. 잘 학습된 한국어 모델이 있다면 P(무모, 운전)보다는 P(난폭, 운전)의 확률이 크다. 순방향 언어 모델 - 이전 단어들이 주어졌을 때 다음 단어를 맞히기 - 문장 앞부터 뒤로 사람이 이해하는 순서대로 계산하는 모델 - 어제 카페라는 단어가 주어졌다면 그 다음에 올 단어들을 추려 '갔었어'를 리턴하는것이다 역방향 언어 모델 - 문장 뒤부터 앞으로 계산 - 많더라 단어가 주어졌을.. 2023. 2. 17.
API란 무엇인가? API(Application Programming Interface)란 무엇인가? 한 프로그램에서 다른 프로그램으로 데이터를 주고받기 위한 방법이다. 예를 들어 식당메뉴판이라 생각하면 된다. 메뉴판을 보고 주문하는것처럼 식당과 손님이 음식을 주고받기 위한 방법 웹툰을 보내주는 프로그램을 만든다 해보자. 먼저 어떤 웹툰이 있는지 메뉴판을 만들어야한다. 이 메뉴판이 웹툰 서버와 손님이 웹툰을 주고받기 위한 방법인 웹툰서비스 API이다. app.get('/detail/"id',function(req,res){ db.collection('웹툰').findOne({_id:parseInt(요청.params.id)},function(에러, 결과){console.log(결과); res.render('detail.ejs.. 2023. 2. 17.
정규표현식 정규 표현식에서는 메타 문자들을 사용하여 특별한 의미를 갖게한다. . ^ $ * + ? { } \ | ( ) 문자 클래스 [ ] 문자 클래스로 만들어진 정규식은 [ ] 사이의 문자들과 매치한다는 의미이다 예제를 통해 자세하게 이해해보자 정규표현식이 [abc]라면 a,b,c 중 한 개의 문자와 매치된다 [a-z]와 같이 하이픈을 사용하게 되면 두 문자 사이의 범위를 의미한다 [a-zA-Z]: 알파벳 모두를 의미 [0-9]: 숫자를 의미 [^0-9]: 숫자가 아닌 문자만 매치 위와 같은 표현들은 자주 사용하는 정규 표현식이기 때문에 별도의 표기법으로 더 간단하게 사용할 수 있다. \d: 숫자와 매치 \D: 숫자가 아닌 것과 매치 \s: whitespace 문자와 매치 \S: whitespace 문자가 아닌 .. 2023. 2. 16.
[파이썬] 내장함수 filter 리스트에서 양수인 수만 출력하는 코드를 작성해보자 def positive(x): return x>0 print(list(filter(positive,[1,-2,2,0,-5,6]))) filter 함수를 사용해서 원하는 조건으로 리스트를 추출할 수 있다. 여기서 lambda를 이용하면 더욱 간편하게 코드를 작성할 수 있다. print(list(filter(lambda x:x>0,[1,-2,2,0,-5,6]))) 2023. 2. 16.
[운영체제] Concurrency Control 병행 제어 세마포어: 프로그래머 관점에서 동기화 문제를 해결 Monitor - 동시 수행중인 프로세스 사이에서 abstract data type의 안전한 공유를 보장하기 위한 high-level synchronization construct - 프로그래밍 언어차원에서 공유데이터에 동시접근하는 문제를 모니터가 자동으로 해결함 프로그래머에 부담을 줄여주는 방법 - 공유데이터에 접근할때는 접근 코드가 있는데 모니터 안에 정의되어있다. 모니터 안에 정의된 코드로만 접근할 수 있게 한다. - 모니터 내에서는 한번에 하나의 프로세스만이 활동 가능 - 프로그래머가 동기화 제약 조건을 명시적으로 코딩할 필요없음 - 프로세스가 모니터 안에서 기다릴 수 있도록 하기 위해 Condition variable 사용 - wait와 sign.. 2023. 2. 15.
728x90