inflearn logo
강의

Course

Instructor

Equipping Developer Fundamentals - Essential Concepts and Core Theories for Programming Development

The developer's eternal dilemma: ORM vs Stored Procedure

SP를 아직도 사용하나요?

59

exbe

5 asked

0

안녕하세요. 웹/백엔드 JAVA 개발자입니다.

현재 SP를 실제로 사용할까요? (DB Procedure로 이해)

(레거시 시스템 운영 외 현대의 서비스에서)

일반적으로 SP 방식의 경우 강의 내용에서 나온

버전 관리의 문제, 벤더 락인, 부분적 로직 재사용 등의 한계가 있어보여, 저는 줄곧 ORM에 적합한 환경이 아니더라도 SP 보다는 Application 레벨에서 Query를 작성&관리&실행하는 형태로 줄곧 서비스를 운영해왔고, 강의에서 언급된 ORM의 단점도 Application 에서 쿼리를 관리하면 사라지는 단점으로 보여져서, 사실상 SP는 지양해야 할 레거시 방식으로 생각하고 있었습니다.

아직 다른 도메인 영역에서는 SP를 고수하는 분야가 있는걸까요?

아키텍처 컴퓨터-구조 기술면접 소프트웨어-설계 문제해결능력

Answer 2

0

codingpe

안녕하세요. 😊

일부 도메인, 작업 영역에서 여전해 SP가 활용되는 걸로 알고 있습니다. 관행, 감사추적, 대용량 처리, 보안 등의 각기 서로 다른 니즈가 있을 것입니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. exbe님.

질문해주신 SP(Stored Procedure)의 현대적 사용에 대한 내용은 복잡하고 다양한 의견이 있을 수 있는 주제입니다. SP는 특정 로직을 데이터베이스 내에서 직접 수행하여 네트워크 오버헤드를 줄이거나, 보안성을 높이는 데 도움을 줄 수 있는 장점이 있습니다. 다만, 언급하셨듯이 벤더 락인 문제, 코드의 가독성과 관리 문제 등이 단점으로 지적됩니다.

SP가 사용되는 분야 및 이유:

  1. 데이터베이스 중심 설계: 데이터베이스에 집중하는 시스템에서는 SP가 여전히 유용할 수 있습니다. 대량 데이터 처리나 데이터베이스 연산이 빈번한 곳, 데이터 무결성을 유지해야 하는 경우에 적용되곤 합니다.

  2. 보안의 필요성: 데이터베이스 내에서 직접 로직을 수행함으로써 데이터 접근을 제어할 수 있어 보안상 장점을 가지기도 합니다.

  3. 엔터프라이즈 레거시 시스템: 대규모의 기존 시스템에서는 이미 작성된 SP를 유지보수하는 경우가 많으며, 이를 완전히 대체하기에는 비용과 시간이 많이 소요되기 때문입니다.

  4. 특정 고성능 요구: 응답 속도가 중요한 트랜잭션 작업에 있어 SP의 효율성을 활용하는 경우도 있습니다.

현대적 대안:

많은 최신 개발 프로젝트에서는 SP 대신, 마이크로서비스 아키텍처, RESTful API, ORM 기술 등을 활용하여 시스템을 설계하는 경우가 많습니다. 이를 통해 코드의 재사용성, 유지보수성, 이식성을 개선하려고 합니다.

다음의 게시물을 통해 더 구체적인 내용과 다양한 관점을 살펴보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

회사마다의 JD 자격 요건에 대해서는 어떻게 접근해야 좋나요?

0

15

1

아주 작은 정오표 전달드립니다.

0

27

2

call stack 표현이 잘못표현된것이 아닌가요?

0

30

2

jar 파일 빌드

-1

18

1

GCP SQL 진짜 어이가 없네

-1

23

1

실제로 작은 기업에서 기획 롤

1

21

1

레디스로 재고 관리

0

36

2

order_product 까마귀발

0

38

2

cache관련 질문 드립니다

0

30

1

Lock 해제 문의 드립니다.

0

39

2

스킬에 대해

1

48

2

공통 코드 , 계층 구조 질문

1

33

1

OEM에서 하는 A-SPICE

0

35

2

강의 일정 및 수업 자료 공유 관련 문의드립니다!

0

32

1

레디스로 대기큐 구현 질문

0

73

2

건강문제, 공백과 개인서비스에 대한 질문입니다.

1

58

2

비전공자 전공 필기 준비 문의

0

47

2

금공 준비하려고 하는데 코테 어떻게 준비할까요?

0

41

2

sizeof는 컴파일 타임 연산자라서 CPU를 사용치 않는다

0

29

2

API LIMIT

0

51

1

캐시 무효화

0

43

2

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

0

50

1

자연키 vs 대리키 실무질문

0

26

1

Redis와 Kafca의 Pub/Sub 차이

0

58

2