inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

클린코드 발자국 - 1주차 (워밍업 클럽 2기 - BE 박우빈)

보선
0

이번 주 핵심 요약

 

강의 수강

학습 내용 + 이해한 내용

  1. 추상


    추상이 뭔데? -> 묶고, 덜어내는 것(????). 공통된 특성을 찾아 묶은 뒤, 더 상세한 부분은 뭉술하게 덜어내는 것(중요하지 않아서 X, 나중에 SOLID 등의 개념과 함께 더 나은 방식으로 구체화...)

  2. 클린 코드에 대해...


    우리는 코드를 많이 쓰는 것도 좋지만, 많이 읽어야 함(실제로도 읽는 비율이 높고...). 그렇기에 내 코드를 읽기 쉽게 쓴다는 것은 제일 먼저 나 자신, 나아가 동료들에게 정말 좋은 역량 -> 클린 코드. 변수, 클래스명을 잘 짓거나, 적절한 위치에 적절한 depth와 위치를 유지하는 것만으로 정말 가독성이 좋아진다.

  3. 결국 읽는 것은 사람


    사람의 뇌가 어떻게 동작하느냐를 간단히라도 이해하고, 그 과정에 맞게 코드가 읽히도록 리팩토링해보자. 뇌가 한번에 기억할 양을 줄이고(좁은 작업에 집중시키기 => 메소드 분할, 연산 줄이기 => Early return 등...), 현재 작업에 기대하는 시나리오에 맞게 코드를 전개.

  4. 객체 지향과 SOLID


    처리해야할 작업(도메인)에 집중해서 작업한 뒤, 객체 지향적 관점으로 코드를 다시 훑어보자. 이 때 SOLID 사용하면 도움 됨. 기초적이고 순수한 Java 객체 개념에 집중하면 코드를 더 알아보기 쉽게 정리하는 역량이 향상됨. 결국 도메인을 위해 복잡한 구조의 어떤 객체를 마련하기보다, 매우 작은 작업 단위를 처리하도록 설계된(아주 많이 추상화된) 객체를 조합하고 구체화하는 식으로 작업함이 좋다고 나는 이해함.

     

     

    칭찬, 아쉬움, 보완

    • 칭찬해요: 강의 빼놓지 않고 들은 것만으로 칭찬 ㅎㅎ

    • 아쉬워요: 코드를 따라 작성하는 과정을 매우 많이 스킵함

    • 보완할것: 실습 과정을 더 가져보자

     

미션 수행

미션과 수행과정

  1. 내가 생각하는 추상과 구체란...


    내가 확실히 아는 지식은, 편하게 말로 설명할 수 있어야 한다는 관념이 있는데 그것을 여실히 느꼈던 미션. 강의를 이해했다 생각했지만 이것을 나만의 언어로 풀어낼 때 은근 어려움이 많더라...

  2. SOLID에 대해 정리해보고 코드 리팩토링 해보기


    외국어로 쓰여진 개념이라 몇 개는 정말 이해하기 어려웠음... 코드는 직접 읽어보고 '어 여긴 이해하기 어려운데...' 하는 부분을 중점적으로 리팩토링 했음. 크게 SOLID를 사용하진 않은 듯. 강의 때 배운 개념과 거의 부합하는 보완 사항이라 쉬웠음.

미션 회고

첫 주라 그런지 거의 강의만 들어도 처리 가능한 수준의 과제들이였던 듯. 지식 개념을 정말 내 언어로 편히 표현할 수 있을 정도로 내 것으로 만들었는지에 대해 주안을 둔 느낌이었음. 그래야 리팩토링 때 그것들을 내 것처럼 적절히 사용 가능할 테니까...

 

마무리

Java 기초 개념 중 모르는 게 몇가지 있더라... (ex. Enum, Optional 등...). 이런 것들 따로 알아봐야 하는데 못했음. 남은 커리큘럼 보니 실습 분량이 많아질 것 같으니 기초 문법들은 잡아두고 들어가야 하지 않을까... 그래도 평소 코드를 작성하며 느꼈던 점들이 강의 내용에 많이 녹아 있는 것 같아 다행스럽기도 하고, 이해가 쉬웠음. 강사님께서 여러 예로 설명 들어주시는데 이해 잘 되어서 다행.

백엔드 기초 클린코드 Spring

답변 0