회고

[커널아카데미] 백엔드 12기 5주차 - 회고 및 공부한 내용 정리

OptimizerStart 2025. 4. 27. 19:06

회고

[커널아카데미] 백

커널아카데미 백엔드 12기 5주차 회고

 

Intro

이번 주는 낯선 개념을 많이 배워서 틀을 세우는데 시간이 생각보다 오래 걸린 듯하다. 빨리 잊어버리고 바로 복습하는 것의 중요성을 느낀 주였다. 

# 낯설거나 어려운 개념은 자주 많이 봐서 납득당하기 

자바를 배울 때 지네릭, 람다와 스트림, 입출력 부분을 깊게 공부하지 않아서 수업에서 배울 때 이해 되는 것 같다가도 천천히 다시 볼 때는 궁금증이 계속 생겼다.  특히 규칙은 받아들여야 하는데 머릿속에 들어가 있지 않으면 다음 내용을 공부하면서 왜 안될까? 라는 생각 때문에 진도 나가는데 차질이 있었다. 

 

예시로, Ch15.입출력에서 '스트림' 자체가 모호하게 다가왔는데 계속 '입력 스트림을 통해 자바 애플리케이션으로 데이터를 가져옴.' 과 같이 주석에 작성하면서 공부를 했다. 반복하다보니 '스트림'은 '통로'의 정의가 이해됐다. 

 

# 믿는 도끼에 발등 찍힌다

6장, 7장은 강의도 듣고, 정석 책도 정독 및 실습 다 해봐서 잘 알고 있다고 생각했었다. 근데 강사님이 수업 시간에 '추상화 왜 장점이 뭐야?'라고 물으셨을 때, '코드 중복 제거, 변경 유리' 가 바로 떠오르지 않았다. 추상 클래스의 정의는 잘 알고 있는데, 막상 근복적인 '추상화'에 대한 복습이 부족했었다. 다시 6,7장 책 복습이랑 실습, 종이 요약 복습 해야겠다.

 

이번 주에 한 일

[학교]

  • 종합설계 회의 
  • 종합설계 - DB 설계

 

[커널 아카데미] 

  • 자바의 정석 기초편 강의 정리 Ch12.6 와일드카드 ~ Ch12.13 애너테이션 타입 정의
  • 자바의 정석 기초편 강의 정리 Ch13. 스레드 
  • 자바의 정석 Ch15.1 자바에서의 입출력 ~ 3.2.BufferedInputStream/BufferOutputStream 정독 + 실습 
  • 자바의 정석 Ch12. 지네릭에 대한 정리, 이해 안되는 개념 찾기
  • 정말 궁금한 것 깊게 파보기 3개

      1) new T(); 불가능한 이유

       - 다른 분과 거의 한시간 동안 왜 안되는지 토론(?)을 해봤다. 결론은 new 연산자가 생성할 클래스를 명확히 모르기 때문이다.

 

      2) 컴파일러의 지네릭 타입 제거 시점

     컴파일 시점에 대입된 타입으로 값을 넣었는지 체크하는데, 왜 생성할 클래스를 모른다고할까? 이 부분은 바이트코드를 보면서 분석해 봤다. 

 

     [바이트코드로 분석하는 new T()가 안되는 이유]

      https://optimizer.tistory.com/10

 

[Java] 바이트코드로 분석하는 new T()가 안되는 이유

Intro제네릭 타입 변수가 new T()로 인스턴스를 생성할 수 없는 이유를 자바의 바이트 코드 관점에서 분석해보자. 제네릭 클래스가 아닌 클래스의 new 키워드 적용new 키워드가 어떻게 생성할 클래스

optimizer.tistory.com

 

 

컴파일러의 지네릭 타입 제거 시점

  • 목차 복습 Ch13.쓰레드
  • 종이 요약 복습 Ch0. 객체지향프로그래밍1, Ch07 객체지향프로그래밍2
  • DB 실습 환경 구축 

 

이번 주에 못한일 

- 자바의 정석 기초편 강의 정리 Ch14. 람다와 스트림 

- 자바의 정석 Ch9, 11, 12, 13 정독 및 실습  

- 매일 회고 작성

- 저녁 30분 복습 

- 미니 프로젝트 설계 

 

Outro

다음 주 할 것. 

- 매일 회고 최소 1줄 작성

- Ch9,11, 12, 13, 14 자바의 정석 정독 및 실습

- 저녁 30분 복습 > 자기 전 종이 요약 말로 읽기.

 

엔드 12기 4주차 - 회고 및 공부한 내용 정리