해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :)
수강 회고
오늘로 2022 마스터즈 코스 과정을 수강한지 2달이 되었다. 벌써 6개월 과정 마스터즈 코스의 1/3이 지난 것이다. 지난 2달이라는 시간 동안 10개의 CS 미션 과제와 2개의 자바 객체지향 프로그래밍 미션 과제를 수행해오면서 정말 많은 것을 배울 수 있었다. 커다란 관점에서 프로그래밍 관련 지식과 경험에 관한 부분 그리고 학습 태도와 관련된 부분으로 나눠볼 수 있을 것 같다.
먼저 프로그래밍 관련 지식과 경험에 관한 부분으로는 대표적으로 "객체지향 프로그래밍"에 대한 이해도를 높이고 경험도를 쌓을 수 있었다는 점이었다. 마스터즈 코스 과정을 시작하기 전 자바 프로그래밍을 제대로 학습한 지는 2달 채되지 않았었지만 당시에는 머리로는 객체지향의 4대 특성을 어느정도 이해하고 있었다고 생각했었다.
하지만 마스터즈 코스 과정을 본격적으로 수강하면서(자바 프로그래밍을 하면서) 나의 자바 프로그래밍 수준이 여실히 드러날 수 있었으며, 그동안 내가 자바 프로그래밍에 대해서 어느정도 이해하고 있었다고 생각이 정말 오만한 생각이었다는 것을 체감할 수 있었다. CS10 과정을 통해서 보다 더 나은 자바 프로그래밍을 해나갈 수 있었지만 마스터즈 코스 수강한지 2개월이 다 된 지금 지난 CS10 과정을 수행하면서 작성했었던 코드들을 보면 부족한 점들이 정말 많아 현재 시간이 남을 때 당시 작성했었던 코드들을 리팩토링하는 중이다. (코드스쿼드 모집 테스트 때 구현했었던 "소코반 게임" 프로그램의 코드는 말할 것도 없다..😂)
학습 태도와 관련된 부분 역시 정말 많이 배우고 있는 중이다. 앞서 언급했다시피 불과 내가 1달전에 작성했었던 코드들을 지금 보더라도 부족한 점들이 정말 많이 보이는데, 당시에는 조금이라도 코드가 개선될 때마다 약간의 자만한 생각과 마음이 생기곤 했었다. 하지만 다음 미션 과정을 수행할 때마다 이러한 나의 생각과 마음이 얼마나 어리석었는지를 알게 되었고 이를 통해 나는 앞으로 개발을 하면서 항상 겸손해야겠다는 생각이 들었다. 아울러 지금 이 글을 작성하고 있는 시점의 내가 작성한 코드도 1달 후에 내가 보기에는 허점이 많아 보일 것이라는 생각이 들었다.
또한 내가 작성한 코드가 항상 정답이 아닐 수 있다는 생각을 견지해야할 필요성을 느꼈다. 코드를 작성하고나면 스스로 만족하는 경우가 많았었는데 그럴때마다 다른 수강생들이 작성한 코드들을 볼 때면 나의 코드의 부족한 점들을 확인할 수 있었다. 항상 내가 작성한 코드들을 보면서 "더 개선할 점이 없을까?"라고 질문하며 확증 편향에 유의해야겠다는 생각이 들었다.
학습 회고
- 스프링 부트 관련 미션 과제 풀이
- Java 웹 백엔드 클래스 내 소모임원과 zoom 회의실에서 학습
오늘로 웹 백엔드 3주차 과정이 시작되었다. 지난 웹 백엔드 1~2주차 과정에서는 자바 객체지향 프로그래밍 관련 미션이 주어져 주로 캡슐화, 추상화, 상속 등 객체지향의 대표적인 특성에 대해 학습할 수 있었고 아울러 클린코드 작성 경험을 쌓을 수 있었다. 오늘부터는 스프링 부트 미션이 주어졌는데 페어 프로그래밍을 통해 미션을 수행했었던 지난 미션과는 달리 이번 미션은 평상시처럼 개인 미션으로 수행하는 방식이었다. 아무래도 페어 프로그래밍이 수행 과정이 혼자할 때 보다는 고된 만큼 이번 미션은 한결 가벼운 마음으로 임할 수 있었다.
작년도 부스트코스 웹 프로그래밍(풀스택) 과정을 수강하면서 스프링 MVC 모듈 자체는 사용해봤었는데, 스프링 부트 사용은 이번이 처음이었다. 스프링 부트를 사용하기 전 스프링 프로젝트를 세팅할 때는 별도로 톰캣도 설치해주고 web.xml 파일도 설정하는 등 번거로운 작업들이 많이 수행됐어야 했는데 스프링 부트를 사용하니 이러한 과정들이 모두 추상화 되어 한결 편하게 프로젝트를 세팅할 수 있었다. 아울러 스프링 MVC를 한 번 써본 경험이 있어서 오늘 스프링 부트를 학습하는데 많은 도움이 되었다.
오늘 오후에는 마스터 클래스 강의로 호눅스가 스프링 부트의 프로젝트 세팅 방법과 기본적인 사용 방법에 대해 설명해주었는데 스프링 부트를 이해하는데 많은 도움이 되었고 또한 재밌게 강의를 들을 수 있었다. 이후 호눅스의 추천으로 인프런 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 강의를 수강했는데 스프링 부트 입문자인 내가 들어도 아주 쉽게 이해할 수 있는 강의였다. 이러한 강의를 무료로 공개해주신 김영한님께 감사한 마음이 들었다.
이외에도 개인적으로 스프링에 대한 복습 차원에서 기본적인 개념에 대해서 학습했었는데 주요 내용으로는 다음과 같다.
Bean Class
일반적인 Java 클래스를 Bean 클래스라고 보통 말하지만 Bean 클래스는 사용자가 직접 생성 하는 것이 아니라 Spring 프레임워크(컨테이너)에 생산을 맡기는 것이다.
MVC란?
MVC는 Model-View-Controller의 약자이다. 우선 View는 웹 애플리케이션에서 실제로 보이는 부분으로 HTML, JSP 등으로 그 결과를 표현한다. Model은 View가 UI를 렌더링하는데 필요한 데이터로 예를 들어 사용자가 요청한 상품 목록이나, 주문 내역 등 주로 동적인 데이터들이 이에 해당된다. 마지막으로 Controller는 사용자의 HTTP 요청(get, post 등) 등에 응답하는 컴포넌트(Component)로서 해당 요청에 따라 비즈니스 로직을 수행하는 서비스(Service) 호출하거나 Model을 업데이트하는 작업을 수행한다.
좋았던 점
- 주말간 푹 쉰 덕에 오늘 하루는 건강한 상태로 학습할 수 있었습니다. 💪
아쉬웠던 점
- 지난주 금요일 페어 프로그래밍 미션을 모두 마친 후 후련한(?) 마음에 매운 음식을 먹은 이후로 지금까지도 속이 안 좋습니다 💦
'2022 Masters Course > Web Backend Course' 카테고리의 다른 글
2022 마스터즈 코스(백엔드) 38일차 회고(2022. 3. 2.) - "테스트 코드 작성, 이제는 해야한다." (4) | 2022.03.02 |
---|---|
2022 마스터즈 코스(백엔드) 37일차 회고(2022. 3. 1.) - "나만의 페이스 유지하기" (0) | 2022.03.01 |
2022 마스터즈 코스(백엔드) 35일차 회고(2022. 2. 25.) - "고진감래" (2) | 2022.02.25 |
2022 마스터즈 코스(백엔드) 34일차 회고(2022. 2. 24.) - "개념과 실무는 별개" (2) | 2022.02.25 |
2022 마스터즈 코스(백엔드) 33일차 회고(2022. 2. 23.) - "페어 프로그래밍 vs 개인 프로그래밍" (7) | 2022.02.23 |