전체 글 420

[Real MySQL] 1. 소개

"Real MySQL" 책을 정리한 포스팅 입니다. 1. 소개Oracle 사에 인수된 오픈소스 RDBMS 입니다. 2. EditionCommunity Edition오픈 소스 라이선스를 사용합니다.별도의 라이선스 계약 없이 사용자가 사용할 수 있습니다. Enterprise Edition상업적으로 사용하는 버전입니다.Commercial License를 사용합니다.MySQL 운영팀에게 공식적으로 기술 이슈에 대해 지원받을 수 있습니다.고급 기능을 제공합니다. (보안, 모니터링, 백업 등) 3. LicenseMySQL은 에디션에 따라 각각의 라이선스를 가지고 있습니다. GPL (GNU General Public License)오픈 라이선스 입니다.수정하여 배포할 경우, 해당 제품은 GPL 라이선스를 따라야 합니..

Database/Mysql 2023.11.22

[고급 알고리즘] Dynamic Programming

1. Dynamic Programming복잡한 문제를 작은 문제로 나누어 푸는 알고리즘 입니다.작은 문제의 해를 저장해 나중에 같은 부분 문제를 계산하지 않도록 합니다. 조건중복 부분 문제 구조 (Overlapping Subproblems)전체 문제를 작은 부분 문제들로 나누었을 때, 같은 부분 문제들이 반복됨 Memoization: 작은 문제들의 해를 저장 및 재사용함으로써 중복계산을 방지할 수 있습니다. 최적 부분 구조 (Optimal Substructure)전체 문제의 해가 부분 문제의 해를 이용해 구해질 수 있는 성질부분 문제와 전체 문제간에 의존성이 존재합니다.이러한 의존성을 점화식으로 도출하여 전체 해를 작은 문제의 해의 조합으로 표현할 수 있습니다.작은 문제부터 해결해 나가면서, 점진적으로 ..

Algorithm 2023.11.10

[기초 알고리즘] String

1. Anagram길이가 같고, 같은 문자로 구성된 두 문자열을 가리킴 예시stressed→dessertsElvis→lives Permission to dance → Stories on Pandemic 코드더보기private static int CHARACTER_RANGE= 256;public boolean isAnagramCounting(String string1, String string2) { if (string1.length() != string2.length()) { return false; } int count[] = new int[CHARACTER_RANGE]; for (int i = 0; i  2. Palindrom문자열의 중심으로부터 모든 쌍이 대칭되는 ..

Algorithm 2023.11.08

[기초 알고리즘] 수학: 소수

소수란?1과 자기 자신으로만 나누어지는 수 입니다. 판정법for (int i = 2; i 2부터 N-1까지 반복합니다.반복하는 숫자가 N으로 나머지 연산하여 0인지 확인합니다. 에라토스테네스의 체특정 범위 내의 소수판정법입니다.반복하면서 합성수를 소거하는 방식입니다. 더보기boolean[] nums = new boolean[N+1];Arrays.fill(nums, true);for (int i = 2; i answer = new ArrayList();for (int k = 2; k  2부터 N까지 반복합니다.현재 방문한 수의 배수를 소수가 아닌 수로 처리합니다. 골드바흐의 추측2보다 큰 모든 짝수는 2개의 소수 합으로 표현 할 수 있음  출처BaaaaaaaarkingDog - 수학

Algorithm 2023.11.08

[고급 알고리즘] Greedy

1. Greedy 란?매 순간 가장 좋은 선택을 하는 알고리즘 입니다.근시안적인 방식으로 최적해를 구합니다. 목적많은 연산이 필요한 Dynamic Programming의 효율적인 대안으로 사용하기 위함입니다.사용조건을 만족하면, Dynamic Programming보다 더 효율적으로 해를 구할 수 있습니다. 동작 방식각 단계에서 최적의 답을 선택하므로써 전체적인 최적해를 구하는 방식으로 동작합니다. 사용 조건탐욕적 선택 속성 (greedy choice property)각 단계에서의 선택이 전체 해결책의 최적성을 보장현재 선택이 문제의 나머지 부분에 독립적 (문제의 남은 부분에 대한 탐욕적 기준 유지) 최적 부분 구조 (optimal substructure)문제의 최적해는 전체 문제의 부분문제의 해로 구성됩..

Algorithm 2023.11.08

[알고리즘] Range: Two Pointer

1. Two Pointer조건을 충족하는 구간 혹은 쌍을 찾는 알고리즘 입니다.두 개의 포인터를 동시에 움직여가며 문제를 해결합니다.정렬된 선형 자료구조에서 사용됩니다.답에 가깝게 접근하기 위한 올바른 포인터 이동을 하기 위해서 동작 원리포인터 설정두 개의 포인터 배치 (배열의 시작과 끝 or 인접한 위치) 포인터 이동범위를 좁히거나 넓히는 방식으로 답을 찾아갑니다. 한쪽 또는 양쪽 모두를 이동시킵니다. 조건 만족 검사두 포인터의 현재 위치에서 조건을 만족하는지 검사합니다. 장점반복을 줄여 시간복잡도를 줄이는 목적을 가지는 알고리즘 입니다.O(n)으로 최적화 가능 2. 문제Two Sum배열 중 조건을 만족하는 숫자쌍 찾기 문제Two Sum 2 - Input Array is sorted (문제) (해설) ..

Algorithm 2023.11.08

[기초 자료구조] Linked List

1. Linked List 란?선형 자료구조 입니다.각 요소들을 연쇄적으로 연결 (포인터 사용) Head맨 처음 요소를 가리키는 포인터링크드리스트 마다 가지고 있습니다. Node각 요소를 의미하는 자료구조 입니다. 구성값next 포인터: 다음 노드를 가리키는 포인터 장점동적 할당크기가 동적으로 할당됨생성 시, 크기가 정해지지 않음효율적인 메모리 사용 가능 (메모리) 비연속적동적 할당으로 메모리가 잡히므로 비연속적인 공간에 저장됩니다. (다른 요소에 독립적)next 포인터를 가집니다. (다음 노드를 찾아가기 위함) 효율적인 연산배열과 같은 추가적인 연산이 필요하지 않습니다. (요소들이 비연속적으로 저장되므로) 단점추가적인 메모리 비용각 노드는 포인터를 가져야 하므로 추가적인 메모리 비용이 발생합니다. 조회..

Data Structure 2023.11.08

[기초 자료구조] Array

1. Array 같은 타입의 요소들을 보관하는 자료구조 입니다.요소들의 중복을 허용합니다. 연속적 (선형적)요소들은 메모리 연속적인 공간에 저장됩니다. (물리적) 인덱스 기반각 요소들은 특정 인덱스에 대응되어 구성되어 있습니다.Random Access 가능합니다. 배열 주소첫번째 요소의 메모리 주소 입니다. 요소 주소기본 주소로부터 현재 요소의 인덱스와 데이터 타입 크기를 곱하여 알 수 있습니다. 정적 할당크기가 생성되는 시기에 정해집니다. 요소 갯수가 배열 크기보다 커질 경우 리사이즈 연산 발생2배 큰 새로운 배열을 생성 + 새 배열에 요소들을 이주 중간 요소의 추가 연산삽입: 삽입할 곳의 공간을 만들기 위해 뒤 요소들을 뒤로 한 칸씩 이동 (right shift)삭제: 삭제한 공간을 메우기 위해 뒤 ..

Data Structure 2023.11.08

[Docker] 1. Docker overview

Docker는 애플리케이션을 개발, 배포 및 실행하기 위한 오픈 플랫폼입니다. 애플리케이션을 인프라에서 분리하여 빠르게 소프트웨어를 제공할 수 있습니다. 코드를 작성하고 프로덕션에서 실행하는 사이의 지연 시간을 크게 줄일 수 있습니다. 1. The Docker platform Docker는 컨테이너라는 약간 격리된 환경에서 애플리케이션을 패키지화하고 실행할 수 있게 합니다. 컨테이너는 경량화되어 있으며, 애플리케이션을 실행하는 데 필요한 모든 것을 포함하므로 호스트에 의존할 필요가 없습니다. 2. What can I use Docker for? Fast, consistent delivery of your applications 개발자가 로컬 컨테이너를 사용하여 표준화된 환경에서 작업할 수 있게 해줍니다...

DevOps/Docker 2023.10.29

[Github Actions] 1. GitHub Actions 이해

1. Overview GitHub Actions는 CI/CD 플랫폼입니다. 빌드 - 테스트 - 배포 를 자동화할 수 있습니다. Repository의 다양한 이벤트가 발생할 때 Workflow를 실행합니다. 데이터 센터나 클라우드 인프라를 사용하기 위한 Virtual Machine을 호스팅해줍니다. 2. The Components of GitHub Actions Workflow는 저장소에서 발생하는 이벤트에 따라 트리거 될 수 있습니다. Workflow에는 하나 이상의 Job이 포함되면 각 Job은 다양한 Step을 포함합니다. 작업은 가상 머신 러너나 컨테이너 내에서 실행됩니다. Action은 Workflow를 단순화하기 위한 재사용 가능한 확장 기능입니다. 3. Create an example work..

DevOps/CI&CD 2023.10.29