[ STUDY ]/CS 20

자바

ArrayList와 LinkedListArrayList는 배열을 이용해 리스트를 구현하므로 인덱스를 기반으로 요소에 빠르게 접근이 가능하다. 하지만 요소를 추가하거나 삭제할 때 배열의 크기를 변경해야하기 때문에 시간이 소요된다.LinkedList는 연결 리스트로 구현되어 삽입과 삭제 연산이 빠르지만 특정 요소에 접근할 때 순차적으로 접근해야해 시간이 소요된다.  추상 클래스와 인터페이스먼저 추상클래스는 추상메소드를 1개 이상 포함하고 있는 클래스를 말한다. 다중상속이 불가능하다.인터페이스는 추상메소드들로 이루어져있으며 다중상속이 가능하다.둘 다 추상화를 위한 개념이며 추상메소드는 자식 클래스에서 구현을 강제해야한다는 특징이 있다.추상 클래스는 공통된 메서드와 필드를 '상속받는 하위 클래스'에서 재사용하거..

[ STUDY ]/CS 2024.12.19

객체 지향 프로그래밍

객체 지향 프로그래밍의 특징객체 지향 프로그래밍은 객체 중심의 프로그래밍으로 상속, 캡슐화, 다형성, 추상화라는 특징을 가진다.상속이란 기존의 클래스를 기반으로 새로운 클래스를 정의하는 것캡슐화란 클래스안에 변수와 메소드를 묶어 정보를 은닉하여 객체 내부에 접근하지 못하도록 하는 것다형성이란 하나의 클래스나 객체가 다양한 형태로 기능하는 것추상화란 핵심적인 기능만 노출하고 세부적인 사항들은 노출하지 않는 것  오버로딩과 오버라이딩오버로딩은 동일한 이름의 메소드들이 각각 다른 타입이나 다른 갯수의 인자를 가지고 정의된 것을 말한다.오버라이딩은 부모 클래스에 있는 동일한 이름의 메소드를 재정의하는 것을 말한다.  다중 상속한 클래스가 여러 클래스를 상속 받는 것이다. 여러 부모 클래스를 가질 경우 중복되는 ..

[ STUDY ]/CS 2024.12.19

[ 알고리즘 ] 최소 신장 트리, 최단 거리 알고리즘

최소 신장 트리신장 트리 : 그래프의 모든 정점을 포함하는 트리최소 신장 트리 : 가중치가 있는 그래프에서 간선의 가중치 총합이 가장 작은 신장 트리  프림 알고리즘(Prim algorithm) - 정점 기준그리디 알고리즘으로, 임의의 정점을 시작점으로 트리를 확장하면서 최소 신장 트리를 생성하는 방식이다. 💡 프림 알고리즘 과정시작점부터 뻗어 나가는 간선 중 가장 작은 가중치를 가진 노드로 연결한다.시작점과 연결한 노드에서 뻗어 나가는 간선 중 가장 작은 가중치를 가진 노드로 연결한다.반복한다.  크루스칼 알고리즘(Kruskal algorithm) - 간선 기준그리디 알고리즘으로, 간선을 오름차순으로 정렬한 뒤 가중치가 낮은 간선을 선택하면서 최소 신장 트리를 생성한다. 💡 크루스칼 알고리즘 과정..

[ STUDY ]/CS 2024.11.17

[ 알고리즘 ] 정렬 알고리즘

버블 정렬(bubble sort)양옆에 위치한 두 값을 비교하면서 크기 순으로 정렬한다. ⏰ 시간 복잡도 계산배열의 n번째 요소(마지막 요소)를 정렬하는 데 n-1번 비교한다.배열의 n-1번째 요소를 정렬하는 데 n-2번 비교한다.=> (n-1)+(n-2)+(n-3)+ ··· + 2 + 1 = n(n-1) / 2 시간 복잡도 : O(n2)   선택 정렬(selection sort)배열을 순회하면서 배열의 앞에서부터 차례대로 각 인덱스에 들어갈 값을 선택해 위치시킨다.예) 오름차순 : 배열의 첫번째 자리에 최솟값, 두번째 자리에 최솟값 다음으로 작은 값 ⏰ 시간 복잡도 계산(오름차순)배열의 첫 번째 요소를 찾는데 n-1번 비교한다.배열의 두 번째 요소를 찾는데 n-2번 비교한다.=> (n-1)+(n-2)+..

[ STUDY ]/CS 2024.11.17

[ 자료구조 ] 선형 자료구조 & 비선형 자료구조

선형 자료구조선형 자료구조는 연속적으로 데이터가 나열되는 자료구조를 나타낸다. 배열(array)정해진 크기만큼 데이터가 일렬로 저장되는 정적 자료구조 🔍 용어   요소(element)각각의 데이터   인덱스(index)데이터를 가리키는 번호  🔍 연산   연산설명시간복잡도   접근특정 인덱스에 접근O(1)   검색데이터를 검색O(n)   삽입특정 위치에 데이터 삽입O(n)   삭제데이터 삭제O(n)  연결 리스트(linked list)대표적인 선형 자료구조의 하나로 배열과 달리 크기가 정해져 있지 않은 동적 자료구조이다. 🔍 용어   노드(node)데이터와 다음 노드가 저장된 주소값을 가짐   헤드(head) 포인터첫 번째 노드를 가리킨다.   테일(tail) 포인터마지막 노드를 가리킨다.  🔍 ..

[ STUDY ]/CS 2024.11.17

[ 데이터베이스 ] 조인

조인조인이란 여러 테이블을 합쳐 원하는 데이터를 얻는 작업을 뜻한다.  🔍 조인 연산을 할 때 사용하는 연산자ON조인 연산에 대한 조건절을 작성할 때 사용각 테이블에서 어떠한 속성을 사용해 연산을 수행할지 나타냄USING조인 연산을 하려는 테이블에서 속성명이 동일할 경우 USING연산자 뒤에 공통되는 속성명만 작성WHERE테이블에서 원하는 데이터를 조회하기 위한 조건절을 작성할 때 사용INWHERE절과 함께 사용IN 연산자 뒤에 나오는 조건에 하나라도 해당하는 값을 검색BETWEENWHERE절과 함께 사용특정 범위에 속하는 데이터를 조회LIKEWHERE절과 함께 사용특정 데이터를 조회할 때 사용% : 길이를 알 수 없는 문자, _ : 문자 하나  내부 조인2개 이상의 테이블에서 공통 속성을 가진 데이터..

[ STUDY ]/CS 2024.11.16

[ 데이터베이스 ] 트랜잭션

트랜잭션트랜잭션이란 데이터베이스의 상태를 바꾸기 위해 수행하는 작업의 단위 또는 일련의 연산을 의미한다. 트랜잭션의 4가지 특성(ACID)    원자성(Atomicity) 트랜잭션이 데이터베이스에 완전히 반영되거나 아예 실행되지 않아야 한다.    일관성(Consistency)트랜잭션 수행이 완료된 데이터베이스는 일관성이 있다.    독립성(Isolation)수행 중인 트랜잭션에 다른 트랜잭션이 끼어들 수 없다.    영속성(Durability)완료한 트랜잭션의 결과가 데이터베이스에 영구적으로 반영된다.  트랜잭션을 제어하기 위한 명령어(TCL)    COMMIT트랜잭션이 정상적으로 종료되어 데이터베이스에 변경 사항을 반영한다.    ROLLBACK트랜잭션이 비정상적으로 종료되어 트랜잭션이 수행한 변경..

[ STUDY ]/CS 2024.11.16

[ 데이터베이스 ] 관계형 데이터베이스

키(key)키는 데이터베이스에서 튜플을 구분하기 위한 속성 또는 속성의 집합을 의미한다.유일성 : 하나의 키 값으로 튜플을 식별할 수 있는 특성최소성 : 튜플을 식별하는데 필요한 속성만으로 이루어져 있는 특성💡 DBMS의 다섯가지 키슈퍼 키 : 튜플을 식별할 수 있어 유일성은 만족하지먼, 최소성은 만족하지 않아도 된다.후보 키 : 유일성과 최소성을 만족해야한다.기본 키 : 후보 키 중 메인이 되는 키로 NULL 값을 가지면 안된다.대체 키 : 후보 키 중 기본 키를 제외한 키외래 키 : 다른 테이블의 기본 키를 참조하는 키  무결성데이터베이스에 저장된 데이터와 실제 데이터가 일치하는 정확성과, 데이터가 일정하게 유지되는 일관성을 의미한다.개체 무결성 : 모든테이블이 기본키를 가져야한다.(기본키는 최소성..

[ STUDY ]/CS 2024.11.15

[ 데이터베이스 ] 데이터베이스의 종류

데이터베이스란데이터베이스는 사용자나 프로그램에서 사용하기 위해 저장 및 관리하는 데이터 집합이다. 데이터베이스의 특징실시간 접근 : 데이터베이스에 언제든지 접근해 필요한 처리가 가능하다.동시 공유 : 동시에 여러 사용자가 데이터베이스에 접근할 수 있다.지속적 변화 : 데이터 갱신, 삽입, 삭제를 통해 계속 변화한다.내용 기반 참조 : 데이터의 값을 이용해 데이터에 접근할 수 있다. 데이터베이스 개념적 요소개체(entity, 엔티티)데이터로 표현하려는 대상을 의미한다.하나 이상의 속성으로 구성한다.속성(attribute)개체의 특성과 상태를 나타내며, 데이터베이스를 구성하는 가장 작은 논리적 단위관계(relationship)개체 간에 어떤 관련이 있는지를 나타내며, 주로 동사로 표현한다. 스키마데이터의 구..

[ STUDY ]/CS 2024.11.15

[ 컴퓨터 네트워크 ] REST

RESTREST는 Representational State Transfer의 약자로, HTTP 통신을 활용하기 위해 고안된 아키텍처이다.Representational인터넷상의 자원을 URI로 나타낼 수 있음을 의미URI로 표현된 자우너을 HTTP메서드를 이용해 CRUD 연산을 할 수 있다.State Transfer자원의 상태를 주고받는 것, 요청받은 자원의 상태를 전달하는 것💡 REST의 6가지 특징일관된 인터페이스자원을 나타내는 URI를 HTTP 메서드로 조작하는 일관된 인터페이스를 사용한다. HTTP를 따르는 모든 플랫폼에서 REST를 사용할 수 있다.클라이언트-서버 구조클라이언트와 서버 간에 요청-응답의 독립적인 구조를 가진다.클라이언트 : 서버에 요청을 보내고 응답을 대기서버 : 자원을 가지며 ..

[ STUDY ]/CS 2024.11.13