개발에 대해 공부하고 프로젝트를 진행하면서 좋은 코드에 대한 말을 많이 듣습니다.
좋은 코드를 위해 팀원들과 코드 리뷰를 하며 토론을 하고 여러 책이나 영상을 찾아보며 공부하고 디자인 패턴을 적용하기도 합니다. 그 중 객체지향이라는 키워드는 좋은 코드에서 가장 많이 나오는 키워드 중 하나입니다.
그래서 객체지향이란 무엇인지 확인해보고 그에 따라서 제가 생각하는 좋은 코드란 무엇인지 설명하겠습니다.
객체지향이란
그럼 대체 객체지향이란 무엇일까요? 아래는 gpt가 객체지향 프로그래밍이 뭐야?라는 질문에 대해 답변한 내용입니다.

답변을 아래와 같이 정리해 볼 수 있겠네요.
- 프로그램을 클래스와 객체를 통해 캡슐화하여 구현한다.
- 상속과 다형성을 통해 유연성과 확장성을 제공한다.
- 직관적으로 모델링하여 유지보수와 확장이 용이하다.
즉, 유지보수와 확장성을 위해 객체지향을 사용한다고 합니다. 그렇다면 객체지향은 어떻게 이런 장점을 제공할 수 있을까요?
객체지향을 사용하는 이유
객체지향을 사용하는 이유를 알기 위해선 절차적 프로그래밍을 알아야 된다고 생각합니다.
절차적 프로그래밍이란 프로그램을 함수 or 메소드를 통해 구현하는 프로그래밍을 의미합니다. 즉, 중복되는 로직들을 함수로 통합해 처리하는 방식입니다. 하지만 절차적 프로그래밍은 로직의 중복을 제거할 수는 있어도 데이터 자체를 구조화할 수는 없습니다. 그렇기에 프로젝트의 규모가 커지면 특정 함수가 이곳저곳에서 사용되어 함수 하나를 수정할 때 변경 사항의 전파가 커지는 등 유지 및 보수에 큰 리소스를 소모합니다.
그래서 객체지향이 등장했다고 생각합니다. 하나의 기능을 객체들의 소통으로 구현하여 데이터까지 구조화를 한 뒤 다른 개발자가 기능을 수정하려고 할 때 관련된 객체만 이해해도 되도록 하여 리소스를 줄이기 위해서요.
즉, 제가 생각하는 객체지향의 등장 이유는 협업 시 다른 사람의 코드를 수정할 때 리소스를 줄이기 위함이라고 생각합니다.
좋은 코드란
그렇기에 제가 생각하는 좋은 코드는 다른 개발자가 저의 코드를 보고 원하는 기능을 수정하기 쉽게 만든 코드라고 생각합니다.
- 수정을 원하는 기능에 대한 로직이 어느 클래스에 있을 지 쉽게 유추가 가능하다
- 원하는 클래스가 어느 패키지에 있을 지 쉽게 유추가 가능하다.
- 변수 or 상수를 한 곳에서 관리하여 휴먼 에러를 줄일 수 있다.
- ...
위와 같은 기준들이 쌓여서 나온 코드가 좋은 코드라고 생각합니다.
하지만 이런 기준들은 결국 내가 아닌 남이 봤을 때 이해하기 쉬운가 가 본질이기 때문에 최대한 많은 사람들의 코드를 보고 토론을 통해 생각을 공유하려고 노력해야 좋은 코드가 나올 수 있을 것 같습니다.
'Side Tech Notes' 카테고리의 다른 글
| 리액터 패턴 / 프로액터 패턴 (1) | 2025.07.19 |
|---|---|
| AWS CloudFormation (0) | 2025.05.27 |
| @Transactional과 동시성 제어를 위한 Lock의 관계 (0) | 2025.05.23 |
| 빌더 패턴이 정말로 좋을까 (0) | 2025.03.24 |
| 정적 팩토리 메서드 (정팩메)의 사용에 대해서 (0) | 2025.02.16 |