은 HTML 문서의 첫 줄에 위치한 선언문이다. "Document Type Declaration"의 약자로, 웹 브라우저에게 해당 문서가 어떤 버전의 HTML이나 XHTML로 작성되었는지 알려준다. 이 선언문은 웹 브라우저가 문서를 올바르게 해석하고 렌더링 하는 데 필요한 정보를 제공한다. 이 선언문은 HTML5를 사용하여 작성된 문서임을 나타낸다. HTML5는 최신 버전의 HTML 표준으로서, 다양한 기능과 태그를 지원하며 웹 페이지를 보다 구조화된 형식으로 작성할 수 있게 해준다. 선언문은 웹 브라우저에게 문서를 어떻게 해석해야 하는지 알려주는 중요한 역할을 한다. 정확한 선언문을 사용하면 웹 페이지가 일관성 있게 표시되고 웹 브라우저 간의 호환성 문제를 최소화할 수 있다. 선언문은 웹 브라우저에게 ..
인터페이스는 백엔드와 프론트엔드가 소통하기 위한 규약이라고 생각하면 된다. 백엔드는 데이터를 처리하고 비즈니스 로직을 구현하며 서버와의 통신을 담당한다. 이러한 백엔드의 기능들은 프론트엔드에 정보와 기능을 제공하는 데 사용된다. 인터페이스는 일종의 계약서다. 이 계약서에는 백엔드가 어떤 데이터를 제공하고 어떤 기능을 제공하는지에 대한 설명이 포함된다. 프론트엔드 개발자는 이 계약서를 참고하여 필요한 데이터나 기능을 요청하고, 그에 맞는 방식으로 백엔드와 소통한다. 더 구체적으로 예를 들어 설명하면, 백엔드에서는 특정 API를 제공하며, 프론트에서는 이 API를 통해 데이터를 요청하거나 서버에 특정 작업을 요청할 수 있다. 이때 API의 형식이나 파라미터, 응답 형식 등이 인터페이스의 일부가 된다. 프론트..
시간 복잡도를 표현하는 빅오 표기법을 실제 파이썬 코드 예시와 함께 살펴보도록 하겠다. 시간 복잡도는 알고리즘의 성능과 효율성을 나타내는 지표로 사용된다. 코딩 테스트에서는 주어진 문제의 제약과 시간 복잡도에 맞는 알고리즘을 선택하여 효율적인 코드를 작성하는 것이 중요하다. 따라서 빅오 표기법을 고려하면 다양한 알고리즘의 성능을 분석하고 개선해 볼 수 있다. 시간 복잡도 예시 설명 O(1) 리스트 인덱싱 인덱스를 통해 리스트의 요소에 접근하는 작업은 일정한 시간이 소요됨 O(logn) 이진 탐색 정렬된 리스트에서 특정 값을 찾는 작업은 탐색 범위를 반으로 나누며, 탐색 속도가 로그에 비례 O(n) 선형 탐색 리스트의 모든 요소를 한 번씩 확인하는 작업은 입력 크기에 비례하여 진행됨 O(nlogn) 병합 ..
웹 상에서 “404 Not Found(찾을 수 없음)” 또는 "500 Internal Server Error(내부 서버 오류)"와 같은 오류 메시지가 표시된 적이 있을 것입니다. HTTP 상태 코드라고 하는 이러한 암호 코드는 웹에서 데이터 통신의 기반이 되는 하이퍼텍스트 전송 프로토콜(HTTP)의 필수 요소입니다. 이 글에서는 HTTP 상태 코드의 중요성, 대표적인 상태 코드 유형, 효과적인 처리 방법을 살펴보며 HTTP 상태 코드에 대해 자세히 알아보겠습니다. HTTP 상태란? HTTP 상태(status)란 웹 서버가 HTTP 요청에 대한 응답으로 웹 브라우저에 전송하는 3자리 숫자 코드를 말합니다. 이러한 상태 코드는 요청된 작업의 성공 또는 실패에 대한 중요한 정보를 전달합니다. 상태 코드는 서로..
서버에 요청해 받은 파일로 파일 다운로드 기능을 구현해야 하는데, 회사에서 사용하고 있는 JQuery 버전이 낮아 JQuery AJAX로는 구현할 수 없었습니다. 때문에 JQuery AJAX 대신 XMLHttpRequest를 사용해 해결하였으며 이번 기회에 XMLHttpRequest에 대해 정리해보고자 합니다. XMLHttpRequest란? XMLHttpRequest는 JavaScript에서 HTTP 요청을 보내는 JavaScript 객체입니다. 이 객체를 사용하여 서버와 통신하고, 서버로부터 데이터를 받아올 수 있습니다. XMLHttpRequest를 사용하면 JavaScript를 사용하여 웹 페이지의 동적인 부분을 업데이트할 수 있습니다. 예를 들어, 사용자가 어떤 작업을 수행하면, XMLHttpReq..
1. On-demand(온디멘드) 사용한 인스턴스에 대해 사용한 만큼 시간당 요금을 지불한다. 애플리케이션 수요에 따라 컴퓨터 용량(compute capacity)을 늘이거나 줄일 수 있다. On-demand가 적합한 경우 선결제 금액(No upfront payments)이나 장기 약정(No long-term commitments) 없이 저렴하고 유연하게 Amazon EC2를 사용하기를 원하는 사용자 단기의 갑작스럽고 예측할 수 없는 워크로드가 있으면서 중단되어서는 안 되는 애플리케이션 Amazon EC2로 처음 개발하거나 테스트 중인 애플리케이션 2. Spot instance(스팟 인스턴스) 최대 90% 저렴한 가격으로 EC2 예비 용량을 사용할 수 있다. (spare Amazon EC2 computi..
스팟 인스턴스란? 사전 약정 없이 On-demand보다 최대 90% 절감된 비용으로 미사용 컴퓨팅 용량을 사용할 수 있는 인스턴스이다. 사용하려는 인스턴스의 현재 시간 금액만 지불하면 된다. 스팟 인스턴스를 On-demand, RI, Savings Plans 인스턴스와 손쉽게 결합하여 비용을 줄일 수 있다. 스팟 인스턴트의 장점 1. 저렴하고 예측 가능한 요금 2. 대규모 - 저렴한 비용으로 대규모 워크로드를 실행하거나, 병렬 작업을 통해 작업을 가속화할 수 있다. 3. 사용 편의성
서버리스란? 서버리스 환경에서는 서버를 고려하지 않아도 애플리케이션 서비스를 구축하고 실행할 수 있다. 여러 프로비저닝 같은 인프라 관리 작업을 생략할 수 있다. AWS에서 서버를 관리해 주기 때문에 건드릴 일이 없다. (완전관리형) 거의 모든 유형의 애플리케이션 및 백엔드 서비스를 서버리스로 구축할 수 있다. 서버리스 사용 이유 1. 서버를 관리할 필요가 없다. 2. 확장이 유연하다. 3. 서버 단위가 아닌 처리량 또는 실행 기간만큼 요금을 지불한다. (종량제) 4. 자동화된 고가용성과 내결함성을 갖추고 있다. AWS 서버리스 서비스 카테고리 서비스 설명 컴퓨팅 AWS Lambda AWS Lambda를 사용하면 함수 계층에서 마이크로서비스 아키텍처, 배포 및 실행 관리를 지원하는 관리형 플랫폼에서 서버..
on-premises(자체 보유) 데이터 센터를 AWS Cloud로 이동하게 되면 비용적으로 어떤 이점이 있는지 알아보자. CAPEX(upfront capital expense) CAPEX는 설비 투자 비용으로, 초반에 자체 데이터 센터를 갖추기 위한 초기 비용을 말한다. (데이터 센터 혹은 물리적 서버) OPEX(variable operational expense) OPEX는 데이터 센터를 갖춘 후 운영 비용을 말한다. 클라우드는 비싼 초기 자본의 투자를 가변 운영 비용으로 전환하도록 도와준다. 물리적 데이터센터 설치가 필요 없고, 사용한 만큼만 지불하면 되기 때문이다. 이렇게 간편한 지불 방식은 서비스 구성에 더 집중할 수 있게 해 준다.