no image
JSON API
JSON API 웹 서비스에서 데이터를 전송하고 공유하기 위한 표준 데이터 포맷 중 하나입니다. API는 RESTful웹 서비스를 구형하고 데이터를 JSON 형식으로 교환되는 데 사용되며, 클라이언트와 서버 간의 데이터 통신을 간소화하는 데 도움이 됩니다. JSON API는 다양한 프로그래밍 언어와 프레임워크에서 지원되며, 웹 및 모바일 애플리케이션에서 데이터 교환을 널리 사용됩니다. 이러한 표준화된 접근 방식은 개발자들이 다양한 데이터 소스와 상호 작용할 때 일관성을 유지하고 개발 시간을 단축하는데 도움이 됩니다. JSON API 특징 데이터 포맷 : 데이터를 교환하기 위한 JSON을 사용합니다. JSON은 텍스트 형식으로, 가독성이 좋고 파싱 하기 쉬워서 데이터를 효과적으로 표현할 수 있습니다. 표준..
2023.09.15
no image
프로세스와 스레드
프로세스 컴퓨터 과학 및 운영 체제에서 중요한 개념 중 하나로, 실행 중인 프로그램 또는 작업을 나타냅니다. 프로세스는 컴퓨터 시스템에서 작업을 수행하는 단위로, 프로그램 코드, 메모리, CPU 시간, 파일 및 입출력 작업과 관련된 다양한 리소스를 포함합니다. 프로세스 특징 프로그램 코드 : 프로세스는 하나 이상의 스레드로 구성되며, 각 스레드는 프로그램의 명령어 집합을 실행합니다. 이 명령어 집합은 프로그램의 실행 흐름을 결정합니다. 메모리 공간 : 각 프로세스는 자체의 메모리 공간을 가지며, 이 메모리 공간은 프로세스가 실행 중에 사용하는 데이터 및 코드를 저장합니다. 다른 프로세스와는 분리되어 있어서 한 프로세스가 다른 프로세스의 메모리에 직업 접근할 수 없습니다. 자원 할당 : 프로세스는 CPU ..
2023.09.07
no image
CAP 이론
CAP CAP은 Consistency, Availability, Partition tolerance의 약자로 , 분산 시스템의 데이터베이스 시스템의 성능과 안정성을 설명하는 세 가지 중요한 속성을 나타냅니다. 이 용어는 컴퓨터 과학자인 Eric Brewer에 의해 제안되었으며, 이를 통해 분산 시스템을 설계하고 이해하는 데 도움이 됩니다. 분산 데이터베이스는 방대한 데이터를 다루기에 유용한 시스템입니다. 분산 데이터베이스는 수평 확장할 수 있기 때문에 트래픽이 증가하더라도 낮은 지연 시간을 유지할 수 있고, 일부 노드 장애에 적절히 대응할 수 있습니다. CA : 일관성과 가용성을 모두 보장하려면 분할 내구성을 희생해야 합니다. 이는 데이터 일관성을 유지하는 것을 우선시하고, 네트워크 분할로 인한 가용성 ..
2023.09.05
no image
샤딩 전략
샤딩 전략 데이터베이스 관리에서 대량의 데이터를 분할하여 여러 샤드로 나누는 방법을 정하는 방식을 의미하며 각 샤드는 독립적으로 운영되며 데이터 일부를 저장하고 처리합니다. 다양한 샤딩 전략이 있으며, 선택한 전략은 데이터의 특정, 시스템의 요구 사항 및 확장성에 따라 다를 수 있습니다. 레인지 샤딩 데이터베이스 관리에서 사용되는 샤딩 전략 중 하나로, 데이터를 연속적인 값의 범위네 따라 분할하는 방식을 의미합니다. 이 전략은 데이터를 샤드로 분할할 때 데이터의 값 범위를 기준으로 샤드를 나누는 방식으로 동작합니다. 예를 들어보면 사용자의 나이를 기준으로 레인지 샤딩을 적용한다고 가정해 보면 각 샤드는 나이 범위를 가지며, 해당 범위 내의 사용자 데이터를 저장합니다. 첫 번째 샤드는 0세에서 20세까지의..
2023.08.31
no image
데이터 레플리케이션
데이터 레플리케이션 데이터베이스나 시스템의 데이터를 한 곳에서 다른 곳으로 복사하여 유지하는 프로세스를 말합니다. 이를 통해 데이터의 가용성, 안정성 및 성능을 향상할 수 있습니다. 데이터 레플리케이션 사용 목적 종류 1. 고가용성 및 장애 허용 시스템 장애 시에도 서비스 지속성을 확보하기 위해 데이터의 백업 또는 레플리카 생성 원본 데이터배이스의 고장 시 다른 레플리카로 전환하여 서비스 중단 최소화 2. 읽기 성능 향상 읽기 작업이 많은 시스템에서 읽기 부하를 분산시켜 성능을 향상시키기 위해 레플리카 생성 3. 지리적 분산 및 지역화 지역적으로 떨어진 사용자에게도 빠른 응답시간 제공을 위해 데이터를 지역에 레플리케이션 지역별 요구 사항에 맞춰 데이터를 지역에 배치하여 지역화된 서비스 제공 4. 분석 및..
2023.08.27
no image
JAVA (Variable Naming)
변수 이름(Variable Naming) 변수를 선언할 때 사용하는 이름을 지정하는 것을 말합니다. 변수 이름은 코드의 가독성과 이해도를 높이는 데 큰 영향을 미치므로 명확하고 의미 있는 이름을 선택하는 것이 중요합니다. 변수 이름 규칙 1. 식별자 사용 규칙 : 변수 이름은 자바에서 사용되는 식별자 규칙을 따라야 합니다. 변수 이름은 문자로 시작해야 하며, 문자나 밑줄 ('_')로 시작해야 합니다. 변수 이름은 대소문자를 구분합니다. myVariable 과 MyVariable 은 다른 변수로 간주됩니다. 변수 이름에는 문자, 숫자, 밑줄, $ 가 포함될 수 있습니다. 예약어 (if, for, class등)는 식별자로 사용할 수 없습니다. 일반적으로 자바에서 변수 이름은 카멜케이스 표기법을 따릅니다. 카..
2023.08.25
no image
variables (변수)
변수 데이터를 저장하고 관리하는 데 사용되는 기본적인 개념입니다. 변수는 이름을 가지며, 해당 이름을 사용하여 값을 저장하고 검색할 수 있습니다. 변수는 프로그램 내에서 데이터를 임시로 보관하거나 처리하는 데 사용됩니다. 변수 규칙 자바에서 변수의 이름을 지을 때는 몇 가지 규칙을 따라야 합니다. 이 규칙들을 준수하여 변수 이름을 작성하면 코드의 가독성을 높일 수 있고, 충돌이나 혼동을 방지할 수 있습니다. 유효한 문자 : 변수 이름은 문자, 숫자, '_', $,로 구성될 수 있습니다. 하지만 변수 이름은 문자로 시작해야 하며, 숫자로 시작해서는 안 됩니다. 대소문자 구분 : 변수 이름은 대소문자로 구분합니다. 'myVariable'과 'myvariable'은 다른 변수 이름으로 간주됩니다. 예약어 사용..
2023.08.24
no image
인덱스와 그 작동원리
Index 데이터베이스에서 검색 속도를 향상하기 위해 사용되는 자료구조입니다. 데이터베이스 테이블에 대한 인덱스는 특정 칼럼의 값을 미리 정렬하여 검색 및 정렬 작업을 빠르게 수행할 수 있도록 도와줍니다. 인덱스를 사용하면 데이터베이스 관리 시스템은 전체 테이블을 스캔하지 않고도 원하는 데이터를 빠르게 찾을 수 있습니다. 장점 데이터 검색 속도 향상 : 인덱스를 사용하면 특정 칼럼의 값을 미리 정렬하여 검색 작업을 빠르게 수행할 수 있습니다. 인덱스를 통해 검색 조건에 부합하는 데이터를 빠르게 찾아낼 수 있습니다. 정렬 작업 개선 : 인덱스를 사용하면 데이터베이스 엔진은 정렬 작업을 더 효율적으로 수행할 수 있습니다. ORDER BY절과 같은 정렬 연산에서도 성능 향상을 가져올 수 있습니다. 중복 데이터..
2023.08.23
no image
데이터베이스 정규화
데이터베이스 정규화 데이터를 효율적으로 저장하고 관리하기 위해 데이터를 구조화하는 과정을 말합니다. 정규화를 통해 중복 데이터를 최소화하고 데이터의 일관성과 무결성을 유지할 수 있습니다. 데이터베이스 정규화는 주로 관계형 데이터베이스에서 사용되며, 주로 "제1정규화"부터 "제5정규화"까지 여러 단계로 나뉘어 집니다. 각 정규화 단계는 특정 종류의 데이터 중복을 제거하고 데이터를 분리함으로써 데이터의 논리적 일관성을 보장합니다. 제1정규화(1NF) 데이터베이스 설계에서 첫 번째 단계로서, 데이터베이스 테이블의 열들이 원자적인 값을 가지도록 만드는 과정을 말합니다. 즉, 각 칼럼의 값은 더 이상 분해되거나 나뉘어질 수 없어야 합니다. 조건 모든 컬럼의 도메인은 원자값만을 포함해야합니다. 즉 각 칼럼의 값은 ..
2023.08.22