728x90 분류 전체보기240 [Python] FastAPI 시작 FastAPI란? FastAPI는 고성능의 배우기 쉽고, 빠르게 코딩 가능한 프레임 워크입니다. 장점 빠른 속도: Nodejs 및 Golang과 동등한 매우 높은 성능 (Starlette 및 Pydantic) 사용 가능한 가장 빠른 Python 프레임 워크 중 하나 높은 생산성: 개발 속도가 2배~3배 증가 적은 버그: 개발자의 실수가 40% 감소 직관적: 훌륭한 편집기 지원. 자동 완성. 디버깅 시간 감소 쉬움: 사용하고 배우기 쉽게 설계되었습니다. 문서를 읽는 시간이 단축 짧음: 각 매개 변수 선언의 여러 기능, 더 적은 버그 그리고 코드 중복을 최소화 견고함: 생산 준비 코드를 가져옵니다. 자동 대화형 설명서 사용 표준 기반: OpenAPI (이전에는 Swagger라고 함) 및 JSON 스키마를 기.. 2021. 8. 8. [Python] 비동기(asyncio) 파이썬 비동기란? Javascript에서처럼 비동기 작동을 하는 것과 같은 동작을 asyncio를 통해 가능합니다. 동시 프로그래밍 패러다임의 변화 전통적으로 동시 프로그래밍(concurrent programming)은 여러 개의 쓰레드(thread)를 활용하여 이루어졌었습니다. 하지만 thread safe한 프로그램을 작성하는 것은 생각보다 쉬운 일이 아닙니다. 더불어 싱글 코어 프로세서에서 이러한 프로그램을 작동시키면, 동시 처리에 따른 성능 저하를 일으키거나 미비합니다. 이에 따라 최근에는 하나의 쓰레드로 동시 처리를 하는 비동기 프로그래밍(asynchronous programming)이 많이 활용되고 있습니다. 비동기 프로그래밍 웹 서버와 같은 애플리케이션을 생각해보면 CPU 연산 시간 대비 DB.. 2021. 8. 7. [C++] 09 - 배열, 다차원 벡터, 문자열 배열 정적 배열(static array): 프로그램 동작중(run-time) 크기가 고정 동적 배열(daynamic array): 프로그램이 동작중 할당/해제 가능 - keywords: new (할당), delete[] (할당 해제) void get_data(int* begin, int* end) { for (int* curr = begin; curr != end; curr++)//다음변수가 저장된 공간으로 이동 저장된 변수자료형 크기만큼 이동 cin >> *curr;//주소값이 저장된 곳으로 jump! } void print(int* begin, int* end) { for (int* curr = begin; curr != end; curr++) cout 동적배열의 할당을 해제하겠다. // delete.. 2021. 8. 6. [C++] 08 - 포인터, 벡터 활용 예시 벡터 for문 출력과 포인터를 활용한 출력 비교 //소수 1과 자기자신을 제외하고는 약수가 없는. 1보다 큰 정수 bool is_prime(int n) { if (n high; vector vec = primes(low, high);//모든원소가 같은 자료형을 갖는다. print(vec); return 0; } 2차원 벡터 포인터를 활용한 출력 //using Matrix = vector; //void print(co.. 2021. 8. 6. [JAVA] 06 - 6 패키지와 접근 제한자 용어정리 패키지 선언 : 해당 클래스 또는 인터페이스가 어떤 패키지에 속할 것인지 선언 package 상위패키지.하위패키지; import 문 : 다른 패키지에 소속하는 클래스와 인터페이스를 사용할 경우 필요 import 상위패키지.하위패키지.클래스이름 또는 *; Getter : 필드값을 외부로 리턴하는 메소드 Setter : 외부에서 값을 받아 필드값을 변경하는 메소드 접근 제한자 : 클래스, 인터페이스, 그리고 멤버들의 사용을 제한할 경우 사용 패키지 패키지의 물리적인 형태는 파일 시스템의 폴더 패키지는 클래스의 일부분으로, 클래스를 유일하게 만들어주는 식별자 역할 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식 클래스의 전체 이름은 패키지 + 클래스 사용해서 다음과 같이 표현 상위패키지.. 2021. 8. 6. [JAVA] 06 - 5 인스턴스 멤버와 정적 멤버 용어정리 인스턴스 멤버 : 객체를 생성한 후 사용할 수 있는 필드와 메소드(인스턴스 필드와 인스턴스 메소드) this : 객체 내부에서도 인스턴스 멤버에 접근하기 위해 this를 사용할 수 있다. 주로 생성자와 메소드의 매개변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하기 위해 사용 정적 멤버 : 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드 static : 정적 멤버를 선언할 때마다 사용하는 키워드 싱글톤 : 전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우 사용하는 코드 패턴 final 필드 : 초기값이 저장되면 이것이 최종값이 되어 프로그램 실행 도중 수정할 수 없는 필드 상수 : 불변의 값을 저장하는 정적 필드, final static.. 2021. 8. 6. [JAVA] 06 - 4 메소드 용어정리 선언부 : 리턴타입, 메소드 이름, 매개 변수 선언 void : 리턴값이 없는 메소드는 리턴 타입으로 void 매개 변수 : 메소드 호출 시 제공되는 매개값이 대입되어 메소드 블록 실행 시 이용됨 리턴문 : 메소드의 리턴값을 지정하거나 메소드 실행 종료를 위해 사용할 수 있음 호출 : 메소드를 실행하려면 ‘메소드 이름(매개값,…)’ 형태로 호출 오버로딩 : 클래스 내에 같은 이름의 메소드 여러 개 선언하는 것을 말함 메소드 선언부 리턴 타입 : 메소드가 리턴하는 결과의 타입 표시 메소드 이름 : 메소드의 기능이 드러나도록 식별자 규칙에 맞게 지음 매개 변수 선언 : 메소드 실행할 때 필요한 데이터를 받기 위한 변수 선언 메소드 실행 블록 : 실행할 코드 작성 형식 리턴타입 메소드이름 (매개변수선.. 2021. 8. 6. [JAVA] 06 - 1 객체 지향 프로그래밍, 06 - 2 필드, 06 - 3 생성자 단어정리 클래스 : 객체를 만들기 위한 설계도(관례적으로 첫 글자를 대문자로 사용하고, 여러 단어의 경우 단어의 앞글자마다 대문자 사용) 객체 : 클래스로부터 생성되며 new 클래스로 생성 new 연산자 : 객체 생성 연산자이며 생성자 호출하고 객체 생성 번지를 리턴 클래스 변수 : 클래스로 선언한 변수이며 해당 클래스의 객체 번지 저장 인스턴스 : 어떤 클래스를 기준으로 만들어진 객체 -> 해당 클래스의 인스턴스 클래스 멤버 : 클래스에 선언되는 멤버로 필드, 생성자, 메소드가 있음 객체란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별이 가능한 것 메소드 - 객체들 사이의 상호작용 수단 * 메소드 호출은 도트(.)를 객체에 붙여서 가져오면 됩니다. 객체.. 2021. 8. 5. [C++] 07 - 참조(reference), 포인터(Pointer) 변수 '*', '&' 기호들의 의미 &x: x의 주소값을 반환 int* px: (int*)는 정수형 변수의 메모리 주소값을 저장하는 data type (px는 주소값을 저장하는 변수) -> 포인터형 변수(주소값을 저장하는 변수) *px: px에 저장된 주소값으로 jump int main() { int x = 10; int* px = &x;//px라는 포인터형 변수에 x의 주소값을 할당 cout 2021. 8. 5. 이전 1 ··· 14 15 16 17 18 19 20 ··· 27 다음 728x90