inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

워밍업 클럽 4기 백엔드 - 1주 차 발자국

이강호
2

👣1주 차 발자국

 

강의 요약

- 추상

 

우리가 클린 코드를 추구하는 이유 - 가독성

클린코드를 관통하는 주제 - '추상'

 

추상이란?

중요한 정보는 가려내어 남기고, 덜 중요한 정보는 생략하여 버리는 것.

적절한 추상화는 복잡한 데이터와 복잡한 로직을 단순화하여 이해하기 쉽도록 돕는다.

 

적절한 추상화는 무엇인가?

- 논리, 사고의 흐름

아래의 과정들을 통해 읽기 좋은 코드를 만들어 뇌 메모리를 적게 쓰게 한다.

 

- 객체 지향 패러다임

객체란 결국 추상화된 데이터 + 코드

객체가 여러개 생기면서 객체간 협력과 책임을 구분하는게 중요해짐.

 

객체간 협력, 책임의 관점에서 추상화를 생각해야 한다.

 

- SOLID

  1. SRP: 하나의 클래스는 하나의 변경 이유만을 가져야 한다.

  2. OCP: 기존의 코드 수정없이 시스템의 기능을 확장할 수 있어야 한다.

  3. LSP: 상속 구조에서, 자식클래스는 부모 클래스의 책임을 준수하며, 부모 클래스의 행동을 변경하지 않아야 한다.

  4. ISP: 클라이언트는 자신이 사용하지 않는 인터페이스에 의존하면 안 된다. (그럴 경우, 인터페이스를 분리해야 한다.)

  5. DIP: 상위 수준의 모듈은 하위 수준의 모듈에 의존해서는 안 된다.

 

- 객체 지향 적용하기


강의 회고

코드를 따라 치면서 많이 학습했다고 느꼈지만, 어느 학습이던 복습이 중요하겠지만 개념적인 부분은 특히 복습이 중요한 것 같다. 강의 예제(코드)가 좋아서 다시 돌려서 리팩토링 해보면서 따라가니까 좀더 확실하게 얻을 수 있었다.

학습 시간적인 측면에서 관리를 잘 못해서 처음에 몰아 듣고, 마지막에 몰아 듣게 되었는데 강의가 주제별로 잘 나뉘어져 있기 때문에 시간 관리를 위해서라도 잘 쪼개서 시간관리를 잘 해서 완강과 학습에 도움이 되도록 해야할 것 같다.

 

미션 과정

특별히 어렵게 고민한 것은 없었다.

추상과 구체, SOLID는 일상생활에서 자주 볼 수 있는 것으로 나타내면 좋을 것 같아 각각 자동차, 스마트폰에 빗대어 표현했다.

 

미션 회고

'자기만의 언어로 키워드 정리하기' 가 정말 중요한 것 같다.

어떤 분야던 학습하면서 머리에 이미지화 해서 기억한다던가 하면 오래 기억한다고 하는데, 이번 과정에서 그것을 느꼈다.

SOLID 원칙을 달달 외우기는 했지만 설명을 한다면 어떻게 ...?
이번 미션을 통해 자신만의 언어로 이미지화 했기 때문에 누구에게 설명할 때는 딱딱한 텍스트 보다는 부드럽게 설명할 수 있을 것 같다.

강의 - Readable Code: 읽기 좋은 코드를 작성하는 사고법

백엔드 워밍업클럽4기 워밍업클럽백엔드

답변 0