자바 API 활용과 제네릭, 람다식
1. 이번 주에 배운 기술이나 개념 중 가장 기억에 남는 3가지는 무엇인가요?
첫째, 자바 API와 String의 불변성. String은 불변 객체라 수정 시 계속 새로운 객체가 생성되므로, 잦은 변경이 필요할 땐 StringBuffer나 StringBuilder를 써야 메모리 낭비를 막는다는 점.
둘째, 제네릭(Generic)을 통한 타입 안정성. 컴파일 단계에서 타입을 체크해 실행 중 오류를 방지하고, 불필요한 캐스팅 코드를 줄여 성능과 가독성을 모두 잡는 설계 방식.
셋째, 람다식(Lambda)과 함수형 인터페이스. 익명 객체를 간결한 식(->)으로 표현해 코드를 획기적으로 줄이고, Predicate, Consumer 등 표준 함수형 인터페이스를 활용하는 법.
2. 이번 주 과정 중 막혔던 문제나 오류가 있었나요? 어떻게 해결했나요? (없다면 가장 인상 깊었던 실습 내용)
제네릭 타입의 상속 관계 오해. ArrayList<Beverage>와 ArrayList<Beer>는 상속 관계가 아님을 모르고 대입하려다 컴파일 에러 발생. 와일드카드(? extends T)를 사용해 해결함.
또한 예외 처리(Exception)의 흐름 제어. try-catch-finally 구문에서 return이 있어도 finally 블록은 무조건 실행된다는 것을 디버깅 실습을 통해 직접 확인하고 이해함.
3. 이번 주 수업 진도 속도, 강사님의 강의 스타일, 혹은 반 분위기는 어땠나요?
방대한 자바 표준 API(java.lang, util)를 다루면서 암기보다 API 문서 보는 법을 강조한 강의 스타일이 좋았음. 필요한 클래스를 직접 찾아 쓰는 능력이 길러짐.
람다식 문법이 처음엔 낯설어 반 전체가 헤매는 분위기였으나, 강사님이 기본 코드를 람다로 줄여가는 과정을 단계별로 보여줘 이해도가 급상승함.
4. 다음 주에는 어떤 부분을 보완하고 싶나요?
표준 함수형 인터페이스(Predicate, Function 등)의 종류와 쓰임새가 헷갈림. 각 인터페이스가 어떤 매개변수를 받고 무엇을 리턴하는지 표로 정리해 완벽히 암기할 계획.
또한 제네릭의 와일드카드 제한(super vs extends) 부분을 복습해, 라이브러리 설계 시 유연하게 타입을 다룰 수 있도록 기초를 다져둘 예정.
댓글
댓글이 없습니다.
