본문 바로가기

분류 전체보기103

객체지향 프로그래밍이란? 객체지향 프로그래밍(OOP : Object-Oriented Programming) 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 객체들 간의 상호작용을 통해 프로그램을 설계하고 개발하는 것 객체지향 언어의 특징 캡슐화 다형성 상속 추상화 : 여러 객체들의 공통적 특징을 묶는 것 객체지향 언어의 장/단점 장점 상속을 통해 코드의 재사용성을 높임 독립적인 객체들을 사용하므로 개발의 생산성을 향상 시킴 절차 지향 프로그래밍은 코드 수정시 일일히 찾아서 변경해야하지만, 객체 지향 프로그래밍은 클래스 내부의 메서드나 멤버변수만 수정하면 되므로 코드 수정이 용이 클래스 단위로 모듈화 시켜서 개발이 가능하므로 대형 프로젝트에 적합 단점 절차 지향 프로그래밍은 컴퓨터 처리 구조와 비슷해 .. 2021. 10. 31.
[JAVA] 오버로딩 VS 오버라이딩 오버로딩 메서드의 이름은 같고 매개변수의 갯수나 타입이 다른 함수를 정의하는 것 오버라이딩 상위 클래스의 메서드를 하위 클래스에서 재정의 하는 것 메서드 이름은 물론 매개변수의 갯수, 타입이 완전히 일치해야함 상위 클래스의 동작을 상속받은 하위 클래스에서 변경하기 위해 사용 오버로딩은 상속과 관련이 없지만 오버라이딩은 상속과 관련이 있다 2021. 10. 31.
[JAVA] 캡슐화 & 다형성 & 상속 캡슐화란? 관련있는 변수나 메서드를 하나의 클래스로 묶어서 외부에서 쉽게 접근하지 못하도록 하는 것 정보 은닉이 목적 객체에 직접적인 접근을 막고 객체가 제공하는 필드나 메소드를 통해서만 접근이 가능 다형성이란? 하나의 객체가 여러 가지 타입을 가질 수 있는 것 자바에서는 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현 큰 객체 안에 작은 객체를 넣어서 여러 형태로 변환해 사용하는 것 부모 타입의 자식 객체 class Parent { void call() { System.out.println("부모") } } class Child extends Parent { void call() { System.out.println("자식") } } ... Parent pa .. 2021. 10. 31.
[Database] INSERT문 / UPDATE문 / DELETE 문 INSERT 기존의 릴레이션에 투플을 삽입 UPDATE 기존의 릴레이션에 애트리뷰트 값을 수정 DELETE 기존의 릴레이션으로부터 한개 이상의 튜플을 삭제 2021. 10. 22.
[Database] 무결성 제약조건 데이터 무결성 데이터베이스가 갱신될 때 DBMS가 자동적으로 일관성 조건을 검사한다 데이터의 정확성 또는 유효성을 의미 도메인 제약조건 각 애트리뷰트의 값이 원자값이어야함 CHECK 제약조건을 통해 값의 범위를 제한할수 있음 CONSTRAINT 키워드 사용 키 제약조건 키 애트리뷰트의 중복된 값을 막기 위해 UNIQUE 사용 기본키와 엔티티 무결성 제약조건 기본 키가 각 튜플들을 식별하기 위하여 사용되기 때문에 릴레이션의 기본 키를 구성하는 어떤 애트리뷰트도 널값을 가질 수 없다는 제약조건 외래키와 참조 무결성 제약조건 두 릴레이션의 연관된 투플들 사이의 일관성을 유지하는데 사용 CONSTRAINT , REFERENCES 사용하여 외래키 명시 B가 A의 애트리뷰트를 참조하는 상태이면 B가 참조하는 릴레이.. 2021. 10. 22.
[알고리즘] 여러가지 정렬과 시간복잡도 (선택정렬 / 삽입정렬 / 버블정렬 / 퀵정렬 / 힙정렬 / 합병정렬) 선택정렬 맨 앞에서부터 차례대로 정렬하는 방법 주어진 리스트 중에 최소값을 찾고 그 값을 맨 앞부터 차례대로 에 위치한 값과 교체하는 방식 시간복잡도 : O(N^2) 삽입정렬 맨 앞에서부터 차례대로 정렬하는 방법 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교해서 현재 선택된 숫자의 위치를 찾아 삽입해주는 방식 시간복잡도 : O(N^2) 버블정렬 첫번째 원소부터 인접한 원소끼리 비교하면서 계속 자리를 교환하면서 맨 끝부터 정렬하는 방식 시간복잡도 : O(N^2) 합병정렬 작은 단위로 잘게 쪼개서 작은 단위부터 정렬해서 정렬된 단위들을 계속 병합해가면서 정렬하는 방식 시간복잡도 : O(NlogN) 퀵 정렬 처음 하나의 피봇(Pivot)을 정해서 이 피봇보다 작은 값은 왼쪽, 큰 값은 오른쪽에 위치시킨 뒤.. 2021. 10. 21.