본문 바로가기

OOP2

[Java] 객체 지향 vs 성능 0. 이 글을 쓰는 이유 페어 프로그래밍을 하던 중 페어와 성능에 대한 의견이 충돌한 적이 있었다. 객체 지향적으로 코드를 짜다보면 성능이 완벽하지 않은 코드가 생기는 경우가 많다. 예를 들어, for문 하나에서 A, B 둘 다 처리할 수 있는데 역할에 따라 객체를 분리하다보면 각각 for문을 도는 경우가 생긴다. 이럴 경우 어떤 것을 선택하는 것이 맞을까? 1. 객체 지향의 목적 우리는 자바를 비롯한 객체 지향 언어들을 왜 사용할까? 단순히 기능을 구현하기 위해서라면 사실 어떤 언어든 상관없다. 하지만 우리가 객체 지향 언어를 사용하는 이유 중 가장 큰 이유는 유지보수 하기 쉬운 코드를 짜기 위함이다. 유지 보수하기 좋은 코드(객체 지향적인 코드)는 누구든 이해할 수 있게 책임과 역할이 잘 분리되어있음.. 2023. 3. 9.
[JAVA] 객체 안의 public api 선정 기준 0. 이 글을 쓰게된 이유 우테코에서 사다리 미션을 하며 객체의 생성자에 있는 private method를 public api로 열어서 활용하는 것이 어떠냐는 피드백을 받았다. 개인적으로는 그 객체가 그 메소드가 호출되지 않는다면 의미가 없는 객체라고 생각해서 반박(?)을 했는데 다시 리뷰어가 public method로 열어둠으로써 얻는 이점과 private을 했을 때의 단점에 대해 설명 해주셨고 완벽하게 설득 당했다. 그 내용을 공유해보면 다음과 같다. 비즈니스 로직을 파악하기 쉽다. 보통 api 사용자들은 private mathod로 정의 해놓으면 필요하지 않는 이상(오류가 나지 않는 이상) 그 메소드를 잘 읽지 않는다. 하지만 public method는 그 메소드를 사용하려면 (적어도 메소드 명이라.. 2023. 2. 28.