목차 윈도우 함수 개념과 종류 윈도우 함수의 형식 윈도우 함수 예제 윈도우 함수 개념과 종류 윈도우 함수 : 운영체제인 윈도우가 아니고, 전체 데이터 중에서 특정한 부분만 발췌해 보는 것이 창문을 통해 보는 것과 비슷하다는 의미에서 유래한 함수 고급 레벨의 SQL 기능으로, 보고서 작성 및 데이터 분석 등에서 매우 많이 활용돼 분석 함수라고도 불린다. 전체 데이터의 행들을 파티션으로 나눠 영역을 설정하고 행과 행 간의 관계를 쉽게 정의하기 위해 만들어졌다. 컬럼 간 비교 및 연산, 집합 처리에는 강하지만 행 간 관계나 비교에는 어려움이 있는 RDB SQL의 단점을 보완하기 위한 부분도 있다. 분류 기준이 용도와 구분에 따라 상이하다. 국내에서 윈도우 함수를 구분할 때는 한국데이터진흥원의 SQL 개발자 가이드북이 널리 알려진 기준이다. 분석 함수의 경우에는 해당 가이드북에서 다루지 않는 내용이다. 윈도우 함수 유형 함수명 설명 순위 함수 (Ranking) RANK() 동일 값이 있으면 같은 순위, 이후 순위 건너뜀 DENSE_RANK() 동일 값이 있으면 같은 순위, 순위를 건너뛰지 않음 ROW_NUMBER() 중복 없이 순위를 부여 집계 함수 (Aggregate) SUM() 윈도우 범위 내 합계 AVG() 윈도우 범위 내 평균값 MIN() 윈도우 범위 내 최소값 MAX() 윈도우 범위 내 최대값 COUNT() 윈도우 범위 내 개수 (...
목차 그룹 함수 그룹 함수에서 CASE/DECODE 문 사용하기 그룹 함수 ROULLUP ROULLUP 함수는 SQL에서 그룹화된 다차원 집계를 생성하는 데 사용한다. GROUP BY 절과 함께 사용되며, 지정된 컬럼에 대한 소계와 합계를 계산해 계층 구조를 형성한다. 부서별, 직원별 급여 합계 dept_id + emp_name 별 합계 > dept_id 별 합계 > 전체 합계(최상위 NULL) 까지 자동 생성 SELECT dept_id, emp_name, SUM(salary) AS total_salary FROM employees GROUP BY ROLLUP (dept_id, emp_name); dept_id emp_name total_salary 10 김철수 5,000,000 10 박민준 6,000,000 10 NULL 11,000,000 20 이영희 7,000,000 20 NULL 7,000,000 NULL NULL 18,000,000 CUBE CUBE 함수는 ROULLUP과 유사하지만 가능한 모든 조합의 집계를 계산한다. GROUP BY 절과 함께 사용되며, 지정된 컬럼에 대한 모든 가능한 소계와 합계를 계산해 계층 구조를 형성한다. 부서별, 직원별 급여 합계 부서별 합계, 직책별 합계, 부서 & 직책 조합 합계까지 모든 경우를 계산 SELECT dept_id, job_title, SUM(salary) AS total_sala...
집합 연산자 집합 연산자(set operations): 두 개 이상의 select 문에서 반환된 결과 집합을 결합해 하나의 결과 집합으로 만드는 데 사용 모든 SELECT 문은 동일한 수의 컬럼을 반환해야 하며, 각 컬럼의 데이터 타입은 호환 가능해야 함] ODER BY는 최종 결과에만 적용 가능하다. 집합 연산자로 UNION, UNION ALL, INTERSECT, MINUS가 있다. 연산자 설명 중복 제거 UNION 두 개의 결과를 합쳐 중복을 제거한 데이터 반환 O UNION ALL 두 개의 결과를 합치되, 중복 제거 없이 모든 행 반환 X INTERSECT 두 개의 결과에서 공통된 데이터만 반환 O MINUS 첫 번째 쿼리 결과에서 두 번째 쿼리 결과를 제외한 데이터 반환 O UNION employees와 managers 테이블에서 부서 ID(dept_id)를 가져오되, 중복을 제거한 결과 반환 UNION은 중복을 자동으로 제거하여 반환 부서 ID 20은 employees와 managers 테이블에 모두 있지만, 한 번만 출력됨 SELECT dept_id FROM employees UNION SELECT dept_id FROM managers; UNION ALL UNION ALL은 중복을 제거하지 않고 모든 데이터를 그대로 반환 부서 ID 20이 두 번 출력됨 (employees, managers 각각 포함) SELECT de...
목차 뷰 개념과 장단점 뷰 예제 뷰(VIEW) 개념과 장단점 뷰(VIEW) : 하나 이상의 테이블에서 데이터를 검색하는 SQL 쿼리의 결과를 저장하는 가상 테이블 실제 데이터를 저장하지 않고, 기본 테이블에서 데이터를 가져옴 동적이며 읽기 전용의 데이터 집합 제공 복잡한 쿼리를 단순하고 데이터 접근을 제어하며 보안과 편의성을 높일 수 있음 뷰 쿼리 형식 SELECT 문을 기본으로 하고, 가장 첫 줄에 CREATE VIEW를 적어 뷰 이름을 지정하면 끝이다. CREATE VIEW 뷰이름 SELECT 컬럼1, 컬럼2 FROM 테이블 WHERE 조건; 예시 CREATE VIEW EMP_DEPT_VIEW AS SELECT E.NAME, E.JOB, D.DNAME, D.LOC FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO WHERE D.LOC = 'CHICAGO'; 뷰 장점 데이터 중복 방지 실 데이터를 저장하지 않아 중복을 피할 수 있음. 신규 테이블은 데이터를 복제해 저장 공간을 더 많이 사용 데이터 일관성 항상 최신 데이터를 보여줌. 신규 테이블은 주기적으로 갱신해야 하며, 그 사이 데이터 불일치가 일어날 수 있음 보안 강화 특정 컬럼이나 행에 대한 접근 제한을 걸 수 있음, 원본 테이블의 구조를 숨기면서 필요한 정보만 제공 복잡한 쿼리 단순화 자주 사용되는 복잡한 쿼리를 뷰로 만들어 재사용, 실무에서...
목차 JOIN 개념과 종류 JOIN 예제 서브 쿼리 개념과 종류 서브 쿼리 예제 JOIN 개념과 종류 데이터모델링에서의 관계는 서로 연결되어 있다는 의미 부모 테이블의 식별자를 자식 테이블의 식별자로 포함시키면 식별 관계, 그렇지 않으면 비식별 관계라고 함 관계 개념을 SQL에서 JOIN으로 부름 JOIN은 데이터베이스에서 여러 개의 테이블을 결합해 원하는 데이터를 추출할 때 사용하는 구문 식별자 관계만 JOIN이 가능한가? -> 주식별자(PK)나 보조식별자(FK)에 의해 JOIN이 이뤄지지만, 논리적인 값들의 연관만으로도 이뤄질 수 있음 조인 예시 및 조인 과정 전체 구문 SELECT 별칭1.컬럼명, 별칭2.컬럼명 FROM 테이블1 AS 별칭1 JOIN 테이블2 AS 별칟2 ON 별칭1.컬럼명 = 별칭2.컬럼명; JOIN 이후 최종적으로 출력할 컬럼 선택 SELECT 별칭1.컬럼명, 별칭2.컬럼명 두 테이블의 JOIN이 이뤄짐 FROM 테이블1 AS 별칭1 JOIN 테이블2 AS 별칟2 서로 일치하는 조건으로 JOIN 설정 ON 별칭1.컬럼명 = 별칭2.컬럼명; JOIN의 종류는 다양하고, 주로 다음이 있음 JOIN 종류 설명 INNER JOIN 두 테이블에서 매칭되는 데이터만 가져옴 LEFT JOIN 왼쪽(기준) 테이블의 모든 데이터와 매칭되는 데이터 가져옴 RIGHT JOIN 오른쪽(기준) 테이블의 모든 데이터와 매칭되는 데이터...
정규화 정규화 : 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반 속성을 의존자로 해 입력/수정/삭제 이상 현상을 제거하는 것 정규형 종류 : 주로 1차, 2차, 3차가 사용된다. 제1정규형 : 속성은 하나의 값만 가져야 함 제2정규형 : 1정규형 + 기본 키의 부분적 종속성이 제거되어 기본 키 전체에 종속되어야 한다. 제3정규형 : 2정규형 + 모든 비주요 속성이 모든 주식별자에만 종속되고 비주요 속성 간 종속성이 없어야 한다. 종속 : 특정 값이 무엇에 의해 결정되는지를 나타냄 함수종속성 : 데이터가 특정 기준값에 의해 종속되는 현상, 기준 값이 결정자가 되고 종속되는 값이 종속자가 됨 제2정규화의 필요성 데이터 중복 : 데이터 중복으로 저장 공간 차지 및 데이터 관리 복잡성 증대 업데이트 이상 삽입 입상 삭제 이상 반정규화: 정규화의 원칙을 일부 또는 전부 역행해 데이터의 중복을 의도적으로 허용하거나 테이블 구조를 단순화하는 과정 반정규화가 고려되는 상황 조회 성능 향상 쿼리 간소화 트랜잭션 처리 SQL 쿼리 실행 순서 SQL 쿼리 실행 순서 FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY 가져올 곳을 찾고 재료를 선택해서 분류하고 재선별 요리 방법 선택 플레이팅 관계와 조인 관계 : 서로 연결돼 있음 조인: 데이터 모델링에서 관계 개념, 두 개 이상의 테이...
데이터 모델링 모델링 : 사람이 살아가면서 접할 수 있는 다양한 현상을 표기법에 따라 표기하는 것 자체 모델링 종류 정보시스템 모델링 : 데이터 모델링을 포함함. 복잡한 데이터를 컴퓨터 저장 구조로 변환하는 과정, 데이터를 구조화하고 체계화하는 모든 것을 망라함 수리 모델링 : 수학적 모델링, 공학 분야에서 사용되는 미분 방정식, 상태 방정식, 시스템 방정식, 시스템 함수 등이 해당 통계 모델링 : 확률 현상을 차트, 표, 수식, 함수 등으로 표현. 회로 모델링 : 회로 소자를 이용해 증폭, 필터링, 스위칭 등 연산을 수행하는 회로를 특정한 규칙에 따라 표현하는 것 모델링 특징 추상화 - 단순화 - 명확화 데이터 모델링 : 정보시스템 구축을 위해 데이터 관점에서 업무를 분석하고, 현실의 데이터를 약속된 표기법으로 표현하는 과정 데이터 모델링 3단계 (개념 - 논리 - 물리) 개념 : 추상화 수준이 높고, 업무 중심적, 포괄적인 수준의 모델링 진행 논리 : 시스템 구축을 위한 키, 속성, 관계 등을 정확하게 표현해 높은 재사용성 물리 : 성능, 저장 등 물리적인 성격을 고려해 실제 데이터베이스 구성 설계 데이터 독립성의 구성 요소, 데이터 베이스 스키마 (외부 - 개념 - 내부) 외부 : 서비스 스키마 또는 뷰 스키마, 화면에서 사용자가 보는 개인적인 DB 스키마 개념 : 모든 애플리케이션 사용자가 필요로 하는 데이터를 통합해 조직 전...
목차 SQLD 시험 소개 오라클(Oracle) 데이터베이스 소개 오라클(Oracle) 데이터베이스 실습 환경 구성 SQLD 시험 소개 SQLD 자격증은 국가공인 데이터베이스 SQL 자격증이다. SQLD(Structued Query Language Developer) 자격증은 상위 자격증인 SQLP와 달리 데이터베이스 분야만 본다는 점에서 정보처리기사와 함께 응시하려는 수험생이 많다. https://www.dataq.or.kr/www/sub/a_04.do 데이터자격검정 데이터자격검정, 빅데이터분석기사, DAP, DAsP, SQLP, SQLD, ADP, ADsP www.dataq.or.kr SQLD 자격증은 필기 시험으로만 구성돼 있다. 시험 시간은 총 90분이며, 다음 문항이 출제된다. 1과목 - 데이터 모델링의 이해: 10문제(문항당 2점) → 총 20점 (8점 미만 과락) 2과목 - SQL 기본 및 활용: 40문제(문항당 2점) → 총 80점 (32점 미만 과락) 과목명 SQLP SQLD 데이터 모델링의 이해 O O SQL 기본 및 활용 O O SQL 고급 활용 및 튜닝 O X SQLD의 문제는 오라클(Oracle)과 MS SQL Server의 두 DBMS 기준으로 혼용돼 출제되어 MySQL과는 문법이 조금 다르다. 오라클(Oracle) 데이터베이스 소개 오라클 DB는 Oracle Corporation에서 개발한 RDBMS다. 관계...
Warning: The method "utcnow" in class "datetime" is deprecated 최신 버전 파이썬의 datetime 모듈에서 utcnow()를 사용하면 'The method "utcnow" in class "datetime" is deprecated'의 경고 문구가 뜬다. datetime.datetime.utcnow() The method "utcnow" in class "datetime" is deprecated Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)Pylance Don't use `datetime.datetime.utcnow` to create this datetime object.sonarqube(python:S6903) (method) def utcnow() -> datetime Construct a UTC datetime from time.time(). The method "utcnow" in class "datetime" is deprecated Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)Pylance datetim...
elasticsearch.UnsupportedProductError elasticsearch.UnsupportedProductError 오류는 엘라스틱서치 라이브러리를 통해 구성된 엘라스틱서치 클라이언트가 서버가 엘라스틱서치가 아님을 감지했을 때 발생한다. elasticsearch.UnsupportedProductError: The client noticed that the server is not Elasticsearch and we do not support this unknown product 엘라스틱서치의 경우 8버전을 기점으로 요청/응답 등 많은 내용이 갱신됐다. 따라서 엘라스틱서치 8버전을 가지고 엘라스틱서치 5버전이 설치된 서버로 요청을 하는 등 호환되지 않는 요청을 하는 경우에도 해당 오류가 발생한다. 7버전 이하 엘라스틱서치 서버로 요청하는 경우 다음 버전의 라이브러리를 설치해 사용하자. pip install elasticsearch==7.10.1 8버전 이상의 경우에는 다음 버전을 사용하는 등 최신 버전의 라이브러리 사용을 권장한다. pip install elasticsearch==8.12
리액트 컴포넌트 리액트는 UI를 컴포넌트(Component) 단위로 구성하는 라이브러리다. 컴포넌트는 재사용 가능한 UI 조각이며, 두 가지 유형으로 나뉜다. 함수형 컴포넌트 주로 사용되는 방식 useState, useEffect 등의 훅(Hook)을 활용해 상태 관리 수행 클래스형 컴포넌트 React Hook 방식이 등장하며 잘 사용되지 않음 this.state와 this.setState()를 사용해 상태 관리 props, state 사용 상태 관리 props는 부모 컴포넌트에서 자식 컴포넌트로 전달하는 읽기 전용 데이터다. HTML의 속성과 유사한 방식이며, 자식 컴포넌트는 전달되는 props 값을 받기만 하고 수정할 수 없다. import React from "react"; type GreetingProps = { name: string; age?: number; // 선택적 props }; const Greeting: React.FC<GreetingProps> = ({ name, age }) => { return ( <div> <h1>안녕하세요, {name}님!</h1> {age && <p>당신의 나이는 {age}살입니다.</p>} </div> ); }; // 사용 예시 const App: React.FC = () => { return ( <div> <Greeting name="홍길동" age={30} /> <Greeting ...
목차 타입스크립트란? 타입스크립트 설치 및 설정 기본 타입과 타입 정의 클래스와 함수의 타입 타입 가드 타입스크립트란? 타입스크립트(TypeScript)는 마이크로소프트에서 개발한 자바스크립트의 슈퍼셋(Superset)으로, 정적 타입을 지원하여 코드의 가독성과 유지보수성을 높여준다. 자바스크립트와 100% 호환되며, ES6+ 기능을 사용할 수 있다. ES6(ECMAScript 2015)는 자바스크립트의 주요 업데이트 중 하나로, 여러 새로운 기능을 도입하였다. 주요 특징은 다음과 같다: let과 const 키워드를 사용한 블록 범위 변수 선언 화살표 함수 (=>) 클래스 (class 키워드) 템플릿 리터럴 (백틱 `` 사용) 구조 분해 할당 import/export 모듈 시스템 Promise 객체 및 비동기 처리 개선 타입스크립트 설치 및 설정 타입스크립트를 전역으로 설치하려면 다음 명령어를 실행한다. npm install -g typescript 프로젝트에서 타입스크립트를 사용하려면 다음 명령어를 실행한다. npm init -y npm install typescript --save-dev 타입스크립트 설정 파일을 생성하려면 다음 명령어를 실행한다. tsc --init 주요 설정 항목: { "compilerOptions": { "target": "ES6", "module": "CommonJS", "strict": true, "out...
이 글은 파이썬 사용자 입장에서 자바스크립트의 패키지를 관리하는 npm 등 패키지 관리자에 대해 알아본다. 목차 패키지와 패키지 관리자 패키지 관리자: npm 격리된 환경의 설치: npx Node 버전 관리: nvm Meta에서 만든 패키지 관리자: yarn 패키지와 패키지 관리자 패키지 : 공유되고 재사용될 수 있는 소프트웨어 모듈 또는 라이브러리 프로그래밍 언어나 플랫폼에 종속적일 수 있다. 패키지를 사용했을 경우 손쉽게 원하는 기능을 구현할 수 있어 생산성이 향상된다. 패키지 관리자 : 패키지의 설치와 제거, 업데이트 등 패키지 관리를 자동화하는 역할을 수행한다. 파이썬을 기반으로 하는 대표적인 라이브러리 numpy, pandas, requests, fastapi, django 등을 사용하려면 패키지 관리자인 pip를 사용해 설치해 사용한다. 자바스크립트 및 Node.js를 기반으로 하는 React, Vue, Next, TypeScript 등을 사용하려면 npm 패키지 관리자를 사용해 설치해 사용한다. 패키지 관리자가 생기기 전에는 패키지를 직접 다운로드 받아 프로젝트에 설치하고 의존성을 직접 관리해야 했다. 파이썬의 경우 필요한 .tar.gz 또는 .zip 파일을 파이썬 공식 사이트에서 다운로드해 직접 설치해야 했다. wget으로 라이브러리 다운로드 후 setup.py install 명령어 같은 방식을 사용했다. Node.js...
목차 Gson이란? 기본 사용법, 직렬화/역직렬화 옵션을 적용한 직렬화/역직렬화 수동 JSON 데이터 처리: JsonObejct, JsonArray, JsonElement 자료형 Gson이란? https://github.com/google/gson Gson 라이브러리 소개 Gson은 구글에서 만든 자바용 JSON 직렬화/역직렬화 라이브러리다. 직렬화(Serialization) : 자바 객체를 JSON 문자열로 변화 역직렬화(Deserialization) : JSON 문자열을 자바 객체로 변환 다음은 Gson의 특징이다. Gson은 직렬화를 위한 toJson()과 역직렬화를 위한 fromJson() 메서드를 제공해 쉬운 변환을 지원한다. 수정 불가능한 기존 객체를 JSON으로/에서 변환하도록 허용한다. 자바 제너릭(Generics)의 광범위한 지원을 제공한다. 자바에서 제너릭은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법이다. 객체에 대한 사용자 정의 표현을 허용한다. 여기서 사용자 정의 표현은 사용자가 직접 정의한 클래스 간의 변환을 지원한다는 내용이다. 임의의 복잡한 객체를 지원한다. 깊은 상속 계층과 광범위한 자료형 사용을 포함한다. 의존성 구성 필요에 따라 최신 버전을 확인하여 의존성을 설정한다. https://mvnrepository.com/artifact/com.google.code.gson/gson Grad...
목차 React 개념과 특징 React JSX 특징 React JSX 문법 React 리액트 개념 리액트(React)란 Facebook(현 Meta)에서 개발한 UI 라이브러리로, 컴포넌트 기반의 사용자 인터페이스를 구성하기 위해 사용된다. SPA(Single Page Application) 개발에 특화돼 있으며, Virtual DOM을 활용해 성능을 웹 개발을 쉽게 할 수 있도록 돕는 라이브러리, 프레임워크가 아니라 라이브러리에 해당한다. 프레임워크처럼 생겼지만, 개발에 필요한 도구인 라이브러리 개념 리액트 장점 웹 프론트 개발 시장의 트렌드 수요가 많고 방대한 생태계를 가지고 있음 편이성 SPA 화면을 여러 단위로 쪼개고, 재사용하는 컴포넌트식 관리 유용한 라이브러리 지원 특징. 전통적인 웹 서비스의 문제와 SPA 전통적인 웹 서비스의 경우 모든 페이지에 진입할 때마다 반복적으로 서버에 리소스를 요청하게 됨 리소스의 양이 작으면 문제가 되지 않는데 크면 리소스 낭비가 심했고, SPA라는 방식이 등장함 SPA(Single Page Application) 방식은 서버에서 현재 페이지를 구성하기 위한 리소스를 미리 받고 동적으로 화면을 구성하는 방식, 리소스 새로고침이 아니라 자바스크립트를 통한 화면 재구성이므로 SPA라고 불림 대표적인 SPA 방식 라이브러리로 React, Vue, Angular가 있음 => CSR(Client Sid...
목차 개요 환경 구성 FastAPI 예제 작성 Jinja2 템플릿 활용 html 작성 개발 환경 실행 테스트 개요 talwind css는 HTML을 벗어나지 않고 최신 웹 사이트를 신속하게 구축할 수 있도록 하는 CSS 우선 프레임워크다. HTML 태그에 클래스 기반으로 구성돼 있다. play.tailwind.com 사이트에서 tailwind 구성을 테스트할 수도 있다. https://tailwindcss.com/ https://play.tailwindcss.com/ 이번 글에서는 fastapi-tailwind 라이브러리를 사용해 node 및 npm 없이 fastapi에서 tailwind를 사용하는 방법을 다룬다. Referer: https://pypi.org/project/fastapi-tailwind/ Result: https://github.com/neltia/fastapi-with-tailwindcss 환경 구성 가상 환경을 구성 후 파이썬 라이브러리를 설치한다. python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate` pip install -r requirements.txt requirements.txt 파일 안에는 다음 내용이 들어있다. pip install fastapi pip install uvicorn pip instal...
자바에서 객체 복사의 방식에 따라 깊은 복사와 얕은 복사로 나뉜다. - 깊은 복사 : 객체의 데이터를 완전히 복사 -> 독립 객체 - 얕은 복사 : 객체의 참조 복사 -> 한 쪽 변경 시 다른 쪽도 변경됨 Gson 기반 깊은 복사(deep copy)와 얕은 복사(shallow copy) Gson 라이브러리 소개 Gson은 구글에서 만든 자바용 JSON 직렬화/역직렬화 라이브러리다. 직렬화(Serialization) : 자바 객체를 JSON 문자열로 변화 역직렬화(Deserialization) : JSON 문자열을 자바 객체로 변환 Gson JsonObject 깊은 복사 예제 깊은 복사는 객체의 데이터를 완전히 복사해 독립적인 새 객체를 생성한다. 복사된 객체는 별도 메모리 주소를 가지고 한쪽 객체에서 값이 변경돼도 다른 쪽에 영향을 미치지 않는다. 다음 예제에서 deeopyCopy는 original의 데이터를 JSON 형식으로 직렬화한 후 다시 역직렬화해 복사하여 독립적인 객체로 작용한다. import com.google.gson.JsonObject; import com.google.gson.Gson; public class DeepCopyExample { public static void main(String[] args) { // 원본 객체 생성 JsonObject original = new JsonObject(); origina...
새해 복 많이 받으세요 버그 적고 적는 코드마다 효율적인 코드 되시길
목차 개요 Pypi 다운로드 통계 제공 사이트 pypistats 라이브러리 활용 다운로드 통계 참고. Google BigQuery 사용 버전 별 다운로드 추적 방법 개요 Pypi(Python Package Index)는 공식 파이썬 소프트웨어 프로젝트(라이브러리) 저장소다. pypi에서는 공식적으로 다운로드 통계 데이터를 제공하지 않는다. https://pypi.org/ Google BigQuery의 원시 다운로드 기록에 기반해 Pypi 통계를 제공하는 외부 도구와 서비스를 사용하거나 직접 통계 데이터를 추산하는 방식으로 라이브러리의 버전에 따른 다운로드 통계를 구할 수 있다. 요약 - Pypi 다운로드 통계 제공 사이트 https://pepy.tech/ - Pypi 다운로드 통계 제공 라이브러리 : pystats - 직접 Google BigQuery 데이터를 활용해 데이터를 추적하려면 : Google BigQuery Pypi 다운로드 통계 제공 사이트 pepy.tech 서비스는 PyPi 패키지의 다운로드를 추적하고 분석해 파이썬 생태계에 대한 인사이트를 얻을 수 있도록 돕는다. https://pepy.tech/ 다음은 pandas에 대한 최근 3개월 간 분석 내용이다. pystats 라이브러리도 마찬가지인데 기본 최근 3개월 간의 데이터만 확인 가능한 구조라 그 이상의 기간을 보려면 결제를 하라고 나와있다. pypistats 라이브...
목차 Swagger SpringFox Swagger & SpringDoc springFox 활용 Swagger 문서화 적용 Swagger 스웨거(Swagger)는 2011년에 처음 나온 Restful API 서비스를 구성할 때 API 문서화를 자동화하고 테스트를 돕는 도구다. 공식 문서: https://swagger.io/ Swagger UI : https://swagger.io/tools/swagger-ui/ API Documentation & Design Tools for Teams | Swagger API Development for Everyone Simplify your API development with our open-source and professional tools, built to help you and your team efficiently design and document APIs at scale. Find your tool Read the docs Trusted by SmartBear Named a Leader by Gartner ® in the ... swagger.io 다음 파이썬 Flask/FastAPI에서의 Swagger 사례를 참고하자. Flask 웹 프레임워크는 Swagger를 별도 구성해야 하지만, 확장 라이브러리인 Flask-RESTX는 내장돼 있어 이를 활용하였다. [Flask-RESTX]...