인프런 커뮤니티 질문&답변
SQL 중심적 개발의 문제점에 대한 질문
작성
·
14
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
안녕하세요 선생님
SQL 중심적 개발의 문제점에 대해 궁금증이 많아 글 남겨 봅니다.
선생님의 강의를 들으면서 결국 애플리케이션의 핵심 역할은 DB라는 종착지에 가기 전 데이터를 정제하고 그 정합성을 책임지는 것이라고 생각합니다. 애플리케이션이 이 책임을 다하려면, 데이터를 담는 DB설계에 끌려다는 것이 아닌 데이터를 가공하는 주체인 객체지향 설계가 우선되야 한다고 생각이 듭니다.
하지만 현실에서는 여전히 DB무결성을 이유로 DB설계를 최우선되고 객체는 그저 데이터의 운반책으로 쓰는 경우가 많았는데, 데이터 정합성의 책임을 다하기 위해 객체지향 설계가 DB설계보다 앞서야 한다는 제 생각이 맞는지 , 혹시 이런 관점이 실무에서 DB 무결성을 놓치는 위험한 발상은 아닌지 시니어 개발자이신 선생님의 고견을 듣고 싶습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
SQL 중심적 개발의 문제점에 대한 질문을 주셨군요. 이 주제는 객체지향 설계와 데이터베이스 설계 간의 우선순위에 대한 논의로도 볼 수 있습니다. 당신의 질문은 많은 개발자들이 공감할 수 있는 부분이기도 합니다.
SQL 중심적 방식에서는 데이터베이스 설계를 우선시하고, 나중에 애플리케이션에서 이를 소비하는 형태로 개발이 이루어집니다. 이는 데이터 무결성에 강점을 가지지만, 시스템의 복잡성과 변경에 대한 유연성이 떨어질 수 있습니다. 반면 객체지향적 접근 방식에서는 시스템을 객체 모델로 이루어져 있게 설계하고, 데이터베이스는 이 객체 모델을 반영하게 됩니다. 이는 코드의 재사용성과 변경 용이성을 높이고, 시스템의 복잡한 비즈니스 로직을 객체 간의 관계를 통해 표현할 수 있는 장점이 있습니다.
다만, 이 접근 방식이 DB 무결성을 전적으로 무시하는 것은 아닙니다. 객체 설계가 우선되는 경우에도 데이터베이스의 트랜잭션과 무결성 제약을 고려해야 합니다. 데이터베이스 무결성과 객체 설계 간의 균형을 찾는 것이 중요합니다.
김영한 강사님은 실무에서 객체와 데이터베이스의 역할이 조화를 이루어야 한다고 강조합니다. 객체지향 설계에 더 주목하지만, 데이터베이스 무결성을 절대 간과해서는 안 된다고 조언하십니다.
다음의 관련 질문 글에서 특히 SQL이나 JPA 관련한 여러 유사한 논의들이 있으니 확인해 보시길 바랍니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





