인프런 워밍업클럽 2기 BE 클린코드 & 테스트 1주차 회고

인프런 워밍업클럽 2기 BE 클린코드 & 테스트 1주차 회고

image

강의 수강

해당 글의 내용은, Readable Code: 읽기 좋은 코드를 작성하는 사고법 강의 | 박우빈 - 인프런 (inflearn.com) 강의의 섹션 1 - 5 내용을 기반으로 일주일간(첫 주차) 학습한 내용을 회고로적은 글입니다.

강의

  • 섹션 2. 추상

    • 추상이 무엇인지, 구체란 개념을 확고히하고 다양한 추상화 기법과 추상화 레벨에 따른 개념과 실습

  • 섹션 3. 논리, 사고의 흐름

    • 가독성과 코드의 최적화를 하는 방법과 실습

  • 섹션 4. 객체 지향 패러다임

    • 객체의 역할, 책임, 협력에 집중하여 설계 이론과 적용 실습

    • SOLID에 대한 개념과 실습

  • 섹션 5. 객체 지향 적용하기

    • 상속, 조합, VO, 일급 컬렉션 등 객체 지향이라는 개념을 코드에 적용하는 것에 대한 개념과 실습

 

실습은 주로 fork한 지뢰찾기 게임의 코드를 토대로 Refactoring을 거쳐가는 방식으로 학습하였습니다.

 

미션

Day2 미션 (첫번째 미션) 은 추상과 구체에 대한 예시와 자신만의 해석을 표현

Day4 미션 (두번째 미션) 은 SOLID에 대한 자신만의 해석 표현과 주문 검증 메서드를 섹션 3에서 배운 내용들을 토대로 Refactoring

후자가 더 정리 뿐 아니라 적용을 해보는 미션인지라 좀 더 고민을 가지게 되면서도 더 나은 방식이 있을까하며 고민하는 점이 있게되 더 재밌게 할 수 있었습니다.

1주차 회고

  • 강의는 처음 fork한 지뢰찾기 게임 코드를 기준으로 Refactoring을 거쳐가는 방식으로 하였다. 해당 과정에서 나는 Refactoring을 거칠 수록 더 많은 변수 생성으로 인한 개발자의 편의를 위한 코드 방식이지 않을까 싶었다. 사용되는 변수들 또는 객체들이 계속 늘어나기 시작했기 때문이다. 그러나 Refactoring을 거의 매 섹션, 섹션 내 하나의 강의의 주제마다 겁듭해나가는 과정에서 따라쳐보는 과정에서 느낄 수 밖에 없었다. 중간의 어느 부분만 수정이 아닌 거의 지뢰찾기 게임의 로직은 크게 건드리지 않으면서 매커니즘(?), 중간 과정 방식(?)을 크게 바꿔나가는 과정에서 나는 여태 생각이 짧았음과 실질적 경험이 부족하구나라는 것을 깨달을 수 밖에 없었다.


    나는 해당 과정에서 이를 깨달았다.
    2개의 철을 이어야한다.


    설명을 잘할 자신이 없어 대충 그림판으로 대체하도록 한다.


    2개의 철을 이어야 하는데 용접을 하면 바로 띡하고 이어진다.
    그러나, 2개의 철덩어리만을 붙일 경우에는 그렇다.


    image
    그러나 우리가 쓰는 많은 전자 기기 및 기계들을 간단하지 않고 연결되어 있는 부분들이 매우 많다.
    이를 위해서 우리는 2개의 철의 볼트 구멍을 맞춰서 파내도록 철을 만들며, 볼트와 두 철을 이어 볼트로 고정하는 방식을 많이 사용한다. 이를 통해 분해도 쉬워짐과 동시에 2개의 철 중 하나 또는 둘 다 변경 되어도 이전에 사용되던 볼트와 맞는 홈만 만들어 맞추면 되는 것이다.


    image
    공장이라고 할 경우 이를 규격으로 맞추면 다음 생산 제품에도 이를 사용할 수 있고 남은 부품들에 대한 재사용성을 높일 수 있다. 그러나 이를 만드는데 또한 처음엔 매우 번거롭고 시간 소모, 요구 자원등이 클 것이다.


    나는 이번 인프런 워밍업 클럽 2기로 해당 강의를 수강하면서 이러한 생각을 가졌고 아직 부족한만큼 생각이 짧아 2개의 철을 그냥 용접해서 갖다 붙이는게 편하지 않나? 이러한 생각에서 점점 바꿔나가는 과정을 거칠 수 있었다.
    항상 부족하다고 생각하지만, 스스로 이러한 클린코드에 대한 지식과 경험이 부족한만큼 너무 유익한 한주였다고 생각한다.

댓글을 작성해보세요.

채널톡 아이콘