분류 전체보기 57

[Django] 장고 처음 시작하기

장고 프로젝트 초기 세팅 # 가상 환경 생성 python -m venv myvenv # 가상환경 실행 # 터미널을 git bash로 설정 source myvenv/Scripts/activate # 장고 설치 pip install django # 장고 프로젝트 생성 # django-admin startproject 프로젝트 이름 django-admin startproject myproject 서버 잘 돌아가는지 확인 # 서버 켜기 cd myproject/ python manage.py runserver # 서버 끄기 ctrl + c 앱 생성 # 앱 생성 python manage.py startapp myapp # 앱 등록 # myproject/settings.py에 'myapp', 추가 INSTALLED_..

[장고] 2022.06.30

[DB] RDB 관계형 데이터베이스란 무엇일까?

DB 유형 DB의 유형에는 Hierarachical 계층형, Network 망형, Relational 관계형, Object-Oriented 객체지향형, Object-Relational 객체관계형 등이 있다. 그중 가장 많이 사용되는 유형은 관계형 데이터베이스 RDB이다. RDB RDB는 Relational Database로 관계형 데이터 모델에 기초를 둔 데이터베이스다. 관계형 데이터 모델은 모든 데이터를 2차원 테이블로 표현한다. 테이블은 이름을 가지고 있고, 행(row)과 열(column) 그리고 거기에 대응하는 값을 가진다. RDB는 서로 다른 테이블이 관계를 맺고 모여있는 집합체로 이해할 수 있다. RDB 장점 데이터의 분류, 정렬, 탐색 속도가 빠르다. 스키마가 명확하게 정의되어 있다. 오래 사..

[DB] 2022.06.22

[DB] DataBase 이해

DataBase란 Database는 한마디로 정의하면 ‘데이터의 집합’이다. 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합을 말한다. 자료항목의 중복을 없애고 자료를 구조화하여 저장하고 자료 검색과 갱신 효율을 높인다. 왜 DataBase를 쓸까? DataBase는 다수의 사용자가 사용하는 데이터들의 공유와 운영을 위해 저장해놓은 공간이다. DataBase 이전에는 데이터들을 파일 단위로 관리하고 사용했다. 파일 기반으로 데이터를 관리하면 데이터 중복성, 종속성 등의 문제가 발생한다. 응용 프로그램별로 파일을 유지하여 같은 데이터가 여러 파일에 저장되는 중복 문제. 사용하는 파일의 구조가 변경되면 응용 프로그램도 영향을 받아 변경되는 종속 문제. 이 문제들을 보완하기 위해 데..

[DB] 2022.06.20

C++ 백준 22351번: 수학은 체육과목 입니다 3

UCPC 2021 예선 문제 A 문제 [BOJ][C++] 백준 22351번: 수학은 체육과목 입니다 3 문제는 링크를 클릭해서 볼 수 있다. 풀이 핵심 풀이 첫 번째 정수 A부터 시작해서 하나씩 증가시키며 입력 문자열과 같은지 확인한다. 첫 번째 정수 A 구하기 A는 1 이상 999 이하의 정수이므로 한 자릿수, 두 자릿수 또는 세 자릿수이다. 먼저 A가 한 자릿수인 경우부터 구한다. A가 한 자릿수이면 start_num은 input_string[0]이다. 이때 정답을 찾지 못했다면 A가 두 자릿수인 경우를 구한다. 이전에 구한 start_num에 입력 문자열의 두 번째 숫자 input_string[1]를 더한다. 두 번째 숫자를 더할 때 input_string[1]은 char 형이므로 int형에 그대로..

[알고리즘] 2022.06.17

[명품 C++] 11 C++ 입출력 시스템

출처 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 스트림 데이터의 흐름, 혹은 데이터를 전송하는 소프트웨어 모듈 스트림의 양 끝은 프로그램과 장치 연결 입출력 기본 단위 - 바이트 C++ 스트림 종류 입력 스트림 입력 장치, 네트워크, 파일 → 프로그램 출력 스트림 프로그램 → 출력장치, 네트워크, 파일 C++ 입출력 스트림 버퍼 키 입력 스트림의 버퍼 입력장치로부터 입력된 데이터를 프로그램으로 전달하기 전에 일시 저장 키 입력 도중 수정 가능 키가 입력된 시점 부터 키 입력 버퍼에서 프로그램이 읽기 시작 스크린 출력 스트림 버퍼 프로그램에서 출력된 데이터를 출력 장치로 보내기 전에 일시 저장 출력 장치를 반복적으로 사용하는 비효율성 개선 버퍼가 꽉 차거나 강제 출력 명령(fl..

[전공] 2022.06.06

[명품 C++] 10 템플릿과 표준 템플릿 라이브러리 STL

출처 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 일반화와 템플릿 제네릭 또는 일반화 함수나 클래스를 일반화시키고, 매개 변수 타입을 지정하여 틀에서 찍어내듯이 함수나 클래스 코드를 생산하는 기법 템플릿 변수나 매개 변수의 타입만 다르고, 코드 부분이 동일한 함수를 일반화 시킴 함수나 클래스를 일반화하는 도구 template 키워드 사용 제네릭 타입 - 일반화를 위한 데이터 타입 template template template void myswap (T & a, T & b) { T tmp; tmp = a; a = b; b = tmp; } 템플릿으로부터의 구체와 구체화 - 템플릿의 제네릭 타입에 구체적인 타입 지정 템플릿 함수로부터 구체화된 함수의 소스 코드 생성 컴파일 될 때 ..

[전공] 2022.06.06

[명품 C++] 08 상속

출처 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 블뎁블뎁 C++ 에서 상속 inheritance 클래스 사이의 상속, 객체 사이에는 상속 관계 없음 기본 클래스의 속성과 기능을 파생 클래스에 물려줌 base class - derived class 기본 클래스의 속성과 기능 + 자신만의 속성과 기능 파생 클래스로 갈수록 클래스의 개념이 쿠체화 다중 상속으로 클래스의 재활용성을 높임 자바는 다중 상속이 없고 인터페이스 개념이 있음 상속의 목적 및 장점 간결한 클래스 작성 클래스 간의 계층적 분류 및 관리의 용이함 상속은 클래스들의 구조적 관계 파악이 용이 하다 클래스 재사용과 확장을 통한 소프트웨어 생산성 향상 앞으로 있을 상속에 대비해 클래스를 객체 지향적으로 설계 해야함 다형..

[전공] 2022.06.06

[명품 C++] 07 프렌드와 연산자 중복

출처 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 블뎁블뎁 프렌드 함수 클래스의 멤버로 선언하긴 좀 그렇고, 내부에 접근하게 만들고는 싶을 때 클래스의 멤버 함수가 아닌 외부 함수 클래스 외부에 선언된 전역 함수 다른 클래스의 멤버 함수 다른 클래스의 모든 멤버 함수 → 외부에서도 private 에 접근할 수 있게 된다. class Rect { // 전역 함수 equals()를 Rect 클래스에 프렌드로 선언 friend bool equals(Rect r, Rect s); }; class Rect { // RectManager 클래스의 equals() 멤버 함수를 Rect 클래스의 프렌드로 선언 friend bool RectManager::equals(Rect r, Rect s..

[전공] 2022.06.05

[명품 C++] 6장 함수 중복과 static 멤버

출처 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 노션 공유를 원하시는 분은 댓글에 이메일 남겨주세요 함수 중복 함수 중복 function overloading 동일한 이름의 함수가 공존 - 다형성 polymorphism 함수 중복이 가능한 범위 보통 함수들 사이 클래스의 멤버 함수들 사이 상속 관계에 있는 기본 클래스와 파생 클래스의 멤버 함수들 사이 함수 중복 성공 조건 중복된 함수들의 이름 동일 중복된 함수들의 매개 변수 타입이 다르거나 개수가 달라야 함 리턴 타입은 함수 중복과 무관 int sum(int a, int b, int c) { return a + b + c; } double sum(double a, double b) { return a + b; } int su..

[전공] 2022.06.05