MAC git clone XCRUN에러 해결
·
Dev
에러 상황 git clone 했더니 다음과 같은 에러를 받았다. 원인 XCRUN 은 MacOS에서 CLI 가 제대로 설치되지 않았을때 발생하는 에러라고한다. 에러해결법 #CLI 설치 xcode-select --install #경로 지정 sudo xcode-select --switch /Library/Developer/CommandLineTools #이후 터미널 재시작
아파치 오픈소스 다운로드아카이브 http://dlcdn.apache.org
·
Dev
이 사이트는 무슨 사이트일까? 링크 : https://dlcdn.apache.org/ 이 사이트는 일종의 아카이브로서, 아파치재단에서 만든 모든 프로젝트가 존재하는 아카이브다. 프로젝트로 만들어진 모든 프로그램의 최신버전이 존재한다 무조건 최신버전만 찾을수 있나? 꼭 그렇지만은 않다. 홈페이지의 첫번째 문단의 하이퍼링크된 archive site를 눌러보면 https://archive.apache.org/dist/ 링크로 연결되는데, 이 페이지는 프로그램의 모든 버전이 존재한다 그래서 여기 페이지를 뭐할떄 쓸수있나? 결론적으로 말하면, 프로그램을 다운로드 받을때 페이지를 사용할수 있다. 예를 들어서 Apache Airflow 1.10.9버전을 다운로드 받고싶다면 해당사이트로 이동한다 https://arch..
Numpy Array Memory구조 확인하기
·
Dev
Python List vs Numpy Array 메모리 구조 Python List Numpy Array Python List는 List 내부에 공간이 먼저 할당되고, 공간이 각각의 Value값이 있는 Integer Objects를 바라보고 있다는 것이다 이에 대비한 Numpy Array는 Array Object 내부에 할당된 공간이, 실제 Integer Object가 있는 장소 라는것이다 Numpy array Memory Numpy array = rawdata(refer to databuffer) + rawdata에 대한 정보 연속형 고정블록 메모리를 가지고있다(C-order or Fortran-order) rawdata Numpy array에서 가지는 rawdata는 다음과 같은 정보를 가지고 있다 데..
Apache Arrow가 뭘까?
·
Dev
개발 플랫폼 Apache Arrows는 일종의 개발 프로그램이라고 보는것같다 In-Memory로 작동하고, 데이터간 이동하는 기술을 Python에서는 Pyarrow로 구현할수 있다 Zero-Copy ROW기반이 아닌 Column기반(열기반) 의 인메모리 포맷으로 Zero-Copy 직렬화를 수행한다고함 원래는 데이터가 인프라를 공유하기위해선 Serialization, Deserialization이 필요했는데, 이 과정에서 데이터가 크면 클수록, Overhead가 크다는 단점이 있었다 그래서 직렬화를 없에버리려는 목적으로 Zero-copy Serialization framework 가 탄생되었다 ( 당연히 serialization을 하지않기때문에, deserialization도 하지않는다 )
Parquet는 왜 쓸까?
·
Dev
한줄요약 Data를 저장할때 ‘행기반’ 과 ‘열기반’ 으로 나누어져 저장된다 열기반(Column-Based)의 장점이 필요할때 사용한다 정형데이터와 비정형데이터 일반적으로 소규모 데이터베이스 상황에서 데이터를 저장해야할때 정형데이터 - RDB 비정형데이터 - NoSQL 이런식으로 구분하여 저장하는것이 일반적이었다 만약 대용량 데이터를 저장해야한다면? 일반적으로 데이터레이크를 구축할때, 오브젝트스토리지를 사용하는것이 일반적인데 그중 하나의 클라우드 서비스로는 AWS S3 가 있다 대용량 데이터를 저장해야할 정도면, 당연히 하둡생태계를 고려할것이고 이때 고려할만한 타입이 Parquet(파케이) 타입이다 Parquet(파케이) 주된 특징으로는 S3 에 주로 사용하는 데이터 포맷이고 빠르게 읽기가 가능하고 압축..
PyObject 객체와 Numpy
·
Dev
데이터의 지역성 ram이 아무리 빨라봐야 cache보다 느리고, cache가 아무리 커봐야 ram보다는 작다 그래서 CPU는 사용할 Data를 cache에 저장하고, Register로 가져와서 계산을 진행한다 CPU가 Data를 찾을때 Data가 Cache에 없으면 (Cache Miss) 데이터를 RAM, SSD 에서 찾아야하는데 이거 시간소모가 꽤 크다 CACHE MISS를 막기위해서 일반적으로 주변의 데이터를 통째로 가져온다(뭉탱이로 가져옴) 근데 이게 PythonObject에서는 배열에 넣어서 인접해보인다고 쳐도, 실제로는 포인터의 주소를 넣은거기때문에, 연속된 값을 넣었다고해도, 실제로 메모리에 할당되는 부분이 인접해있는지를 보장할수가 없는거다 (⇒ Cache Miss가 더 빈번히 발생하겠지) 근..
서버리스의 장단점
·
Dev
선요약 서버리스를 쓴다면 유지보수의 불필요, 운영비용 절감, 자원의 AutoScaling 측면때문에 사용한다 서버리스를 안쓴다면 보안문제, 공급업체 의존성, 적은 레퍼런스 때문에 사용하지않는다. FaaS(Function), BaaS(Backend) 로 구분된다 e.g ) AWS Lambda 서버리스의 특징 유지보수의 불필요 서버를 프로비저닝, 유지관리할 필요가 없다(APP만 개발하면 된다) 유연한 확장 애플리케이션을 자동으로 확장시킬수 있다 개별서버단위가 아니라 사용단위(처리량,메모리) 를 설정해서 용량을 조정할수 있다 종량제 요금 서버 단위가 아닌 일관된 처리량, 실행기간에 대해 요금을 지불한다 고가용성 서버 자체에서 가용성과 내결함성을 가지고있다. APP에서 이러한 기능을 설계할 필요가없다 보안이슈 ..
파이썬 모듈 재설치, 초기화하는방법 (poppler 설치 후 에러)
·
Dev
문제상황 PDF2IMG 라이브러리를 사용하려고 확인해보니, 필자가 사용중인 Mac OS에서는 brew install poppler 로 먼저 poppler라이브러리를 설치후, 사용해야했다 그러나 poppler라이브러리를 설치 한 후에 requests, python 등의 라이브러리가 먹통이 되는것을 경험했고, 이를 해결하려고 라이브러리 초기화방법을 생각했다. 해결방법 pip freeze > requirements.txt pip uninstall -r requirements.txt -y 해결 원리 pip freeze ( ‘pip로 설치한 모든 라이브러리’ 를 ) > requirements.txt ( requirements.txt 파일 에다가 모두 저장하겠습니다) 라는것이고 pip uninstall (pip로 ..
정규화와 역정규화
·
Dev
정규화 란? 예시로 학생컬럼이 있으면 a학교 학생1 b학교 학생2 이렇게 되어있는 데이터를 테이블 2개로 만든다(정규화) 테이블1 (학교코드, 학교명 ) 1, a학교 2, b학교 3, c학교 테이블2 ( 학교코드, 학생명 ) 1, 쫑긋 2. 쫑쫑긋 3. 김쫑긋 3. 쫑긋긋 역정규화란 ? 근데 반대로 이걸 역정규화 한다는 말은 a학교, 쫑긋 b학교, 쫑쫑긋 c학교, 김쫑긋 c학교, 쫑긋긋 이렇게 하면 디비관점에서는 index도 느리고, 비대해지는 테이블로 짜증나는 테이블이다. 근데도 일부러 역정규화를 해서 넣는다 단점이 있는데 왜 역정규화를 하나요? 보통은 몇가지의 목적때문에 이런방식을 사용한다 NoSQL 은 대부분 사실상 조인이 불가능해서, NoSQL 스토리지 쓸때는 역정규화를 한다 많은 조인을 하지 않..
VSC에서 작업영역 구성하기 (Workspace)
·
Dev
작업환경을 왜 구성해야 할까? VSC에서 파일, 폴더를 열면 ‘단 1개의 디렉토리' 만 열리기 때문이다. 사진에서는 TEMP1 폴더를 열었는데, 만약 이때 TEMP2 폴더에서 파일을 끌어와야한다면? VSC가 아닌 윈도우탐색기 혹은 Finder에서 파일을 옮기거나, VSC창을 하나 더 띄워서 직접 드래그앤 드롭 하는 방식을 사용한다 그러나 작업환경을 구성하면 하나의 탐색기에서 여러개의 폴더를 동시에 확인할수 있다! VSC 작업영역(workspace) 에 폴더 추가하는 방법 우선 폴더를 연결한 VSC를 띄우고 2. 탐색기 영역에서 우클릭 -> 작업 영역에 폴더 추가 3. 추가하고싶은 폴더 선택 끝! 만약에 폴더를 접게된다면 색칠한 원형 문양으로 나타나진다 작업영역에서 폴더 삭제하는 방법 구성했던 작업영역 →..
jjongguet
'Dev' 카테고리의 글 목록