#데이터베이스
82023.12.24
인플루언서 
832프로그래머
참여 콘텐츠 30
2
[postgresql] 리눅스 설치

postgreSQL 리눅스에 설치하기 © casparrubin, 출처 Unsplash 패키지 등록 포스트그레스큐엘 리눅스에서 설치를 위해서는 먼저 패키지를 등록해주셔야합니다. sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list. d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - apt-get 업데이트하기 리눅스의 apt-get을 업데이트해주겠습니다. sudo apt-get update postgreSQL 설치 및 실행 위의 모든 사항을 잘 처리하였다면 이제는 postgreSQL을 설치하고 실행해보자! sudo apt-get -y install postgresql-14 저와 같은 경우는 14버전을 설치하였습니다. sudo service postgresql start sudo service postgresql status sudo service postgresql stop 위의 명령을 통해서 postgreSQL을 실행하시면 됩니다. postgreSQL Config 설정 및 계정 만들기 내부에서 사용하는 postgreSQL이라면 문제가 없겠지만 대부분 다...

2023.12.03
3
[Clickhouse] 집계 프로세스 최적화 해보기

Clickhouse 집계 프로세스 최적화 해당 내용은 이전 클릭하우스 포스팅에서 집계 작업을 많이 하면서 발생하는 CPU 사용량 및 메모리 사용량을 줄여보는 전략입니다. MV DDL 구문만 활용하여 테이블 수 줄이기? 불가능하다 결국 MV는 특정 데이터나 테이블을 이용하여 유도한 뷰이며 MV를 구성 시 별도 테이블에 데이터를 연결하지 않더라도 자동적으로 임시테이블이 생성된다. (즉, MV를 생성하면서 테이블을 같이 구성하는 DDL문을 사용해보는 것 입니다.) CREATE MATERIALIZED VIEW stream_aggregating_table ( * )ENGINE = AggregatingMergeTree() ORDER BY (*) AS SELECT * FROM stream_table GROUP BY *; 이미지와 같이 inner_id:table uuid로 구성이 되기에 크게 의미가 없다! SELECT uuid, name FROM system.tables WHERE database = '{name_of_database}' AND engine = 'MaterializedView' MV만을 활용하여 최종 결과물 테이블 까지 한 번에 트리거 하기 위의 기본 조건이 불가능하기에 역시 불가능하다. MV로 MV를 유도할 수도 없다. 출력 테이블 단일화 하나의 아웃풋 테이블을 구성하여 특정 키로 출력하는 방안이 있습니다. 테이블의 수를 최적화할...

2023.11.28
3
[Clickhouse] 카프카 엔진 테이블과 집계 트리거

카프카 엔진 테이블과 집계 자동화 시나리오 © markusspiske, 출처 Unsplash 트리거 실제로 클릭하우스에는 트리거가 존재하지 않습니다. 다만 MV를 활용하여 트리거와 비슷한 행동을 구축할 수 있습니다. 간단하게 카프카 엔진에서 받은 데이터를 집계처리하는 시스템을 만들어보겟습니다. 구현해보고자 하는 프로세스는 위와 같습니다! DDL 이해하기 CK(kafka Engine Table) CREATE TABLE default.st_kafka_topic1 ON CLUSTER 'cluster'( _offset UInt64, _partition UInt64, symbol String, time Float64, price Float64 )ENGINE = Kafka('카프카 주소 정보들', '토픽명', '컨슈머 명', '패킷 정보의 형식' ) // 예시) ('localhost:9092', 'topci1', 'consum-1', 'JSONEachRow' ) SETTINGS kafka_num_consumers = 1, kafka_flush_interval_ms = 10, kafka_max_block_size = 500; 카프카 엔진 테이블은 위와 같이 구성하였습니다. 10ms -> poll 발생을하게 하였고 block_size -> 500Byte 넘어가면 poll을 댕겨오도록 설정하였습니다. Trigger Table CREATE TABLE ...

2023.11.27
2
[Clickhouse] 설정파일 이해하기 (카프카)

클릭하우스 설정파일 이해하기 © flowforfrank, 출처 Unsplash config.xml 클릭하우스 설정 파일의 핵심 옵션들은 host 설정부분과 저장공간에 대한 옵션입니다. 다른 옵션의 경우 옵티마이저가 필요없는 상황이라면 그냥 디폴트값 (즉, 설정이 없는 상태)를 사용하는 것이 좋아보입니다. 외부 접속을 허용하고자하면 아래와 같이 0.0.0.0 으로 호스트를 변경해주시면 됩니다. 저장공간의 경우 <path> 부분을 통해서 설정을 하게되며 3개의 클릭하우스를 서로 연결하여 사용하고 있는 경우 각 저장공간을 따로 잡아줘야합니다! 클러스트러 설정을 위한 부분의 경우 원격 쿼리를 전송하기 위한 설정등에 대한 내용입니다! <?xml version="1.0"?> <company> <logger> ... 로깅에 관련된 설정 ... </logger> <query_log> <database>system</database> <table>query_log</table> </query_log> /* 클릭하우스 접속정보 및 데이터 파일 위치 설정 START */ <listen_host>0.0.0.0</listen_host> <http_port>8123</http_port> <tcp_port>9000</tcp_port> <interserver_http_host>0.0.0.0</interserver_http_host> <interserver_htt...

2023.11.27
2
[Clickhouse] 클릭하우스 우분투환경에서 설치하기

Clickhouse Install © crissyjarvis, 출처 Unsplash 클릭하우스 공식홈페이지 Fast Open-Source OLAP DBMS - ClickHouse ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries clickhouse.com 클릭하우스 구성 선택하기 클러스터러 구성 클러스터러 구성을 하고자 한다면 일단 싱크를 어떠한 도구를 활용할 지를 선택해야합니다. 주키퍼를 사용하거나 클릭하우스에서 제공하는 키퍼를 사용해도 됩니다. (개인적으로 추천하는 건 주키퍼를 추천합니다!) 단일 구성 단일 구성의 경우 따로 주키퍼나 키퍼가 필요없습니다. 클러스트러 구성 클릭하우스 다운로드 sudo curl https://clickhouse.com/ | sh 자신이 구성하고자 하는 디렉토리 위치에 다운로드를 해주시면 됩니다. 저는 패키지 파일을 받아서 활용했으며 버전은 23.10 버전을 사용하였습니다. 클릭하우스 실행하기 서비스를 만들어 실행하여도 됩니다. 또는 클릭하우스 실행파일 옵션 중 --daemon을 활용하여 실행해도 됩니다. 우분투환경에서 cli로 클릭하우스를 구성하다보면 권한 문제가 발생할 수 있습...

2023.11.26
3
[ClickHouse] 클러스터 구성과 디스트리부트 구성하기 (with Kafka Engine)

클릭하우스 클러스터 구성 그리고 디스트리부트 알아보기 © shubzweb3, 출처 Unsplash 오늘은 클릭하우스 클러스터러 구성과 디스트리부트 구성에 대해서 알아보려고합니다. 그 전에 클러스터러 구성에 활용하는 Replication과 distribute에 대해서 알아보고 바로 가겠습니다. 먼저 리플리케이션은 이중화를 목적으로하는 백업의 용도라고 보시면되고 디스트리부트는 분산의 의미를 지닌 분산 데이터베이스 구성 시 활용하는 기술이라고 보면됩니다. 뭐 사용하기 나름의 기술이며 어떠한 전략을 사용하건 자신의 프로젝트의 이점이 강하다면 해당 방식을 택하면 된다고 생각합니다 모든 전략에는 답이 없다고 생각합니다 어떤게 좋고 안 좋고 그런건 없죠... 데이터베이스를 만드신 개발자 분들의 머리는 누구보다 뛰어나고 누구 보다 생각을 많이해서 만들어 제공합니다. 그렇다고 특정 데이터베이스가 특출나게 좋다라고 보기에는 힘들죠 자신의 프로젝트에 맞는 데이터베이스를 택 하시고 활용하는게 더 좋다고 봅니다!! docker-compose와 clickhouse -> config.xml / user.xml 제가 활용한 도커 컴포즈입니다. 먼저 저는 내부 테스트를 위해서 구성한 도커 컴포즈는 아래와 같습니다. 실제 운용시에는 라이센스등 모든 것을 확인해야하기에 약간은 다른 구성을 합니다. 구성에 활용된 시스템 주키퍼 1대 (필수) 카프카 3대 (최소 1대) ...

2023.07.10
3
[ClickHouse] 카프카와 연동한 자동 집계 전략 (with Kafka, AggregatingMergeTree)

클릭하우스 자동화 집계처리 © dawson2406, 출처 Unsplash 이전에는 집계머지트리에 대해서 알아보았는데요. 카프카를 통해서 받은 데이털르 자동집계하는 자동화 전략에 대해서 작성해보려고합니다. ClickHouse 자동화 집계 전략! 프로세스 이러한 전략입니다. 카프카를 통해서 받은 메시지를 클릭하우스 엔진테이블(카프카) 클릭하우스에 대해서 공부를 하다보니 클릭하우스 엔진테이블은 librdkafka (컨플루언트 카프카 커넥터)를 활용하는 거 같습니다. 그래서 실제 source를 받아서 cppkafka파일들을 수정하면 입맛에 맞게 고를 수 있는거 같아요. 클릭하우스 테이블 구성해보기 클릭하우스를 활용하여 카프카 메시지를 받고 자동 집계하는 테이블을 구성해보겠습니다. 카프카 엔진 연결 테이블 create table INPUT_TABLE ( regDate DateTime64, Money Int64 ) ENGINE = Kafka ('IP:HOST, 'TOPIC', 'GROUP', 'JSONEachRow') SETTINGS kafka_flush_interval_ms = 1000, kafka_poll_timeout_ms = 500 저는 두 가지 셋팅만 설정하고 나머지는 기본 셋팅을 사용하도록 했습니다. 실제로 interval은 기본값을 유지하고 폴만 건드려도 충분합니다. 왜냐하면 실제 데이터를 입력받는 카프카엔진 테이블의 역할은 컨슈머...

2023.07.02
2
[ClickHouse] AggregateMergeTree (집계머지)

클릭하우스 집계머지 트리에 대해서 © rechaoktaviani, 출처 Unsplash 오랜만에 포스팅을 올립니다. 오늘은 집계를 하기에 최적의 데이터베이스인 클릭하우스의 집계함수 머지트리를 알아보려고합니다. 머지트리 종류 중 하나인데 집계 머지를 활용하면 데이터를 자동으로 집계해주는 마법의 시스템 구성이 가능하기 때문에 선택했습니다! ClickHouse Aggregating MergeTree 생성 Create Table CREATE TABLE Account ( regDate DateTime64, minMoney AggregateFunction(min,Float64), maxMoney AggregateFunction(max,Float64), argMinMoney AggregateFunction(argMin, Float64, Datetime64), argMaxMoney AggregateFunction(argMax, Float64, Datetime64), totalMoney AggregateFunction(sum, Float64) ) ENGINE = AggregatingMergeTree() ORDER BY (regDate) [PARTITION BY expr] [SAMPLE BY expr] [TTL expr] [SETTINGS name=value, ...] 기본적으로 테이블 생성방식은 위와 같습니다. 위의 테이블은 regDate를 기준으로...

2023.07.01
2
[ClickHouse] Kafka 엔진 사용해보기

클릭하우스 카프카 연동 © diana_pole, 출처 Unsplash 카프카로 보내는 데이터를 클릭하우스로 바로 입력하는 방법에 대해서 알아보자. 연동이라 부르고 클릭하우스가 자동으로 컨슈머가 되어서 데이터를 구독하는 방식이다! 먼저 성능 테스트 전송 데이터 수 처리 주기 처리 량 입력에 발생한 시간 초당 1000개 1s 1000개 4ms 10만개 데이터 실시간 전송 1s 15000개 25ms 약간의 편차가 존재하였지만 크게 문제가 없다 판단하였습니다! 카프카 엔진 설정에따라 성능은 떨어질 수 도 있고 높아질 수 도 있습니다! 카프카 연동해보기 카프카 스트림 테이블 구성하기! CREATE TABLE 카프카스트림테이블명 ( 패킷의 데이터 따른 필드를 구성 ) ENGINE = Kafka ('카프카주소', '토픽', '컨슈머명(그룹명)', 'JSONEachRow') SETTINGS kafka_flush_interval_ms = 1000, kafka_skip_broken_messages = 1, kafka_max_block_size= 99999, kafka_poll_timeout_ms = 200, kafka_commit_on_select = true 저는 위와 같은 설정을 유지하고 사용하고 있습니다. 만약 실시간성 설정을 원한다면 블록사이즈를 1로 잡아서 실시간성 데이터를 받아오시면 됩니다. kafka_max_block_size = 1 만약...

2023.05.16
2
[ClickHouse] 신비로운 집계처리

클릭하우스 신비로운 집계함수 © firmbee, 출처 Unsplash 클릭하우스에는 엄청난 집계함수가 존재하는데요. 상상도 못한 집계처리 방법입니다. 관계형 데이터베이스라면 복잡한 그룹절과 서브쿼리를 종합하여 만들어야하는 결과물을 제공한다고 해야할까요? Clickhouse의 집계를 한 번 보겠습니다! argMin과 argMax 우리에게 아래와 같은 필드를 가진 테이블이 존재한다고 가정을 하겠습니다. 필드 리스트 price creatTime - 밀리세컨드타임 초당 여러건의 데이터가 발생하는 테이블 이라고 가정을하고 우리는 createTime을 1초 단위로 그룹화처리하여 최소, 최대, 그리고 발생 시점, 마지막 발생 시점에 발생한 가격을 집계하려고 합니다! MySQL이라면 아래와 같은 쿼리를 구성하면 우리가 얻고자하는 정보를 집계가 가능합니다. 하지만 시간이 많이 소비되며 복잡한 쿼리를 작성해줘야합니다! SELECT MIN(CASE WHEN TS = t_min_ts THEN Price END) as `발생시점`, MAX(CASE WHEN TS = t_max_ts THEN Price END) as `마지막발생시점`, MIN(Price) as 최소, MAX(Price) as 최대, RT FROM ( SELECT *, CEIL(creatTime/1000) as RT, MIN(creatTime) OVER(PARTITION BY CEIL(c...

2023.05.15
10
자바 스프링 인텔리J 데이터베이스 연결과 스프링부트 테스트

java spring DB connection SpringBootTest © casparrubin, 출처 Unsplash 12월의 시작입니다. 네이버 인플루언서 통과가 이루어진지도 2일이나 지났습니다!! 오늘은 프로그램의 꽃 데이터베이스 연동에 대해서 알아보도록 하겠습니다. 날 코딩 방식을 먼저 익히고 그다음 탬플릿과 JPA로 건너가보겠습니다. 데이터베이스 설치하기! 실제로 자신의 환경에 맞는 또는 실제로 테스트하고자 하는 타겟 데이터베이스가 존재하면 직접 해당 디비를 설치하시면 됩니다. 저는 H2를 선택하여 설치를 하였습니다. 실행방법에 대해서는 정보들이 워낙 많기에 간단하게 데이터베이스는 실행할 줄 안다고 생각하고 넘어가겠습니다. 메인 클래스 초기화 하기! 이제 자바 스프링 프로젝트에서 연결정보를 셋팅하는 작업이 필요합니다. 그 전에 먼저 메인 클래스를 체크해봐야합니다. 자바 스프링 인텔리J 스프링 부트 디비 오류해결 Failed to configure a DataSource: 'url'... java spring boot JPA 및 디비관련 오류해결 데이터베이스 연결 시 오류 해결방법 해당 현상을 처음에 ... blog.naver.com 처음 글을 작성하면서 저와 같은 경우는 부트를 통해서 필요한 라이브러리에서 JPA와 디비관련 라이브러리를 함께 설치하면서 이슈가 발생하여 위의 과정을 처리하였습니다. 만약 저와 동일한 원인이 발...

2022.12.01
[postgresql] 설치하기 (macOS)

[postgresql] 설치하기 (macOS) 공부 과정에서 참고할 자료 PostgreSQL | 데이터베이스(Database) 개발 지식 공유 www.devkuma.com 공식문서 : https://www.postgresql.org/docs 설치히기 및 확인하기 homebrew가 설치되어 있다고 가정하고 시작하겠습니다. 검색 및 설치 brew search postgresql brew install postgresql 버전을 확인하여 원하는 버전이 있다면 해당 명칭을 install하면 됩니다. 그렇지 않은 경우 최신버전 또는 LTS버전이 설치되도록 brew install postgresql을 입력하여 설치합니다. 서비스 시작하기 brew services start postgresql 접속해보기 psql postgres 윈도우 환경의 경우 특정 아이디를 설정하여 설치가 가능한 거 같은데 리눅스, 맥과 같이 커맨드 옵션의 특화 플랫폼에서는 아이디가 자동을 생성된다고 합니다! 계정확인하기 \du 공간 정보 마커 데이터가 워낙 많아서 새로운 데이터베이스를 활용해볼 생각입니다. 그래서 훌터보고 있는 중입니다! #postgresql #mac #공간정보

2022.07.18
4
[Firebase] 파이어베이스 파이썬 연동하기!

Firebase 파이어베이스 파이썬 연동 [스토어 리얼타임] © rajeshwerbatchu7, 출처 Unsplash 파이어베이스 구경하기 Firebase Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다. firebase.google.com 구글에 간단하게 검색하면 파이어 베이스에 접근할 수 있습니다. 완전한 무료는 아니지만 일정한 데이터를 저장하는 것은 무료입니다! 예를 들어 데이터베이스 저장공간에 대해서는 1GB까지는 무료이며 월 60만건에 대한 처리는 무료입니다! 간단하게 구글계정을 이용하여 시작하기를 하면 여러가지 기능이 존재하며 상황에 따라서 자신에게 필요한 기능을 사용해보시면 될 것 같습니다! Firebase 설정 해보기 파이어베이스에서 왼쪽 메뉴를 보면 우리가 사용해볼 것은 데이터베이스 부분입니다. 그렇기에 Firestore, Realtime 두 가지의 데이터베이스를 시작하기를 통해서 열어주세요. Firestore Database 설정해야할 것 규칙관리 false -> true로 교체해주시면 됩니다. Realtime Dabase 설정해야할 것 1. 리얼타임 데이터베이스에서는 위의 URL정보를 기억해주세요. 2. 규칙관리에서 false -> true로 교체해주시면 됩니다. 파이썬 패키지 설치하기 파이어베이스 파이썬 연동 작업을 하기 위해서 가장 먼저 해야...

2022.10.28
10
[ORACLE] 오라클 windows ODBC 연결하기

ODBC를 활용한 오라클 데이터베이스 연동하기 선행 [ORACLE] 오라클 클라우드 데이터베이스 DBeaver 연결 오라클 데이터베이스 DBeaver 연동시키기 해당 연결을 위해서 oracle db의 경우 오라클 클라우드에서 배... blog.naver.com 이번에는 ODBC를 연결하는 방법에 대해서 알아보려고합니다. C언어로 특정 개발을 하다보니 ODBC를 활용하여 데이터베이스에 접근해야하는 부분이 있어서 같이 공유하고자 포스팅합니다. Oracle Instant Client ODBC 패키지 다운로드 위의 상황을 활성화 하기 위한 선행 작업 입니다. 이 방법은 컴퓨터 내에 오라클 인스턴스 클라이언트를 ORACLE DB설치 없이 진행하기 위해서 하는 방법입니다. 먼저 인스턴스를 받아보도록 하겠습니다. ( 해당 방법은 리눅스의 경우 unixODBC와 연결에서도 활용이 가능합니다.) https://www.oracle.com/database/technologies/releasenote-odbc-ic.html Oracle Instant Client ODBC Installation Notes Oracle Instant Client ODBC Installation Notes Oracle's Instant Client ODBC software is a standalone package that offers the full functionality...

2021.11.23
9
[ORACLE] 오라클 클라우드 데이터베이스 DBeaver 연결

오라클 데이터베이스 DBeaver 연동시키기 해당 연결을 위해서 oracle db의 경우 오라클 클라우드에서 배정받은 db를 활용하겠습니다. 오라클 클라우드에 접속하여 무료체험이 가능하니 테스틀 위해서 한개의 계정을 생성하여 테스트를 해보시면될 것 같습니다. OJDBC 설치하기 https://www.oracle.com/database/technologies/java-connectivity-to-atp.html Java connectivity to ATP Oracle Autonomous Database (ADB) is a family of products with each member of the family optimized by workload. Java applications require Java Key Store (JKS) or Oracle wallets to connect to ADB. The enhancements in JDBC driver in DB 19c and 18.3 make Java connectivity to ADB very simple. Follow the ... www.oracle.com 먼저 연결을 위해서 필수적으로 필요한 OJDBC를 설치해보도록 하겠습니다. 4번 항목을 살포시 눌러주세요. 그러면 파란색 링크로 ojdbc 10 또는 8이라는 문구의 tar.gz파일을 받을 수 있습니다. 간단하게 누르시면 아...

2021.11.23
2
[C/C++] ODBC를 활용한 데이터베이스 연결

C/C++ ODBC를 활용한 데이터베이스 연결 C언어를 활용하여 데이터베이스를 연결하는 방법에 대해서 알아보자. 분명이 여러가지 방법이 있는 것 같지만 저도 자료를 검색하고 찾은 정보를 통해서 연동에 성공한 케이스에 대해서 공유하고자 합니다. 그럼 ODBC 설정 방법부터 차근차근 알아보도록 하겠습니다. 윈도우 ODBC 설정하기 윈도우 검색을 통해서 ODBC를 검색하면 두가지가 나옵니다. 64비트 버전과 32비트 버전 예전에는 64비트 컴에서도 32BIT ODBC를 열어서 설정했던 기억이 나는데 이제는 호환상 이슈가 없는지 64비트로 작성하여도 문제가 되지 않습니다. 사용자 DSN에 우리가 연결하고자 하는 DATABASE를 선택하고 입력을 해주시면 사용자 데이터 원보에 추가된 것을 확인할 수 있습니다. 참고로 저는 MSSQL로 현재 테스트를 거치고 있으며 추 후 oracle 11g 또는 21c로 넘어갈 예정입니다. 또는 고객사에서 원시데이터를 txt로 내려줄 수 있다고 하면 access를 활용할 가능성이 큽니다. ODBC설정은 마무리 되었습니다. C/C++ 과 ODBC 연결 - 1 헤더와 정의 #include <sqlext.h> (필수 헤더) #include <windows.h> (선택 사항) 두가지 헤더를 등록해주세요. 리눅스 버전으로 넘어갈 시 windows.h는 불가능할 거 같은데 해당 헤더는 필요가 없긴합니다. 사용한 이유는 w...

2021.10.21
2
[php + geometry] geoPHP 모듈 사용하기

[php + geometry] geoPHP 모듈 사용하기 오늘은 본격적으로 우리가 입력한 데이터를 불러오는 작업을 진행해보겠습니다! 그렇기 위해서 사전에 pg_sql을 연결하셔야합니다 해당 부분은 이전 내용을 숙지하세요. [PHP + postgresql] pdo_pgsql 설정하기 (mac) [PHP + postgresql] pdo_pgsql 설정하기 (mac) homebrew가 있다고 가정한다. 방법은 2가지가 있는 것으... blog.naver.com 사전 작업인 pdo_pg_sql을 간단하게 사용하는 과정을 먼저 설명드리고 이후에 지오매트리 데이터를 분석하는 라이브러리 geoPHP를 이용해보겠습니다! pdo_pg_sql 사용하기 참고영상 (해당 유투브 영상 올려주신 분의 자료를 참고하면 더 많은 정보가 존재합니다!) https://www.youtube.com/watch?v=_mWTJdCAekc config.php 설정 정보를 관리할 파일 <? $host = 'localhost'; $db = 'koreagis'; $user = 'gis_master'; $password = 'test'; ?> connect.php 실제 연결 소스를 저장받을 파일 <? require_once 'config.php'; function connect(string $host, string $db, string $user, string $password):...

2022.07.19
[PHP + postgresql] pdo_pgsql 설정하기 (mac)

[PHP + postgresql] pdo_pgsql 설정하기 (mac) homebrew가 있다고 가정한다. 방법은 2가지가 있는 것으로 파악됩니다. 방법1) 순서대로 차근차근 설치하기 brew install httpd brew install php -- 특정 버전을 설치할 경우 brew install php@8.0 설정 파일들 위치는 아래와 같습니다. /opt/homebrew/etc/httpd/httpd.conf -- 옵션들 포트변경하기 Listen 80 (52번 줄) 모듈 활성화 LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so 모듈 추가하기 (php 버전이 다른 경우 다른 폴더에 있으니 체크 할 것) LoadModule php_module /opt/homebrew/opt/php@8.0/lib/httpd/modules/libphp.so 유저 셋팅하기 User 자신의맥유저명 Group staff 서버관리자 변경하기 ServerAdmin localhost (217번 줄) 디렉토리 변경하기 DocumentRoot 와 <Directory> 부분에 자신의 프로젝트 주소를 지정 ( 250번 줄 ) 오버라이드 옵션활성화 디렉토리 내부에 있는 AllowOverride 옵션을 All 활성화 rewrite 연결하기 제일 하단에 해당 옵션을 추가한다. AddType application/x-htt...

2022.07.19
14
[postgresql] GIS 파일 입력하기(PostGIS, SHP, QGIS)

[postgresql] 공간정보 데이터 입력하기 가장 먼저 해당 받은 공간정보의 좌표계 분석을 먼저 진행해야합니다! 뭐 특정 홈페이지에서 보는 방법도 있지만 데이터베이스에 확장프로그램에 등록한 정보를 보는 방법이 편합니다. spatial_ref_sys 검색하기 이미지를 간단하게 확인하면 srtext가 있고 proj4text가 존재합니다. 공간정보 데이터 집 파일을 해지하면 .prj라는 파일이 존재하며 해당파일의 내용은 srtext 내용이 있습니다. 해당 내용을 검색하여 활용 하시면 됩니다. select * from public.spatial_ref_sys where srtext like '%1984%' 이 데이터가 보통 나오는 거 같습니다. 이제 본격적으로 데이터를 입력해보는 작업을 진행하겠습니다. 검색한 데이터 좌표계를 활용하여 입력하기 (spatial_ref_sys 검색하기 사용버전) 제가 입력할 데이터는 강원도 건물정보 데이터 입니다. 차근차근 진행을 시작하겠습니다 가장 먼저 강원 데이터의 좌표계 분석해봅시다. .prj 파일을 메모장이나 자신이 활용하는 툴에서 열어주세요 ! 검색어로 1985를 사용해보겠습니다. 그럼 위와 같이 나오는 것을 확인할 수 있습니다. 즉, 현재 건물정보 데이터의 좌표계는 4162 라는 좌표계로 설정되어 사용이 이루어지고 있다고 보면 됩니다. 위의 방법을 활용하면 아래의 PostGIS 임포트 익스포트툴이...

2022.07.18
2
[postgresql + PostGIS] 확장프로그램 설치하기 (mac)

[postgresql + PostGIS] 확장프로그램 설치하기 postgresql에 확장프로그램 PostGIS연결하기 해당 확장 프로그램을 설치하면 GIS관련 함수 및 SHP파일을 입력할 수 있습니다. 윈도우를 사용하시는 분은 간단하게 공식 페이지를 들어가셔서 다운로드 하시면 정상저긍로 처리가 됩니다! brew install postgis 확장프로그램을 간단하게 설치해보겠습니다! 터미널에서 간단하게 설치해주시면 됩니다. brew install postgis 데이터베이스에 확장프로그램 연결 그럼 이제 우리가 구성한 postgresql에 postGIS 확장프로그램을 연결하는 작업을 진행해보겠습니다. 여담으로 요새 일을 하면서 데이터베이스도 엄청 많은 종류가 있는 거 같아요. mysql, mssql, oracle 정도만 주로 사용할 줄 알았는데 공간정보는 postgresql이 좋은 거 같습니다. 저는 디비버를 사용하는데 연결을 모두 후 디비버를 열어보시면 제가 작성한 데이터베이스에 아래와 같이 정보가 존재합니다. 이 중 Extensions에 postGIS를 연결하는 작업을 진행하겠습니다! 1. 터미널에서 postgresql 확장프로그램 설치할 데이터베이스 루트 권한자로 연결하기 psql koreagis; 2. 확장프로그램 연결하기 create extension postgis; ; 너무 헷갈려!! 요새 파이썬을 위주로 개발을 하다보니 상황에...

2022.07.18