inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 클럽 3기 - 백엔드] 발자국 1주차

namgh1
0

일주일 간 학습내용 정리

 

섹션 2. 추상

추상 & 구체

 

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

 

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

 

섹션 5. 객체 지향 패러다임

 

강의 회고

사람마다 같은 기능을 구현하더라도 코드 스타일이 저마다 다를 것이다. 하지만 클린 코딩을 실천하면 코드가 더욱 직관적이고 명확해져서 협업과 소통이 훨씬 원활해질 것이라고 생각했다. 이러한 이유로 이번 강의를 신청하게 되었다.

이번 강의를 통해 클린 코딩의 장점뿐만 아니라 추상의 개념과 그 반대 개념인 구체에 대해서도 배울 수 있었다. 강의에서는 지뢰찾기 게임의 코드를 클린 코드로 개선하는 과정을 예제로 보여주며 개념을 설명해 주었고, 이를 통해 클린 코드가 실제 코드에서 어떻게 적용되는지 더 쉽게 이해할 수 있었다.

다만, 아직 코딩 실력이 부족하다 보니 직접 따라 하거나 혼자서 구현해보는 것이 쉽지는 않았다. 하지만 수업을 들으며 내가 이전에 작성했던 코드들을 다시 살펴보니, 개선할 점들이 보이기 시작했다. 앞으로는 이런 점들을 하나씩 고쳐 나가며 실력을 키워야겠다고 다짐했다.

처음에는 클린 코딩이 정해진 규칙이나 규율을 따라야 하는 것이라고 생각했지만, 강의를 들으며 그것이 단순한 형식적 규칙이 아니라 소속된 팀이나 협업하는 사람들 간의 원활한 소통을 위한 과정이라는 점을 깨닫게 되었다. 결국 클린 코딩은 단순히 코드 스타일을 개선하는 것이 아니라, 코드를 읽는 사람을 배려하고, 보다 쉽게 이해할 수 있도록 만드는 작업이라는 점이 가장 인상적이었다. 앞으로는 더 좋은 코드 작성법을 고민하며 클린 코딩을 실천해 나가야겠다.

 

미션 회고

 

[미션 Day 2 회고]

 "추상과 구체" 개념을 학습하며, 스마트폰 충전 과정을 예시로 들어 미션을 수행했다.

처음에는 단순히 "스마트폰을 충전했다"라는 한 문장으로 표현할 수 있는 일이었지만, 이를 구체적인 단계로 풀어 쓰면서 우리가 일상적으로 당연하게 여기는 행동들이 얼마나 많은 세부 과정으로 이루어져 있는지 다시 한번 깨닫게 되었다.

이 과정에서 추상이란 복잡한 개념을 간결하게 표현하는 것이며, 구체란 그 개념을 더 세부적으로 풀어 설명하는 것이라는 점을 실감했다. 예를 들어, "충전기를 꽂는다"라는 간단한 표현도 실제로는 케이블을 찾고, 포트를 확인하고, 어댑터에 연결한 뒤, 충전 여부를 확인하는 과정을 포함하고 있었다.

이번 미션을 통해 추상화가 얼마나 중요한 개념인지, 그리고 개발에서도 이처럼 필요한 수준에서 적절한 추상화를 적용하는 것이 왜 중요한지 다시금 생각해보는 계기가 되었다. 앞으로 코드 작성 시에도 너무 구체적으로 표현하여 복잡도를 높이지 않으면서도, 필요한 핵심 개념이 잘 드러나도록 추상화하는 연습을 해야겠다고 다짐했다.

 

[미션 Day 4 회고]

이번 미션에서는 가독성이 좋은 코드 작성과 SOLID 원칙을 이해하는 것이 핵심이었다.

1. 코드 리팩토링

기존 코드에서 getter 최소화, 부정 연산자 제거, Early return 적용을 통해 코드의 가독성을 개선했다.
특히, order.getItems().size() == 0 대신 order.isEmpty(), order.getTotalPrice() > 0 대신 order.hasInvalidTotalPrice() 등의 메서드를 추가하여 객체가 스스로 판단할 수 있도록 책임을 분리했다. 이를 통해, 코드의 의도가 명확해지고 유지보수가 쉬워지는 효과를 얻었다.

리팩토링을 하면서 객체지향적인 사고방식이 얼마나 중요한지 다시 한번 실감했다. 기존의 validateOrder 메서드는 여러 개의 조건문이 중첩되어 있어 읽기 어려웠지만, 조금만 분리하고 정리해도 코드가 한눈에 들어오는 것을 경험할 수 있었다. 앞으로 코드 작성 시 "내가 짠 코드가 명확한가?"를 더 자주 고민해야겠다고 다짐했다.

2. SOLID 원칙 정리

SOLID 원칙을 정리하면서, 이론적인 내용만 외우는 것이 아니라 일상적인 예시를 들어 직접 설명해 보는 과정이 재미있었다.
특히, 예시로 들면서 원칙이 왜 필요한지 더욱 쉽게 이해할 수 있었다.
이처럼 코드뿐만 아니라 개념도 직접 예시를 들어 설명하면 더 깊이 이해할 수 있다는 점을 느꼈다.

이번 미션을 통해 "읽기 좋은 코드가 좋은 코드다"라는 사실을 다시금 깨닫게 되었다. 앞으로 코드 작성 시 단순히 기능 구현에 집중하는 것이 아니라, 다른 사람이 봤을 때도 쉽게 이해할 수 있는 코드인지 고민하는 습관을 길러야겠다.

백엔드 ReadableCode 클린코드

답변 0