인프런 워밍업 클럽 1주차 발자국
1주차 강의 정리
추상과 구체
이름 짓기에서 중요한점
메소드의 추상화
메소드 시그니처에 의미를 담는 것
동일한 추상화 레벨
매직 넘버 & 매직 스트링
"정리 시스템에서 중요한 과제는 최소의 인지적 노력으로 최대의 정보를 제공하는 것이다." <대니얼 J.래비틴, 정리하는 뇌>
early return -> if else
의미있는 단위로 depth 줄이기
의미있는 공백 라인
부정어 사용 지양
예외 처리 & 예상 가능한 예외 및 예상 불가능한 예외
객체의 설계
SOLID
1주차 강의 회고
좋았던 점
강의 내용이 매우 유익했다.
이전 프로젝트에서 놓치고 있었던 점을 다시 되돌아 볼 수 있는 기회가 되었다.
코드 작성시 사고의 관점을 어떻게 해야하는가를 생각해볼 수 있었다.
아쉬웠던 점
스스로 계획한 일정을 지키지 못했다.
배운 점
설계 관점에서 필요한 부분과 코드 작성시 유의할 점 등을 새롭게 알게 되었다.
프로젝트에 객체지향 설계를 적용해보면서 SOLID의 개념을 알 수 있었다.
앞으로 바라는 점
계획한 일정을 지키는 것.
기록을 꼼꼼하게 하는 것.
미션
Day 2
-> 추상과 구체의 예시를 잘 설명할 수 있는 소재에 대한 고민을 했다.
-> '우린다'라는 추상 안에 일어나는 자세한 과정을 구체로 표현할 수 있다고 생각.
추상: 차를 우린다.
구체
티백이 담긴 컵에 적절한 온도의 물을 붓는다.
티백 표면으로 물이 들어가 찻잎과 접촉한다.
찻잎의 성분이 물에 용해된다.
용해된 찻물은 농도가 높은 티백쪽에서 농도가 낮은 물쪽으로 확산된다.
Day4
-> SOLID의 개념을 내가 이해한 문장들로 표현하고자 했다.
-> 리팩토링 과제는 다음을 중점점으로 생각하였다.
1. Early return 활용
2. 부정어 사용 지양
3. 의미있는 메소드 이름 짓기
4. 사고의 depth를 줄이기
5. 예외 처리
https://lapis-dew-01f.notion.site/Day4-1147d24093d6807a86bed3f901a3322a?pvs=4
orElse() vs orElseGet()
orElse()과 orElseGet()의 인자로 들어가는 값이 부하가 크다면 orElse()는 성능 문제를 일으킬 가능성이 있다.
orElse()의 내부 구현은 다음과 같다.
public T orElse(T other) {
return value != null ? value : other;
}
other 값을 반환하기 위해 other 값을 항상 평가하게 된다. 내부에서 다루는 값이 평가된 값이라는 것.
예외처리 시 항상 throws를 사용해야하는가?
댓글을 작성해보세요.