728x90 👨🏫Study84 [C++] set 라이브러리 Set 저장 데이터의 값이 유일한 자료구조(중복허용x) 노드 기반 컨테이너 임의 접근 불가능 균형 이진 트리로 구현 각 노드는 pair 구성 *multset은 첫 번째 조건인 중복허용을 가능하게 만든 set의 형태의 자료구조입니다. 라이브러리 include 및 선언 #include //set set 명; set s; 맴버함수 *일반 함수의 형태에 iterator를 파라미터로 사용하는 것보다 맴버함수를 직접사용하는 것이 효율적이다. set s; s.insert(12);// 원소 삽입 s.find(key);// key 값에 해당하는 원소를 찾아 반복자 반환 s.lower_bound(key);// key 값에 해당하는 원소가 시작되는 주소를 가리키는 반복자 반환 // 시간복잡도 O(log(N)) lower_b.. 2021. 8. 22. [Python] FastAPI 학습 FastAPI란? 파이썬으로 만들어진 웹프레임워크입니다. 파이썬으로 만들어지 대표적인 웹프레임워크로는 Django(다른 언어에 비해서 장고는 속도가 느렸음)가 있습니다. 파이참(PyCharm)을 활용하여 FastAPI를 사용합니다. (백엔드 API를 개발하는데는 어떤걸 사용하더라도 무리가 없음) 메일도 보내주고 스케줄링을 해주는 서버를 만들어 볼 것입니다. notification-api 프로젝트를 만들어 사용하겠습니다. new project를 생성했다면 FastAPI 공식홈페이지(https://fastapi.tiangolo.com/)에 나와있는 것처럼 설치를 진행해 보겠습니다. mac기준 - 커맨드 + ,(콤마) Window기준 - Ctrl + Alt + S 위 단축키를 사용하여 Preferences 창.. 2021. 8. 12. [C++] 10 - 클래스(Class) class 만드는 법 1) class name{ }; 2) private:, public: 영역 분할 3) member data 만들기 in private: 4) method 만들기 in public: 5) 초기화 함수(constructor, 생성자) - 생성자 이름은 class 이름과 동일->public - 만약 내가 생성를 만들지 않으면, default 생성자(Point(){})가 자동으로 생성 - 만약 내가 생성자를 만들면, default 생성자 자동 생성 안됨 - 장점 초기값과 형식을 지정할 수 있다. - default arguement 사용하면 default 생성자 굳이 필요 x class Point {//클라스 이름 설정 //2가지로 구성 -> 데이터와 함수 private: // 외부(main.. 2021. 8. 11. [JAVA] 07 - 1 상속 용어정리 상속 : 부모 클래스의 필드와 메소드를 자식 클래스에서 사용할 수 있도록 한다. 메소드 재정의 : 부모 메소드를 자식 클래스에서 다시 정의하는 것을 의미 final 클래스 : final 클래스는 부모 클래스로 사용할 수 없다. final 메소드 : 자식 클래스에서 재정의할 수 없는 메소드 메서드 오버로딩 vs 메서드 오버라이딩 요소메서드 오버로딩 오버라이딩 선언 같은 클래스나 상속 관계에서 동일한 이름의 메서드 중복 작성 서브 클래스에서 슈퍼 클래스에 있는 메서드와 동일한 이름의 메서드 재작성 관계 동일한 클래스 내 혹은 상속 관계 상속 관계 목적 이름이 같은 여러 개의 메서드를 중복 작성하여 사용의 편리성 향상, 다형성 실현 슈퍼 클래스에 구현된 메서드를 무시하고 서브 클래스에 새로운 기능의 .. 2021. 8. 11. [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. 이전 1 ··· 4 5 6 7 8 9 10 다음 728x90