블로그
전체 10#카테고리
- 알고리즘 · 자료구조
- 시스템 · 운영체제
#태그
- 인프런워밍업
- frontend
- nextjs
- 운영체제
2025. 06. 01.
0
인프런 워밍업 클럽 Frontend - 1주차 발자국 👣
📚 1주차 공부 내용 정리Next.js 렌더링CSR : React App의 기본적인 렌더링 방식으로 클라이언트인 브라우저에서 렌더링을 진행하는 방식이다.SSR : 서버에서 완성된 HTML을 만들어 브라우저에 보내주는 방식이다.SSG : 빌드 타임에 미리 페이지를 생성해두는 렌더링 방식이다.ISR : SSG 페이지를 일정 시간마다 주기적으로 새로 생성해주는 방식이다.Cursor AITabAI가 코드를 자동으로 완성해주는 강력한 기능여러 줄의 코드를 한 번에 작성할 수 있음TabChat코드 관련 질문에 정확한 답변을 제공컨텍스트를 이해하고 관련 조언을 제공Ctrl/⌘ + L인라인 코드 편집편집기 창에서 새로운 코드를 생성하거나 기존 코드를 변경 가능Ctrl/⌘ + K프로젝트 세팅Next.js App 프로젝트 생성npx create-next-app@latest # 최신 버전 설치 npx create-next-app@15.2.5 # 강의시 최신 버전 (권장) npx create-next-app@15.2.5 ./ # 현재 디렉토리를 프로젝트로 설정TypeScript 설정Next.js TypeScript Plugin : VS Code에서 Next.js 프로젝트 개발 시 타입스크립트 지원을 자동화해주는 확장 프로그램ESLint, Prettier 설정ESLint : 코드의 품질을 검사하고 오류를 검사하는 도구Prettier : 코드를 일관된 스타일로 자동으로 정리해주는 도구Tailwind CSS, shadcn/ui 설정shadcn/ui : Tailwind CSS를 기반으로 한 현대적이고 아름다운 컴포넌트 모음 (오픈소스 UI 시스템) 🏃♀ 미션미션을 해결할 때는 주로 공식 문서를 참고했다. 내용을 완전히 나의 언어로 표현하는 데 어려움도 있었지만, 직접 글로 정리해보면서 이해를 더 깊게 할 수 있었다.😵💫 회고(혼자서만) 눈물나는 스토리이번 워밍업 클럽 4기에는 Frontend뿐만 아니라 CS 과정도 참여했다. 하지만 워밍업 외에도 따로 준비하고 있는 중요한 일정(가장 중요한 ⭐️)이 있어서 모든 걸 병행하기엔 꽤 벅찼다.그래서 Frontend는 완주 러너를 목표로, CS는 기간 내 완강을 목표로 달리기로 결정했다.다행히도(?) 지난 기수에서는 우수 러너로 선정된 덕분에, 이번에는 모든 걸 욕심내기보다는 포기할 건 과감히 포기하고, 선택과 집중을 하자고 마음먹었다.우수 러너는 안녕........ 그래도 완주와 완강은 포기 못 해!!!!짐코딩 코치님의 강의 완전 짱짱이번에 처음으로 짐코딩 코치님의 강의를 들었는데......마치 내가 갓난아기가 된 것 같은 기분이랄까....걸음마부터 손잡고 하나하나 알려주시는 친절함에 감동받았다...... 👶🍼👍Cursor AI와의 첫만남이번 강의를 통해 처음으로 Cursor AI를 사용해봤다.아직은 낯설고 어색하지만, 써보니 정말 대박이다…! 앞으로 더 잘 활용해서 작업 속도도 높이고, 학습에도 적극 활용해보고 싶다.
인프런워밍업
・
frontend
・
nextjs
2025. 03. 23.
1
인프런 워밍업 클럽 CS - 3주차 발자국 👣
운영체제가상메모리 ================== * 세그멘테이션: 메모리를 논리적 단위(세그먼트)로 나누어 관리하는 기법 * 페이징: 메모리를 고정 크기의 페이지 단위로 나누어 관리하는 기법 * 페이지드 세그멘테이션: 세그멘테이션과 페이징을 결합한 방식 * 디맨드 페이징: 페이지가 필요한 시점에만 메모리에 로드되는 방식 * 페이지 교체 정책: 메모리가 부족할 때 어떤 페이지를 교체할지 결정하는 알고리즘(예: LRU, FIFO) * 스레싱과 워킹셋: 스레싱은 페이지 부족으로 시스템이 과도하게 교체되는 상태, 워킹셋은 현재 프로세스가 필요로 하는 페이지들의 집합 입출력 장치 ================== * 주변 장치: 마우스, 키보드, 프린터 등과 같은 외부 장치들 * 하드디스크/Flash Memory(SSD): 데이터 저장을 위한 장치. SSD는 빠른 속도와 내구성으로 하드디스크보다 우수 파일시스템 ================== * 파일과 파일 시스템: 파일을 저장하고 관리하는 시스템으로, 디렉토리 구조와 접근 권한을 관리 * 디렉토리: 파일들을 논리적으로 그룹화하여 관리하는 시스템 자료구조와 알고리즘삽입정렬 ================== 주어진 배열에서 하나씩 선택하여 그 값을 적절한 위치에 삽입하는 방식 병합정렬 ================== 배열을 반으로 나누어 정렬 후 합치는 방식 퀵정렬 ================== 피벗을 선택하고, 피벗보다 작은 값과 큰 값을 구분하여 정렬하는 방식 동적 프로그래밍 ================== * 메모이제이션: 중복 계산을 피하기 위해 계산된 값을 저장하여 재사용 (하향식) * 타뷸레이션: 작은 하위 문제들을 먼저 해결하고, 그 값을 이용하여 큰 문제를 해결하는 방식 (상향식) 회고드디어.... 끝!!!! 완주를 성공해서 기쁘다. 솔직히 인프런 워밍업 클럽 CS 스터디가 아니었으면, 언제 끝났을지 모를거다 하하 정해진 커리큘럼에 맞춰 공부하고, 미션과 발자국, 회고를 남기면서 학습효과가 더 높았던 것 같다. 참여하길 잘했다....!! 마지막 주차다보니 집중력이 좀 떨어진 것도 있었다. 하지만 곧 끝나니까 조금만 참아!!! 라는 마음으로 꾸역꾸역 공부했다ㅎ 그리고 어려운 내용도 있어서 좀 힘들었다 헝헝 영체제에서는 가상 메모리 파트가, 알고리즘 자료구조에서는 재귀응용 때문에 @_@ 연속 ~~ 그래도 괜찮다. 일단 한번 훑어봤으니 그다음에는 더 수월할거라 생각한다! 알고리즘 자료구조 심화편과 네트워크도 감자 쌤과 함께할거다! 온라인 라이브때 말하는 감자.. 그리울 것이다. 진짜 너무 귀엽다 감자 ㅜㅜ
2025. 03. 23.
0
인프런 워밍업 클럽 CS - 3주차 자료구조와 알고리즘 미션
자료구조와 알고리즘 1. 지금까지 배운 5개의 정렬 알고리즘의 장단점과 시간 복잡도를 적어주세요. 버블정렬장점 : 이해와 구현이 간단함단점 : 성능이 좋지 않음 시간 복잡도 : O(n²)선택정렬장점 : 이해와 구현이 간단함단점 : 성능이 좋지 않음시간 복잡도 : O(n²)삽입정렬장점 : 이해와 구현이 간단함단점 : 성능이 좋지 않음시간 복잡도 : O(n²)병합정렬장점 : 성능이 좋음단점 : 이해와 구현이 어려움시간 복잡도 : O(n log n) 퀵정렬장점 : 속도가 빠름단점 : 최악의 경우 시간 복잡도가 O(n²)으로 증가시간 복잡도 : 평균 Θ(n log n), 최악 O(n²) 2. 메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요.메모리가 부족한 시스템에서는 타뷸레이션이 적합한 것 같습니다. 타뷸레이션은 반복문을 통해 문제를 해결하기 때문에 메모리 사용량이 적습니다. 반면, 메모이제이션은 이미 계산한 결과를 저장해 중복 계산을 피할 수 있지만, 메모리를 많이 사용하므로 적합하지 않습니다.
알고리즘 · 자료구조
2025. 03. 23.
0
인프런 워밍업 클럽 CS - 3주차 운영체제 미션
운영체제 1. 메모리의 종류는 어떤것들이 있나요? 각 메모리의 특징도 함께 적어주세요.레지스터CPU 내부에 위치한 메모리로, 메모리 중 속도가 가장 빠르지만 용량이 매우 작다.캐시메인 메모리에서 CPU까지 데이터를 가져오는 데 시간이 다소 걸리는 편이다. 이를 개선하기 위해 자주 사용하는 데이터를 캐시에 저장하여 속도를 높이는 역할을 한다. L1, L2, L3로 나뉘며, L1이 가장 빠르지만 용량이 작고, L3는 상대적으로 느리지만 용량이 크다.메인 메모리 (RAM)실행 중인 프로그램과 데이터를 저장하는 휘발성 메모리로, 전원이 꺼지면 데이터가 사라진다.보조 저장 장치 (HDD, SSD)가장 용량이 크지만 속도가 메모리보다 느리다. 전원을 꺼도 데이터가 보존된다. 2. 사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?경계 레지스터 3. 메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?가변 분할 방식프로세스의 크기에 맞게 동적으로 메모리에 할당하는 방식으로 메모리를 효율적으로 사용할 수 있다는 장점이 있다. 하지만 프로세스가 종료되면서 메모리의 빈 공간이 여기저기 흩어지면 외부 단편화가 발생할 수 있다는 단점이 있다.고정 분할 방식미리 정해진 크기로 나누어진 메모리 공간에 프로세스를 할당하는 방식으로 관리 방식이 단순하고 할당 속도가 빠르다는 장점이 있다. 하지만 프로세스 크기가 파티션보다 작으면 남는 공간이 생겨 내부 단편화가 발생하는 단점이 있다. 4. CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?스래싱CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 페이지 부재가 너무 자주 발생하여 CPU가 대기상태에 빠지는 현상을 스래싱이라고 한다. 5. HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요?없어도 실행가능하지만 데이터를 저장하기 위해서는 HDD나 SSD가 필요하다. 6. 파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?파일을 삭제하면 파일 데이터 자체를 삭제하는 것이 아니라 저장된 위치를 가리키는 정보만 삭제되므로 실제 데이터는 디스크에 그대로 남아 있다. 그래서 포렌식으로 파일을 복구할 수 있는 것이다.
시스템 · 운영체제
2025. 03. 16.
1
인프런 워밍업 클럽 CS - 2주차 발자국 👣
운영체제프로세스 간 통신 ================== 프로세스는 독립적으로 실행되기도 하지만 다른 프로세스와 데이터를 주고받으며 통신을 하는 경우도 있다. 통신은 한 컴퓨터내에서 실행되고 있는 다른 프로세스와 할 수도 있고 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와 할 수도 있다. 공유자원과 임계구역 ================== * 공유자원 : 프로세스 간 통신을 할 때 공동으로 이용하는 변수나 파일들이 있는데 이런 것들을 공유자원이라고 한다. * 임계구역 : 여러 프로세스가 동시에 사용하면 안되는 영역 교착상태의 필요조건 ================== 1. 상호배제 2. 비선점 3. 점유와 대기 4. 원형 대기 교착상태의 해결방법 (은행원 알고리즘) ================== 안전 상태를 유지하면서 자원을 할당하는 방법 메모리의 종류 ================== * 레지스터 > 캐시 메모리 > RAM(메인 메모리) > 보조 저장 장치(SSD, HDD) ✅ 속도: 레지스터가 가장 빠르고, 보조 저장 장치가 가장 느림 ✅ 용량: 보조 저장 장치가 가장 크고, 레지스터가 가장 작음 ✅ 가격: 속도가 빠를수록 비싸므로, 레지스터가 가장 비싸고, 보조 저장 장치가 가장 저렴함 메모리 할당방식 ================== * 가변 분할 방식 : 프로세스가 크면 메모리도 크게 할당 * 고정 분할 방식 : 프로세스 크기와 상관없이 메모리를 할당 * 버디 시스템 : 가변 분할 방식과 고정 분할 방식을 혼합해 단점을 최소화 자료구조와 알고리즘재귀함수 ================== 자기 자신을 호출하는 함수 * 기저 조건(탈출 조건): 기저 조건이 없으면 무한 호출로 콜스택 메모리가 가득 차 프로그램이 강제 종료됨 버블정렬 ================== 앞에 있는 숫자와 옆에 숫자를 비교해서 자리를 바꾸는 알고리즘 * 장점 : 이해와 구현이 간단 * 단점 : 성능이 좋지 않음... 선택정렬 ================== 배열에서 첫 번째 원소를 기준으로 마지막 원소까지 비교하여 가장 작은 값을 찾은 후, 첫 번째 원소와 교환하는 과정을 반복하여 정렬하는 알고리즘 * 장점 : 이해와 구현이 간단 * 단점 : 성능이 좋지 않음... 회고정보처리기사 자격증 시험을 준비할 때 봤던 내용들을 이번 인프런 워밍업 클럽을 통해 제대로 이해할 수 있어서 좋았다. 그때는 "뭐.. 뭐지? 일단 이해는 된 것 같은데.. 음..?" 이런 느낌이었는데, 감자 강사님의 그림을 통한 설명을 보면서 "아, 이게 이거구나!" 하고 이해되는 순간이 많았다. 이번 주 공부는 확실히 채워지는 기분! 앞으로도 기대된다. 그렇게 뿌듯해하던 와중에... 만난 재귀... 알고리즘... 재귀... 어렵다... 내용은 이해했지만, 직접 구현하는 건 아직 쉽지 않다. 중간 점검 시간에 감자 강사님께서 "재귀 함수는 처음엔 어렵지만, 많이 연습하면 적응된다." 라고 말씀해주셔서 위로가 되었다. 연습이 곧 길이다!!! 💪🔥 화이팅~
2025. 03. 16.
0
인프런 워밍업 클럽 CS - 2주차 자료구조와 알고리즘 미션
자료구조와 알고리즘재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요? 기저조건이 없으면 함수가 계속해서 자기 자신을 호출하게 되어 무한 루프에 빠진다. 호출이 계속 쌓이면서 콜스택 메모리 공간이 꽉 차면서 프로그램이 강제 종료될 수 있다.기저조건을 잘못 설정하면 예상과 다른 동작이 발생할 수 있다.그러므로 기저조건을 잘 만들어보자! 0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.function sumOdd(n){ // 재귀 로직 if (n 다음 코드는 매개변수로 주어진 파일 경로(.는 현재 디렉토리)에 있는 하위 모든 파일과 디렉토리를 출력하는 코드입니다. 다음 코드를 재귀 함수를 이용하는 코드로 변경해보세요.const fs = require("fs"); const path = require("path"); function traverseDirectory2(directory) { const files = fs.readdirSync(directory); // 현재 디렉토리의 파일 목록 가져오기 for (const file of files) { const filePath = path.join(directory, file); // 파일 경로 조합 const fileStatus = fs.statSync(filePath); // 파일 정보 가져오기 if (fileStatus.isDirectory()) { console.log('디렉토리:', filePath); traverseDirectory2(filePath); // 디렉토리면 재귀 호출 } else { console.log('파일:', filePath); } } } traverseDirectory2("."); // 현재 디렉토리 탐색
알고리즘 · 자료구조
2025. 03. 15.
0
인프런 워밍업 클럽 CS - 2주차 운영체제 미션
운영체제FIFO 스케줄링의 장단점이 뭔가요?- 장점단순하고 직관적이다.- 단점한 프로세스가 완전히 끝나야 다음 프로세스가 시작되기 때문에 실행시간이 짧고 나중에 도착한 프로세스가 실행시간이 길고 먼저 도착한 프로세스가 끝날 때까지 기다려야한다는 점이 단점이다. SJF를 사용하기 여러운 이유가 뭔가요?Burst Time이 긴 프로세스는 Burst Time이 짧은 프로세스가 먼저 실행되기 때문에 오랫동안 실행되지 않을 수도 있다. RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요? 타임 슬라이스에서 실행되는 프로세스의 처리량보다 컨텍스트 스위칭이 많이 발생해 오버헤드가 너무 크다. 운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?프로세스가 타임 슬라이스를 초과하여 강제로 CPU를 뺏긴다면 CPU 사용이 많은 CPU Bound Process로 판단할 수 있고, 반대로 스스로 CPU를 반납한다면 비교적 CPU 사용이 적은 I/O Bound Process로 볼 수 있다. 공유자원이란무엇인가요?프로세스 간 통신을 할 때, 공동으로 이용하는 변수나 파일 등을 공유자원이라고 말한다. 교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?1. 어떤 프로세스가 한 리소스를 점유했다면 그 리소스는 다른 프로세스에게 공유가 되면 안된다. (상호배제)2. 프로세스 A가 리소스를 점유하고 있을 때, 다른 프로세스 B가 리소스를 빼앗으면 안된다. (비선점)3. 프로세스가 리소스 A를 가지고 있는 상태에서 다른 리소스 B를 원하는 상태여야 한다. (점유와 대기)4. 점유와 대기를 하는 프로세스들의 관계가 원형을 이루고 있어야 한다. (원형 대기)
시스템 · 운영체제
・
운영체제
2025. 03. 09.
0
인프런 워밍업 클럽 CS - 1주차 발자국 👣
운영체제운영체제가 하는 일 ================== - 프로세스 관리 - 메모리 관리 - 하드웨어 관리 - 파일 시스템 관리 운영체제의 구조 ================== 1. 커널 - 프로세스와 메모리, 저장장치를 관리하는 핵심적인 기능을 담당한다. 2. GUI (Graphic User Interface) - 그래픽으로 된 인터페이스로 그래픽으로 커널과 상호 작용한다. 3. CLI (Command-Line Interface) - 유닉스나 리눅스 같은 운영체제가 기본적으로 제공하는 인터페이스로 텍스트를 이용해 커널과 상호 작용한다. 4. 시스템 콜 - 어플리케이션은 시스템 콜을 통해서 커널에 접근할 수 있다. 5. 드라이버 - 하드웨어와 커널의 인터페이스로는 드라이버를 사용한다. 인터럽트 ================== - 인터럽트는 폴링 방식의 단점을 해결한 방식이다. 프로세스 ================== - 실행 중인 프로그램이라고 할 수 있다. - 프로세스는 운영체제에 의해 관리된다. PCB (Process Control Block) - 프로세스가 만들어지면 운영체제는 해당 프로세스의 정보를 가지고 있는 PCB를 만들고 저장한다. 프로세스 상태 ================== - 프로세스는 시분할 처리를 위한 다섯 가지 상태를 가진다. 1. 생성상태 2. 준비상태 3. 실행상태 4. 대기상태 5. 완료상태 컨텍스트 스위칭 ================== - 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해 실행 중인 프로세스의 상태를 저장하고 다른 프로세스의 상태값으로 교체하는 작업이다. CPU 스케줄링 ================== - 운영체제는 모든 프로세스에게 CPU를 할당/해제하는데 이를 CPU 스케줄링이라고 한다. CPU 스케줄링 알고리즘 ================== 1. FIFO (First In, First Out) - 스케줄링 큐에 들어온 순서대로 CPU를 할당받는 방식이다. - 먼저 들어온 프로세스가 완전히 끝나야만 다음 프로세스가 실행될 수 있다. 2. SJF (Shortest Job First) - Burst Time이 짧은 프로세스가 먼저 실행되는 알고리즘이다. 3. RR (Round Robin) - 한 프로세스에게 일정 시간만큼 CPU를 할당하고 할당된 시간이 지나면 강제로 다른 프로세스에게 CPU를 할당한다. - 강제로 CPU를 뺏긴 프로세스는 큐의 가장 뒷부분으로 밀려난다. 4. MLFQ (Multi-Level Feedback Queue) - 프로세스의 우선순위를 동적으로 조정하는 알고리즘이다. 자료구조와 알고리즘자료구조 ================== 데이터가 어떤 구조로 저장되고 어떻게 사용되는지를 나타낸다. 1. 배열 - 숫자나 문자열 등을 연속적으로 저장하는 자료구조 2. 연결리스트 - 데이터를 담는 변수, 다음 노드를 가리키는 변수를 가지고 있는 노드들이 연결되어 있는 자료구조 3. 스택 - 가장 나중에 들어온 데이터가 가장 먼저 나가는 자료구조 4. 큐 - 가장 먼저 들어온 데이터가 가장 먼저 나가는 자료구조 5. 덱 - 양쪽 끝에서 데이터 삽입/삭제가 가능한 자료구조 6. 해시테이블 - 키 값 쌍으로 데이터를 저장하며, 빠른 검색, 삽입, 삭제가 장점인 자료구조 7. 셋 - 중복을 허용하지 않는 자료구조 알고리즘 ================== 어떤 문제를 해결하기 위한 확실한 방법을 말한다. 회고코딩 테스트 문제를 Lv.1부터 풀다가 드디어 한계가 왔다.. 자료구조와 알고리즘 공부가 1000000000% 필요한 순간이 왔...다.. 겸사겸사 CS 공부를 제대로 공부하고 싶어 인프런 워밍업 클럽 CS 에 참가했다. 벌써 1주차가 마무리됐다. 되돌아보니, 그동안 너무 무작정 문제만 풀었던 것이 느껴졌다. 주로 사용했던 배열이 흔히 듣던 자료구조라는 걸 알게 되었고, 이제는 자료구조에 따라 데이터 처리 방법이 달라진다는 점을 인식하며 문제에 접근할 수 있게 되었다. 앞으로 공부를 더 진행하면서 그동안 수많은 좌절감을 느끼게 했던 코딩테스트 문제들을 이제 제대로 풀 수 있지 않을까 하는 기대감이 생겼다. 물론 내가 열심히 해야만 할 수 있는 문제! 앞으로도 스터디에 열심히 참여하고 CS 지식을 내 것으로 만들어야겠다!
2025. 03. 09.
0
인프런 워밍업 클럽 CS - 1주차 자료구조와 알고리즘 미션
자료구조와 알고리즘 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요. 해시테이블 이유는 해시테이블를 사용하면 학생의 정보를 빠르게 검색할 수 있기 때문입니다.배열을 사용하면 특정 학생을 찾을 때 최악의 경우 O(n) 시간이 걸리지만 해시테이블은 학생 번호를 해시함수로 계산하여 얻은 인덱스로 O(1) 의 속도로 접근할 수 있습니다. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.큐큐는 먼저 들어온 데이터를 먼저 처리하는 FIFO 방식의 자료구조입니다.주문이 들어온 순서대로 처리하는 상황에서는 큐가 적합합니다. 우리가 구현한 스택은 0번 인덱스, 즉 입구쪽으로 데이터가 삽입되고 나오는 구조입니다. 반대로 마지막 인덱스, 즉 출구쪽으로 데이터가 삽입되고 나오는 구조로 코드를 변경해주세요. // 마지막 인덱스에 데이터 삽입 push(data) { this.list.insertLast(data); } // 마지막 인덱스 삭제 pop() { try { return this.list.deleteLast(); } catch (e) { return null; } } 해시테이블의 성능은 해시 함수에 따라 달라집니다. 수업 시간에 등번호를 이용해 간단한 해시 함수를 만들어봤습니다. 이번엔 등번호가 아닌 이름을 이용해 데이터를 골고루 분산시키는 코드로 수정해주세요. 힌트: charCodeAt() 함수를 이용 예시: name1 = "이운재"; name1.charCodeAt(0); // 51060 이운재의 0번 인덱스 ‘이’의 유니코드 출력hashFunction(name){ let hash = 0; for (let i = 0; i
알고리즘 · 자료구조
2025. 03. 09.
0
인프런 워밍업 클럽 CS - 1주차 운영체제 미션
운영체제 while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }1. 위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?폴링방식의 단점을 해결하기 위해 인터럽트를 이용하면 된다. 프로그램과 프로세스가 어떻게 다른가요?프로그램은 하드디스크와 같은 저장장치에 저장된 명령문의 집합체를 말한다.우리가 흔히 윈도우 운영체제에서 볼 수 있는 .exe 파일의 모습을 하고 있다..exe 파일을 누르면 프로그램이 실행되어 메모리에 올려지는데, 이때 실행중인 프로그램을 프로세스라고 한다. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?멀티프로그래밍은 메모리에 여러 프로세스를 올려서 하나의 CPU로 처리하는 것을 말한다.반면 멀티프로세싱은 여러 개의 CPU에서 여러 프로세스를 처리하는 것을 말한다. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?운영체제는 프로세스를 관리하기 위해 프로세스가 만들어지면 해당 프로세스의 정보를 가지고 있는 PCB를 생성하고, 프로세스가 종료되면 PCB를 제거한다. 컨텍스트 스위칭이란 뭔가요?실행 중인 프로세스가 다음 프로세스를 실행하기 위해 실행중인 프로세스의 상태를 저장하고 다른 프로세스의 상태 값으로 교체하는 작업을 말한다.
시스템 · 운영체제