[바미] Docker MySQLCli에서 한글 입력이 되지 않을 때
·
MySQL(DB)
도커 내에서 mysql 서버를 접속하여 DB들을 셋팅해주는데 DB 데이터를 넣는 것들 중 한글로 된 데이터들을 INSERT 할 때 ''으로 insert 되는 일이 있었습니다. INSERT INTO tb_universityinfo (UnivName, UnivLocate, UnivType, UnivEstablish, UnivPresident, UnivCampos, UnivLateX, UnivLateY, UnivPageURL, UnivIMG, UnivLotAddr, UnivAddr, UnivMapIMG) VALUES('서울대학교','서울특별시 관악구','국립 4년제','1946','유홍림','관악캠퍼스',37.4648267,126.9571988,'https://www.snu.ac.kr/index.html','..
[바미] 새로 쓴, 대용량 데이터 베이스 솔루션 Vol.1 - 2장 인덱스 유형과 특징
·
프로그래밍(Web)/공부일기
새롭게 안 사실들B-Tree 인덱스 구조를 가진 테이블의 엑세스 속도100 건의 로우를 가진 테이블에서나 100만건의 로우를 가진 테이블에서나 한 건을 엑세스 하는 속도는 거의 같다는 점을 새롭게 알았다.B-Tree의 B가 Binary외에 Balanced도 있다는 의미는 이미 알았지만 엑세스 하는 속도도 균형 잡았을 줄은 몰랐다.인덱스의 종류들B-Tree 인덱스의 구조 - 루트, 브랜치, 리프 블록함수기반 인덱스에 대하여NULL 값에 대하여나는 단순히 NULL = 없음, 값은 값이지만 존재하지 않는 값으로 생각하고 있었다.하지만 이 책에서는 NULL을 '미확정 값'이라고도 표현하고 있어 개념을 재확립 하였다.공부한 내용들제 2장 인덱스의 유형과 특징인덱스의 개념인덱스는 데이터베이스 내에서 특정 데이터를 ..
[바미] 새로 쓴, 대용량 데이터 베이스 솔루션 Vol.1 - 1장 데이터 저장구조와 특징
·
프로그래밍(Web)/공부일기
들어가기 전에..해당 글은 새로 쓴 대용량 데이터 베이스 솔루션 책을 공부한 내용을 정리하였습니다.새롭게 안 사실들PK와 FK의 개념 재적립PK는 각 테이블의 고유한 식별자 역할을 하는 컬럼FK는 테이블 간의 관계를 정의하기 위해 사용되는 컬럼DB도 임의의 위치에 저장된다.프로그래밍 언어의 변수만 임의의 위치에 저장되는 줄 알았는데 분리형 테이블에서 데이터가 저장될 때 '임의의 위치'에 저장된다는 것을 새롭게 알게 되었다. 분리형 테이블에 사용되는 주요 개념들데이터 블록데이터를 저장하는 가장 기본 단위로, Block은 논리적이지만 디스크에 물리적으로 매핑되며 데이터 삽입 시 빈 공간(Free Space)이 있는 블록을 찾아 데이터를 저장하게 된다.프리 리스트(Free List)블록이 새 데이터를 저장할 ..
[바미] 큐잉 이론(Queueing Theory)이란?
·
프로그래밍(Basic)/이론
큐잉 이론(Queueing Theory)이란?우리 주변에는 ‘대기열(Queue)’라는 개념이 곳곳에 존재합니다. 패스트푸드점에서 줄을 서는 고객, 콜센터에 전화를 기다리는 고객, 웹 서버에 몰려드는 사용자 요청 등 다양한 서비스 대기 상황들이 있는데 큐잉 이론(Queueing Theory)은 이러한 대기열을 수학적으로 분석해, 가장 효율적으로 처리하기 위한 방법을 연구하는 분야입니다.  이를 통해 우리는 어떤 조건에서 얼마나 많은 자원을 배치해야 평균 대기 시간이 줄어들 수 있는지, 시스템 처리 효율을 최대화하기 위해 대기열 구조를 어떻게 설계해야 하는 지와 같은 문제를 해결할 수 있습니다. 큐잉 이론이 중요한 이유현대 IT 환경에서 큐는 다양한 계층에서 핵심적인 역할을 합니다. 단순히 눈에 보이는 고객..
[바미] 맨먼스 미신을 읽고바미] 맨먼스 미신 : 소프트웨어 공학에 관한 에세이를 읽고
·
이것저것/책 후기
개인적으로 빨리 읽어보고 싶었던 책이였고, 미루고 미루던 책 후기를 이제야 올리게 되었다.맨먼스 미신은 1975년에 처음 출판되었지만, 그 내용은 오늘날에도 여전히 유효하고 심오한 내용을 다루고 있다.  이 책의 저자 브룩스는 IBM에서 OS/360 운영체제 개발을 이끌었던 경험을 바탕으로 소프트웨어 프로젝트 관리의 어려움과 그에 따른 교훈을 공유하고 있다. 그 중에서 소프트웨어 개발에서의 시간과 인력 투입의 관계를 분석하며, 단순히 사람을 추가한다고 해서 생산성이 비례하여 증가하지 않는다는 '맨먼스 미신'을 강조하는 데 상당히 공감이 많이 됐다.언제나 회사가 필요했던 인원은 단순히 개발자가 아닌 해당 회사가 다루는 도메인 또는 서비스의 성격을 잘 아는 사람이 필요한 사람이였었는데 이건 어디에나 동일하다..
[바미] n제곱 계산
·
하루 알고리즘(JS)
문제https://www.acmicpc.net/problem/12728  코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim();const lines = input.split('\n');const T = parseInt(lines[0]);const mod = 1000; // 마지막 세 자리를 구하기 위해 모듈러 1000 사용const period = 1500; // Sₙ 모듈러 1000의 주기// Sₙ 모듈러 1000을 저장할 배열 생성const S_arr = new Array(period);S_arr[0] = 2; // S₀ = 2S_arr[1] = 6; // S₁ = 6// 주기 내의 모든 Sₙ 모..
[바미] MySQL JSON 데이터 조회
·
MySQL(DB)
들어가기전에..MySQL은 5.7 버전부터 JSON 데이터를 효율적으로 저장하고 조회할 수 있는 기능을 제공하고 있습니다. MySQL에서 JSON 데이터를 어떻게 저장하고 조회하는 지 살펴보도록 하겠습니다.MySQL에서 JSON 데이터 타입?JSON(JavaScript Object Notation)은 가볍고 사람이 읽기 쉬운 데이터 교환 형식입니다. MySQL에서는 JSON 데이터 타입을 제공하여 JSON 형식의 데이터를 효율적으로 저장하고 관리할 수 있죠. 구조회된 데이터를 유연하게 저장이 가능하고, 스키마 변경없이 필드를 추가할 수 있고, 복잡한 데이터 구조도 저장이 가능합니다.JSON 데이터 저장우선 JSON 데이터를 저장할 테이블을 만들어보겠습니다.CREATE TABLE users ( id ..
[바미] .ibd과 .frm파일은 쿼리로 삭제하자!
·
MySQL(DB)
A라는 테이블을 파티셔닝 테이블로 만들기 위해 A_temp로 변경 후 새로 A라는 파티셔닝 테이블을 만든 뒤, A 테이블에 A_temp의 데이터를 넣다 오류가 발생하여 A_temp의 테이블을 삭제 후 재생성 하는 과정에서 SQL Error [1050] [42S01]: (conn=429) Table 'schema.A_temp /* Partition p202401 */' already exists라는 에러가 발생하고 맙니다. 구글링을 해보니 테이블 삭제 했을 때 관련된 파티션이 함께 삭제되지 않아 발생한 문제였습니다. 그래서 잔여 파티션 파일이 존재하여 이를 삭제해주어야 했습니다. 이 부분은 보통 /var/lib/mysql/shema안에 있기 때문에 저 역시 이 디렉토리 안에 있는 삭제되지 않은 .ibd과 ..
[바미] 회귀 분석
·
프로그래밍(Web)/업무관련
요번 회사에서 예측 데이터를 계산하기 위해 사용하는 것 중 하나인데 개발하면서 회귀 분석에 대해 공부한 것들을 정리해볼겸 글을 쓰게 되었습니다.회귀 분석 (Regression Analysis)? 회귀 분석(Regression Analysis)은 통계학과 데이터 분석에서 가장 기본적인 도구 중 하나로 독립 변수(설명 변수)와 종속 변수(반응 변수) 간의 관계를 수학적으로 표현하는 방법을 사용하고 있습니다. 두 개 이상의 변수 간의 관계를 모델링하고, 이를 바탕으로 특정 변수를 예측하는 데 사용되는데 과거의 판매량의 데이터를 바탕으로 다음 달 매출을 예측하거나, 기온과 에너지 사용량 간의 관계를 분석하는 등에 사용됩니다. 실 예를 들어 공부 시간(독립 변수)과 시험 점수(종속 변수)의 관계를 나타낼 때 이 ..
Bami
기록하며 성장하기