분류 전체보기 196

Spring Boot) 개발환경 셋팅 / Spring Boot 3 프로젝트 생성

1. IntelliJ community edition 에디터 설치  구글에 검색해서 IntelliJ community edition을 설치합시다.개발환경 셋팅을 덜해도 되고 디자인 깔끔한 에디터라 이걸 쓸 것인데무료버전이라 HTML, CSS, JavaScript 하이라이트가 안되고 코드변경시 자동 재실행도 잘 안되는 단점이 있는데 못 쓸 정도는 아닙니다.꼬우면 한달에 20달러 내고 ultimate edition 이라고 유료버전 씁시다.아마 대학생이면 Jetbrains 사이트에서 무료로 키 발급이 가능합니다.아무튼 설치 끝났으면 기념으로 에디터 열어봅시다.     2. Spring initializr 에서 프로젝트 만들기 에디터 유료버전이면 에디터에서 Spring boot 프로젝트를 만들 수 있긴 한데 우..

spring Boot 2024.09.09

Spring Boot) Spring Boot 왜 쓰는데

서버만들 수 있는 언어와 프레임워크는 수백개 있습니다. 빠른 비동기처리 서버를 만들고 싶으면 Node.js가 편하고AI 서비스에 붙일 서버가 필요하면 Python이 편하고그냥 리액트가 좋으면 Next.js 쓰면 되고성능과 동시성 좋아하면 Erlang류, Rust, Go 이런걸 쓰면 되는데근데 밥벌어먹으려면 어쩌겠습니까 한국에서 가장 많이 쓰는 Spring Boot 해야 취업길이 조금이라도 더 넓습니다.     안어려움 Java라는 언어는 코드 정리와 재사용을 강요하는 역사깊은 언어입니다.class가 많이 등장해서 class 관련 문법들을 어려워하는 분들이 있는데강의에서 다루는 문법들의 원리랑 목적만 이해하면 딱히 어려울게 없습니다. Spring Boot는 서버 만드는 프레임워크입니다.코드를 짠다기보다 배..

spring Boot 2024.09.09

DBeaver(디비버) Public Key Retrieval is not allowed 에러

DBeaver(디비버) Public Key Retrieval is not allowed 에러디비버에서 MySQL 데이터베이스 접속을 잘하다가 갑자기 Public Key Retrieval is not allowed 에러를 만났다. MySQL의 8.x 버전 이후부터 발생하는 문제라고 한다.  해결방법지우고 다시 연결할 것 없이 접속하고자 하는 connection을 클릭하고 우클릭한 뒤, Edit Connection을 클릭한다. 클릭 후 나오는 창에서 Driver properties 탭에 들어가서 allowPublicKeyRetrieval의 값을 TRUE로 변경해준뒤 확인 버튼을 누르면 해결된다!

오류해결 2024.09.09

DBeaver)서버에서 DB 사용하려면 (nodejs 환경)

실제로 데이터베이스 하나만 가지고 단독으로 뭔가 하는 경우는 거의 없습니다.데이터베이스는 대부분 웹/앱서비스, 게임같은 다양한 프로그램들의 데이터 저장소로 사용되므로 항상 프로그래밍언어로 DB를 조작하는 경우가 많습니다.  그래서 프로그래밍 언어로 DB를 어떻게 조작할 수 있는지 알아봅시다. 가장 쉬운 자바스크립트라는 언어를 사용해볼텐데 나는 자바스크립트나 프로그래밍 그런거 모르면 몰라도 됩니다.         그래서 웹서비스를 운영하는데 DB 입출력 어떻게 합니까 님들이 웹서비스를 운영하는데 갑자기 회원가입용 데이터베이스가 필요해진겁니다. 거기에 회원 아이디, 이름, 비번을 저장해두고 싶은겁니다. 그럼 고객들이 직접 데이터베이스에 아이디, 비번을 INSERT문으로 집어넣을 수 있게 만들면 되겠군요?  ..

Mysql&DBeaver 2024.09.08

DBeaver) 엔티티 관계도 쉽게 잘그리는 법 (ERD)

DB를 설계할 때 정규화로 테이블을 쪼개놓으면 좋다고 했습니다. 하지만 테이블을 그런 식으로 100개 만들어놓으면나중에 테이블 하나를 보고있을 때 이게 어떤 용도의 테이블인지 판단하기 어렵습니다. 그래서 테이블들의 관계를 도식화해서 그려놓기도 하는데 이걸 엔티티 관계도 (ERD) 라고 부릅니다.     ▲ 대충 이렇게 생겼습니다. 새로운 기능 만들 때 DB설계를 위해 ERD부터 그리라고 요구하는 사람이 있기도 하고 JOIN연산같은거 할 때 관계를 한 눈에 파악할 때도 ERD를 찾기도 합니다. 아무튼 ERD 그리는 법을 알아봅시다. 직접 종이에 그려도 되고 아니면 무료 온라인 ERD 그리기 프로그램들도 많습니다. ERD그리면 DDL 문법으로 바꿔주는 곳들도 있음       DBeaver에서는 자동으로 그려..

Mysql&DBeaver 2024.09.08

DBeaver)Trigger 사용하기

DBMS 보면 Trigger 메뉴가 있습니다.어디다 쓰는 것이냐면 데이터베이스에 INSERT UPDATE DELETE 하기 전에자동으로 실행하고 싶은 코드가 있으면 Trigger 메뉴 들어가서 설정해놓으면 됩니다. 그럼 정말 자동으로 실행되는데  - 데이터를 다른 테이블에 반영하고 싶을 때- 데이터 넣기 전에 데이터를 깔끔하게 정제하고 싶을 때 - 테이블 변경기록 (로그)를 다른 테이블에 저장해두고 싶을 때- 테이블의 통계를 다른 테이블에 저장해두고 싶을 때 대충 이런 경우에 사용하면 편리합니다.      테이블 2개 준비해봅시다  예를 들어 product 테이블과 counter 테이블이 있다고 칩시다.  ▲ product 테이블은 그냥 상품저장용임 상품도 하나 저장해봅시다.   ▲ 이건 counter ..

Mysql&DBeaver 2024.09.08

DBeaver)데이터베이스 필요하면 빌려쓰는 것도 (AWS)

(변경사항)올해부터 RDS를 '퍼블릭 액세스 허용'으로 사용시 Public IPv4 사용요금 명목으로 월 3달러정도 추가요금이 발생해서한 번 만들어보고 안쓰면 삭제합시다.이외엔 Azure가면 MySQL 유동서버 이런 것들도 만들기 쉬운데 IPv4 이용요금은 없고아니면 Supabase 가면 무료로 PostgreSQL 500MB 호스팅받을 수 있습니다.    강의 맨 처음에 했던 것 처럼 MySQL을 컴퓨터에 설치하면여러분 컴퓨터에서 데이터베이스를 이용할 수 있습니다.근데 개발자 마케터 등 회사 내 많은 사람들이 이용하게 하고 싶으면데이터베이스를 직접 컴퓨터에 설치하는 것 보다 AWS, GCP 같은 클라우드서비스에서 하나 호스팅받는게 훨씬 안전합니다. - 자동 백업- 자동 스케일업- 모니터링 - 로그작성 -..

Mysql&DBeaver 2024.09.08

DBeaver)돈 다루다가 큰일나기 싫으면 Transaction

데이터베이스를 너무 믿으면 안됩니다.간혹가다 INSERT, UPDATE, DELETE가 안되고 실패하는 경우가 많은데 그럼 뭐 다시 시도하면 되긴 합니다만 동시에 여러 쿼리를 실행해야하는데 그 중에 하나만 실패하는 경우여러분들 서비스 운영에 심각한 문제가 발생하는 경우가 있습니다.  예를 들어 여러분이 은행 DB를 운영하는데A 고객 -> B 고객 이렇게 1000원을 보내야한다고 칩시다. 1. 그럼 A 고객의 잔고에서 -1000을 하고 2. B 고객의 잔고에 +1000을 하면 됩니다. UPDATE 문법을 2번 쓰면 되겠군요.  근데 1번은 성공했는데 2번은 실패하면 어떻게되죠? 은행 문닫아야합니다. 문닫기 싫으면 transaction이라는 기능을 사용합시다.       Transaction 기능 위와 같은..

Mysql&DBeaver 2024.09.08

DBeaver)진짜 검색기능은 Full Text search

여러분이 게시판 서비스를 운영한다고 칩시다.그래서 테이블 하나에 게시물의 글내용, 작성자, 발행일을 저장하기 시작했는데  검색기능이 필요해진겁니다. 검색기능은 어떻게 구현하죠?    LIKE 연산자 예전에 간단한 검색기능 만들고 싶으면 컬럼명 LIKE %단어% 하면 된다고 했습니다.짧은 문장 안에서 검색하는건 이걸로 충분하지만 1. % 기호를 맨 앞에 쓰면 인덱스활용을 못하고2. 문장이 좀 길거나 행이 너무 많아지면 LIKE 만으로는 매우 느리게 동작합니다.하지만 full text index를 만들어두면 걱정없습니다.       Full text search를 위한 index  긴 글도 데이터베이스의 컬럼 하나에 보관할 수 있습니다. text 데이터타입 쓰면 6만5천자를 보관할 수 있으니까요. 이렇게 긴..

Mysql&DBeaver 2024.09.08

DBeaver)index 만들기 / 성능평가

index 만들어두면 성능이 향상된다고 했는데 빨리 강의하단에 있는 library.csv 파일 가져와서 얼마나 SELECT 성능이 향상되는지 테스트해봅시다.어떤 도서관의 소장도서 6만권의 정보가 들어있는 데이터셋입니다.   ▲ 근데 csv파일 가져오기할 때 Configure 메뉴에서 데이터타입을 varchar(300) 이상으로 설정해야 잘 가져올 수 있습니다.책이랑 저자 이름 긴게 좀 많아서요         execution plan (실행계획) 분석해보기  SELECT * FROM library WHERE 등록번호 = 'CEM97499' 방금 가져온 테이블에서 책 아무거나 하나만 출력해봅시다. 근데 뭔가 오래걸리는 것 같으면 실행계획부터 분석해봐도 됩니다.   원하는 SELECT 쿼리문에 커서 찍고 D..

Mysql&DBeaver 2024.09.08