사전에 요청받거나 저와 관련있는 분들만을 위한 멘토링입니다.
따라서 가격은 설정할 수 있는 최저로 설정되어 있어요.
일정은 멘토링 확정 이후 조율할 예정이니 아무렇게나 기입해 주세요.
신청하실 때, 이름 및 저와 어디서 소통했는지만 짧게 기입 부탁드려요.
블로그
전체 92025. 03. 21.
1
[인프런 워밍업 클럽 3기 - CS] 3주차 발자국
강의 수강학습 내용 요약그림으로 쉽게 배우는 운영체제 강의 - 완강그림으로 쉽게 배우는 자료구조와 알고리즘 - 완강학습 내용 회고후반부로 갈 수록 모르던 내용이 많아서 이해하기 위해 노력했다.동적 프로그래밍이나 알고리즘은 꾸준히 복습이 필요할 것 같다.미션해결 과정 요약미션 질문을 읽고, 바로 떠오르지 않는 내용은 강의를 다시 보며 복습하고 정리하여 작성했다.정답이 어느 정도 정해져 있더라도 조금 더 내 생각을 곱씹어 보며 미션을 수행했다.미션 해결 회고원리는 이해했는데 용어가 잘 안 외워지고 설명이 어려워서 조금 더 연습이 필요할 것 같다.개념을 정리하는 데에 조금 더 집중했던 것 같다.
커리어 · 자기계발 기타
・
워밍업클럽
2025. 03. 21.
0
[인프런 워밍업 클럽 3기 - CS] 3주차 자료구조와 알고리즘 미션
1. 지금까지 배운 5개의 정렬 알고리즘의 장단점과 시간 복잡도를 적어주세요.버블정렬장점 : 구현이 간단하다.단점 : 성능이 좋지 않다.시간 복잡도 : O(n²)선택정렬장점 : 구현이 간단하다.단점 : 성능이 좋지 않다.시간 복잡도 : O(n²)삽입정렬장점 : 구현이 간단하다.단점 : 성능이 좋지 않다.시간 복잡도 : O(n²)병합정렬장점 : 성능이 좋다.단점 : 구현이 복잡하다.시간 복잡도 : O(nlogn)퀵정렬장점 : 성능이 좋다. 또한 단점 : 구현이 복잡하다. 시간 복잡도 : Θ(nlogn), O(n²) (대부분 좋은 피벗을 선택하고 최악의 경우가 발생할 경우가 극히 낮아서 병합정렬에 비해 더 적은 비교와 더 적은 메모리 공간을 차지하여 더 좋은 알고리즘으로 평가된다.) 2. 메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요.메모이제이션을 사용하여 재귀로 쉽게 구현은 가능할 수 있지만, 결국 메모리가 부족하여 시스템에서 문제가 발생할 우려가 있으므로 구현이 조금 복잡할 수 있더라도 조금 더 메모리를 효율적으로 사용할 수 있는 타뷸레이션을 이용할 것 같다.
알고리즘 · 자료구조
・
워밍업클럽
2025. 03. 21.
0
[인프런 워밍업 클럽 3기 - CS] 3주차 운영체제 미션
1. 메모리의 종류는 어떤 것들이 있나요? 각 메모리의 특징도 함께 적어주세요.레지스터 : 가장 빠른 기억장소로 CPU 내에 존재한다. 컴퓨터의 전원이 꺼지면 데이터가 사라지는 휘발성 메모리이다.캐시 : 메인 메모리에 있는 데이터를 레지스터로 옮기는 시간이 오래 걸리므로, 필요할 것 같은 데이터를 저장해둔다. 캐시는 성능 상의 이유로 여러 개를 둔다. 컴퓨터의 전원이 꺼지면 데이터가 사라지는 휘발성 메모리이다.메인 메모리 : 실제 운영체제와 다른 프로세스들이 올라가는 공간. 하드디스크나 SSD보다 속도는 빠르지만 비싸기 때문에 실행중인 프로그램만 올린다. 컴퓨터의 전원이 꺼지면 데이터가 사라지는 휘발성 메모리이다.보조저장장치(HDD, SSD) : 속도가 느리고 용량이 크고 가격이 저렴하다. 컴퓨터의 전원이 꺼져도 데이터가 사라지지 않는 비휘발성 메모리이다. 2. 사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?경계 레지스터. 메모리 관리자가 사용자 프로세스가 경계 레지스터의값을 벗어났는지 검사하고 만약 벗어났다면 종료시킨다. 3. 메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?가변 분할 방식장점 : 메모리의 연속된 공간에 할당되기 때문에 더 크게 할당되어 낭비되는 공간인 "내부 단편화"가 없다.단점 : 메모리의 빈 공간이 연속적으로 존재하지 않게 되는 "외부 단편화"가 발생한다.고정 분할 방식장점 : 구현이 간단하고 오버헤드가 적다.단점 : 작은 프로세스도 큰 영역에 할당되어 "내부 단편화"가 발생한다. 4. CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?스레싱 5. HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요?말 그대로 "컴퓨터를 실행"시키는 것이라면 운영체제 설치 없이도 전원이 들어오고 바이오스 진입까지는 가능하기 때문에 아니라고 볼 수 있으나, 현실적으로는 운영체제를 설치해야 하여 필수적이라고 보는 게 타당한 것 같다. 6. 파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?파일을 삭제할 때 파일시스템은 파일의 모든 정보를 지우는 것이 아니라 파일 테이블의 헤더만 삭제하고 사용했던 블록의 데이터는 그대로 남아있기 때문에 복구가 가능하다.
시스템 · 운영체제
・
워밍업클럽
2025. 03. 13.
0
[인프런 워밍업 클럽 3기 - CS] 2주차 발자국
강의 수강학습 내용 요약그림으로 쉽게 배우는 운영체제 강의 - 섹션 7까지 완강그림으로 쉽게 배우는 자료구조와 알고리즘 - 섹션 3 유닛 5까지 완강학습 내용 회고알고 있었던 내용들은 복습할 수 있었고, 디테일하게 잘 몰랐던 MLFQ나 은행원 알고리즘 등에 대해서는 새로 학습할 수 있었다.대부분 알고 있었던 자료 구조에 대해 복습하고 다시금 익히는 계기가 되었다. 미션해결 과정 요약미션 질문을 읽고, 바로 떠오르지 않는 내용은 강의를 다시 보며 복습하고 정리하여 작성했다.알고리즘 구현은 여러 가지 방안으로 테스트해 보면서 미션에 가장 깔끔한 방향이라고 생각되는 방향으로 구현했다.미션 해결 회고운영체제 관련 내용은 항상 개념은 이해하고 있어도 명확하게 설명하기는 어려운 것 같아서 어느 정도는 정리된 표현을 암기하는 것도 필요한 것 같다.알고리즘 구현은 난이도가 상당히 쉬운 미션이었다고 생각한다.
커리어 · 자기계발 기타
・
워밍업클럽
2025. 03. 13.
0
[인프런 워밍업 클럽 3기 - CS] 2주차 자료구조와 알고리즘 미션
1. 재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?콜스택이 계속 쌓여서 메모리가 부족해져서 프로세스가 비정상 종료될 수 있다. 2. 0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.function sumOdd(n) { if (n % 2 === 0) return sumOdd(n - 1); if (n === 1) return 1; return sumOdd(n - 2) + n; } 3. 다음 코드는 매개변수로 주어진 파일 경로(.는 현재 디렉토리)에 있는 하위 모든 파일과 디렉토리를 출력하는 코드입니다. 다음 코드를 재귀 함수를 이용하는 코드로 변경해보세요.const fs = require("fs"); // 파일을 이용하는 모듈 const path = require("path"); // 폴더와 파일의 경로를 지정해주는 모듈 function traverseDirectory1(directory) { const files = fs.readdirSync(directory); // 인자로 주어진 경로의 디렉토리에 있는 파일or디렉토리들 for (const file of files) { // 현재 디렉토리의 모든 파일or디렉토리 순회 const filePath = path.join(directory, file); // directory와 file을 하나의 경로로 합쳐줌 const fileStatus = fs.statSync(filePath); // 파일정보 얻기 if (fileStatus.isDirectory()) { // 해당 파일이 디렉토리라면 console.log('디렉토리:', filePath); traverseDirectory1(filePath); } else { // 해당 파일이 파일이라면 console.log('파일:', filePath); } } }
알고리즘 · 자료구조
・
워밍업클럽
2025. 03. 13.
0
[인프런 워밍업 클럽 3기 - CS] 2주차 운영체제 미션
1. FIFO 스케줄링의 장단점이 뭔가요?장점 : 먼저 도착하고 프로세스가 먼저 실행되고 끝나는 알고리즘으로, 단순하고 직관적이다.단점 : 한 프로세스가 완전히 끝나야 다음 프로세스가 시작되기 때문에, 실행 시간이 짧고 늦게 도착한 프로세스가 실행 시간이 길고 빨리 도착한 프로세스의 작업을 기다려야 한다. 또한 I/O 작업이 있다면 CPU는 I/O 작업이 끝날 때까지 쉬고 있기 때문에 CPU 사용률이 떨어진다. 2. SJF를 사용하기 어러운 이유가 뭔가요?어떤 프로세스가 얼마나 실행될 지 예측하기 어렵다.실행 시간이 짧은 프로세스를 먼저 실행하므로, 실행 시간이 긴 프로세스가 먼저 도착했더라도 짧은 프로세스가 중간에 계속 들어오면 실행 시간이 긴 프로세스는 계속 실행하지 못하게 된다. 3. RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?컨텍스트 스위칭이 너무 자주 일어나게 되어 오버헤드가 너무 커지고 성능이 저하된다. 4. 운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?CPU를 사용하는 프로세스가 실행하다가 스스로 CPU를 반납하면 CPU 사용이 적은 것이므로 I/O Bound Process라고 취급한다.반대로 타임 슬라이스 크기를 오버하여 CPU 스케줄러에 의해 강제로 CPU를 뺏기는 상황이면 CPU Bound Process라고 취급한다. 5. 공유자원이란 무엇인가요?프로세스 간 통신을 할 때 공동으로 이용하는 변수나 파일 등의 자원. 6. 교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야 할까요?상호 배제 : 어떤 프로세스가 한 리소스를 점유했다면 해당 리소스는 다른 프로세스에게 공유되면 안된다.비선점 : 어떤 프로세스가 한 리소스를 점유했다면 다른 프로세스가 해당 리소스를 빼앗을 수 없다.점유와 대기 : 어떤 프로세스가 한 리소스를 점유한 상태에서 다른 리소스를 원하는 상태.원형 대기 : 점유와 대기를 하는 프로세스들의 관계가 원형을 이룬 상태.
시스템 · 운영체제
・
워밍업클럽