Amazon Linux 2023에서 MySQL 설치시, 다음 과정이 필요합니다. ▼ 1. RPM 파일 다운로드 ▼ 2. GPG 퍼블릭 키 설정 ▼ 3. 퍼블릭키 import - 모든 시스템 패키지를 최신 버전으로 업데이트하라는 명령- 자동으로 업데이트를 진행하고, 중간에 확인을 요구하지 않음 ▼ 4. MySQL 설치 mysql-client 설치 mysql-server 설치
eventChangedNotification 최근에 스위프트 UI 프로젝트를 진행하고 있습니다. 또한 새롭게 나온 SwiftData 를 적용하면서 여러가지 문제를 해결해 가고 있던 중 CloudKit 동기화까지 진행하게 되었습니다. SwiftData 가 효율적이고 좋은 것은 맞는 것 같지만 너무 자료가 없고 사용자체가 너무 추상화 되어 있기 때문에 세세한 컨트롤이 좀 어렵다고 생각합니다. 물론 제가 그걸 몰라서 그렇긴 하겠지만요. 첫 번째 난관이 Cloud 킷의 로드 완료 이벤트를 알고 싶었는데 해결이 되서 블로그에 남깁니다. ▼ 우선 이벤트 수신을 위해서 @State 로 다음 변수를 선언합니다. eventChangedNotification 는 이벤트가 변경될 때 마다 수신하게 됩니다. @State pr..
INSERT 문 MySQL에서 INSERT 문은 Database에 새로운 행(레코드)를 추가하는 구문입니다. 데이터베이스에 값을 입력하는 기능을 하는 문장 정도로 생각하시면 됩니다. INSERT 구문의 기본적인 형태는 다음과 같습니다. 테이블명에 데이터를 삽입하기 위한 테이블을 기입하고 각 컬럽과 이에 대응하는 값을 VALUES 에 나열하면 됩니다. INSERT INTO 테이블명 (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); INSERT 문 예제 학생이라는 테이블이 있고 학생의 이름, 나이, 이메일을 삽입하는 예제를 만들어보겠습니다. INSERT INTO students (name, email, age) VALUES ('장발..
테스트 환경 및 mariadb 버전 10.6.12-MariaDB-0ubuntu0.22.04.1 Failed to Connect to MySQL at \[server ip:3306\] with user ... 데이터베이스에 연결시 문제가 되면 위와 같은 에러를 확인할 수 있습니다. 사용자가 외부에서 접근할 수 있도록 권한을 주었다고 하더라도 mysql이나 mariadb 의 경우 bind-address에 대한 설정을 해주어야 합니다. 다만 대부분의 예제가 mysql 기준으로 되어 있고 mariadb도 이전 버전의 설치 경로로 설명되어 있어 비교적 최신 버전인 10.6.12 버전에서 bind-address 설정하는 방법을 알아보겠습니다. mariadb의 ip 대역을 확인하려면 다음과 같이 netstat 명령을..
집합함수 집합함수는 다음과 같은 특징이 있습니다. 집합함수는 값을 계산해서 하나의 값으로 반환하는 함수입니다. 보통 group by 자주 같이 사용됩니다. where 절에서 바로 사용할 수 없기 때문에 group by 이후에 having 또는 서브쿼리를 사용합니다. 함수 리턴타입 설명 count Long 개수를 구함 max, min Long 최대, 최소값 구함 avg Double 평균 구함 sum Long 합 구함 ▼ 예제의 Player 엔티티는 Team 엔티티와 관계하고 있습니다. ▼ max, min, avg, sum은 해당 값이 존재하지 않는 경우 null을 값으로 리턴합니다. 다음과 같이 TypedQuery를 생성해서 getSingleResult() 메서드를 실행하면 각각 salary의 평균과 최고..
JPQL 특정 속성 조회 JPQL 을 사용할 때 select 절에 선택한 대상이 두 개 이상일 때 결과 타입은 Object 배열이 됩니다. select 결과가 Object 배열이므로 getResultList() 메서드가 리턴한 List에 담긴 데이터도 Object 배열입니다. JPQL 특정 객체로 속성 조회 Object 배열을 사용해서 데이터를 조회하면 형변환이 필요하며 해당 객체를 사용하기 불편해집니다. 그래서 클래스를 만들어 새로운 객체에 대입하면 조회시 해당 클래스에 맞게 객체가 생성됩니다. 우선 다음과 같이 조회될 객체에서 필요한 속성을 포함한 클래스를 선언합니다. select 구분에 새로운 객체를 할당하고 데이터를 조회합니다.
스키마 생성 ▼ 새로운 스키마(데이터베이스)를 생성합니다. 사용자 관리 ▼ 사용자를 생성하고 권한을 부여합니다. ▼ 사용자의 비밀번호를 변경합니다. ▼ 사용자를 삭제합나다. ▼ 사용자의 권한 정보를 확인합니다. 사용자 관리 실습 ▼ 마지막으로 다음 조건에서 사용자를 생성하고 권한을 부여해보겠습니다. manager 계정을 만듭니다. IP 주소 (HOST) 192.168.0.77 에서 접근합니다. mydb에 모든 데이터베이스 권한을 부여합니다. 비밀번호를 paasword12 로 지정합니다. ▼ 해당 사용자가 데이터베이스에 추가되었는지 확인합니다.
DataGrip 데이터 덤프 ▼ 데이터 그립을 이용해서 데이터 dump를 해보겠습니다. 우선 데이터를 복사할 스키마를 선택하고 오른쪽 버튼을 눌러서 메뉴를 불러옵니다. 그리고 Export Data to File 이라는 메뉴를 선택합니다. ▼ Extrator 항목에서 SQL Inserts 를 선택합니다. 이밖에도 CSV 나 JSON 같은 다양한 옵션을 선택할 수 있습니다. 만약 RDBM 데이터를 NOSQL 쪽으로 옮길때 JSON을 사용하면 유용할 것 같습니다. 엑셀을 사용할 때는 CSV를 사용하기 좋겠네요. 그밖에 Add table definition을 선택하면 DDL 구문이 만들어지는 것을 볼 수 있습니다. 오른쪽에 프리뷰는 실제 데이터가 아니라 이렇게 구성된다는 것을 보여주는 예시입니다.
Spring Boot에서 JPA를 사용하면 다양한 데이터베이스를 연결할 수 있습니다. 평소 개발할 때는 H2로 연결해서 개발할 수도 있고 실제 배포에는 오라클이나 MySQL을 이용할 수도 있습니다. MySQL 커뮤니티 버전이 아닌 MariaDB 오픈소스도 MySQL과 사용법은 비슷하지만 JPA 연결 시 드라이버(driver) 설정이 다릅니다. 오늘은 각각 많이 사용하는 MySQL과 MariaDB의 연결 설정에 대해서 알아보겠습니다. MVN Repository 사용시 이미 만들어진 프로젝트에 드라이버와 JPA를 설치하려면 MVN 레파지토리 사이트에서 검색한 후에 그래들 파일에 추가하는 것이 편리합니다. ▼ 우선 https://mvnrepository.com 사이트에서 필요한 드라이버를 검색해보겠습니다. 검..
MySQL 커뮤니티 버전 MySQL은 세계에서 가장 많이 사용하는 오픈소스 RDBMS입니다. 1995년에 최초 개발되었으며 코드가 공개되어 있어 누구나 다운로드하여 사용할 수 있는 데이터베이스 관리 툴입니다. 무료에도 불구하고 처리 속도가 빠르고 설치가 쉽습니다. 대용랑 데이터 처리까지 가능하며 보통 소규모 조직에서 저비용으로 시스템을 구축할 때 적합한 DBMS입니다. 전세계적으로 1천만대 이상의 서버가 운영되고 있으며 오라클과 함께 가장 많이 사용되는 DB 중에 하나입니다. 다만 2010년에 오라클에 인수되었지만 현재도 오픈소스 정책은 유지되고 있으며 리눅스나 맥, 윈도우에서 모두 사용할 수 있고 다양한 프로그래밍 언어에서도 적용이 가능한 범용 데이터베이스입니다. MySQL 제품 분류 구분 제품명 특징..
SwiftyUserDefaults는 사용자 기본값을 쉽게 사용할 수 있는 오픈소스입니다. 키값을 한 곳에서 저장하고 관리할 수 있어서 편리합니다. UserDefaults 값은 사실 문자열로 관리하기 때문에 실수할 가능성도 높고 전역적으로 값을 관리하다 보면 실수할 가능성도 높습니다. 그래서 보통은 관련 매니저 클래스를 만들어서 한 곳에서 관리할 수 있게 하는게 보통입니다. 하지만 SwiftyUserDefaults 를 사용하면 조금 쉽게 모든 과정을 자동화 할 수 있습니다. 키 값 정의 ▼ 다음과 같이 키값은 기본 타입 또는 옵셔널 타입으로 지정할 수 있습니다. SwiftyUserDefaults 사용법 ▼ 사용법은 다음과 같습니다. ▼ 만약 스위프트 5.1 버전 이상을 사용한다면 다음 처럼 쉽게 접근이 ..
평소에 JetBrain사에 DataGrip IDE로 데이터베이스를 접속해서 관리하고 있습니다. 하지만 MySQL Workbench로도 작업을 하는 경우가 많이 있는데요. 오늘은 데이터베이스를 ERD 다이어그램으로 변경하는 방법을 알아보겠습니다. MySQL Workbench에 모델링(Modeling) 툴을 사용하면 테이블을 쉽게 관리할 수 있습니다. ERD 다이어그램 ERD (Entity Relationship Diagram) 이란 E-R 다이어그램이라고 하며 보통 ERD 라고 말합니다. ERD란 데이터베이스의 관계를 도표로 나타낸 것이라고 할 수 있는데요. 여러개의 테이블을 관리하다보면 단순히 코드로만 생각하기 어려울 때가 있습니다. 때문에 모델링 툴로 관계를 생각하면서 디자인을 할 수 있습니다. MyS..