CAP 정리란? 브루어의 정리란? CAP 정리 또는 브루어(Brewer)의 정리는 다음과 같은 세 가지 조건을 모두 만족하는 분산 컴퓨터 시스템은 존재하지 않음을 증명한 정리이다. 일관성(Consistency) : 모든 노드가 같은 순간에 같은 데이터를 볼 수 있다. 가용성(Availability) : 모든 요청이 성공 또는 실패 등의 결과를 반환활 수 있다. 파티션 허용(Partition tolerance) : 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템이 계속 동작할 수 있다. 위의 세 가지 조건의 첫 글자를 따서 CAP정리라고 부른다. 여기서 분산 시스템은 동시에 둘 이상의 노드(물리적 또는 가상머신)에 데이터를 저장하는 네트워크를 뜻한다. 세 가지 조건에 대해 더 자세히 알아보자면 다음..
AWS Cloud Practitioner 자격증이란? AWS는 다양한 자격증을 취득할 수 있다. 그중 AWS Cloud Practitioner는 가장 기본인 자격증이다. 이후엔 Architect, Operations, Developer 등 분야를 나누어 Associate 등급, Professional 등급 등을 취득할 수 있다. Cloud Practitioner 자격증은 AWS의 클라우드 기술의 개념과 보안, 운영 비용 등 AWS 클라우드 서비스를 사용하는 데 가장 기초적인 지식을 테스트하는 문제들이 출제된다. 응시 계기 현재 재직 중인 회사에서 온-프레미스에서 클라우드로의 전환을 계획하고 있다. 앞으로 많은 회사들이 클라우드 체계로 넘어갈 것이라고 생각했다. 평소에도 관심이 많던 클라우드 서비스에 대한..
Index란? Index는 테이블에서 데이터의 위치를 가리키는 자료구조이다. Index가 없다면 원하는 데이터를 찾기 위해서 테이블 전체를 뒤져야 할 것이다. 이러한 Index는 크게 Clustered Index와 Non-Clustered Index 두 가지로 나눌 수 있다. 참고) [DB] 인덱스(index)란? 인덱스 자료구조 인덱스(index)란? 인덱스란 데이터베이스 테이블의 검색 속도를 향상하기 위한 자료구조라고 할 수 있다. 책의 색인(index)을 보면 해당 내용이 어디에 있는지 알 수 있듯이 데이터의 인덱스를 참조 code-lab1.tistory.com Clustered Index란? clustered Index는 row의 물리적 정렬 순서를 설정하는 index 유형이다. clustered..
오버로딩(Overloading)이란? 오버로딩은 같은 클래스 내에 여러 개의 같은 이름의 메서드를 정의하는 것이다. 이때 메서드의 이름은 같지만 매개변수(parameter)의 개수나 타입이 달라야 한다. return 값만 다른 것은 오버로딩이라고 볼 수 없다. 예를 들어 아래와 같이 Food 클래스 내에 여러 가지의 eat 메서드를 정의할 수 있다. public class Food{ void eat(Noodle noodle){ System.out.println("후루룩"); } void eat(Pizza pizza){ System.out.prinln("냠냠"); } void eat(Noodle noodle, Ramen ramen){ System.out.prinln("호로록~"); } } 같은 메서드 명이..
NamedParameterJdbcTemplate이란? JdbcTemplate은 파라미터를 순서대로 바인딩한다. String sql = "update item set item_name=?, price=?, quantity=? where id=?"; template.update(sql, itemName, price, quantity, itemId); 예를 들어 위와 같은 코드가 있다면, sql의 ?에 itemName, price, quantity, itemId 파라미터가 순서대로 바인딩된다. 이렇게 순서를 제대로 지킨다면 문제가 없는 코드이다. 하지만 모종의 이유로 위의 SQL 코드를 변경하게 된다고 생각해보자. 실무에서 수십 개의 파라미터를 사용한다고 했을 때 순서에 맞춰 파라미터를 바인딩 하기는 쉽지 않..
JdbcTemplate이란? JdbcTemplate은 JDBC 코어 패키지의 중앙 클래스로 JDBC의 사용을 단순화하고 일반적인 오류를 방지하는데 도움이 된다. 개발자가 JDBC를 직접 사용할 때 발생하는 다음과 같은 반복 작업을 대신 처리해준다. 커넥션 획득 statement를 준비하고 실행 결과를 반복하도록 루프를 실행 커넥션 종료, statement 및 resultset 종료 트랜잭션을 다루기 위한 커넥션 동기화 예외 발생 시 스프링 예외 변환기 실행 쉽게 말해 JdbcTemplate은 개발자가 JDBC 기술을 쉽게 사용할 수 있도록 도와주는 클래스이다. 참고) [Spring] JDBC(Java Database Connectivity)란? JDBC 드라이버란? [Spring] JDBC(Java Da..
투 포인터 알고리즘(Two-Pointers Algorithm)이란? 투 포인터 알고리즘은 말 그대로 두 개의 포인터를 이용해 문제를 해결하는 알고리즘을 뜻한다. 보통 l(left), r(right)나 s(start), e(end) 같은 식으로 포인터의 이름을 붙인다. 투 포인터 알고리즘을 설명하기 위해 하나의 알고리즘 문제를 소개하겠다. https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 백준에서 풀어볼 수..
에러(Error)와 예외(Exception) 체크 예외와 언체크 예외에 알아보기 전에 Error와 Exception에 대해 알아보자. 자바에서 오류(Error)란 시스템이 종료되어야 할 수준의 수습하기 힘든 심각한 문제를 의미한다. 이러한 오류는 개발자가 미리 예측하여 처리하기 힘든 것이 대부분이기 때문에 오류에 대한 처리는 매우 힘들다. 반면 예외(Exception)는 개발자가 구현한 로직에서 발생한 실수 혹은 사용자의 영향에 의해 발생하는 예측하고 방지할 수 있는 문제를 뜻한다. 참고) [JAVA] 예외 처리(Exception Handling)에 대하여, try-catch문, 오류(error)와 예외(exception) 오류(error)와 예외(exception) 자바에서 오류(error)란 시스템이..