SlideShare ist ein Scribd-Unternehmen logo
1 von 8
♣ 2016-10-15 pgday 발표 자료 ♣
■ 나는 왜 Postgresql 을 쓰는가?
• Framework 이기 때문에.
• 그럼 왜 Framework 인가?
• 아래 기능을 보고도 Framework 가 아니라고 할 수 있나.
• #-기능-1 : 소켓 관련 작업.
• #-기능-2 : HTTP 관련 작업.
• #-기능-3 : 메일 발송.
• #-기능-4 : 웹 크롤 작업.
• #-기능-5 : DNS 작업(MX 레코드 조회 등)
• #-기능-6 : 이미지 작업(이미지 회전, 축소, 확대, thumb nail 만들기
등)
• #-기능-7 : 다른 DB 즉 Mysql 이나 Oracle 등과의 연동 작업.
• #-기능-8 : 비동기 작업(Listen-Notify 를 이용).
• #-기능-9 : 각종 그래프 작업.
• #-기능-10: 각종 통계 작업.
• #-기능-11: 기타 작업.
■ 저런 작업이 어찌 가능한가?
• pl/pgsql 뿐만이 아니라 pl/python 이나
pl/perl 등의 언어를 지원하기 때문이다.
• 그래서 python 의 방대한 라이브러리를
사용할 수 있다.
■ 어차피 웹프로젝트에서는 CRUD
가 대부분인데, 그런 작업들이 가
능하다고 해서 딱히 웹프로젝트에
서 Postgresql 을 써야할 이유는
없지 않은가?
• Logic 과 View 를 분리하는데 좋으니까,
즉 모든 Logic 을 DB 에서 처리(DB 로직
처리)하는데 참 좋다. 이 역시도
pl/python 등의 도움이다.
■ ‘DB 로직 처리’는 어떤 형태
로 나타나는가?
• Postgresql 이 해당 웹페이지에서 필요
한 모든 정보를 XML 로 표현해서, 한 번
에 전송하고, 이를 받은 서버 언어(PHP,
JSP 등)에서는 관련 항목값을 View 의
적절한 부분에 뿌려주는 형태다.
■ 그 정도는 Oracle 이나 Mssql
도 가능하지, 유독 Postgresql 만
가능한 것이 아니다.
• 그렇기는 하지만, XML 을 다루는데, pl/python 등의
도움은 엄청나다. Oracle 등에서 외부 언어의 도움
을 Postgresql 처럼 쉽게 받을 수 있는가.
• 그리고 ‘DB 로직 처리’에서 사용하는 XML 은 아래
요건을 충족해야 한다.
• 1) 모든 요소의 이름을 하나로 통일시킨다.
• 2) 모든 값은 속성으로 표현한다.
• 위 조건이 충족되지 않으면 개발 작업이 더딘데, 충
족되게 사전 라이브러리를 개발하려면 손이 많이 간
다. 확실한 것은 Oracle 등에서 이 작업이
Postgresql 만큼 편하지 않다.
■ 그렇다면 ‘DB 로직 처리’를
해야 하는 이유가 있는가?
• 대부분의 로직을 DB 작업자가 DB 에서
처리하기 때문에, View 작업자의 작업
난이도가 팍 낮아진다. 그래서 간단한
교육으로, 웹디자이너나 웹퍼블리셔도
View 작업을 할 수 있다. 이것이 웹프로
젝트의 Risk 를 현저하게 줄일 수 있는
것이다.
■ 최종 결론은?
• Postgresql 은 단순히 DB 가 아니다. DB
를 포함한 Framework 다.
• Framework 라고 부를 수 있는 DB 가
Postgresql 말고 과연 있을까?

Weitere ähnliche Inhalte

Was ist angesagt?

NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
흥배 최
 
LevelDB 간단한 소개
LevelDB 간단한 소개LevelDB 간단한 소개
LevelDB 간단한 소개
종빈 오
 
Cubrid Inside 5th Session 3 Migration
Cubrid Inside 5th Session 3 MigrationCubrid Inside 5th Session 3 Migration
Cubrid Inside 5th Session 3 Migration
CUBRID
 
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
Jaikwang Lee
 
Memcached의 확장성 개선
Memcached의 확장성 개선Memcached의 확장성 개선
Memcached의 확장성 개선
NAVER D2
 

Was ist angesagt? (20)

Hadoop io part2
Hadoop io part2Hadoop io part2
Hadoop io part2
 
NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
 
LevelDB 간단한 소개
LevelDB 간단한 소개LevelDB 간단한 소개
LevelDB 간단한 소개
 
Cubrid Inside 5th Session 3 Migration
Cubrid Inside 5th Session 3 MigrationCubrid Inside 5th Session 3 Migration
Cubrid Inside 5th Session 3 Migration
 
PostgreSQL 이야기
PostgreSQL 이야기PostgreSQL 이야기
PostgreSQL 이야기
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMT
 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
 
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930대용량 로그분석 Bigquery로 간단히 사용하기 20160930
대용량 로그분석 Bigquery로 간단히 사용하기 20160930
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 
MS 빅데이터 서비스 및 게임사 PoC 사례 소개
MS 빅데이터 서비스 및 게임사 PoC 사례 소개MS 빅데이터 서비스 및 게임사 PoC 사례 소개
MS 빅데이터 서비스 및 게임사 PoC 사례 소개
 
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
 
Memcached의 확장성 개선
Memcached의 확장성 개선Memcached의 확장성 개선
Memcached의 확장성 개선
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용
 
What is the meteor?
What is the meteor?What is the meteor?
What is the meteor?
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
 
AWS Aurora 100% 활용하기
AWS Aurora 100% 활용하기AWS Aurora 100% 활용하기
AWS Aurora 100% 활용하기
 

Andere mochten auch

[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
BJ Jang
 
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 

Andere mochten auch (11)

PostgreSQL 9.6 새 기능 소개
PostgreSQL 9.6 새 기능 소개PostgreSQL 9.6 새 기능 소개
PostgreSQL 9.6 새 기능 소개
 
Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우Mvcc in postgreSQL 권건우
Mvcc in postgreSQL 권건우
 
PGDay.Seoul 2016 lightingtalk
PGDay.Seoul 2016 lightingtalkPGDay.Seoul 2016 lightingtalk
PGDay.Seoul 2016 lightingtalk
 
PostgreSQL 공간관리 살펴보기 이근오
PostgreSQL 공간관리 살펴보기 이근오PostgreSQL 공간관리 살펴보기 이근오
PostgreSQL 공간관리 살펴보기 이근오
 
pg_hba.conf 이야기
pg_hba.conf 이야기pg_hba.conf 이야기
pg_hba.conf 이야기
 
PostgreSQL Replication with Bucardo
PostgreSQL Replication with BucardoPostgreSQL Replication with Bucardo
PostgreSQL Replication with Bucardo
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
 
Postgres-BDR with Google Cloud Platform
Postgres-BDR with Google Cloud PlatformPostgres-BDR with Google Cloud Platform
Postgres-BDR with Google Cloud Platform
 
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
Mapa mental ecologia y edu ambiental
Mapa mental ecologia y edu ambientalMapa mental ecologia y edu ambiental
Mapa mental ecologia y edu ambiental
 
GCeMP 2K17_Brochure
GCeMP 2K17_BrochureGCeMP 2K17_Brochure
GCeMP 2K17_Brochure
 

Ähnlich wie Pg report 20161010_02

이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
devCAT Studio, NEXON
 
레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드
Sukjoon Kim
 

Ähnlich wie Pg report 20161010_02 (20)

HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
 
버클리Db 를 이용한 게임 서버 제작
버클리Db 를 이용한 게임 서버 제작버클리Db 를 이용한 게임 서버 제작
버클리Db 를 이용한 게임 서버 제작
 
레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준
 
유니티3D 그리고 웹통신
유니티3D 그리고 웹통신유니티3D 그리고 웹통신
유니티3D 그리고 웹통신
 
댓글 플러그인 아포가토
댓글 플러그인 아포가토댓글 플러그인 아포가토
댓글 플러그인 아포가토
 
Geo tools Data Transfer
Geo tools Data TransferGeo tools Data Transfer
Geo tools Data Transfer
 
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
 
Flamingo project v4
Flamingo project v4Flamingo project v4
Flamingo project v4
 
OpenSource Big Data Platform : Flamingo Project
OpenSource Big Data Platform : Flamingo ProjectOpenSource Big Data Platform : Flamingo Project
OpenSource Big Data Platform : Flamingo Project
 
OpenSource Big Data Platform - Flamingo v7
OpenSource Big Data Platform - Flamingo v7OpenSource Big Data Platform - Flamingo v7
OpenSource Big Data Platform - Flamingo v7
 
OpenSource Big Data Platform - Flamingo 소개와 활용
OpenSource Big Data Platform - Flamingo 소개와 활용OpenSource Big Data Platform - Flamingo 소개와 활용
OpenSource Big Data Platform - Flamingo 소개와 활용
 
Sql 중심 코드 탈피 발표자료
Sql 중심 코드 탈피 발표자료Sql 중심 코드 탈피 발표자료
Sql 중심 코드 탈피 발표자료
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나
 
Nodejs 발표자료
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
IT 서비스 개발 15년 _ IT service 15 years
IT 서비스 개발 15년 _ IT service 15 yearsIT 서비스 개발 15년 _ IT service 15 years
IT 서비스 개발 15년 _ IT service 15 years
 

Mehr von PgDay.Seoul

Mehr von PgDay.Seoul (20)

[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
 
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
 
[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud
 
[Pgday.Seoul 2021] 2. Porting Oracle UDF and Optimization
[Pgday.Seoul 2021] 2. Porting Oracle UDF and Optimization[Pgday.Seoul 2021] 2. Porting Oracle UDF and Optimization
[Pgday.Seoul 2021] 2. Porting Oracle UDF and Optimization
 
[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL
[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL
[Pgday.Seoul 2021] 1. 예제로 살펴보는 포스트그레스큐엘의 독특한 SQL
 
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
[Pgday.Seoul 2020] 포스트그레스큐엘 자국어화 이야기
 
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning
 
[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기
[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기
[Pgday.Seoul 2019] AppOS 고성능 I/O 확장 모듈로 성능 10배 향상시키기
 
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
 
[Pgday.Seoul 2019] Advanced FDW
[Pgday.Seoul 2019] Advanced FDW[Pgday.Seoul 2019] Advanced FDW
[Pgday.Seoul 2019] Advanced FDW
 
[Pgday.Seoul 2018] PostgreSQL 11 새 기능 소개
[Pgday.Seoul 2018]  PostgreSQL 11 새 기능 소개[Pgday.Seoul 2018]  PostgreSQL 11 새 기능 소개
[Pgday.Seoul 2018] PostgreSQL 11 새 기능 소개
 
[Pgday.Seoul 2018] PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha
[Pgday.Seoul 2018]  PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha[Pgday.Seoul 2018]  PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha
[Pgday.Seoul 2018] PostgreSQL 성능을 위해 개발된 라이브러리 OS 소개 apposha
 
[Pgday.Seoul 2018] PostgreSQL Authentication with FreeIPA
[Pgday.Seoul 2018]  PostgreSQL Authentication with FreeIPA[Pgday.Seoul 2018]  PostgreSQL Authentication with FreeIPA
[Pgday.Seoul 2018] PostgreSQL Authentication with FreeIPA
 
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
[Pgday.Seoul 2018]  이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG[Pgday.Seoul 2018]  이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
 
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기
 
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계
[Pgday.Seoul 2018]  Greenplum의 노드 분산 설계[Pgday.Seoul 2018]  Greenplum의 노드 분산 설계
[Pgday.Seoul 2018] Greenplum의 노드 분산 설계
 
[Pgday.Seoul 2018] replacing oracle with edb postgres
[Pgday.Seoul 2018] replacing oracle with edb postgres[Pgday.Seoul 2018] replacing oracle with edb postgres
[Pgday.Seoul 2018] replacing oracle with edb postgres
 
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
 
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
 

Pg report 20161010_02

  • 1. ♣ 2016-10-15 pgday 발표 자료 ♣
  • 2. ■ 나는 왜 Postgresql 을 쓰는가? • Framework 이기 때문에. • 그럼 왜 Framework 인가? • 아래 기능을 보고도 Framework 가 아니라고 할 수 있나. • #-기능-1 : 소켓 관련 작업. • #-기능-2 : HTTP 관련 작업. • #-기능-3 : 메일 발송. • #-기능-4 : 웹 크롤 작업. • #-기능-5 : DNS 작업(MX 레코드 조회 등) • #-기능-6 : 이미지 작업(이미지 회전, 축소, 확대, thumb nail 만들기 등) • #-기능-7 : 다른 DB 즉 Mysql 이나 Oracle 등과의 연동 작업. • #-기능-8 : 비동기 작업(Listen-Notify 를 이용). • #-기능-9 : 각종 그래프 작업. • #-기능-10: 각종 통계 작업. • #-기능-11: 기타 작업.
  • 3. ■ 저런 작업이 어찌 가능한가? • pl/pgsql 뿐만이 아니라 pl/python 이나 pl/perl 등의 언어를 지원하기 때문이다. • 그래서 python 의 방대한 라이브러리를 사용할 수 있다.
  • 4. ■ 어차피 웹프로젝트에서는 CRUD 가 대부분인데, 그런 작업들이 가 능하다고 해서 딱히 웹프로젝트에 서 Postgresql 을 써야할 이유는 없지 않은가? • Logic 과 View 를 분리하는데 좋으니까, 즉 모든 Logic 을 DB 에서 처리(DB 로직 처리)하는데 참 좋다. 이 역시도 pl/python 등의 도움이다.
  • 5. ■ ‘DB 로직 처리’는 어떤 형태 로 나타나는가? • Postgresql 이 해당 웹페이지에서 필요 한 모든 정보를 XML 로 표현해서, 한 번 에 전송하고, 이를 받은 서버 언어(PHP, JSP 등)에서는 관련 항목값을 View 의 적절한 부분에 뿌려주는 형태다.
  • 6. ■ 그 정도는 Oracle 이나 Mssql 도 가능하지, 유독 Postgresql 만 가능한 것이 아니다. • 그렇기는 하지만, XML 을 다루는데, pl/python 등의 도움은 엄청나다. Oracle 등에서 외부 언어의 도움 을 Postgresql 처럼 쉽게 받을 수 있는가. • 그리고 ‘DB 로직 처리’에서 사용하는 XML 은 아래 요건을 충족해야 한다. • 1) 모든 요소의 이름을 하나로 통일시킨다. • 2) 모든 값은 속성으로 표현한다. • 위 조건이 충족되지 않으면 개발 작업이 더딘데, 충 족되게 사전 라이브러리를 개발하려면 손이 많이 간 다. 확실한 것은 Oracle 등에서 이 작업이 Postgresql 만큼 편하지 않다.
  • 7. ■ 그렇다면 ‘DB 로직 처리’를 해야 하는 이유가 있는가? • 대부분의 로직을 DB 작업자가 DB 에서 처리하기 때문에, View 작업자의 작업 난이도가 팍 낮아진다. 그래서 간단한 교육으로, 웹디자이너나 웹퍼블리셔도 View 작업을 할 수 있다. 이것이 웹프로 젝트의 Risk 를 현저하게 줄일 수 있는 것이다.
  • 8. ■ 최종 결론은? • Postgresql 은 단순히 DB 가 아니다. DB 를 포함한 Framework 다. • Framework 라고 부를 수 있는 DB 가 Postgresql 말고 과연 있을까?