본문 바로가기

개발일지95

알고리즘에서 '시간복잡도'와 '공간복잡도'란 시간복잡도 해당 알고리즘이 실행되는 데 걸리는 시간의 총량을 나타낸다. '빅오(Big-O)' 표기법을 사용하여 표현되며 알고리즘의 실행 시간이 입력 크기에 따라 어떻게 증가하는지를 나타내는 수학적인 표기법으로, 알고리즘의 최악의 실행 시간을 나타낸다. 예를 들어, 배열에서 항목을 검색하는 선형 검색 알고리즘의 시간복잡도는 O(n)이며, n은 배열의 크기이다. 이는 최악의 경우에는 배열의 모든 항목을 한 번씩 검색해야 하므로, 입력 크기 n에 비례하여 실행 시간이 증가한다는 것을 의미한다. 반면에, 이진 검색 알고리즘의 시간복잡도는 O(log n)이며, 이는 최악의 경우에도 배열을 계속 절반으로 나누면서 검색을 수행하기 때문에, 입력 크기 n에 비례하여 실행 시간이 더욱 적게 증가한다는 것을 의미한다. 공.. 2023. 4. 5.
절차지향 / 객체지향 / 함수형 프로그래밍 컴퓨터 프로그래밍 패러다임 중 절차지향 / 객체지향 / 함수형 프로그래밍에 대해 알아보자! 절차지향 프로그래밍 프로그램을 처리할 일련의 절차로 나누고 각각의 절차를 순차적으로 실행하여 원하는 결과를 얻는 방식 프로그램을 작성하기 위해 절차와 데이터를 따로 구분하여 설계하는 것이 특징 데이터와 함수를 분리하여 설계하며, 함수는 데이터를 처리하는 데 필요한 일련의 절차를 포함한다. 함수는 매개변수를 통해 입력값을 받고, 반환값을 통해 출력값을 반환한다. 이러한 함수는 순서대로 호출되어 실행되며, 함수 호출의 결과로 처리된 데이터가 메모리에 저장된다. 절차지향 프로그래밍의 장점 프로그램의 구현이 상대적으로 간단 프로그램의 실행 속도가 빠름 대용량 데이터 처리에 적합 절차지향 프로그래밍의 단점 프로그램이 복잡해.. 2023. 4. 4.
Stack과 Queue 그리고 Array와 Linked List Stack과 Queue 그리고 Array와 Linked List는 자료구조 중에서 가장 기본적이면서도 중요한 구조체이다. Stack LIFO(Last-In-First-Out) 구조로, 가장 최근에 추가된 항목이 가장 먼저 제거됨. push(추가)와 pop(제거) 연산을 지원 예시: 브라우저의 이전 버튼, 실행 취소 기능 등 Queue FIFO(First-In-First-Out) 구조로, 가장 먼저 추가된 항목이 가장 먼저 제거됨. (순서가 있다) enqueue(추가)와 dequeue(제거) 연산을 지원 예시: 대기열(Queue) 시스템, 메시지 큐 등 Array 같은 종류의 데이터를 연속된 메모리 공간에 저장하는 자료구조 인덱스를 사용하여 특정 항목에 접근할 수 있다. 크기를 미리 정해야 하며, 크기가 .. 2023. 4. 4.
웹 서버와 WAS의 차이 웹 서버(Web Server) 인터넷 상에서 HTTP를 사용하여 클라이언트(웹 브라우저) 요청에 대한 응답을 제공하는 소프트웨어 웹 서버는 클라이언트로부터 요청된 웹 페이지나 파일을 찾아서 전송하며, 이를 위해 정적인 컨텐츠를 제공한다. *정적인 컨텐츠(HTML, CSS, 이미지 등) 웹 서버의 주요 기능 HTTP 프로토콜 지원 웹 서버는 클라이언트와 서버 간 통신에 사용되는 HTTP 프로토콜을 지원한다. 정적 파일 제공 웹 서버는 클라이언트가 요청한 정적인 컨텐츠를 제공합니다. 예를 들어, HTML 파일, 이미지, CSS 파일 등을 제공한다. MIME 타입 처리 웹 서버는 MIME(Multipurpose Internet Mail Extensions) 타입을 처리하여 클라이언트에게 올바른 파일 형식으로 .. 2023. 4. 4.