[혼공컴운] 1주차 (Chapter 1~3)

potato_peach·2023년 1월 8일
0

혼공학습단-9기

목록 보기
1/6

👏 Intro

약 1년 전, 혼공학습단 7기 활동을 했는었데 1년만에 이렇게 9기로 다시 돌아오다니..
전공 수업으로도 배우고, 기사 공부했을 때 또 공부했었지만 1년이 지났다고 거의 다 증발해버렸다

1주차 공부를 해보니까 다른 혼공시리즈와 달리 직접적인 코딩은 안하지만 공부하면서 평소 사용하고 있는 노트북 속 컴퓨터 자원?들을 자연스럽게 떠올리게 되어 유익한 기분이 들었다

왜 다시 공부하는지?

  • 취업 : 기술 면접 준비에 도움
  • 몇 달 전부터 가상화, 클라우드 기술에 관심이 생기면서 컴퓨터 자원에 대해서도 좀 더 공부해보고 싶어졌다.
  • 프로그램을 만들면서 구현에만 급급했지 성능적인 측면은 거의 고려하지 않았어서 이 공부를 통해 좀 더 제대로 개발해보고 싶어졌다.

✅ 기본 미션

p. 51의 확인 문제 3번, p. 65의 확인 문제 3번 풀고 인증하기


➕ 선택 미션

p. 100의 스택과 큐의 개념을 정리하기

스택 (Stack)

박스에 물건을 차곡차곡 쌓아올리듯이 한 방향으로만 데이터를 저장할 수 있으며
나중에 저장한 데이터를 가장 먼저 빼내는 자료구조 (LIFO)

  • push : 스택에 새로운 데이터 저장(삽입)하는 명령어
  • pop : 스택에 저장된 데이터를 꺼내는 명령어

활용 사례

  • 운영체제의 시스템 스택 (call stack) : 함수의 실행이 끝났을 때, 복귀 주소를 저장
  • 웹 브라우저 "뒤로 가기" 기능
  • 수식의 괄호 검사
  • 후위 표기법 계산

code (JS)

// LIFO(last in, first out) 구조
const stack = []

stack.push(1)
stack.push(2)
stack.push(3)

stack[stack.length - 1] // 3(peek)
stack.pop() // 3
stack.pop() // 2

큐 (Queue)

스택과 달리, 양 방향으로 뚫려 있어서 한쪽으로는 데이터를 저장, 또 다른쪽으는 데이터를 빼낼 수 있다
먼저 저장한 순서대로 데이터를 빼내는 자료구조 (FIFO)

  • enqueue : 큐에 데이터를 넣을 때
  • dequeue : 큐에서 데이터를 꺼낼 때

활용 사례

  • 우선순위를 필요로 하는 업무 (은행 번호표, 줄서기, 프린터 인쇄, ..)
  • CPU의 프로세스 스케줄링
  • 너비 우선 탐색(BFS) 알고리즘

code (JS)

// FIFO(first in, first out) 구조
// push() : enqueue 기능 | shift() : dequeue 기능
const queue = []

queue.push(1)
queue.push(2)
queue.push(3)

queue.shift() // 1
queue.shift() // 2
queue.shift() // 3

작년 한 해 동안 여러 가지를 하면서 방황아닌 방황을 했었는데 이번에 벼락⚡? 맞아 새로 결심한 길은 끝까지 가볼 수 있으면 좋겠다
혼공학습단 9기 2주차도 파이팅🙌

profile
앞으로 그려갈 나만의 지도

0개의 댓글