전체 글
-
OSM tileserver 동아시아지역 잘라 사용하기.GIS 2024. 8. 6. 14:19
OSM이란?오픈소스 프로젝트로 지도 관련 프로젝트이며 전세계를 대상으로 개방형 월드맵 데이터베이스를 구현을 목표로 한다. OSM은 오픈소스인 만큼. 다양한 부가적인 플러그인이나 / 레이어 맵 이 엄청 많고 다양하다 따라서 맞춤형 지도 제작에 적합하고 유리하다. OSM에 가장 큰 장점은 지도에 오류 정보를 내가 수정하고 내가 반영할 수 있다. OSM을 왜 직접만들어 사용하지?사실 osm도 인터넷에서 사용하는 지도를 사용하면 네이버/카카오/구글 지도와 같이 그냥 API를 통해서 사용하면 간단하다. 다만 필자는 폐쇄망 Offline 환경에서 데이터를 사용할 경우가 있다.또한 직접만드는 이유 중 다른 하나는 OSM을 사용하여 만든 다른 오픈소스들이 인터넷에서 API등을 제공을 하지만 다만 외국이라/지원 폭이 넓..
-
이미지 처리(Image Processing)란?Python/Python OpenCV 2024. 8. 2. 15:27
이미지 처리(Image Processing)란?아날로그 이미지 처리아날로그 이미지 처리는 사진 촬영 시 필름에 다양한 화학 처리를 하거나 카메라로 촬영한 이미지를 변경 및 편집하기 위해 물리적 필터를 사용하는 등 물리적 수단을 이용해 이미지를 조작하거나 편집.디지털 이미지처리컴퓨터가 디지털 이미지를 처리하는데 수학적 알고리즘과 계산 기술에 의존함. 이러한 기술에는 이미지 향상(Image upscaling), 이미지 복원(Image restoration), 특징 추출(feature extraction)등이 있음,디지털 이미지 처리의 메커니즘을 살펴보면 모든 이미지의 구성요소인 픽셀의 역할을 이해하는것이 중요함.각 픽셀은 색상과 강도에 대한 정보를 담고 있습니다. 이미지 처리 알고리즘은 이러한 픽셀에서 작동..
-
-
[Ubuntu] Ubuntu 23.04 default source.listLinux/Ubuntu 2024. 7. 5. 11:12
기본 패키지 [백업용]deb http://mirrors.aliyun.com/ubuntu/ lunar main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ lunar main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ lunar-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ lunar-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ lunar-..
-
[Python] 함수형 프로그래밍 이란Python/Python 2024. 7. 3. 18:21
함수형 프로그래밍 페러다임에서는 프로그램의 상태를 변경하는 일련의 흐름의 단계가 아닌 수학적인 함수 평가를 통한 프로그램 플로우를 달성한다. 순수한 함수형 프로그래밍 상태의 변경을 피하고 가변데이터 구조를 이용한다.함수형 프로그래밍의 일반적인 기본 용어를 아라보자Side Effect(부작용): 함수가 자신의 로컬 환경 바깥에 있는 상태를 수정한다면 해당 함수는 Side Effect을 가진다. 다시 말해 Side Effect이란 함수를 호출한 결과로 발생되는 함수 바깥에서 관찰 할 수 있는 모든 변경이다. Side Effect의 예시로는 글로벌 변수의 수정, 함수 범위 바깥에서 이루어지는 객체의 속성 변경, 외부 서비스로의 데이터 저장 등이 있다. side effect는 OOP 개념의 핵심이다. OOP에서..
-
[Python] 싱글-디스패치 함수(single-dispatch function)Python/Python 2024. 7. 3. 16:59
객체지향 프로그래밍에서 JAVA나 C++ (다른랭기지도 있겠지만 생략) 등 에서 같은 함수를 2개 이상 작성하여 매개변수에 따라서 함수 처리를 다르게 하는 것을 본 적이 있을것이다. 그것을 오버로딩이라고 한다.파이썬은 오버로딩을 지원하지 않는다.결론부터 말하자면 오버로딩은 지원하지 않는다. 파이썬은 연산자 오버로딩(던더메서드를 활용한 add, sub 등등) 은 제공하지만 함수와 메서드 오버로딩은 지원하지 않는다. 한 모듈 안에서 같은 이름을 사용하면 맨 마지막으로 정의된 매서드가 앞에 모든 정의를 덮어 씌워버린다.그렇다면 오버로딩을 못하나?파이썬은 쉬운 언어이므로 다른 방법으로 메서드 오버로딩과 같은 개념으로 지원한다. 메서드/서브클래싱을 이용: 함수가 매개변수를 구분하도록 해당 타입의 메서드로 정의함으..
-
[Python] 디스크립터(Discriptor)Python/Python 2024. 7. 3. 14:09
디스크립터란 무엇인가?파이썬에서는 다른언어와 다르게 디스크립터 라는 개념이 있다.이게 무엇이냐면 객체 속성을 참조했을 때 어떻게 되어야 하는지 커스터마이즈 할 수 있다.다시 말해 클래스는 한 속성의 관리를 다른 클래스에게 위임(delegate) 할 수 있다.디스크립터 클래스들은 세 개의 특별한 메서드에 기반하며, 이 클래스들은 디스크립터 프로토콜을 형성한다.__set__(self, obj, vaule): 흔히 아는 세터 (Setter)다.__get__(self, obj, owner=None): Getter__detete__(self, obj): 속성에서 del이 불렸을 때 호출__get__, __set__ 을 구현한 디스크립터를 데이터 디스크립터라고 부른다, __get__ 만 구현한 디스크립터를 비데이..
-
[Python] 파이썬 접근지정자 강제 접근 방법 파이썬 네임맹글링Python/Python 2024. 7. 2. 18:11
Python 에서는 다른 언어와 다르게 public/private/protected 같은 접근지정자가 따로 없다.하지만 우리는 네임맹글링이라는 기법으로 고유한 방법으로 던더(__) 기법을 사용하여 private하게 접근지정자를 만들고들 한다. 일반적으로 private한 변수를 가져오거나 값을 바꿀때에는 getter/setter 사용하여 클래스 내부에서 호출하여 변수를 보호한다. 그런데 파이썬에서 정말로 이러한 방법으로 완전하게 변수를 보호할 수 있을까?결과는 아니다. 아래 코드처럼 클래스 자체를 네임맹글링 방식으로 호출하면 결국에는 변수에 접근이 가능하다.class MyClass: def __init__(self): self.__secret_value = 1 self._..