2025. 2. 28. 19:07ㆍmaeng grow/UX・UI
3주차 팀 스터디는 개발자분들만 과제가 있어서 건너뛰고
4주차 스터디 기록해보려 한다.
1. Query Builder란?
- DB에 있는 정보를 추출, 삽입, 업데이트하는 데 사용되는 도구
- 쿼리 빌더를 사용하면 복잡한 쿼리문을 간단하게 작성할 수 있음
(SQL구문이 아닌 방식 [시각적 인터페이스 방식]을 활용하여 작성하기 때문에 입문 난이도가 낮음)
----------------------------------------
2. Query Builder를 사용하는 이유(장점)
- 복잡한 쿼리문을 간단하게 작성 가능
- 보다 간단하기 때문에 입문 난이도가 낮다.
- DB 생성 및 관리를 단순화하여 워크플로 간소화 할 수 있다.
(기존 SQL은 복잡하고 시간이 오래걸리기 때문에, 필요한 정보를 빠르게 추출하기 위해 쿼리 빌더를 사용)
- 쿼리 생성에 사용된 값은 자동으로 이스케이프(escape)된다.
(*escape: 웹 개발에서 특정 문자가 HTML코드나 다른 마크업 언어로 해석되지 않도록 변환하는 처리과정을 의미.
escape 처리된 문자들은 HTML코드로 해석되지 않고, 문자 그대로 보여짐)
- 허가된 사용자만 접근 가능하기 때문에 보안에 유리하다
----------------------------------------
3. ORM과 Query Builder 사이의 관계
[ORM 이란?]
- Object-Relational Mapping 의 약자
- 객체(Object)와 DB의 테이블을 자동으로 연결(Mapping)시켜,
관계형 데이터베이스(RDB) 테이블을 객체 지향적으로 사용하게 해주는 기술이다.
- OOP(Object Oriented Programing=객체 지향 프로그래밍)은 클래스를 사용
RDB(Relational Database=관계형 데이터베이스)는 테이블을 사용하는데, - OOP(객체 모델)과 RDB(관계형 모델) 간에 불일치가 존재하게 된다.
- ORM(Object-Relational Mapping)을 통해
> 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결할 수 있다.
[ORM과 Query Builder 사이의 관계]
ORM (Object-Relational Mapping) | Query Builder | |
장점 | 개발시간 단축: 데이터 액세스를 간소화하여 로직에 집중 가능함 | 성능 최적화: 쿼리 빌더를 사용하면 SQL 쿼리를 세부적으로 제어할 수 있으므로 개발자는 특정 시나리오에 따라 성능을 최적화할 수 있음 |
코드 유지관리에 용이: ORM은 원시 SQL보다 가독성 굿, 유지보수에 좋음 | 복잡한 쿼리에 대한 유연성: 쿼리 빌더는 ORM 추상화를 사용하여 쉽게 표현하기 어려운 복잡한 쿼리를 처리할 수 있는 유연성을 제공 | |
SQL 오류 위험 감소 | 직접적인 SQL 상호작용: 개발자는 생성된 SQL 쿼리에 대한 제어권을 유지하여 특정 요구 사항에 맞게 데이터베이스 상호작용 조정 가능함 | |
단점 | 퍼포먼스 저하: 추상화 계층이 추가되기 때문에 퍼포먼스가 다소 저하될 수도 있음 | 개발 복잡성 증가: 쿼리 빌더는 ORM 프레임워크에 비해 개발자가 더 많은 코드를 작성해야 하므로 개발 노력이 증가함 |
제한된 유연성: 복잡한 쿼리나 특정 데이터베이스 최적화를 처리에 한계가 있음 | SQL 오류 위험 증가: 개발자는 SQL 쿼리를 구성해야 하므로 SQL 오류가 발생할 위험이 커짐 | |
코드 가독성 감소: 쿼리 빌더 코드는 복잡해지고 읽기 어려워질 수 있음, 특히 복잡한 SQL 쿼리의 경우 더욱 | ||
적합한 플젝 |
빠른 개발과 유지 관리에 초점을 맞춘 프로젝트: ORM의 추상화는 데이터 액세스를 간소화하여 개발 시간을 줄이고 코드 유지 관리성을 개선한다 | 성능이 중요한 데이터 액세스가 필요한 프로젝트: 쿼리 빌더는 성능이 중요한 시나리오에 맞춰 SQL 쿼리를 최적화할 수 있는 유연성을 제공함 |
표준화된 데이터 액세스 패턴을 갖춘 프로젝트: ORM은 데이터 액세스 패턴이 잘 정의되고 반복적인 프로젝트에 적합> 개발자가 ORM의 추상화를 효과적으로 활용할 수 있는 경우에 적합 | 복잡한 데이터 액세스 요구 사항이 있는 프로젝트: 쿼리 빌더는 ORM 추상화를 사용하여 쉽게 표현하기 어려운 복잡한 쿼리를 처리할 수 있는 유연성을 제공함 | |
노련한 개발자가 있는 프로젝트: 쿼리 빌더는 개발자가 SQL과 DB 상호 작용에 대해 더 깊이 이해할 것을 요구함> 경험이 풍부한 개발자가 있는 플젝에 적합함 |
||
[총정리] ORM은 데이터 액세스를 간소화하고 개발 시간을 단축하는 반면, 쿼리 빌더는 복잡한 쿼리와 성능 최적화에 대한 유연성을 제공한다 |
참고한 글
ORM vs. Query Builder: A Comprehensive Comparison and Use Case Analysis
Object-relational mapping (ORM) and query builders are two popular approaches to data access in web applications. While both serve the same…
fenaravindhan.medium.com
----------------------------------------
4. TypeORM의 Query Builder 사용법
- 공부중.. 추가하겠슴다!
----------------------------------------
'maeng grow > UX・UI' 카테고리의 다른 글
[Team TAB] 2주차 스터디_ERD(Entity-Relation Diagram)해석해보기 (0) | 2025.02.24 |
---|---|
[Team TAB] 1주차 스터디 (1) | 2025.02.11 |