2022 Masters Course/CS 10 Course

2022 마스터즈 코스(백엔드) 25일차 회고(2022. 2. 11.) - "힘들었지만 그래도 보람있었던 CS 10 과정"

ikjo 2022. 2. 12. 00:27

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :)

 

수강 회고

오늘로 CS10 과정이 모두 종료되었다. 그동안 컴퓨터 연산 장치를 구성하는 기본 요소 가산기 미션부터 어제 오늘 진행되었던 HTTP 미션까지 총 10개의 미션을 수행하면서 참 고되기도 했었고, 보람되는 일도 많았었다. 개인적으로 총 10개의 미션 중에서 가장 아쉬웠었던 미션은 "프로세스 메모리" 미션이었다. 해당 미션 내용을 보았을 때 근본적으로 "무엇을 구현해야되는지"를 몰랐었던 것 같다. 이는 애초에 프로세스 메모리에 대한 기본 개념이 많이 부족했었기 때문이었다고 생각한다. 그리하여 당시 미션 과제 풀이 시 구현보다는 개념 위주의 학습을 했었지만 아직도 구현에 대한 아쉬움이 조금 남아있는 편이다.

 

개인적으로 가장 몰입도가 높았었던 미션은 이번에 진행되었던 "HTTP" 미션이었다. 코드스쿼드에 오기 전 부스트코스 "웹 프로그래밍(풀스택)" 과정을 통해 웹 개발에 대한 흥미와 관심도도 많았었고, CS 과목 중에서도 네트워크(특히, Web) 관련해서 가장 공부를 많이 하기도 했었다. 비록 완성도 있는 프로그램은 아니었지만 매번 당연하게 이루어지는 HTTP 요청과 응답 과정을 직접 구현하는 과정에서 배울 수 있었던 점들이 정말 많았던 미션이었다. 아울러 CS10 과정에서의 마지막 미션이었기 때문에 포기하지않고 끝까지 최선을 다하고 싶었었던 마음도 있었던 것 같다.

 

CS10 미션 하나하나는 곱씹어보면 정말 배울 것이 많은 과정이었다. 컴퓨터로 일상 생활을 하면서, 컴퓨터로 업무를 하면서, 또는 프로그래밍을 하면서 당연하게 동작했었던 하드웨어와 소프트웨어의 광활한 영역 중 특정 영역에 초점을 맞추어 해당 프로세스를 가벼운 프로토타입 형식으로 제작하는 그 과정에서 전투적인 구글링, 동료들과의 정보 공유, 그룹 리뷰 등을 통해 충분히 성장할 수 있었다고 생각한다. 다만 아쉬웠었던 것은 어제 회고에 남겼듯이 그 좋았었던 학습 내용들을 생각보다 기록으로 많이 남기지 못했던 것이었다.

 

물리적인 시간 상의 CS10 과정은 모두 종료되었지만 지금까지 학습했었던 내용들도 정리되지 않았고 CS10 전체 과정에 대한 회고도 작성하지 못했기 때문에 아직까지 마음 속에는 하나의 숙제가 남아있는 기분이다. 곧 바로 다음주부터 웹 코스 과정이 시작된다. 드디어 마스터 호눅스의 자바 웹 프로그래밍 클래스가 시작되는 것이다. 나에게 있어 바라는 점은 더도 말고 덜도 말고 딱 CS10 과정을 했을 때만큼 열정으로 과정에 최선을 다할 수 있었으면 하는 바람이다. 무엇보다 가장 걱정되는 점은 나의 "체력"이다. 무엇보다 컨디션 관리를 위해 힘써야 겠다는 생각이 많이 든다.

 

 

학습 회고

  • HTTP 관련 미션 과제 그룹리뷰
    • Java 웹 백엔드 클래스 내 소모임원과 zoom 회의실에서 학습

 

어제 오늘로 이번 HTTP 관련 미션은 어느 정도 마무리할 수 있었다. 비록 어디가서 말하기에는 부끄러운 점이 많은 프로그램이지만 내가 구현할 수 있는데 까지는 정말 최선을 다해 구현했었다고 생각한다. 그 이상을 하는 것은 현재 나의 지식과 안목으로는 부족하다고 판단하며 마지막으로 이번 미션을 수행하면서 주요 학습 내용과 느꼈던 점을 남기며 마무리를 짓고자 한다.

 

Java Socket 통신 중 BufferedReader read(Line) 메서드 Blocking 이슈에 대한 고찰

 

Java Socket 통신 중 BufferedReader readLine 메서드의 Blocking 이슈에 대한 고찰

문제 정의 : readLine 메서드의 Blocking 현상 소켓 통신을 통해 시중에 배포된 웹 서버로부터 입력받은 데이터(응답 메시지의 본문)를 BufferedReader 객체의 readLine 메서드를 통해 읽어오는 중 해당 메서

ikjo.tistory.com

 

느꼈던 점

처음 미션을 시작할 때는 단순히 메시지를 주고 받는 수준 정도로만 생각했었는데 실제 웹 브라우저까지가 아니라 단지 흉내만 내려고 해도 그 과정에서 요청 헤드 설정, 응답 헤드값 추출(정규표현식 등), 인코딩 방식, 버퍼, 리다이렉트 등 상당히 많은 점들을 고려해야한다는 것을 느낄 수 있었다. 어렸을 때부터 그냥 당연하게만 여겨 사용했었던 이런 웹 브라우저를 개발하기 위해 당시 전세계 수많은 천재 개발자들이 얼마나 노력을 많이 했을지가 감도 오지 않는다. 심지어 이번 과정에서는 POST, PUT, DELETE 등의 다른 HTTP API 메서드들은 다루지도 않았기에 앞으로 꾸준히 더 개발 공부에 힘써야 겠다는 생각이 들었다.

 

이번 계기로 웹 브라우저의 세부적인 동작 요소들과 동작원리 등이 궁금해졌다. 이번에 구현한 것은 단지 웹 서버와 통신만 할 수 있는 네트워크 모듈(물론, 프로토 타입 of 프로토 타입)이었지만 실제 웹 브라우저는 사용자 인터페이스 영역, 렌더링 엔진, 자바스크립트 인터프리터, UI 요소를 저장하고 있는 백엔드 영역, cookies와 localStroage 같은 데이터 저장소 등 이처럼 수많은 요소들로 구성된다. 이러한 웹 브라우저의 세부 동작은 프론트 엔드 개발자라면 필수적으로 알아야 겠다는 생각이 들었고 백엔드 개발자를 준비하고 있는 나 역시도 개념을 제대로 이해하고 있어야 할 필요성을 많이 느낄 수 있었던 미션이었다.

 

 

좋았던 점

  • CS10 과정의 마지막 미션인 이번 HTTP 미션을 내가 할 수 있는데까지 (나중에 후회하지 않을 정도로) 최선을 다해 임했습니다. 비록 부족한 점이 많은 프로그램이지만 고된 작업 끝에 어느정도 모양새가 나온 것을 보고 뿌듯했습니다.

 

 

아쉬웠던 점

  • 물리적인 시간 상의 CS10 과정은 모두 끝났지만 그동안 학습했었던 내용들을 많이 정리하지 못했었던 점이 아쉬움이 많이 남습니다.

 

 

무엇인가가 중요하다면, 역경이 있더라도 반드시 실행하라

- 테슬라 CEO 일론 머스크 -