모집마감

인프런 워밍업 클럽 스터디 3기 - CS 전공지식 (운영체제, 자료구조, 알고리즘)
무료
입문 / 운영체제, 알고리즘
신청
25. 02. 11 ~ 25. 02. 25
일정
25. 02. 28 ~ 25. 04. 04
입문
운영체제, 알고리즘
모집마감
인프런 워밍업 클럽 스터디 3기 - CS 전공지식 (운영체제, 자료구조, 알고리즘)
무료
입문 / 운영체제, 알고리즘
신청
25. 02. 11 ~ 25. 02. 25
일정
25. 02. 28 ~ 25. 04. 04
입문
운영체제, 알고리즘
모집마감
인프런 워밍업 클럽 스터디 2기 - CS 전공지식 (운영체제, 자료구조, 알고리즘)
무료
입문 / 운영체제, 알고리즘
신청
24. 09. 11 ~ 24. 09. 24
일정
24. 09. 27 ~ 24. 11. 01
입문
운영체제, 알고리즘
그림으로 쉽게 배우는 네트워크
₩66,000
입문 / 네트워크
4.9
(77)
이 강의를 통해 마법만 같던 인터넷이 어떻게 동작하는지 이해할 수 있습니다.
입문
네트워크
그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
₩55,000
초급 / 알고리즘
4.9
(29)
이 강의를 통해 비선형 자료구조와 알고리즘을 배울 수 있습니다.
초급
알고리즘
그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
₩55,000
입문 / 알고리즘
4.9
(97)
이 강의를 통해 선형 자료구조와 알고리즘을 배울 수 있습니다.
입문
알고리즘
그림으로 쉽게 배우는 운영체제
₩77,000
초급 / 운영체제
4.9
(149)
이 강의를 통해 모든 개발자들이 필수로 알아야하는 운영체제의 원리를 알 수 있습니다.
초급
운영체제
질문&답변
데이터 삽입, 삭제 함수 오류 범위 설정
안녕하세요 yhb10205님!AI 인턴이 자세히 설명해줘서 제가 따로 설명이 필요없을 것 같습니다.AI 인턴이 설명한 insertAt 함수와 deleteAt 함수 설명을 참고해주시면 될 것 같습니다!해당 설명을 보시고 예외 상황을 시뮬레이션 해보시면 이해가 더 쉬울 것 같습니다.😄
질문&답변
LRU 관련 질문
안녕하세요 재영님!영상을 확인해보니 해당 부분에서 LFU의 예시로 설명되는 걸 확인했습니다.이 부분은 우선 강의노트로 정정해놓겠습니다.조만간 영상 리뉴얼을 진행하겠습니다.지적해주셔서 감사합니다! 😅
질문&답변
고정 분할 방식도 연속 할당으로 알고 있는데 애니메이션이 다소 헷갈립니다.
영상에서 고정 분할 방식, 가변 분할 방식이 각각 페이징, 세그멘테이션 설명으로 되어 있는 걸 확인했습니다.이 부분은 제 실수이며 수뼈님께서 이해하신 것이 맞습니다.이 고정 분할 방식과 가변 분할에 대한 설명은 조만간 리뉴얼을 통해 추가하도록 하겠습니다.혼란 드려서 죄송합니다.🙇♂
질문&답변
Swapping, Manual Overlay, Dynamic Loading, Dynamic Linking의 개념이 헷갈립니다
먼저 메모리 오버레이를 설명드리겠습니다.메모리 오버레이는 임베디드 같은 가상 메모리를 사용하기 어려운 상황에서 흔히 사용 됩니다.메모리 오버레이는 프로그래머가 수동으로 프로그램을 나누는 설계를 해야합니다.운영체제는 관여하지 않고 프로그래머가 제어합니다.(자동 오버레이는 운영체제[링커, 로더]가 판단해 자동으로 수행하지만, 가상 메모리와 페이징 기술이 더 효율적이라 현대에선 거의 사용되지 않습니다) 다이나믹 로딩은 실제로 필요한 상황에만 해당 모듈을 불러오는 기술입니다. 따라서 해당 모듈이 필요하지 않는다면 프로그램 실행 중에 한 번도 메모리에 올라오지 않을 수 있습니다.운영체제는 보조적인 역할만 하며 프로그램이 직접 제어합니다. 다이나믹 링킹은 여러 프로그램에서 동시에 공유할 수 있는 함수들을 메모리의 한 공간에 올려서 메모리를 절약할 수 있는 기술입니다.예를 들어 printf라는 콘솔에 출력하는 함수를 다이나믹 링킹을 통해 printf함수를 사용하는 여러 프로그램이 공유하는 것입니다.다이나믹 링킹은 메모리 절약 뿐만 아니라 프로그램의 크기가 커졌을 때 컴파일 시간을 단축할 수 있고 프로그램의 크기를 작게 유지할 수 있다는 장점이 있습니다. 만약 printf함수만 변경하는 상황이라면 다이나믹 링킹을 사용하지 않을때는 전체 프로그램을 컴파일해야하므로 컴파일 시간이 길지만, 다이나믹 링킹을 사용해 printf함수를 포함한 파일만 컴파일하면 되기 때문에 시간이 짧아집니다!😀
질문&답변
ARP 문의
안녕하세요 HJ K님!질문 주신 생략된 부분이 맞습니다.라우터 2의 경우 교수님 PC의 MAC주소를 모르기 때문에 ARP를 이용해 교수님 PC의 정보를 저장합니다.AI인턴 봇이 잘 설명해놓아서 참고하시면 도움이 될 것 같습니다😀
질문&답변
각 메모리의 최대 요구 CPU 리소스는 어떻게 아나요?
최대 요구 자원과 Burst time은 비슷해보이지만 차이가 있습니다.Burst Time을 예측하는 것은 스케줄링을 위한 추정치인 반면 최대 요구 자원은 시스템의 안정성을 위한 상한선, 즉 약속과 같습니다.최대 요구 자원은 CPU(해당 프로세스는 최대 10번의 Burst Time, 각 Burst Time의 최대 Burst Time은 10ms)를 포함한 메모리(해당 프로세스가 사용할 최대 메모리 설정, ex: 4GB), I/O 장치등을 포함합니다. 운영체제는 이 정보를 바탕으로 자원을 할당하는 것이죠.프로세스의 코드와 데이터를 보면 최대 요구 자원을 확인할 수 있을 것 같지만 현실적으로 어려움이 있습니다.코드내 반목문, 조건문 같은 분기문과 I/O, 동적 메모리 할당이 있기 때문에 이를 모두 컴파일러가 정밀하게 계산하는 것은 어렵습니다.따라서 사용자가 명시적으로 알려주거나 운영체제가 보수적으로 설정해 데드락에 빠지지 않게 만들어 시스템의 안정성을 올려줍니다.BurstTime은 예측을 통해 스케줄링을 하며 성능의 감소, 상승이 있다면최대 요구 자원은 명시, 예측을 통해 시스템의 안정성을 책임집니다!
질문&답변
PCB들이 연결리스트로 저장되는 이유가 뭔가요?
안녕하세요 soap님!PCB들이 연결리스트에 저장된 이유가 궁금하셨군요.PCB들이 연결리스트에 저장되는 이유는 AI 인턴이 잘 설명해줬는데요.프로세스는 생성과 제거가 자주 일어나기 때문에 메모리에 동적인 할당이 필요합니다.만약 배열에 저장한다면 메모리 공간 낭비와 PCB 생성과 제거시 오버헤드가 있을 것입니다.반면 연결리스트에 저장되면 배열의 단점을 해결 할 수 있습니다. 하지만 연결리스트도 순차 탐색을 진행할 때는 O(n)이 걸린다는 단점이 있어서 일부 시스템에선 해시테이블이나 트리를 사용하기도 합니다. 일반적으론 연결리스트를 사용합니다.
질문&답변
해시 테이블에서 질문이 잇습니다.
안녕하세요 이지민님!해시 테이블 개념을 질문주셨는데 이해하신게 맞습니다.인덱스 데이터와 key-value는 다른 개념입니다.인덱스 데이터는 해시 테이블에 저장된 배열의 위치를 나타냅니다.인덱스는 key와 해시함수를 이용해 구해지고, 해당 인덱스에 key-value가 저장됩니다.일반적이지는 않지만 만약 해시함수가 없다면 key가 곧 인덱스일 수 있습니다. key가 9라면 9번 인덱스에 key-value를 저장하는 것이죠.이해하시고 직접 정리한 그림이 정확합니다.잘 이해하셨습니다 😀
질문&답변
IPC 방식 중 매개체가 파일과 메모리일 때 할당되는 용량의 차이
두 영상의 길이가 40분 길이라 저도 전부 시청하지 못했지만 영상을 보니 강사님께서 잘 설명해주시는 것 같습니다.AI 인턴의 답변과 같이 이는 메인 메모리(RAM)와 보조 메모리(영상에서 말하는 2차 메모리)의 특징을 그대로 가져옵니다.메인 메모리의 특징은 빠르지만 용량이 작은 것이고,보조 메모리의 특징은 느리지만 용량이 크다는 것입니다.따라서 보조 메모리를 활용하는 IPC의 경우 사용할 수 있는 용량이 크기 때문에 용량 할당 기준이 느슨한 것이고,메모리 기반 IPC는 용량이 적은 메인 메모리를 사용하기 때문에 용량 할당에 있어서 깐깐하게 할당합니다.통신 매체만 다르다고 생각할 수 있지만, 통신에서 사용하는 메모리 종류가 달라서 생기는 결과라고 이해하시면 될 것 같아요.(죄송하지 않으셔도 됩니다 😄😄)
질문&답변
고정 분할 방식에 질문입니다
영상에서는 페이지의 크기를 2MB로 나눈다고 가정했습니다.따라서 프로세스 A는 5MB이기 때문에 프로세스와 메모리가 2MB로 나뉘어 저장되었습니다.반면 프로세스 C는 1MB이기 때문에 2MB보다 크기가 작기 때문에 1MB가 낭비되는 상황을 설명하고 있습니다.프로세스 A, B, C 모두 페이징을 사용해 프로세스의 크기가 페이지 크기보다 클 때, 프로세스의 크기가 페이지와 같을 때, 프로세스의 크기가 페이지보다 작을 때 발생할 수 있는 상황을 보여주고있습니다!😊
2023. 01. 31.
9
컴퓨터 네트워크 강의를 준비중입니다.
안녕하세요 "그림으로 쉽게 배우는 컴퓨터공학" 커리큘럼을 만들고 있는 감자입니다!지금까지 제가 만들어 온 모든 강의에서는 여러분의 이해를 돕기 위해 그림을 이용해 설명해 드렸습니다.그런데, 지금 제가 준비하고 있는 강의는 네트워크 강의로 물리적인 장치의 이해까지 필요합니다.보통 전공 수업에선 이론적인 내용 위주로 설명하므로 여러분의 컴퓨터에서 데이터가 실제로 어떻게 이동하는지 직관적으로 알기는 어렵습니다.따라서 네트워크의 이론적인 내용과 물리적인 흐름을 모두 쉽게 이해할 수 있도록 강의 방식을 업그레이드 해보려 합니다.저로서도 새로운 도전이니 여러분들이 많이 응원해주시고 피드백 주시면 좋겠습니다. 😄(가정집 내에 있는 통신단자함 내부)저는 여러분이 인터넷을 사용할 때에 여러분의 집에 있는 통신단자함부터 건물의 통신실, 통신사, 서버까지로 데이터가 어떻게 이동하는지 시각화해 직관적으로 보여드리고 싶었습니다.하지만 기존의 강의 방식으로는 이러한 흐름을 보여드리기에 한계가 있었습니다.(사진과 그림만으로 이러한 것들을 설명하려니 만족스럽지 않았습니다)그래서 저는 여러분에게 직관적으로 전달할 수 있는 가장 좋은 방법이 뭘까 이리저리 고민하다가 3D 모델을 이용해 보기로 했습니다.(서울에는 내 빌딩이 없지만 3D세상에서는 구글빌딩이 내꺼🤗)3D 모델링을 하면서 굉장히 재밌게 준비했습니다.여러분들에게 가장 효율적으로 설명해 드릴 수 있다는 생각에 두근거리기도 해요!이제 준비한 내용으로 네트워크 강의를 열심히 만들어보겠습니다.많이 기대해주세요 😀 (시중에서 팔지 않는 제품도 3D 모델링이면 자세하게 소개할 수 있습니다)
개발 · 프로그래밍 기타
・
네트워크
・
3D모델링
・
그림으로쉽게배우는컴퓨터공학
・
CS
・
컴퓨터공학
2023. 01. 06.
10
램(RAM)은 어떤 역할을 할까요?
혹시 데스크톱이나 노트북을 살 때 상품 스펙을 본 적 있으신가요?컴퓨터를 좀 안다는 사람들은 가격과 이 스펙을 보면서 비교합니다.스펙을 보면 메모리가 항상 표시되어 있습니다.메모리는 어떤 역할을 하는 걸까요?하드디스크랑은 어떤 차이가 있는 것일까요? 램은 이렇게 생긴 녀석입니다.Random Access Memory의 약자를 따서 RAM이라고 부르죠.램은 폰 노이만 구조 컴퓨터에서 빠질 수 없는 장치입니다.(현대 컴퓨터는 모두 폰 노이만 구조임!)CPU는 0과1을 단순 계산하는 능력만 갖고 있는 계산기이고 많은 데이터를 저장할 수 없답니다.기억력이 부족한 CPU를 위해서 램이라는 것이 필요합니다.여러분이 만든 프로그램이나 다른 사람이 만든 프로그램을 실행시키면 "프로그램이 메모리에 올라간다" 라고 말합니다.하드디스크나 SSD에 저장된 프로그램이 RAM으로 이동하는 과정을 말합니다.사실 하드디스크나 SSD와 같은 보조 저장장치는 컴퓨터의 실행에서 중요한 역할은 하지 않습니다.저는 어렸을 때 스타래프트나 디아블로를 하기 위해서 PC방에 자주 갔었습니다.(성큰 디펜스 좋아했어요😊)출처 인터넷 커뮤니티이때는 자리에 앉기 전에 사장님한테 게임 CD를 받고, CD를 삽입해서 게임을 즐겼었죠.😁 (PC방 카운터에 CD가 진열되어 있었답니다)출처 인터넷 커뮤니티(아저씨 디아 CD주세요)출처 나무위키 아이템을 복사, 아이템을 싸게 판다는 사기도 많이 당해서 인생이 호락호락하지 않다는 것을 깨닫기도 했어요.마우스도 지금과는 많이 달라서 게임 도중에 마우스 볼이 잘못돼서 억울하게 게임을 졌던 추억도 있네요... ㅎㅎ(가운데 볼이 움직여서 마우스 커서 움직임... 지금의 레이저 방식과 비교하면 너무 올드하죠?)출처 인터넷 커뮤니티 갑자기 옛날이야기가 나와서 저도 모르게 너무 신났네요.(라떼는....)다시 본론으로 돌아와서!이렇게 CD를 넣고 게임을 실행한 이유는 뭐였을까요?이때는 하드디스크, 즉 보조 저장장치의 용량이 너무 작아서 CD가 보조 저장장치 역할을 대신한 것이었습니다.CD 컴퓨터의 CD롬에 넣으면 프로그램이 램에 올라가서 게임을 실행할 수 있었죠.하드디스크는 없더라도 램은 꼭 있어야 하는 장치죠.요즘 컴퓨터에선 많은 프로그램을 동시에 실행시킵니다.램의 크기가 16GB, 32GB 등으로 그렇게 크지 않은데 많은 프로그램을 동시에 실행시킵니다.이는 보조 저장장치를 이용하는 가상 메모리라는 기술이 등장해 가능해졌습니다. 속도는 조금 느리만요.😥CD나 하드디스크, SSD에 저장된 프로그램이 메모리로 이동하게 되면 그것을 프로세스라고 부릅니다.프로세스에 대해서 자세히 알고 싶다면 운영체제를 공부해보시는 건 어떨까요?컴퓨터의 역사와 함께 어떻게 동작하는지 자세히 배우게 됩니다. 😀add_shortcode('course','328188','list')
보안 · 네트워크 기타
・
램
・
메모리
・
메인메모리
・
RAM
・
운영체제
2022. 12. 23.
28
컴퓨터 공학(CS)이 중요할까요?
저는 학부 시절에 전공수업을 들으면서 항상 답답한 마음이 있었어요.논리회로, 컴퓨터 구조, 자료구조, 알고리즘, 운영체제, 네트워크 등 컴퓨터 공학에서 꼭 배우는 과목을 들을 때마다 너무 막연한 기분이었죠.분명히 한 과목을 들을 땐 해당 내용에 대해서 자세히 배우지만 너무 이론적인 것만 배우는 느낌이 들었고,"왜 지금 당장 결과가 보이는 내용으로 공부하지 않을까?"라는 질문을 했었죠.🧐CPU가 어떤 구조이고 어떻게 동작하는지 이론적으로는 배우지만 정작 CPU가 어떻게 생겼는지는 아무도 알려주지도 않고 스스로 찾아본 적도 없었어요.CPU뿐만 아니라 RAM, 하드디스크 등 주변장치가 어떻게 생긴 줄도 몰랐죠.다른 과 친구들은 "너 컴퓨터 잘 아니까 부품도 잘 알고 조립도 잘하겠네?"라고 종종 물어보지만 그렇지 않았죠.네트워크 수업 때는 모뎀, 허브, 라우터 등 전부 이론적으로, 기껏해야 그림으로 된 예시로 보니까 현실 세계랑 매칭이 잘되지 않았어요.교수님들은 학교에서 배우는 전공이 중요하다고 말씀하실 때 항상 따라붙는 말이 있었어요.컴퓨터 공학은 매우 복잡하므로 Divide and Conquer(분할 정복)로 접근해 하나씩 자세히 알아보는 것이 중요하다, 하지만 이렇게 하나씩 배운 개념을 조합해 전체적으로 볼 줄도 알아야 한다.당시엔 전체적으로 볼 줄 알아야 한다는 말이 크게 와닿지 않았었는데요. 첫 직장에서 백엔드 개발자로 일하는 순간부터 느꼈어요.회사에서 사용하는 기술 스택들은 처음 접해보는 것들이었고 말로만 듣던 AWS도 직접 만져봐야 했죠.이때 많은 기술 스택과 AWS에서 사용하는 용어들은 굉장히 혼란스러웠죠.하지만 용어만 다를 뿐 전공에서 배운 개념들은 그대로였어요.제가 고생했던 것은 "실제로" 이것들이 어떻게 연결되어 동작하는지가 머리에 잘 정리되어 있지 않았던 것이었죠.회사에서도 공부할 시간을 줘서 얼마 되지 않아서 정리할 수 있었어요.그때 교수님들의 말씀이 다시 생각났어요."하나씩 배운 개념을 조합하는 게 이래서 중요하구나~"라고요.회사에 적응하고 개발할 때도 학과에서 배운 내용이 직/간접적으로 도움 된 적이 많아서 그때마다 교수님들을 떠올렸죠.한 번은 사용자의 특정 요청 중 일부가 아주 가끔 중복돼서 들어오는 경우가 있었어요.똑같은 환경에서 테스트해봐도 확인해볼 수도 없었고 하루에 하나가 있을까 말까 했죠.저희 팀에선 이 문제가 한 달 넘게 해결하지 못하고 있었던 상황이었어요.저도 이 문제가 왜 발생하는지 골치 아팠었죠.🧟그러던 어느 날 문득 원인이 예측됐어요. 운영체제에서 배웠던 개념에서 떠올릴 수 있었어요.그래서 예측한 원인을 해결할 방법을 찾아 코드를 수정했고 지켜봤어요!똑같은 문제는 다시는 발생하지 않았죠. 👏 이렇게 실무에서 컴퓨터 공학(CS)의 중요성을 알게 되어 기본기가 탄탄해야 한다는 말에 극공감하게 됐어요.하지만 CS를 배우는 건 어렵고 지루해서 금방 포기하게 되죠.그래서 저는 수업에서 들었던 궁금증, 그때 알았으면 좋았을 것들을 그림과 예시를 들어가며 직접 만들기로 했어요.현재 준비하고 있는 강의는 네트워크인데요.이론적인 내용뿐만 아니라 우리가 일상에서 볼 수 있는 기기가 네트워크에서 어떤 용어로 쓰이고 어떤 역할을 하는지,큰 그림을 맞춰볼 거예요. 만약 CPU의 동작 방식을 배웠다면 위의 그림처럼 CPU가 실제로 어떻게 생겼는지도 알아야 헷갈리지 않겠죠?네트워크는 하드웨어와 소프트웨어가 공존하기 때문에 이렇게 하드웨어까지 알아가며 퍼즐을 맞춰갈 겁니다.이만 다음 강의인 "그림으로 쉽게 배우는 네트워크"를 준비하러 가보겠습니다.😊
개발 · 프로그래밍 기타
・
CS
・
전공자
・
비전공자
・
컴퓨터공학
・
그림으로쉽게배우는
・
네트워크