본문 바로가기

전체 글123

[MYSQL] JOIN 알고리즘 용어 다수의 테이블에서 JOIN을 수행할 때 동시에 여러 개의 테이블에 접근할 수 없는 만큼 접근하는 우선순위를 정하게 됨 드라이빙 테이블과 드리븐 테이블 학생 정보가 저장된 학생 테이블, 학생가족 정보가 저장된 비상연락망 테이블이 있다고 가정 학생의 학번이 1과 100에 해당할 때만 학생정보와 비상연락망 정보를 조회하는 SQL문 SELECT 학생.학번, 학생.이름, 비상연락망.관계, 비강연락망.연락처 FROM 학생 JOIN 비상연락망 ON 학생.학번 = 비상연락망.학번 WHERE 학생.학번 IN (1, 100) 1. 학생 테이블의 데이터 찾기 - 학생.학번 IN (1, 100) 2. 비상연락망 테이블에서 학번 1과 100 검색 드라이빙 테이블(outer table) : 학생 테이블 (먼저 접근) 드리븐 테.. 2023. 6. 28.
[MYSQL] JOIN 연산방식 용어 JOIN 방식 다수의 테이블의 필요한 데이터끼리 결합할 때 JOIN 방식을 사용 분리된 데이터 간의 공통된 정보, 즉 동일한 열값 또는 키값 기준으로 데이터를 논리적으로 연결할 수 있음 예제 참고 테이블 내부 조인 (Inner JOIN) 내부조인(inner join)은 교집합에 해당하는 방식 양쪽에 모두 존재하는 데이터만 반환 SELECT 학생.학번, 학생.이름, 지도교수.교수명 FROM 학생 JOIN 지도교수 ON 학생.학번 = 지도교수.학번 JOIN 키워드에는 JOIN 대상 테이블을 작성하고 ON 절에는 JOIN 할 비교 조건을 작성 (inner 생략 가능) 암시적 JOIN (내부 조인 결과 동일) SELECT 학생.학번, 학생.이름, 지도교수.교수명 FROM 학생, 지도교수 WHERE 학생.학번 .. 2023. 6. 27.
[MYSQL] 서브쿼리 위치, 메인쿼리와의 관계성, 반환 결과에 따른 SQL 용어 서브쿼리 위치에 따른 SQL 용어 서브쿼리(subquery)란 쿼리 안의 보조쿼리를 가리키는 용어 가장 바깥쪽의 SELECT 문인 메인쿼리(main query)를 기준으로 내부에 SELECT문을 추가로 작성해서 서브쿼리를 생성 작성하는 위치는 크게 SELECT 절, FROM 절, WHERE 절로 구분 스칼라 서브쿼리 메인쿼리의 SELECT 절 내부에 하나의 숫자나 문자, 기호 등을 출력하는 SELECT 문 메인쿼리의 SELECT 절에는 최총 출력하려는 열들이 나열되므로, 출력 데이터 1건과 스칼라 서브쿼리의 결과 건수가 일치해야 함. 즉, 스칼라 서브쿼리의 결과값은 1행 1열의 구조로 출력이 되어야 함 스칼라 서브쿼리는 출력되는 데이터 건수가 1건이어야 하므로 집계함수(max,min,avg,sum,cou.. 2023. 6. 26.
[MYSQL] DB 엔진, SQL 프로세스 용어 DB 엔진 용어 1. 사용자가 DB에서 원하는 데이터를 가져오기 위해 SQL문 실행 2. 실행된 SQL문은 MYSQL 엔진에서 문법에러 체크, DB에 존재하는 테이블 대상으로 SQL문을 작성했는지 여부 등 다양한 문법 및 구문 검사 (파싱작업을 하는 파서(parser 역할) 3. 요청한 데이터를 빠르고 효율적으로 찾아가는 전략적 계획 수립(옵티마이저(optimizer 역할) 4. 스토리 엔진에 위치한 데이터까지 찾아간 뒤 해당 데이터를 MYSQL 엔진으로 전달 5. 불필요한 부분을 필터링(제거, 변경)하고 필요한 연산을 수행한 뒤 사용자에게 최종 결과 전달 스토리지 엔진 - (InnoDB, MyISAM, Memory 등) 스토리지 엔진은 사용자가 요청한 SQL문을 토대로 DB에 저장된 디스크나 메모리에서.. 2023. 6. 25.
[PostgresSQL] PostgresSQL, pgAdmin 설치 (for Mac) PostgresSQL 설치 (for Mac) Postgres.app 사이트에서 Latest Release 된 버전을 다운로드 한다. (2023-06-19 기준 - 15.3 버전) 설치 후 PostgreSQL15를 Start 해준다. PostgreSQL15 실행 (Not running → Running) pgAdmin4 설치 (for Mac) pgAdmin 사이트에서 macOS를 선택한다. 제일 최근 Release 된 버전을 다운받는다. (2023-06-19 기준 - 4 v7.3 버전) 다운로드 후 설치한다. 데이터베이스 생성 (pgAdmin4 이용) 서버를 새로 생성해준다. 서버 이름을 작성하고, Connection 탭으로 이동한다. Host name/address 부분에 localhost 입력, 비밀번.. 2023. 6. 19.
[AWS] EC2 - 실제 개발 환경 초기 개발 구조 초기에는 시니어 개발자가 혼자서 EC2에서 개발을 진행하고, development와 production 디렉토리로 구분된 구조를 사용했다. 웹 애플리케이션은 ejs template 엔진, node.js, express 프레임워크, mysql 데이터베이스로 구성되어 있고, 서버 운영을 위해 pm2를 사용하고 있다. 데이터베이스는 외부에 있는 카페24 호스팅 서버에 위치하고 있다. 개발 환경(development)에서는 dev-DB를 참조하고, 운영 환경(production)에서는 prod-DB를 참조하고 있다. (config.json에서 설정) 현재 시니어 개발자를 제외한 4명의 개발자가 함께 작업하고 있으며, 효율적인 협업 환경을 구축해야만 했다. 현재 개발 구조 현재 회사에서는 개인 E.. 2023. 5. 30.