파이썬 코드 패키징과 배포 (Poetry, Venv, Pip)
·
스터디/사내 스터디
Poetry 이전의 배포 방식PIPpip는 파이썬으로 작성된 패키지 소프트웨어를 설치하는 패키지 관리 시스템입니다.파이썬 패키지 인덱스 및 기타 인덱스에서 패키지를 설치하는 데 사용할 수 있습니다.pip를 이용하여 설치하는 패키지는 모두 pypi에 존재하는 패키지이며, 아래와 같이 구조를 구성하여 배포할 수 있습니다.Wheel?Python의 배포 패키지 파일 (.whl)설치에 필요한 모든 파일과 메타데이터가 포함되어 있다. (Python 버전 및 플랫폼 정보 포함)Wheel의 개발 배경?Python에는 sdist보다 설치하기 쉬운 패키지 형식이 필요새로운 가상 환경에 설치하기 위해 distutils 및 setuptools를 필요로 하는데, 속도가 느리고 유지 관리가 어렵다.휠은 인스톨러가 빌드 시스템에 ..
애플리케이션 동작과 성능 관측
·
스터디/사내 스터디
예제Github 예제계속 업데이트 예정. GitHub - chordpli/monitoring-exampleContribute to chordpli/monitoring-example development by creating an account on GitHub.github.com 애플리케이션 관측성애플리케이션의 출력에 기반하여 애플리케이션의 상태를 설명하고 이해할 수 있는 소프트웨어 시스템 특성 중 하나관측 기법에러와 로그 캡처커스텀 지표를 이용한 코드 측정분산된 애플리케이션 추적코드와 커스텀 지표 조사일반적인 지표 범주리소스 사용 지표 : 메모리, 디스크, 네트워크, CPU 사용량 등모든 인프라스트럭처는 리소스 제한이 있으므로 항상 관찰해야 한다.리소스 사용량에 따라 비용을 지불해야하는 클라우드 인프라..
이벤트 기반 아키텍처 (Event Driven Architecture)
·
스터디/사내 스터디
이벤트 기반 아키텍처 (Event Driven Architecture)AWS, MicroSoft, 전문가를 위한 파이썬 교재에서는 각각 이벤트 기반 아키텍처에 대해 아래와 같이 설명하고 있습니다.마이크로 서비스가 이벤트라고 하는 상태 변화에 대응하는 소프트웨어 설계 패턴.이벤트 생성 및 감지와 관련된 소프트웨어 아키텍처 패러다임이벤트(메세지)와 서로 다른 소프트웨어 컴포넌트 사이에서 일어나는 이벤트 흐름그렇다면 이벤트란 무엇일까요?이벤트이벤트란 상태의 변화로 정의할 수 있다고 합니다. 이러한 상태를 전달할 수 있으며, 이벤트는 식별자일 수 있습니다.특성일어날 일의 기록변경하거나 삭제할 수 없는 변경 불가능한 사실을 캡처이벤트 소비 시 서비스가 적용하는 로직에 관계없이 발생무기한 대규모로 유지되면 필요한 ..
Chapter 08. 스트림을 활용한 병렬 데이터 처리
·
스터디/함수형 프로그래밍 with 자바
스트림을 활용한 병렬 데이터 처리8.1 동시성 vs 병렬성동시성(concurrency)은 여러 작업이 중복되는 시간 동안 한정된 리소스에 대한 경쟁을 하면서 실행되는 것을 의미합니다.병렬성(parallelism)은 중첩된 작업들을 관리하는 것이 아니라 이 작업들이 동시에 실행되는 것에 중점을 준다.즉 동시성은 동시에 실행 되는 것처럼 보이는 것일 뿐이며, 병렬성은 실제로 동시에 작업하는 것을 뜻한다.8.2 병렬 함수 파이프라인으로써의 스트림병렬 스트림은 재귀적 분해(Recursive Decomposition) 개념을 사용합니다. 이는 요소를 Spliterator를 사용하여 분할하고 요소의 덩어리를 병렬로 처리함으로써 데이터 소스를 분할하고 정복하는 것을 의미합니다.8.4 병렬 스트림 활용 시기와 주의할 ..
Chapter 07. 스트림 사용하기
·
스터디/함수형 프로그래밍 with 자바
7.1 원시 스트림스트림과 함께 원시 타입을 사용하는 데는 두가지 옵션이 존재오토박싱원시 타입의 값을 객체로 변환할 때 오버헤드 발생null 값의 존재 가능성스트림의 특화된 변형IntStream, LongStream, DoubleStream 등 원시 타입 전용 스트림public class PrimitiveStreamExample { public static void main(String[] args) { IntStream intStream = IntStream.range(1, 10); intStream.forEach(System.out::print); }}/*---123456789 */7.2 반복 스트림세밀한 제어가 필요하다면 스트림 타입 및 원시 타입 변형에서 사용 ..
Chapter 06. 스트림 (Stream)
·
스터디/함수형 프로그래밍 with 자바
6. 스트림을 이용한 데이터 처리자바 8에서 도입된 스트림 API는 데이터 처리에 대해 선언적이고 지연 평가된 접근법을 제공한다.6.1 반복을 통한 데이터 처리외부 반복FOR-LOOP명확한 단점은 반복 기반 루프에 필요한 보일러 플레이트 코드가 많다.루프의 바디에는 continue와 break의 형태로 반복 과정에 대한 의사 결정 및 여러 문장까지 포함할 수 있다.연속적인 순회 과정이 필요하며, 병렬 데이터 처리가 필요한 경우 전체 루프 재작성해야 하며, 그 과정에서 ConcurrentModificationException과 같은 복잡한 문제를 해결해야한다.public class ExternalIteration { public static void main(String[] args) { ..
Chapter 05. 레코드 (Record)
·
스터디/함수형 프로그래밍 with 자바
5. 레코드5.1 데이터 집계 유형데이터 집계는 다양한 소스로부터 데이터를 수집하고 의도한 목적에 부합하도록 표현하는 과정튜플튜플은 요소의 유한하며 순서가 있는 집합이며 여러 값 또는 객체를 모은 자료 구조종류구조적 튜플: 요소들의 순서에만 의존하므로 인덱스를 통해서만 접근이 가능명목상 튜플: 데이터에 접근하기 위한 방법으로 인덱스를 사용하지 않고 컴포넌트명을 사용public class TupleExample { public static void main(String[] args) { Map.Entry person = new AbstractMap.SimpleEntry("Pli", 30); System.out.println("이름: " + person.getKey()); System.ou..
Chapter 04. 불변성
·
스터디/함수형 프로그래밍 with 자바
4. 불변성4.1 객체지향 프로그래밍의 가변성과 구조일반적으로 setter 메서드를 사용하여 상태를 변화기존 자료 구조의 변경된 내용이 해당 상태를 업데이트하며, 참조하는 다른 모든 사용자에게도 영향을 미침.가변 상태는 복잡성과 불확실성을 유발가변 상태를 공유하는 것은 공유된 상태에 액세스하는 컴포넌트의 수명을 포함하여 복잡성을 증가시킴동시성 프로그래밍은 공유된 상태의 복잡성에 영향을 받으며 많은 문제가 가변성에서 발생@Setter@ToString@AllArgsConstructorpublic class Study { private String name; private LocalDate startDate; private int studyHours; public static void main(Stri..
코드플리
'스터디' 카테고리의 글 목록