언어 17

[Scala 찍먹하기] 시작하기: 설치부터 프로젝트 생성/실행/종료까지

0. Scala란?2004년에 발표된 객체지향/함수형 프로그래밍의 요소가 결합된 멀티 패러다임 프로그래밍 언어이다. Scala는 확장 가능하다는 의미의 단어 'Scalable'에서 유래되었다. JRE(자바 실행 환경)와 서로 잘 호환되도록 설계되어 JVM(자바 가상 머신)에서 실행할 수 있고, Java 언어와도 호환된다.Scala는 Spring의 초대량 요청 처리에서의 한계를 극복하는 데 도움이 될 수 있다고 한다. 함수형 프로그래밍으로 불변성, 순수 함수를 강조하기 때문에 예측 가능한 코드를 작성할 수 있기 때문이다. 또한 강력한 타입 시스템으로 런타임 안정성을 높여주기도 한다. Scala에서 많이 사용되는 Akka 프레임워크는 액터 모델을 기반으로 하여 분산 시스템과 동시성 처리를 쉽게 할 수 있도록..

언어/Scala 2024.06.03

[MySQL] 소수점이 있는 금액의 타입은 float? float, double 절대 금지! decimal 또는 string로 지정하자!

글로벌 서비스에서 환전한 금액이 아닌 해당 통화의 금액으로 데이터를 저장해야 하는 상황이 생겨 소수점이 있는 금액 데이터에 대해 고려하며 알게 된 사실이다. 소수점이면 float나 double이겠지라고 생각하고 DB 칼럼의 타입을 지정했다가는 근사치 값으로 연산이 이뤄지는 불상사가 일어날 수 있다. 아래 사진에서와 같이 MySQL 문서에서도 아예 제목 옆에 'Approximate Value(근사값)'라고 적고 있다. [출처] https://dev.mysql.com/doc/refman/8.3/en/floating-point-types.html 보다 직관적으로 말하지면 부동소수점(float, double)의 경우 아래와 같이 저장되고 출력된다. 1. FLOAT에 16777217을 입력하면 16777216이 ..

언어/MySQL 2024.04.02

[MySQL] Cardinality는 항상 일정하지 않음? 인덱스를 다시 만드는 과정에서 새롭게 연산을 하며 매번 달라짐

칼럼의 중복도를 알 수 있는 Cardinality(중복도와 반비례)는 인덱스를 다시 만드는 과정에서 새롭게 연산을 하며 매번 달라진다는 사실..! 여러 칼럼을 인덱스로 생성할 때, Cardinality가 높은 -> 낮은 순으로 구성한다. https://stir.tistory.com/m/236 MYSQL INDEX 실무 활용기 우연히 INDEX를 실무에 (드디어)활용해 볼 기회가 생겨서 적어보는 글이다. INDEX에 관한 원리 및 설명은 여기를 참고. 문제의 쿼리 SELECT SQL_NO_CACHE * FROM USER WHERE add_id = '2bf-ad7c-1b24' 쿼리는 위와 같이 stir.tistory.com

언어/MySQL 2024.03.14

[MySQL] Server 프로그램 삭제하기

MySQL Server 삭제하기 1. MySQL Installer - Community 프로그램 실행 후 MySQL Server 선택하고 Remove 클릭 2. MySQL Server 선택하고 Next -> Next -> Execute 클릭 3. MySQL Server 삭제가 완료된 것을 확인할 수 있음 MySQL Server 재설치하기 https://boleesystem.tistory.com/261 [MySQL] 커뮤니티 에디션 설치(Community Edition Installer) □ MySQL 커뮤니티 에디션(무료 버전) 설치 - 아래 url을 통해 다운로드 받기 https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL Installe..

언어/MySQL 2022.12.04

[혼공스/SQL 기초] 5강. 데이터베이스 개체(인덱스, 뷰, 스토어드 프로시저)

목차 Chapter 02 실전용 SQL 미리 맛보기 02-3 데이터베이스 개체 02-3-1 인덱스 02-3-2 뷰 02-3-3 스토어드 프로시저 Chapter 02 실전용 SQL 미리 맛보기 02-3 데이터베이스 개체 데이터베이스에는 테이블, 인덱스, 뷰, 스토어드 프로시저, 트리거, 함수, 커서 등의 개체가 있음 인덱스(index)? - 책 뒤의 '찾아보기'와 비슷한 개념 - 데이터를 조회할 때 결과가 나오는 속도를 획기적으로 빠르게 해줌 뷰(view)? - 테이블과 상당히 동일한 성격의 데이터베이스 개체로 '가상의 테이블'임 - 실제 데이터를 가지고 있지 않으며, 진짜 테이블에 링크된 개념이라고 생각하면 됨 * 윈도우 운영 체제의 '바로 가기 아이콘'과 비슷한 개념 사용자 뷰에 접근 SELECT 문 ..

언어/SQL 2022.11.30

[MySQL / Workbench] 쿼리(query) 창 실행 방법

MySQL Workbench 툴을 이용해서 쿼리를 사용하는 방법을 보겠다. 쿼리(query)란? 데이터베이스에 보내는 요청(request) 또는 질문 * 출처 : TCP스쿨 MySQL 기초 [쿼리 사용 방법] 쿼리를 사용할 DB를 선택하고, SQL+ 아이콘을 클릭 'SHOW TABLES;' 명령어를 입력하고, 번개 아이콘 혹은 ctrl + enter키로 실행 결과창에 나오는 테이블을 통해 정상적으로 실행된다는 것을 확인할 수 있음

언어/MySQL 2022.11.30

[MySQL / Workbench] 열 플래그 의미(PK / NN / UQ / BIN / UN / ZF / AI / Default/Expression)? 제약조건!

[들어가며] MySQL 워크벤치에서 데이터를 만들 때 열(Column)에서 PK, NN, UQ, BIN, UN, ZF, AI, Default/Expression를 볼 수 있는데, 이는 제약 조건을 의미한다. 각각 어떤 의미인지 설명하고자 한다. [MySQL 제약조건] PK Primary key - 기본 키 (중복이나 빈값(NULL)이 들어올 수 없음) NN Not Null - Null(빈값)이 들어올 수 없음 B Binary - 데이터를 이진 문자열((010101)로 저장함 UN Unsigned data type - 부호 없음 (음수가 아닌 숫자만 해당) - INT, DOUBLE 등의 경우 UN을 사용하면 -값~+값의 범위인 경우 -값은 없어지고 +값만 2배로 늘어남 *예시 : 범위가 -50 ~ 50인 ..

언어/MySQL 2022.11.30

[혼공스/SQL 기초] 4강. 데이터베이스 만들기 (MySQL Workbench 이용)

목차 Chapter 02 실전용 SQL 미리 맛보기 02-2 데이터베이스 시작부터 끝까지 02-2-1 DBMS 설치하기 02-2-2 데이터베이스 만들기 02-2-3 테이블 만들기 : 열(세로) 이름, 데이터 형식 지정 02-2-4 데이터 입력하기 : 행(가로) 02-2-5 데이터 활용하기 Chapter 02 실전용 SQL 미리 맛보기 02-2 데이터베이스 시작부터 끝까지 02-2-1 DBMS 설치하기 * 생략 https://boleesystem.tistory.com/261 [MySQL] 커뮤니티 에디션 설치(Community Edition Installer) □ MySQL 커뮤니티 에디션(무료 버전) 설치 - 아래 url을 통해 다운로드 받기 https://dev.mysql.com/downloads/in..

언어/SQL 2022.11.30

[혼공스/SQL 기초] 3강. 데이터베이스 모델링

목차 Chapter 02 실전용 SQL 미리 맛보기 02-1 건물을 짓기 위한 설계도: 데이터베이스 모델링 02-1-1 프로젝트 진행 단계 02-1-2 데이터베이스 모델링 02-1-3 전체 데이터베이스 구성도 Chapter 02 실전용 SQL 미리 맛보기 02-1 건물을 짓기 위한 설계도: 데이터베이스 모델링 02-1-1 프로젝트 진행 단계 1) 프로젝트란? 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓은 과정 대규모 소프트웨어를 작성하기 위한 전체 과정 요즘에는 프로그램 규모가 커졌고, 사용자 눈높이가 높아져 소프트웨어에 요구하는 기능이 복잡해져 여러 명의 개발자가 절차에 따라 만듦 프로그램과 소프트웨어의 구분? * 단위 규모에 따라 구분하지만 대부분 상황에서 구분 없이 사용 - 소프트웨어 :..

언어/SQL 2022.11.30

[혼공스/SQL 기초] 1강. 데이터베이스 알아보기

목차 Chapter 01 데이터베이스와 SQL 01-1 데이터베이스 알아보기 01-1-1 데이터베이스와 DBMS 1) 데이터베이스(Database, DB)란? 01-1-2 DBMS의 발전 과정 1) DBMS(Database Management System)란? 2) DBMS 종류? 01-1-3 DBMS의 분류 01-1-4 DBMS에서 사용되는 언어: SQL Chapter 01 데이터베이스와 SQL 01-1 데이터베이스 알아보기 01-1-1 데이터베이스와 DBMS 1) 데이터베이스(Database, DB)란? 데이터의 집합 대용량을 사용할 수 있고, 동시에 여러 사용자가 접근할 수 있음 01-1-2 DBMS의 발전 과정 1) DBMS(Database Management System)란? 데이터베이스를 관리..

언어/SQL 2022.11.30