[Team TAB] 4주차 스터디

2025. 2. 28. 19:07maeng 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은 데이터 액세스를 간소화하고 개발 시간을 단축하는 반면,

쿼리 빌더는 복잡한 쿼리와 성능 최적화에 대한 유연성을 제공한다

 

참고한 글

https://fenaravindhan.medium.com/orm-vs-query-builder-a-comprehensive-comparison-and-use-case-analysis-0f82815558b6

 

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 사용법

- 공부중.. 추가하겠슴다!

 

----------------------------------------