Iterator(이터레이터)와 list(리스트)의 동작 차이
·
알쓸신잡
코딩테스트를 준비하다가 역순을 사용하는 부분에서 객체의 메모리 주소를 보여주는 부분을 목격했다.이 메모리 주소는 이터레이터의 객체 주소를 보여주는데, 이터레이터와 리스트의 차이가 무엇인지 찾아보다가 기록을 해둔다.두 개념은 비슷해 보이지만, 데이터를 처리하는 방식과 사용 방법에서 큰 차이가 있다.이터레이터는 마치 과자 자판기와 같다.자판기에서는 버튼을 한 번 누를 때마다 과자가 하나씩 나온다.하지만 모든 과자를 다 꺼내고 나면 더 이상 과자를 받을 수 없다.이처럼 이터레이터의 특징을 볼 수 있는데, 이터레이터는 한번만 사용할 수 있고, 메모리에 모든 데이터를 저장하지 않고 필요할때만 생성한다는 점, 그리고 다시 사용하려면 새로 생성해야한다는 점이다.l = [1, 2, 3, 4, 5]iter_obj = i..
Hive Metastore vs Unity Catalog
·
알쓸신잡
데이터브릭스 플랫폼에서 개발하면서 데이터를 담고있는 공간의 차이가 궁금해졌다.엔지니어를 하다보면 데이터브릭스에서 유니티 카탈로그(Unity Catalog)라는 단어가 계속 나오는데, 유니티 카탈로그 외의 하이브메타스토어는 유니티카탈로그가 아닌건가?에 대해서 의문이 들었다. 일단,  Unity Catalog와 Hive Metastore 둘다 메타데이터 등 데이터를 관리하는 데 사용되는 도구이지만 차이점은 명확히 있다.Unity Catalog는 Databricks에서 제공하는 데이터를 관리하는 기능으로, 클라우드에서 데이터를 일관성 있게 관리하고 접근을 세밀하게 제어할 수 있도록 설계되었다. AWS, Azure 등의 다양한 클라우드 환경을 지원하므로 멀티 클라우드에서 데이터를 활용하려는 경우 유용하다.Hiv..
[TIL] ValueError: numpy.dtype size changed: Binary Incompatibility 해결 방법 (With Log4j)
·
알쓸신잡
개발을 하다 보면 다양한 환경에서 여러 오류가 발생한다. 특히 파이썬 라이브러리들을 사용할 때 라이브러리 간 버전 호환성 문제로 인해 예상치 못한 오류가 발생할 때가 있는데, 최근에 겪었던 문제 중 하나는 NumPy를 사용할 때 나오는 다음과 같은 경고 메시지였다.문제 상황 배치 워크플로우를 돌리는 경우에 cluster 에러가 나서 이후에 있는 모든 작업이 전부 중단됐다. log4j의 strerr을 다운받아서 확인해보니아래와 같은 경고가 나타났다.ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject이 경고는 NumPy의 dtype 크기가 변..
[TIL] Decimal vs Float 의 차이 (with Trim)
·
알쓸신잡
실수를 표현하는 방식컴퓨터는 기본적으로 2진수를 사용하는 기계이다.정수(ex. 1,2,3) 를 표현하는데에는 무리없이 표현할 수 있지만 소수를 표현할 때에는 무한한 2진수로 표현이 된다.즉, 소수점 0.1을 2진수로 표현한다면 무한 소수로 표현이 된다는 말과 같다.FloatFloat은 부동 소수점을 사용하는 타입으로, 소수점의 위치가 데이터의 형태에 따라 언제든지 바뀔 수 있으며 실제로 소수점을 사용하다보면 float은 소수점 외, 많은 소수점을 가지고 있는 것을 볼 수 있을것이다.즉, float은 decimal과 달리, 이진수 기반의 연산을 지니고 있으며 십진수를 이진수로 변환시킬때 이진소수인 형태를 띄고 정확히 맞아 떨어지지 않는 값들에 대해선 무한소수가 되어 정확하게는 그 값에 근사값이 될 확률이 ..
[TIL] PPT to PDF Convert Python code
·
알쓸신잡
이슈 발생ppt, pdf 문서 전처리 하던 와중에 ppt 슬라이드 전체를 img하여 전처리 하려고 했으나,pymupdf 라이브러리 내에서 get_pixamap의 기능은 ppt 슬라이드를 이미지화하는 것이 아닌, 뭔가 이미지를 찾아그 이미지를 추출해서 진행하는 코드같았다.슬라이드 자체를 이미지화해야 했기 때문에 코드 수정이 필요했다.https://pymupdf.readthedocs.io/en/latest/recipes-images.html Images - PyMuPDF 1.24.1 documentationPrevious Textpymupdf.readthedocs.io 배치성으로 파이프라인을 구축해야 하다보니, 로컬에서 하나하나 작업할 수 없었고, ppt를 슬라이드화 하려면 pdf로 만들어야했다.구글링해보니..
[네트워크] 서브넷(Subnet), 서브넷팅, 서브넷마스크, CIDR이란?
·
알쓸신잡
서브넷서브넷은 하나의 네트워크가 분할되어 나눠진 작은 네트워크를 말하는데, 이를 분할하는 것을 서브네팅이라고 하며서브네팅은 서브넷 마스크를 통하여 수행된다.서브넷마스크서브넷 마스크는 IP주소에서 네트워크와 호스트를 분리하는 역할을 한다.32 비트의 숫자로 0은 호스트, 1은 네트워크 부분을 나타낸다.서브넷의 클래스는 A,B,C클래스로 나뉘어지는데, 각자의 기본 서브넷 마스크는 아래와 같다.A 클래스는 네트워크 영역이 0으로 시작하며 네트워크 영역이 8비트B 클래스는 네트워크 영역이 10으로 시작하며 네트워크 영역이 16비트C 클래스는 네트워크 영역이 110으로 시작하며 네트워크 영역이 24비트다.IP 주소 Class기본 서브넷 마스크A255.0.0.0B255.255.0.0C255.255.255.0서브넷팅..
[네트워크] VPN, VPC, Nat Gateway Infra 개념 정리
·
알쓸신잡
Solution Architect Asso를 공부하면서 인프라에 대해 개념을 정리한다.VPN (Virtual Private Network: 가상 사설망)VPN은 한글로 풀어 쓰자면, 가상사설망이라고 한다.예를 들어, 유투브 뮤직을 사용할때 한국의 사용망은 너무 비싸서 사용하는 지역을사용망이 싼 터키나 아르헨티나로 바꾸는 경우가 있는데, 그 경우라고 생각하면 쉽다.네트워크가 구성되어있고 그 네트워크를 분리하고 싶을때 가상사설망 vpn을 사용한다고 한다. 실제로는 네트워크A와 네트워크B가 동일한 네트워크상에 있지만, 각자 다른 네트워크인 것처럼 작동하는 것이라고 생각하면 된다.VPC (Virtual Private Cloud: 가상 사설 네트워크)VPC란, 퍼블릭 클라우드 환경에서 사용할 수 있는 가상 사설 ..
[TIL] 터미널 iTerm2(oh-my-zsh) 유저 이름 변경 및 삭제하기
·
알쓸신잡
맥 터미널을 사용하다보면 컴퓨터의 이름과 바탕화면 폴더이름이 너무 길어 명령어를 칠 때 2줄 3줄로 넘어가는것을 확인할 수 있다. 화자는 ls 만 쳐도 1줄이 끝나는데, 터미널 컴퓨터 이름을 삭제하고 원하는 유저명으로 변경해보려고 한다.컴퓨터 이름 삭제vi ~/.zshrc vi로 zshrc file을 연다prompt_context() { if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then prompt_segment black default "%(!.%{%F{yellow}%}.)$USER" fi }i를 눌러 insert하고 위의 코드를 맨 아래에 붙여넣는다. esc를 누르고, :wq(저장하고) 를 해서 파일을 나온뒤 터미널을 다시..