정말 기본적인 생각임에도 불구하고, 처음부터 다시 생각해보는 의미로 작성하게 되었다.SQL에서 JOIN을 사용할 때 ON 조건을 작성하는 방식은 개발자마다 다를 수 있다. 하지만 드라이빙 테이블(Driving Table)을 JOIN 조건의 좌변에 두는 것이 더 좋은지에 대한 고민은 필요하다.이번 글에서는 드라이빙 테이블의 개념과 JOIN 조건에서 좌변과 우변의 차이를 살펴보고, 어떤 방식이 가독성과 유지보수에 유리한지 정리해 보았다.1. 드라이빙 테이블이란?JOIN이 실행될 때, SQL 옵티마이저는 어떤 테이블을 기준으로 다른 테이블과 매칭할지 결정한다. 이때 먼저 처리되는 테이블을 드라이빙 테이블(Driving Table) 이라고 한다.예제를 살펴보겠다.SELECT o.order_id, o.order_..
데이터베이스를 공부하면서 데이터베이스와 인스턴스, 그리고 하드웨어 코어위에 어떻게 올라가서 돌아가는지 궁금해져서 찾아보게 되었다.물리적 하드웨어 코어, 하이퍼스레딩, 멀티스레딩, 멀티프로세싱이냐 멀티스레딩이냐 에 대한 개념들도 나오게 되었고, 오라클(Oracle)과 MySQL이 각각 어떤 방식을 쓰는지, 그리고 그게 실제 성능에 어떤 영향을 주는지 알아려고 한다. → DBMS는 기본적으로 여러 코어를 활용하며, 코어 수에 따라 성능이 좌우된다.근데 잠깐, 멀티프로세싱이랑 멀티스레딩이 뭐야? 🤔1. 멀티프로세싱 vs 멀티스레딩, 뭐가 다른데?1) 멀티프로세싱 (Multi-processing)쉽게 말해서 여러 개의 독립된 프로세스를 만들어서 동시에 작업하는 방식프로세스끼리는 메모리를 따로 갖고 있어서 안전..

객체 모델링은 요구사항관리인 유스케이스 다이어그램부터 클래스 다이어그램까지 작성하는 것이다.유스케이스 다이어그램유스케이스 다이어그램은 먼저 개발하고자 하는 시스템의 대표 기능을 검색해서 작성한다.모든 기능을 다 유스케이스로 뽑아내지 않아야 한다.유스케이스의 범위는 하나의 기능이며 이는 서브 시스템 정도이다.클래스 다이어그램클래스 다이어그램에서 클래스는 유스 케이스 기반으로 식별한다.클래스는 객체들의 분류한 기준이다.클래스는 기능을 기반으로 추출해야 한다.유스케이스 다이어그램 작성 방법유스케이스는 개발할 시스템을 기준으로 시스템 밖의 액터를 기준으로 시스템 내부의 서브 시스템의 기능인 유스케이스를 찾아서 정리한다. 시스템 (Systems)개발하고자 하는 것 그 자체이며, 웹사이트가 될 수도 있고, 소프트..

1. 아래 사이트에서 MySQL설치파일을 내려받습니다. MySQL :: Download MySQL InstallerNote: MySQL 8.0 is the final series with MySQL Installer. As of MySQL 8.1, use a MySQL product's MSI or Zip archive for installation. MySQL Server 8.1 and higher also bundle MySQL Configurator, a tool that helps configure MySQL Server.dev.mysql.com 2. 다운로드한 파일 실행하여 설치를 시작합니다. 3. 저는 기존에 workbench가 설치되어있어 관련 upgrade를 진행 한 후 아래와 같은 창이 ..

프로그래밍이나 데이터 관련 공부를 하다보면 관련 용어들이 많이 등장하는데 용어들이 서로 비슷하기도 하고 서로간에 어떠한 관계가 있는지 정리할 필요성을 느껴 기록하게 되었다. 용어들이 점차 확장되도록 정리하려고 했다. 데이터란 ?데이터는 실세계의 가공되지 않는 모든 자료들을 말한다.우리는 실세계에서 가공되지 않은 자료들이 넘쳐나는 시대에 살고 있는데, 그 중에는 우리에게 유의미한 자료들도 있을것이고, 필요하지 않은 무의미한 정보들도 섞여 있을 것이다.정보란 ?그 많은 데이터들 중 우리에게 쓸모있고 의미있는 내용으로 추출하고 가공하여 체계적으로 조직한 데이터를 의미한다.데이터베이스(Database, DB) 란 무엇일까 ? 한마디로 '데이터의 집합'이라고 할 수 있다. 위에서 얘기한 수많은 방대한 데이터들을..

자바로 백업모듈을 만들어야 했는데, 자바에서 pg_dump를 실행해 sql파일을 떨구는 일이다.우리가 가져가고자 하는 백업 프로세스를 간단히 말하자면전체백업은 하루에 한번, 특정 테이블 데이터는 데이터특성에 따른 주기별로 1) 기존 백업스키마 데이터 삭제2) 백업테이블 갱신3) 백업스키마 sql 백업4) DB 전체 sql 백업순으로 이루어 진다.기존에는 리눅스에 쉘스크립트 생성후 cron으로 돌려 파일백업, 전체백업을 진행했는데 이번에는 자바모듈안에서 해결했으면 좋겠다고 하셨다. 백업모듈은 데몬으로 돌아야하는데, 이렇게 실행하나 저렇게 실행하나 데몬역할을 하는거라고 보면 된다고 하셨는데, 서비스로 띄우는것과 약간 차이가 있지 않나 더 알아봐야 할 것 같다.이 작업을 하기 위해 자바에서 커맨드명령어를 날려..

업무에서 리눅스 서버 설치, 서비스 배포 등 다룰일이 있어서, 관련 지식을 갖출 겸 공부를 해야겠다고 생각하고리눅스 마스터 2급 시험을 신청하게 되었다. 리눅스마스터 시험은 1차, 2차에 걸쳐 시행된다.1차는 온라인(오픈북)시험, 2차는 우리가 익히 아는 실기 시험장에 가서 치루는 CBT 시험으로 이루어진다.나도 시험을 치루기 전 가장 단기간에 효율적으로 공부하기 위한 방법을 찾아봤고, 다행히도 1차, 2차 모두 합격했고, 빠르게 준비해서 시험을 치루고자 하는 이들을 위해 공부하는 법을 공유하고자 한다.사실 특별한 방법은 없다. 1차 시험준비필요 X1차시험은 집에서 pc로 시험을 치면 된다. 오픈북 시험이라고 봐도 무방하다.인터넷에 리눅스마스터 2급 족보 를 검색하면 이것저것 많이 나온다. 족보들을 모아..
- Total
- Today
- Yesterday
- 멀티스레딩
- 인덱스
- 시큐리티
- Oracle
- node
- 스프링 빈
- 한입크기로 잘라먹는 리액트
- 자바스크립트
- EC2
- 코드로 배우는 스프링 웹 프로젝트
- MySQL
- 데브캠프
- React
- 리액트
- Spark
- JavaScript
- SQL
- @Configuration
- 스프링의정석
- 스프링
- 이정환
- Node.js
- AWS
- 남궁성
- 자바의정석
- 스프링 프로젝트
- spring
- 친절한SQL튜닝
- 데이터베이스
- 옵티마이저
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |