인프런 워밍업 클럽 백엔드-code 1주차 발자국
학습 요약
추상과 구체
구체 :
구체적인 것, 상세하고 자세하고...
ex: 사전에 있는 단어의 정의, 컴퓨터 내부의 동작 방식...
추상 :
구체에서 엑기스만 뽑은 것, 사람이 쉽게 이해할 수 있는 것
ex: 단어 그 자체, 클릭으로 쉽게 사용 가능한 컴퓨터 프로그램...
구체에서 정보 함축, 제거 -> 추상
추상에서 정보 유추, 재현해 이해, 추론 -> 구체
추상되어 있는 것을 보고 쉽게 구체적인 것들을 떠올릴 수 있게 하는 것이 좋은 추상!
복잡한 데이터 & 로직으로 작성된 코드 = 구체
읽기 좋은 코드 = 추상
읽기 좋은 코드란 코드를 읽으면서 복잡한 프로그램의 로직을 떠올리고 유추하고 이해할 수 있는 것이다.
늘 코드를 읽을 때 어렵고 오래 걸리고 복잡했던 이유
왜 이런 코드를 짰는지 떠올려야 함
복잡한 로직을 해석해야 함
코드를 왔다 갔다 하면서 확인해야 함
좋은 코드 = 읽기 좋은 코드를 짜려면 잘 추상화 되어서 쭉 읽히고 이해되어야 함.
그렇다면 어떻게 좋은 추상화 할 수 있는지?
이름 잘 짓기
메서드 선언부 잘 사용하기
추상화 레벨 맞추기
매직 넘버, 스트링 추출하기
early return 하기
사고의 depth 줄이기
공백 라인 활용하기
부정어 피하기
예외처리 잘하기
미션
Day2 미션 : 안쪽은 복잡하고 많지만 바깥쪽에서는 직관적으로 보이는 것들을 떠올려 보면서 추상과 구체를 이해해보려고 했다.
Day4 미션 : 좋은 추상화를 하는 방법들을 보며 하나씩 적용해 보았다.
회고
처음에 추상과 구체라는 말을 보고 이해가 잘 되지 않고 무슨 말인가 싶었다.
하지만 강의를 들으면서 이해해 가면서 왜 읽기 좋은 코드가 추상화가 잘 된 코드인지 알게 되었다.
특히 추상화 레벨 맞추는 것은 왜 늘 코드를 작성하며 메서드 추출하고 이름을 고민하고 짓고 상수를 추출해도 내 코드가 읽기 어려웠는지 알려주었다.
머리에 종이 울리는 느낌이였고 좋은 코드에 대해 제대로 알게된 기분이였다.
이번 주에는 바빠서 진도표를 맞추지 못했지만 다음 주에는 더 많이 듣고 복습해봐야겠다.
또 다음 주에는 코드도 같이 수정해보면서 더 이해하고 내 것으로 만들어야겠다.
댓글을 작성해보세요.