인터페이스는 백엔드와 프론트엔드가 소통하기 위한 규약이라고 생각하면 된다. 백엔드는 데이터를 처리하고 비즈니스 로직을 구현하며 서버와의 통신을 담당한다. 이러한 백엔드의 기능들은 프론트엔드에 정보와 기능을 제공하는 데 사용된다. 인터페이스는 일종의 계약서다. 이 계약서에는 백엔드가 어떤 데이터를 제공하고 어떤 기능을 제공하는지에 대한 설명이 포함된다. 프론트엔드 개발자는 이 계약서를 참고하여 필요한 데이터나 기능을 요청하고, 그에 맞는 방식으로 백엔드와 소통한다. 더 구체적으로 예를 들어 설명하면, 백엔드에서는 특정 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는 데이터 센터를 갖춘 후 운영 비용을 말한다. 클라우드는 비싼 초기 자본의 투자를 가변 운영 비용으로 전환하도록 도와준다. 물리적 데이터센터 설치가 필요 없고, 사용한 만큼만 지불하면 되기 때문이다. 이렇게 간편한 지불 방식은 서비스 구성에 더 집중할 수 있게 해 준다.
AWS Organization이란? AWS Organization은 생성한 여러 계정들을 조직으로 통합하고 중앙 집중식으로 관리할 수 있도록 하는 서비스이다. 주요 기능과 특징 모든 AWS 계정 중앙 집중식 관리 모든 계정에 대해 통합 결제 계정의 계층적 조직 단위로 그룹화(OU) 각 계정의 액세스 및 API를 중앙에서 통합적 관리 리소스 태그 표준화 다른 AWS 서비스와 통합 전역 액세스(글로벌 서비스) 일관성 있는 데이터 복제(고가용성 구현) 무료 제공