본문 바로가기

후기/강의 후기

[4주 차 학습후기] Java&Spring boot로 시작하는 웹프로그래밍 (feat. 자바 인강)

728x90

 

- 총 8주 과정 (22.03.23 ~ 22.05.18)

- 총 33시간 과정

- 100% 온라인 진행

- Lv.2 (실전-심화)

- 무료 (K-Digital training 지원)

4주 차 학습일지 (22.04.13 ~ 04.19)


- 6주차_자바 프로그래밍_자바와 자료구조(4) (1:27:54)

- 7주차_자바 프로그래밍_스프링 입문_객체지향(1) (1:20:49)

- 7주차_자바 프로그래밍_스프링 입문_디자인 패턴(1) (1:30:33)

- 8주차_자바 프로그래밍_스프링 입문_웹 개발 개론(1) (0:36:20)

- 8주차_자바 프로그래밍_스프링 입문_스프링 부트 시작하기(1) (1:00:32)

- 8주차_자바 프로그래밍_스프링 입문_스프링 부트 시작하기(2) (1:26:11)

 

 

<총 7시간 19분 분량>

 

자료구조와 객체지향, 디자인 패턴에 대해서 다시 공부를 했다. 하지만 기본기가 꽉 잡히지 않은 상태에서 여러 개념들이 들어오니깐 바닷가 앞 모래성 같다는 느낌을 받았다. 역시 이런 강의들로만 개념을 파악하는 건 한계가 있다. 스스로 찾아보고 공부할 필요성이 생겼다. 특히 책을 통해 공부하는 게 나에게 잘 맞는 것 같다. 텍스트로 기본 틀을 잡고, 영상으로 살을 붙이는 방식 말이다.

 

객체지향 파트에선 내가 자발적으로 선행 공부했던 SOLID 원칙이 등장했다. 그나마 한 번 공부한 흔적이 있어서 정말 낯설진 않았다. SOLID 원칙 자체가 어려운 것 같진 않다. 그러나 이러한 원칙들을 실제 설계에 잘 녹여내는 것이 관건이다. SOILD 원칙도 오랜 경험들이 쌓여 탄생한 파생물이기 때문에 진짜 설계를 잘하려면 원칙을 달달 암기하는 것보단 더 효율적이고 효과적인 프로그래밍 방식이 무엇인지 고민할 필요가 있다고 생각했다. 물론 취업을 위한 면접에선 암기가 필요하겠지만 말이다.

 

다향성은 현재 고민이 많은 부분이다. 어떤 개념인지 파악은 됐으나, 실제 코드를 보면 다형성인건 알겠는데 로직을 따라가지 못하겠다. 실제 해당 코드가 어떤 코드와 연결되어 있는지, 클래스들을 넘나드는 흐름을 따라잡지 못한다. 또 실제 설계에서 언제 어떻게 다형성을 적용하는지 구체적인 방법에서 주저하게 된다. 이 말은 아직 이해가 부족하단 뜻이겠지. 자바의 정석을 통해 더 복습하고 반복해야겠다.

 

이번 주 강의 내용은 불만족스럽다. 일단 '예상국' 강사로 넘어오면서 강의가 불친절하다. 디자인 패턴부터 조짐이 나타나는데 수많은 디자인 패턴에 대해 설명하면서 초보자가 따라올 거라 생각하는 것 자체가 의아했다. 스프링 부트 강의에선 완전 처음인 사람이 따라가기엔 무력함을 느끼게 만든다. 이미 해당 개념을 알고 있거나 배운 적이 있는 사람을 대상으로 어떻게 실습하면 되는지 보여주는 것 같았다. 너무 실망스러웠다. 후반부엔 강의를 들어도 무슨 말인지 몰랐다. 따라서 해당 강의에 대해 기대가 사라졌다. 스프링에 대해선 '스프링의 정석'이나, 인프런 강의로 따로 공부하기로 마음을 먹었다. 단순히 개념들만 쭉 나열하는 식으로 커리큘럼을 짠 패스트캠퍼스의 안일함도 마음에 들지 않았다.

 

드디어 정규 커리큘럼의 모든 내용을 완수했다. 여기까지 딱 한 달이 걸렸다.

하지만 선택 사항의 추가 강의들도 많이 있다. 해당 수업들을 다 들으려면 시간이 더 걸릴 것 같다. 이제는 타 스프링 강의도 병행할 것이다.

 

수강률 100% 달성했다!

이번 주 강의에서 흥미로웠던 것들

 


(1) POJO Java란 개념이 신기했다.

 

(2) IntelliJ를 처음 사용해봤는데, 왜 사람들이 사용하는지 알겠더라. 확실히 Eclipse보다 편한 것 같다. 그러나 처음 사용하다보니 많이 낯설다. 

 

(3) Spring Boot가 무엇인지 아직 확실히 와닿지 않는다.

 

(4) Spring Boot는 결국 REST API를 설계하는 툴인가? 싶었다. GET, POST, PUT, DELETE 기능을 잘 만들어야 한다. 

 

(5) Annotation이 중요한 기능인 것 같다. 차후 해당 개념이 나오면 집중해서 보자.

 

추가 학습이 필요한 개념들


- TCP

- DTO

- Build Tool (Gradle, Maven)

- Servlet Containers (Tomcat)

- AOP

- Cache

- Proxy pattern

- Runnable

- URL과 URI의 차이