목록전체 글 (44)
개발콩블로그
안녕하세요 개발콩입니다!! 🍀오늘은 REST API에 대해서 정리해보려고합니다! API란?Application Programming Interface의 약자로 응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 말합니다. 일상생활에서 비유를 하자면 우리는 휴대폰을 사용할 때 휴대폰의 내부 기능을 모두 알지 못합니다.대신, 버튼을 통해 소리를 키우고 전원을 끄는 것처럼API는 애플리케이션 간에 지정된 형식으로 요청과 응답을 할 수 있도록 연결하는 것이라고 생각하면 쉽습니다. REST API란?REST API란 RESTful한 API를 말하며 일련의 특징과 규칙 등을 지키는 API를 말합니다.다른 표현으로는 인터넷과 같은 네트워크를 통해..

안녕하세요 개발콩입니다!😊오늘은 자료구조 Hash Table에 대해서 한번 정리해보도록 하겠습니다! 해시 테이블(Hash Table)키(key)와 값(value)를 쌍(pair)으로 저장하는 자료구조입니다.내부적으로 해시 함수를 이용하여 배열(Table) 형태로 데이터를 저장합니다.저장된 값을 담는 배열 내 각 칸을 버킷(bucket) 이라 표현합니다. 해시 함수(Hash Function)임의 길이의 입력 데이터를 받아 고정된 길이의 출력값을 만들어내는 함수입니다.항상 같은 입력에 대해 같은 출력값을 반환합니다. 해시값(Hash Value/Checksum)해시 함수가 출력한 고정된 길이의 값을 의미합니다. 해시 테이블이 필요한 이유전화번호와 사람의 이름을 저장하고 빠르게 검색하는 상황을 고려해..

안녕하세요 개발콩입니다! 😄요즘은 AI기반으로 코드를 쉽고 빠르게 작성할 수 있는 시대인 것 같습니다.하지만, 해당 코드의 원리와 목적을 명확하게 알고 사용하는 것도 중요한 것 같아요!그래서 오늘은 다양한 Sort 알고리즘의 특성에 대해 정리해보도록 하겠습니다. 정렬(Sort)원소들을 일정한 순서대로 열거하는 방법정렬을 함으로써 검색을 효율적으로 수행할 수 있습니다. 정렬 알고리즘을 이해하는 키워드Stable정렬을 했을 때 같은 값을 가진 원소들의 순서가 유지되는 특성입니다. Unstable정렬을 했을 때 같은 값을 가진 원소들의 순서가 보장되지 않는 특성입니다. In-Place원소의 개수에 비해 충분히 무시할만한 공간을 더 사용하는 알고리즘즉, 추가적인 메모리 사용 없이 동일한 메모리 공간에 반복..

안녕하세요 개발콩입니다 !! 😊요즘 SwiftUI를 공부하면서 some 키워드를 알게되었습니다!이 과정에서 Opaque Type에 대해서 궁금증이 생겼고 더 나아가서 Type Erasure까지 알아보았습니다! Opque Type이란?함수나 프로퍼티의 반환 타입 정보를 감추는 역할을 합니다.'some' 키워드를 사용해 표현하며 호출자에게는 어떤 프로토콜을 따르는 값으로만 알려주고 구체적인 실제 타입은 숨깁니다.컴파일러는 해당 구체 타입을 알고 있지만 호출자는 알 수 없습니다.Opque Type은 제네릭과 반대로 동작합니다.제네릭은 호출자가 타입을 결정하지만, Opaque Type은 구현부가 반환할 타입을 결정하고 호출자는 이것을 추상적으로 받아들입니다. 👉 즉, 특정 프로토콜을 따르는 어떤 하나의 타..

안녕하세요 개발콩입니다! 😊이번에 산책 앱을 만들게 되면서 경로를 그리게 되었습니다.실제 경로와 다르게 그려지는 것을 발견했고, 이러한 문제를 해결하는 글을 정리하고자 합니다! 문제 상황직선으로 걸었음에도 경로가 부정확하게 출력되는 현상을 발견했습니다.잘못된 위치로 인해 부정확한 이동거리가 저장되었습니다. 원인 분석GPS를 통해 받은 위치정보 (CLLocationManager)는 센서 특성상 오차를 포함하고 있습니다.이러한 오차가 포함된 위치 데이터를 어떠한 처리 없이 바로 사용하고 있습니다. 해결 방법오차에 대한 데이터를 처리하는 과정에서 칼만 필터(Kalman Filter)를 사용했습니다. 칼만 필터란?칼만 필터는 시간에 따라 변하는 시스템의 상태를 추정하는 방법 중 하나로시스템 모델의 예..

안녕하세요! 개발콩입니다!! 😉오늘은 캐시, 캐시 적중률에 대해서 정리하는 글을 작성하려고 합니다! 캐시란?CS에서 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킵니다. CPU의 처리속도는 급격히 증가했지만, 메모리 접근 속도는 늘어나지 못하고 있습니다.이러한 CPU 성능과 메모리 접근 속도의 불균형을 해소하기 위해서 캐시가 등장하게 됩니다. 캐시 적중률캐시 적중률은 요청된 데이터를 캐시 메모리에서 찾을 확률을 말합니다. 예를들어 현재 캐시 메모리에 5개의 데이터 A, B, C, D, E가 있다고 가정합니다.이때, CPU가 5개의 데이터 A, B, C, D, X를 필요로 한다면 A, B, C, D는 캐시 메모리에서 찾을 수 있지만 X의 경우에는 메모리에서 찾을 수 없습니다. 이..

안녕하세요 개발콩입니다 !! 😄오늘은 자료구조 Queue에 대해서 정리하도록 하겠습니다. Queue먼저 들어간 데이터가 먼저 나오는 FIFO 형식의 자료구조입니다.버퍼, 대기열 관리, 스케줄링 등 다양한 상황에서 사용될 수 있습니다. Queue를 이해하는데에는 키오스크 주문을 예로 들 수 있을 것 같습니다.가장 먼저 온 사람이 가장 먼저 주문을 하고 이후에 줄을 선 사람은 제일 뒤에서 순서를 기다립니다.이러한 흐름이 Queue의 대표적인 흐름이라고 생각하면 조금 더 이해하기 쉬울 것 같습니다! Queue의 메서드enqueue큐에 데이터를 추가합니다.dequeue제일 처음에 들어온 데이터를 제거합니다.top제일 처음에 들어온 데이터를 확인합니다. Queue를 만드는 다양한 방법Arra..

안녕하세요 개발콩입니다 !! 😆오늘은 자료구조 Stack에 대해 정리하도록 하겠습니다. Stack한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO, FILO 형식의 자료구조입니다. 우리가 주로 먹는 프링글스 과자를 생각하면 이해하기 쉬울 것 같아요. 우리는 과자를 먹을 때 가장 위에 있는 과자를 먹게되고, 과자를 다시 넣게 된다면 제일 위에 넣게 되죠.즉, 우리는 과자를 꺼낼 때 가장 마지막에 넣었던 과자를 먹게됩니다! Stack의 메서드push스택에 데이터를 추가합니다.pop가장 마지막에 들어온 데이터를 제거합니다.top가장 마지막에 들어온 데이터를 확인합니다. Stack의 시간복잡도pushO(1)popO(1)topO(1) 스택 오버플로우스택에서 사용 가능한 것보다 더 많은 공간을 ..