서론
코틀린은 하나의 파일(. kt)에 원하면 여러 개의 클래스 파일을 선언할 수 있다. 하나의 파일(. java)에 하나의 클래스만 선언할 수 있는 자바와 다른 점이다. 연관된 클래스를 하나의 파일에 선언할 수 있다는 장점이 있지만 나는 이 부분에 대해서는 하나의 파일에 하나의 클래스만 사용하는 방식이 여러모로 좋다고 생각하는데. 이와 관련된 이야기를 해보려고 한다.
이유 1. 하나의 파일에서 많은 코드를 다루는 것은 가독성 관점에서 좋지 않다
단순히 생각해 봤을 때 하나의 클래스에 절대적인 코드량이 많다면 이를 이해하는 것이 쉽지 않을 것이다. 사람의 뇌는 한 번에 처리할 수 있는 정보의 양이 제한적이라고 한다. 내가 파일을 열었을 때 받아들여야 하는 코드 양이 적은 것이 많은 것보다 훨씬 집중이 되고, 이는 하나의 파일에서 볼 수 있는 N개의 클래스를 N개의 파일로 만듦으로 생기는 부가적인 마우스 클릭(혹은 파일 이동) 비용보다 훨씬 큰 가치를 가진다고 생각한다.
이유 2. 파일 이름을 정하기 어렵다
하나의 파일에 여러 개의 클래스가 생기면 이 파일의 이름을 정하는 것이 어렵다. 보통 처음에는 하나의 파일에 하나의 클래스가 있는 상태에서 뭔가 기존 클래스와 연관된 새 클래스를 선언하는 것으로 시작하는데. 이렇게 클래스가 하나씩 추가되면 결국 이 클래스들을 엮을 적절한 파일 이름을 고민해야 한다. 클래스가 하나둘씩 늘어나면 결국 이 모든 클래스 파일을 대표하는 이름을 찾는 것이 불가능해지는 경우도 있다. 하나의 파일에 하나의 클래스만 있다면 해당 파일 이름은 클래스 이름과 동일하게 가져가면 된다.
이유 3. 파일 이름에 오타가 생길 가능성이 있다
이유 2와 연결된 내용이다. 즉 N개의 클래스를 대표하는 파일 이름을 정하기가 어렵고, 적절한 파일 이름을 고민하는 것보다 그냥 편하게 내버려 두는 선택으로 우리를 유혹한다. 우리는 대부분 IDE 환경에서 개발을 하고 클래스는 내가 어떻게 작성했는지와 관계없이 IDE의 기능으로 내가 원하는 클래스로 내 모니터 화면을 전환시킬 수 있기 때문이다. 이렇게 쉬운 길을 선택하게 되면 어느 순간 해당 파일에 선언한 N개의 클래스를 대표하기 적절한 이름은커녕 파일 이름 자체에 typo가 생긴 상태로 방치하게 된다.
이유 4. IDE에서 볼 때 클래스 아이콘이 더 이쁘다(?)
결론
결론적으로, 하나의 파일에 하나의 클래스만 사용하는 방식은 여러 측면에서 장점을 가진다고 생각한다. 이 방식은 파일 안의 코드량을 줄여 가독성을 높이고, 한눈에 필요한 정보를 파악하기 쉽게 만들어 개발자가 코드를 더 쉽게 이해하고 유지보수할 수 있게 한다. 또한, 파일 이름을 클래스 이름과 동일하게 설정할 수 있어 직관적이고 명확한 관리가 가능하며, 이 과정에서 발생할 수 있는 오타를 방지할 수 있다. 이처럼 하나의 파일에 여러 클래스를 선언할 수 있는 코틀린의 유연성은 장점일 수 있지만, 나는 코드의 집중력과 효율성을 유지하기 위해 하나의 파일에 하나의 클래스만 사용하는 방식을 권장하고 선호한다.
'Programming' 카테고리의 다른 글
한 편으로 끝내기 - 제네릭과 변성(공변성, 반공변성) (0) | 2024.10.13 |
---|---|
[2023 ver.] 서버 개발자 mac 장비 설정 (0) | 2023.07.22 |
성능 테스트 (0) | 2022.06.01 |
[springdoc-openapi 전환기 01] Spring Boot 2.6.x 버전에서 springfox와의 충돌 관련 이슈 & 임시 해결책 (0) | 2022.03.20 |
IntelliJ와 build.gradle을 사용하는 Spring 프로젝트를 개발할 때 Gradle runner를 사용하는 이유 (0) | 2022.02.24 |