인프런 워밍업 클럽 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를 사용해야하는가?

image

댓글을 작성해보세요.

채널톡 아이콘