1️⃣. 애플리케이션 단에서 SQL을 쓰는건 번거롭다.
순수 Jdbc 로 SQL Query 를 OOP Lang 에서 보내기 위해서 작성해야하는 코드의 길이나 해야할 일들이 매우 번거롭고 많다.
2️⃣. Paradigm 의 불일치
Java는 OOP 의 언어다. IPEA(Inheritance, Polymorphism, Encapsulation, Abstraction) 를 지향한다.
즉, 객체들 간의 복합적인 관계를 설정할 수 있다는 건데, SQL 은 이러한 상속구조가 불가능하다.
→ 즉 Mapping & Converting 작업을 거쳐야 하는데, 이걸 개발자가 해야하는 상황이 Jdbc 를 쓰는 방식이다.
또한, 연관관계에서 차이가 있다. OOP는 Reference 를 사용해서 관계를 맺는데, SQL 은 FK 를 통해서 관계를 맺는다. 보통 Table Entity 에 대해서 OOP 에서 Modeling 을 한다고 했을 때, 특정 도메인의 정보를 전부 포함하고 싶다면, 그냥 그 도메인 클래스를 멤버로 넣어주면 될 것이다. 가령 아래 코드와 같이 말이다.
public class Team {
String id;
Member member; // Member=[member_id, member_name, age , ...]
String teamName;
}
하지만, SQL 에서는 저런게 불가능하고, FK 와 제약조건을 사용해서 Join 해야한다.
3️⃣. Entity 신뢰의 문제 Ref. 33 (이거 나중에 다시 채울 것)