해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :)
수강 회고
오늘로 CS10 4주차에 들어섰는데, 확실히 처음 CS10 과정에 임할 때보다는 긴장도 많이 풀리고 약간의 타성(?)에 젖은 감이 느껴졌다. 이제 CS10 미션도 4개밖에 남지 않은 만큼 남은 기간 끝까지 새로운 것을 조금이라도 더 알아가고자 최선의 노력이 필요하다는 생각이 들었다.
마라톤에는 데드 포인트라는 말이 있다. 데드 포인트란 마라톤 경주에서 가장 고통스러운 순간으로 가장 포기하고싶은 순간이기도 하다. 하지만 이 데드 포인트라는 고비를 잘 넘기면 상대적으로 편안한 상태로 돌아오는데 이 시점을 세컨드 윈드라고 한다. 이번주는 나에게 있어 그리고 CS10 과정에 있어 데드 포인트가 될 것 같다. 하지만 현재의 무기력(?)함을 극복한다면 세컨드 윈드 상태가 올 것이라고 믿는다. 이러한 과정에서 제일 중요한 것은 역시 포기하지 않는 것이라고 생각한다. 지속되는 고뇌 중에서도 키보드만은 놓지 않겠다는 마음으로 학습에 임해야 겠다는 생각이 들었다.
학습 회고
- 프로세스 스케줄링 관련 미션 과제 풀이
- Java 웹 백엔드 클래스 내 소모임원들과 zoom 회의실에서 학습
오늘은 7번째 CS10 미션으로 프로세스 스케줄링 관련 미션 과제가 주어졌는데, 지난 프로세스 메모리 관련 미션 보다는 다소 쉽게 다가왔지만 여전히 익숙치 않았던 부분들이었기 때문에 별도로 많은 공부를 해야했다. 오늘은 프로세스를 위주로 학습했었는데 주요 내용으로는 다음과 같다.
프로세스
사용자가 카카오톡, 웹 브라우저, V3 등 여러 개의 프로그램들을 사용할 때 사용자 입장에서는 마치 이 프로그램들이 동시에 실행되고 있는 것처럼 보이지만 실제로는 아주 짧은 시간으로 쪼개져 이 프로그램들이 개별적으로 실행(멀티 태스킹, multi-tasking, 다중작업)되는 것이다. 이때 실행 중인 프로그램을 프로세스라고 한다.
프로세스 상태
프로세스는 다음 5가지 상태 중 하나를 가진다.
- 생성(create) : 프로세스가 생성되고있는 상태
- 실행(running) : 프로세스가 프로세서를 차지하여 명령어들이 실행되고 있는 상태
- 준비(ready) : 프로세스가 프로세서를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태
- 대기(waiting) : 프로세스가 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태를 말한다.
- 종료(terminated) : 프로세스의 실행이 종료된 상태
Queue(큐)
큐는 먼저 들어간 데이터가 먼저 나오는(FIFO, First In FIrst Out) 자료구조로 운영체제가 프로세스를 관리할 때 사용한다. 자바에서 LinkedList를 활용하여 다음과 같이 큐를 생성할 수 있다.
import java.util.LinkedList;
import java.util.Queue;
Queue<Integer> queue = new LinkedList<>();
Queue<String> queue = new LinkedList<>();
큐에 데이터를 추가할 때는 add 또는 offer를 사용할 수 있는데, add는 추가 작업 성공 유무에 따라 true 또는 예외를 발생시키는 반면 offer은 true 또는 false를 발생시킨다.
큐의 데이터를 삭제할 때는 remove 또는 poll를 사용할 수 있는데, remove는 삭제 작업 성공 유무에 따라 삭제한 데이터(객체)를 반환하거나 예외를 발생시키는 반면 poll은 삭제한 데이터(객체)를 반환하기만 한다.
큐의 가장 먼저 추가된 데이터를 참조할 때는 element 또는 peek를 사용할 수 있는데, element는 참조 작업 성공 유무에 따라 가장 먼저 추가된 데이터(객체)를 반환하거나 예외를 발생시키는 반면 peek는 가장 먼저 추가된 데이터(객체)를 반환하기만 한다.
좋았던 점
- 오늘 주어진 미션 역시 익숙치 않았던 부분들이었는데, 이번 기회에 새로운 것들을 학습함으로써 앞으로 좀 더 성장하겠다는 마음으로 학습에 임하고자 한다.
아쉬웠던 점
- 주말에 폭식(?)으로 인해 다소 속이 안 좋아 오늘 학습 시 지장이 있었다. 매번 회고 시 아쉬웠던 점으로 건강과 관련된 부분들이 언급되는 것으로 보아 앞으로 정말 건강(컨디션) 관리에 철저히 해야겠다는 생각이 든다.
'2022 Masters Course > CS 10 Course' 카테고리의 다른 글
2022 마스터즈 코스(백엔드) 18일차 회고(2022. 1. 26.) - "나의 부족한 점 점검하기" (0) | 2022.01.27 |
---|---|
2022 마스터즈 코스(백엔드) 17일차 회고(2022. 1. 25.) - "내가 아는 것을 누군가에게 설명한다는 것" (0) | 2022.01.25 |
2022 마스터즈 코스(백엔드) 15일차 회고(2022. 1. 21.) - "객체지향 프로그래밍 vs 함수형 프로그래밍" (2) | 2022.01.21 |
2022 마스터즈 코스(백엔드) 14일차 회고(2022. 1. 20.) - "질문의 중요성" (2) | 2022.01.20 |
2022 마스터즈 코스(백엔드) 13일차 회고(2022. 1. 19.) - "중간 점검" (0) | 2022.01.19 |