개발자
안녕하세요. 2년차 백엔즈 개발자입니다. 저희팀은 컨트롤러-서비스-리포지토리로 나뉜 전통적인 아키텍처를 사용합니다. 현재 모든 로직은 서비스에 메소드로 구현되어있습니다. 서비스가 너무 비대한 것 같아 로직들을 객체로 따로 빼려고해도 어차피 DB에 넣는 부분 때문에 리포지토리를 주입받아야해서 그럴거면 서비스에 그냥 두라는 피드백을 받았습니다. DB에 넣지않는 부분까지만 빼려고했더니 서비스 메소드에서 if문 떡칠이 되는건 똑같더군요.. 좀더 고민하면서 생각해보니 각 api에서 처리하는 로직들은 사실상 서로 다른 곳에서 쓰일 일이 없어 객체로 굳이 분리할 필요도 없다는 생각까지 들었습니다. api가 어차피 기능별로 쪼개져있고 클라에서 알아서 호출하시니까요. 그렇다면 대부분의 상황에서 백엔드는 어떤식으로 객체지향적인 개발을 하시는지 궁금합니다..
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 12월 15일
객체지향 프로그래밍(Object-Oriented Programming, OOP)은 개발 방법론 중 하나로서, 일반적으로 객체의 캡슐화, 상속, 다형성을 이용해 코드를 작성하는 스타일입니다. 먼저 백엔드에서 OOP를 사용하는 가장 대표적인 예는 도메인 모델링입니다. 각각의 비즈니스 로직을 포함한 객체들이 서로 상호작용하며 완전한 기능을 이룹니다. 이 때의 각 객체는 애플리케이션의 도메인을 표현합니다. 다음으로 데이터베이스와 함께 사용하는 ORM(Object-relational mapping)도 좋은 예시입니다. ORM은 DB의 테이블과 매핑되는 자바 객체를 생성하며, 이런식으로 데이터에 관련된 코드가 객체 지향 스타일로 작성됩니다. 또한 디자인 패턴(Design Pattern)도 객체지향적 프로그래밍에 기여합니다. 백엔드 구조와 로직을 유지하고 확장하는 데 도움이 되는 패턴이 많으며, 이들 또한 대부분 OOP 원칙에 기반하고 있습니다. 비록 서비스 메소드가 비대해 보일 수 있지만 로직을 재사용하거나 모듈화하여 그 부담을 줄일 수 있습니다. 객체지향적 접근이 반드시 필요한 것은 아니지만, 일반적으로 코드의 재사용성, 확장성, 유지보수성을 개선하므로 백엔드 개발에서도 널리 사용되고 있습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!