분류 전체보기 103

MySQL - Transaction의 간략한 설명 및 작업 단위 나누기

Transaction은 논리적인 작업이 모두 되거나, 혹은 아무것도 되지 않아야 한다는 것을 보장해 준다. MySQL에서의 트랜잭션 일단 MyISAM은 트랜잭션을 지원하지 않는 특징을 가지고 있고, InnoDB는 트랜잭션을 지원하는 스토리지 엔진이다. 두 엔진간의 차이를 직접 하기 위해서 테이블을 만들어 준다. CREATE TABLE tab_myisam (fdpk int not null, primary key (fdpk) ) ENGINE=MyISAM; CREATE TABLE tab_innodb (fdpk int not null, primary key (fdpk) ) ENGINE=INNODB; insert into tab_myisam values (3); insert into tab_innodb value..

DataBase/MySQL 2023.03.02

이분검색(Binary Search) - Java구현

이분검색은 검색할 범위를 반으로 줄여가며 답을 찾아가는 알고리즘이다. 이분검색 말로하면 지루하니까 미천한 그림판실력을 발휘해보겠다. 다음과 같이 오름차순으로 정렬된 배열이 있다고 생각해보자. 우리는 여기서 1이 몇번째에 있는지 바로 알 수 있지만 컴퓨터는 그렇지 못하다. 이분 검색의 절차를 그려보자면 아래와 같다. 배열의 정 가운데 요소를 기준으로 반으로 쪼갠다. 1이 가운데의 원소인 9보다 작으면 왼쪽 배열을 선택한다. 왼쪽 배열의 가운데 요소 3을 기준으로 쪼갠다 1이 가운데 원소인 3보다 작으면 왼쪽배열을 선택한다. 1이 남았다. 찾으려는 값이 1이기 때문에 종료한다. 이분검색은 분할정복 알고리즘 중 가장 간단한 부류에 속한다. 왜냐면 입력사례를 분할해 해답을 구하고, 결과를 취합할 필요가 없기 때..

Flutter - 앱 아이콘 추가하기

해당 글은 아이콘을 등록하는 방법만을 정리해서, 원하는 게 나오지 않을 수도 있으니 그 점을 유의해주시면 감사하겠습니다. 앱 아이콘은 앱의 얼굴이라고도 볼 수 있습니다. (편의를 위해 앞으로는 반말로 하겠습니다.) 가장 먼저 해야 할 것은 역시 아이콘 이미지를 받는 것인데, 일단 연습을 위한 것이기 때문에 무료 아이콘을 찾아보자. 실험에 사용할 아이콘은 플랫 아이콘에서 다운로드 받았다. (무료지만 배포 시 저작권자는 표시해줘야 함!) 다운로드한 아이콘은 기기별 화면크기가 다르기 때문에 변환시켜줘야 한다. 아래의 링크에서 변환할 수 있다. https://www.appicon.co/ App Icon Generator www.appicon.co 다운로드하면 아래와 같이 zip 파일을 받는데 압축을 풀어주자. ..

SQLD 요약 - Where 절

원본 Where is my Watch !!? = 내 시계 어디있어!? 위에서 보듯이 Where은 무언가를 찾는데 많이 쓴다 DB에서 Select와 From만으로 Query를 작성한다면 테이블의 모든 Row들이 결과로 나온다. DB는 여러 곳에서 동시에 접속하기 위해 사용하는 것인데, 원하는 Row가 아닌, 모든 Row를 출력하면 DB의 CPU, Memory를 비효율적으로 사용하게 된다. 때문에 원하는 것을 찾기 위해 Where 절을 이용해 결과로 출력되는 자료들을 제한할 수 있다.` 기본 사용법 SELECT [DISTINCT 또는 ALL] 칼럼명 [ALIAS 명] FROM 테이블명 WHERE 조건식; WHERE 연산자 종류 아래의 기본 연산자는 프로그래밍 언어를 배웠다면 어느정도 알고 있을테니 외우려고 ..

카테고리 없음 2023.02.11

SQLD 요약 - TCL

원본 1. 트랜잭션의 개요 트랜잭션이란 DB의 논리적인 연산단위이다. 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. 트랜잭션은 분할할 수 없는 최소의 실행단위다. 그렇기 때문에 전부 적용되거나, 전부 취소된다. 말로하면 어렵기 때문에 그리면서 상상해보자. 다시 한 번 위의 설명을 실생활로 적용해보면 너무 유명한 예시인 ' 은행 입출금 '을 들 수 있다. 우리가 은행에 갔을 때 돈을 이체하려고 한다면 더보기 1. ATM기에서 이체를 선택한다 2. 받을 사람의 계좌번호를 입력하고, 보낼 금액을 적는다. 3. 비밀번호를 입력하고 돈이 송금된다. 의 순서로 되겠지만 3번을 조금 더 자세히보자. 비밀번호를 입력 후 내 계좌에서 돈이 인출하려고 할 때, 잔고가 보내는 금액보다 많다면 인출하고, 적다면 실..

자격증/SQLD 2023.02.03

SQLD 요약 - DML

원본 DML( Data Manipulation Language : 데이터 조작어) DML은 테이블의 자료들을 입력, 수정, 삭제, 조회하는, 데이터를 조작한다. 혹시나 테이블 생성하는 법을 모른다면 이전글을 보자. https://beetr.tistory.com/85 SQLD 요약 - DDL 원본 DDL은 이전글에서도 짧게 설명했듯이 데이터 정의어 (Data Definition Language)이다. 저의 사용 DB는 mariadb이고, MySQL, Oracle과 큰 차이가 없다. https://beetr.tistory.com/84 SQLD 요약 - 관계형 데이터베이스 beetr.tistory.com 본인은 MariaDB를 사용하고, DML에서 SQL과 차이는 거의 없지만 다른 부분은 따로 써놨다. 예제로..

카테고리 없음 2023.01.25

SQLD 요약 - DDL

원본 DDL은 이전글에서도 짧게 설명했듯이 데이터 정의어 (Data Definition Language)이다. 저의 사용 DB는 mariadb이고, MySQL, Oracle과 큰 차이가 없다. https://beetr.tistory.com/84 SQLD 요약 - 관계형 데이터베이스 개요 원본 관계형 데이터베이스를 알기 위해서는 당연히 데이터베이스를 알아야 한다. 간단하게 말하면 데이터베이스는 정보들을 모아 놓은 것 자체를 의미한다. 정보화 사회에서는 데이터가 쏟아 beetr.tistory.com DDL은 테이블의 구조를 정의한다고 했다. 테이블에 어떤 칼럼이 어떤 자료형을 가지는지 정의해야 올바른 데이터를 저장할 수 있다. 데이터 유형 (Data Type) DB의 테이블에 특정 자료를 입력할 때, 그 자..

자격증/SQLD 2023.01.15

SQLD 요약 - 관계형 데이터베이스 개요

원본 관계형 데이터베이스를 알기 위해서는 당연히 데이터베이스를 알아야 한다. 간단하게 말하면 데이터베이스는 정보들을 모아 놓은 것 자체를 의미한다. 정보화 사회에서는 데이터가 쏟아지게 되는데, 데이터의 양이 많아지고 여러 사람이 동시에 사용하게 되면서 데이터를 효율적으로 관리하는 것이 필요해졌다. 이런 데이터를 관리하기 용이하고, 데이터를 복구하기 위한 소프트웨어가 DBMS ( Database Management System)이다. 데이터베이스 개념 데이터를 공유할 수 있도록 운영에 필요한 모든 데이터를 통합하여 컴퓨터에 저장한 데이터 중요! 다수의 시스템 or 프로그램이 사용할 목적으로 통합하여 관리되는 자료의 집합 데이터베이스 특징 지속적인 변화 : 데이터 삽입, 삭제, 갱신 통해 정확한 데이터 유지..

자격증/SQLD 2023.01.14

알고리즘 문제 - 1182 부분수열의 합 (정답 이해)

결론적으로 말하자면 BFS, DFS 개념은 이해했지만 실제적으로 아직 어떻게 응용하는지에 대해서 잘 몰라서 못 풀었다. 다른 분의 코드를 봤는데 정답이 왜 정답인지 이해하기 위해서 그림판으로 그리면서 보게 되었고, 이해한 것을 공유하기 위해 작성. 문제는 짧아서 간단하다. 문제 링크 문제 이해 예제 입력 1에서 수열을 보자면 { -7, -3, -2, 5, 8} 이 수열이 될 것이다. 부분수열은 {}, {-7}, {-3}, {-2, 5} 등 말 그대로 수열 중의 일부분을 자른 것이라고 생각하면 된다. 그러면 다시 예제 입력 1 기준으로 문제를 살펴보면 다음과 같이 정의할 수 있다. 더보기 5개의 정수를 입력받을것이고 5개 정수 중 어떤 걸 조합해서 0을 만들 수 있는 부분개열의 개수를 구하라 예제 출력1이..

알고리즘/백준 2022.12.30

SQL - 대량 데이터에 따른 성능, 테이블 분할

코로나에 확진이 되어버려 며칠 골골댔습니다... 원본 링크 1. 대량 데이터발생에 따른 테이블 분할 개요 고속도로 차선이 20차선이라도, 교통량이 많으면 도로가 막히는 것처럼 한 테이블에 데이터가 많고, 하나의 하드웨어 공간에 저장되어 있으면 성능저하가 일어난다. 이런 경우 트랜잭션이 분산될 수 있도록 테이블 단위에서 분할을 할 필요가 있는 것이다. 테이블에 대한 수평 / 수직분할 절차 테이블에 대한 수평분할/ 수직분할에 대한 결정은 다음의 4가지 원칙으로 적용하면 된다. 데이터 모델링을 완성 데이터베이스 용량 산정 용량산정 : 어느 테이블에 대용량의 데이터가 쌓이는지 분석 칼럼이 많을 경우 - 트랜잭션 특성에 따라 테이블을 1:1 형태로 분리할 수 있는지 검증 칼럼이 적지만 데이터용량이 많을 경우 - ..

카테고리 없음 2022.12.27