본문 바로가기

개인공부79

[알고리즘] 2-2. 배열과 리스트 # 배열(Array) - 가장 기본적인 자료구조다. - 여러 개의 변수를 담는 공간으로 이해할 수 있다. - 배열은 인덱스(index)가 존재하며, 인덱스는 0부터 시작한다. - 특정한 인덱스에 직접적으로 접근 가능 -> 수행 시간: O(1) # 배열의 특징 - 컴퓨터의 메인 메모리에서 배열의 공간은 연속적으로 할당된다. 장점: 캐시(cache) 히트 가능성이 높으며, 조회가 빠르다. 단점: 배열의 크기를 미리 지정해야 하는 것이 일반적이므로, 데이터의 추가 및 삭제에 한계가 있다. # 연결리스트(Linked List) - 연결 리스트는 컴퓨터의 메인 메모리상에서 주소가 연속적이지 않다. - 배열과 다르게 크기가 정해져 있지 않고, 리스트의 크기는 동적으로 변경 가능하다. 장점: 포인터(pointer)를.. 2023. 8. 15.
[알고리즘] 2-1. 자료구조 # 자료구조(data structure)란? - 다수의 자료(data)를 담기 위한 구조 - 데이터의 수가 많아질수록 효율적인 자료구조가 필요하다. - 자료구조와 알고리즘은 상당히 밀접한 관계가 있다. - 성능비교: 자료구조/알고리즘의 성능 측정 방법에 대해 이해할 필요가 있다. - 자료구조의 필요성: 자료구조를 제대로 이해하지 못하면 불필요하게 메모리와 계산을 낭비할 여지가 있다. 즉, 데이터를 효과적으로 저장하고, 처리하는 방법에 대해 바르게 이해할 필요가 있다. # 자료구조의 종류 1. 선형구조(linear data structure) - 배열(array) - 연결 리스트(linked list) - 스택(stack) - 큐(queue) 2. 비선형 구조(non-linear data structure.. 2023. 8. 15.
[CS] 3-1. 데이터베이스 기초 # 데이터베이스란? - 웹 사이트 혹은 앱을 개발할 때는 데이터베이스를 사용하는 경우가 많다. - 커뮤니티 사이트를 개발한다고 하면 ① 회원(User)정보, ② 게시글(Board) 정보 등을 저장할 저장 공간이 필요할 것이다. # DBMS란? - 데이터베이스 관리 시스템(DBMS)는 다수의 사용자가 데이터베이스에 존재하는 데이터에 접근할 수 있도록 해주는 소프트웨어다. - Java 기반의 서버 프로그램에서는 JDBC를 이용해 MySQL에 접근 가능하다. # 관계형 데이터베이스란? - 관계형 데이터베이스에서는 전체 데이터를 행(row)과 열(column)이 존재하는 하나이상의 테이블(관계, relation)로 정의한다. - 여러 레코드(record)가 담긴 테이블을 관계(relation)로 정의한다. - .. 2023. 8. 10.
[CS] 2-4. 캐시 메모리 # 메인 메모리(Main Memory) = 주기억장치 - 일반적인 개인용 컴퓨터에서 RAM(Random Access Memory)이 자주 사용된다. - 일반적으로 공급되던 전원이 사라지면, 저장된 내용이 사라지는 휘발성 메모리다. - 컴퓨터의 프로그램을 실행하면, 프로그램은 메인 메모리에 적재(프로세스 형태)된다. - 이후에 CPU는 메인 메모리에 적재된 프로그램 명령 코드를 읽어 들여 실행/처리한다. # 우리가 프로그램을 실행하면? - 기본적으로 CPU는 계산/제어를 담당한다.(ALU 연산 장치 사용) - CPU는 메인 메모리에서 명령어를 읽어, 계산한 뒤에 메인 메모리에 저장한다. - 보조기억장치에는 일반적으로 설치된 프로그램(실행 파일 및 비휘발성 데이터)이 존재한다. ① 설치된 웹 브라우저 실행 .. 2023. 8. 10.