본문 바로가기

카테고리 없음

나 : 개발할 때, 어떤경우엔 함수를 호출하고 어떤경우엔 service를 호출해야 할까?

나 : 개발할 때, 어떤경우엔 함수를 호출하고 어떤경우엔 service를 호출해야 할까?

AI Assistant:
함수와 서비스 호출은 주로 작업의 적절성과 복잡성에 따라 결정됩니다.
함수 호출은 주로 다음과 같은 상황에서 사용됩니다:
유틸리티 기능: 날짜 형식화, 숫자 반올림, 문자열 가공등 간단하며 재사용 가능한 코드 조각인 경우 일반적으로 함수로 작성됩니다.
단순 계산 로직: 복잡한 비즈니스 로직이나 상태 변경 없이 입력에 대한 출력만을 계산하는 경우입니다.
서비스 호출은 아래와 같은 경우에 사용됩니다:
비즈니스 로직: 특정 비즈니스 요구사항을 충족하는 로직을 처리합니다. 예를 들어, 사용자 인증, 데이터베이스 트랜잭션 처리 등 복잡한 처리는 서비스 레이어에서 수행됩니다.
상태 변경: 특정한 상태(예: 데이터베이스 레코드)를 수정/변경/추가하는 경우에는 일반적으로 서비스를 사용합니다.
분리된 책임: 코드의 책임을 명확하게 분리하기 위해, 특정 작업을 분리하여 서비스로 만들 수 있습니다.
기본적으로, 특정 작업이 어플리케이션의 비즈니스 논리를 포함하는 경우, 이는 서비스로서 구현되어야합니다. 그리고 이러한 서비스는 특정한 비즈니스 개념 또는 애플리케이션의 하위 도메인을 나타내야합니다.
반면에, 작업이 애플리케이션의 비즈니스 논리를 포함하지 않는다면(예: 편집한 날짜 문자열을 반환하거나, 숫자를 반올림하는 함수 등), 이는 도우미 함수로 취급될 수 있습니다. 이러한 함수는 특정 서비스 내에 있을 수도, 독립적인 유틸리티 모듈이 될 수도 있습니다.
즉, 함수 호출과 서비스 호출의 주된 차이점 중 하나는 "상태 변경" 여부, 특히 데이터베이스 상태 변경입니다. 함수는 보통 순수함수(pure function)로서 작업을 수행하며, 입력에만 의존하고 어떠한 부작용도 없는 값을 반환합니다. 반면에 서비스는 보통 어플리케이션의 비즈니스 로직을 처리하고, 그 과정에서 데이터를 생성, 수정, 삭제하는 등의 부작용이 있는 작업을 수행합니다.