BACKEND/공부
9
SQL :: 중복 제거 (Group by, Distinct)
2024.04.22
오라클(Oracle)에서 데이터를 조회할 때, 중복 제거하는 방법으로는1. distinct 를 거는 방법 과 2. group by 절을 사용하는 방법이 있다. Group by- Group by 는 데이터들을 원하는 그룹으로 나눌 수 있음.- 나누고자 하는 그룹의 컬럼명을 SELECT절과 GROUP BY절 뒤에 추가하면 됨.- 집계함수와 함께 사용하는 상수는 GROUP BY절에 추가하지 않아도 됨.SELECT deptno 부서번호, COUNT(*) 사원수 FROM emp GROUP BY deptno ORDER BY COUNT(*) DESC; Distinct - 중복된 행을 제거하고 데이터를 추출하기 위한 용도로 사용.SELECT distinct deptno 부서번호, COUN..
SQL :: ANSI JOIN 과 Oracle JOIN
1
2024.04.19
평소 mssql 밖에 접할 일이 없어서 오라클 문법은 생소한데...조인을 걸 때 (+) 로 표기하는 경우가 있었다.이게 뭔가 하고 찾아보니 우리가 기존에 사용하는 outer join, inner join, left join 등 지정하여 사용하는 것은 ANSI JOIN 이라고 하고(+)를 사용하여 조인 종류를 지정하는 것은 Oracle JOIN 이라고 한단다.. 들어가기에 앞서 SQL JOIN의 종류부터 알아보자. JOIN 의 종류* INNER JOIN* LEFT OUTER JOIN* RIGHT OUTER JOIN* CROSS JOIN* FULL OUTER JOIN 이렇게 있는데 보통 많이 사용하는 건INNER JOIN 과 LEFT/RIGHT OUTER JOIN 정도가 되시겠다..

SQL :: 옵티마이저 조인(Optimizer Join)
2023.09.13
Nested Loop 조인 - 하나의 테이블에서 데이터를 먼저 찾고, 그 다음 테이블은 조인하는 방식 - 먼저 조회 되는 테이블을 Outer Table 이라고 하고, 그 다음 조회되는 테이블을 Inner Table. 코딩 형태로 설정해보자면... for(i=0; i

SQL :: 데이터베이스 옵티마이저(Optimizer)
2023.09.13
Database Optimizer 란? SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해주는 DBMS 내부의 핵심 엔진 옵티마이저의 SQL 최적화 과정 1. 사용자가 던진 쿼리 수행을 위하여, 후보군이 될 만한 실행계획을 찾는다. 2. 데이터 딕셔너리(Data Dictionary)에 미리 수집해 놓은 오브젝트 통계 및 시스템 통계 정보를 이용해 각 실행 계획의 예상 비용을 산정한다. 3. 각 실행계획을 비교하여 최저 비용을 갖는 하나를 선택한다. 옵티마이저의 필요성 - 작성한 SQL문을 어떤 식으로 실행하느냐에 따라 성능이 달라진다. - 옵티마이저가 비효율적으로 실행 계획을 수립하면, SQL 개발자는 SQL을 개선해야 한다. - 옵티마이저에게 실행 계획을 변경하도록 요청할 수 있는데 이때..

WAS와 Tomcat vs. Jetty ?
2023.08.21
Spring 에서 사용되는 WAS(Web Application Server)의 종류인 Tomcat 과 Jetty. 각각이 무엇인지 그리고 차이점은 어떤 것이 있는지 알아보도록 하자. WAS(Web Application Server) ? - 웹 애플리케이션과 서버 환경을 만들어서 동작시키는 기능을 제공하는 소프트웨어 프레임웤,. - 인터넷상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진) - 동적 서버 콘텐츠를 수행하며, 주로 DB 서버와 같이 수행됨. - Java Web Application 을 실행하기 위해 서버에 필요한 기능들이 있는데, 이런 것들을 제공하는 것이 WAS. WAS(Web Application Server) 가 하는 일 1. servlet ..

ODS 란 무엇인가?
2023.08.03
ODS(Operation DataStore) 란 무엇인가? 운영 데이터를 저장하는 곳. (운영계는 아님) 운영계에 존재하는 데이터가 아니라 DW(Data Warehouse)를 위해 운영 데이터를 시계열 데이터 등으로 가공 변환하여 추출/적재 해 놓은 별도의 저장 공간 즉, DW가 마음대로 활용할 수 있는 운영계 데이터 DW에서 ODS가 필요한 이유? 1. DW를 위한 데이터를 만들기 위해 많은 가공이 필요하다. 이러한 가공을 운영이 되고 있는 시스템에서 바로 수행하면, 운영시스템에 과부하를 발생시켜서 서비스를 제대로 할 수 없는 사태가 일어날 수도 있다. 2. 운영계는 이력 데이터보다는 최종 데이터 형상으로 데이터를 관리하는 경우가 많다. 그러나 DW에서는 시계열 데이터가 필요하다. 그래서 운영계에서 O..

포스트맨(postman) 설치 방법
2023.05.22
0. 포스트맨 Postman 이란? http(https 포함) 요청을 보내고 응답을 보여주는 서비스로 API 개발을 보다 빠르고 쉽게 구현할 수 있도록 도와주며, 개발된 API를 테스트하여 문서화 또는 공유할 수 있도록 도와주는 플랫폼. - 변수 및 환경, request 설명, 테스트 및 사전 요청에 필요한 스크립트 작성 등 현재 워크 플로우를 더 효율적으로 만들 수 있도록 고안됨. 1. 포스트맨 Postman 의 장점 URL을 통해서 하는 TEST에는 한계가 있음 : 실제로 개발하며 진행할 경우, 작업이 너무 길어지게 되며, Authorization 이나 Header, Body를 수정하는 것에는 더더욱 제한이 생기게 된다. 하지만 POSTMAN 을 사용하게 되면, 갖춰진 인터페이스 내에서 사용만 하면 ..

What is MQTT, MQTT Protocol ?
2023.04.15
MQTT 공식 로고 MQTT란? MQTT(Message Queueing Telemetry Transport) 2016년 국제 표준화 된 (ISO 표준 ISO/IEC PRF 20922) 발행-구독(Publish-Subscribe) 기반의 메시지 송·수신 프로토콜 작은 코드 공간이 필요하거나 네트워크 대역폭이 제한되는 원격 통신을 위하여 만들어진 프로토콜 즉, IoT와 같은 제한 된 혹은 대규모 트래픽 전송을 위해 만들어진 프로토콜 TCP/IP 프로토콜 위에서 동작하지만 동시에 굉장히 가벼우며, 많은 통신 제약들을 해결해줌 단, 메세지가 가벼운 만큼 메세지 유형이나 QoS(서비스 품질)에는 제약이 존재 MQTT 특징 1. 연결지향적(Connection Oriented) 연결이 끊어지면 재접속 가능 Live ..

[HTTP/ HTTPS] 차이와 HTTPS로 변환하는 방법 (feat.React)
2023.04.12
나는 두개의 차이를 보안이라고 알고 있는데.. 내가 놓치고 가는 부분이 있을수도 있으니 다시 알아보도록 하자 렛츠고 HTTP 란? 하이퍼 텍스트 전송 프로토콜(Hypertext Transfer Protocol)의 약자 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜 인터넷 초기의 모든 웹사이트에서 기본적으로 사용되었던 프로토콜이며.. 서버에서 브라우저로 데이터를 전송해 주는 용도로 제일 많이 사용된다고 한다. HTTPS 란? 하이퍼 텍스트 전송 프로토콜 보안(Hypertext Transfer Protocol Secure)의 약자 말 그대로 보안성이 추가 되었다는 의미. 일반 HTTP 프로토콜의 문제는 " 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 것 " = 데이..