1. 기본 컨벤션을 지키자

보통 개발자들은 코드의 질이 어떻든 컨벤션이 안맞는다면 ‘이 코드는 못 읽겠다’라고 생각합니다. 여러분들의 실력을 보여주기도 전에 선입견을 가지고 볼 수 밖에 없습니다!! 각 언어마다 일반적으로 정해진 컨벤션이 있어요! 보통은 구글 스타일 가이드를 많이 참고한답니다! intellij를 사용하신다면 code style을 통해 컨벤션을 지킬 수 있답니다.

code style 설정하는 법

Windows : settings -> editor -> code style -> google style

macOS : preference -> editor -> code style -> google style

code format 하는법

macOS: Cmd + Option + L

Windows: Ctrl + Alt + L

2. 객체를 잘 나누자

여러분이 생각하시는 객체란 무엇인가요? 제가 생각하는 객체란 특정 데이터를 가지고있고, 그 데이터들을 다루는 개념이라고 생각해요. 현실 세계에서 생각해볼까요?

치킨을 예시로 생각해봅시다.

먼저, 객체지향적이지 않은 사장님이 있다고 합시다.

이 사장님은 모든걸 혼자하십니다. 이 사장님께서 하나의 치킨을 만드는 과정은 다음과 같습니다.

닭을 키운다 -> 닭을 잡는다 -> 손질한다 -> 요리한다 -> 고객에게 판매한다 -> 고객 응대를 한다

이 과정을 혼자 다하십니다. 만약에 손님이 닭을 더 큰 닭으로 바꿔주고, 큰 조각으로 손질하고, 튀기지 말고 구워주고, 여러가지 적립과 영수증을 요구하면 어떨까요? 그 사장님은 이러한 변경사항들을 혼자 다 받아야합니다. 어느 하나에 집중하지 못하실거에요.

반대로, 객체지향적인 사장님이 있습니다. 이 사장님이 치킨 한마리를 만드는 과정은 다음과 같습니다.

손질 된 닭을 주문한다 -> 요리사가 요리한다 -> 서빙 알바가 영수증을 뽑는다

위와 똑같은 요구사항을 받으면 이 사장님은 다음과 같이 할겁니다.

더 큰닭으로 주문한다 -> 구이로 바꾼다 -> 알바에게 영수증을 뽑아달라한다