전체 글
[SQL] 쿼리 속도 향상시키는 법
쿼리 튜닝- 데이터베이스 쿼리의 성능을 향상시키기 위한 작업- 쿼리 실행 속도를 빠르게 하고, 자원 사용량을 줄이는 것을 목표- 예시: 인덱스 생성, 쿼리 최적화, 테이블 구조 변경 등일반적인 쿼리 튜닝 방법1. 인덱스 활용2. 서브쿼리보다는 조인문 사용3. 쿼리 최적화 (Where 절 최적화) 쿼리 최적화(1) SELECT 를 할 때는 필요한 컬럼만 추출(2) LIKE 문을 사용 시, 와일드카드 문자열(%)을 String 앞부분에 배치하지 않기(3) GROUP BY 연산 시, HAVING 보다는 WHERE 절 사용하기(4) 조건 부여 시, 기존 DB값에 별도 연산 사용 안하기 ex) 조건절에 floor 함수 사용(5) SELECT DISTINCT, UNION DISTINCT와 같이 중복 값을 제거하는..
HTTP vs AJAX vs WebSocket
HTTP (HyperText Transfer Protocol)정의- 웹 서버와 클라이언트 간의 데이터 교환을 위한 기본적인 통신 프로토콜 특징- 요청 응답 방식: 클라이언트가 서버에 요청을 보내면 서버는 요청에 대한 응답을 보내는 일방향 통신 방식- 비연결성: 각 요청마다 새로운 연결이 생성되고 종료- 무상태: 서버는 이전 요청에 대한 정보를 저장하지 않음 주요 용도- 웹 페이지 로딩, 이미지, 파일 다운로드 AJAX (Asynchronous JavaScript and XML)정의- JavaScript를 이용하여 웹 페이지를 새로고침하지 않고 비동기적으로 서버와 통신하는 기술 특징- 비동기 통신: 사용자 인터페이스를 멈추지 않고 백그라운드에서 서버와 통신- 부분적인 페이지 갱신: 전체 페이지를 새..
이더넷 vs 인터넷
이더넷- 근거리 통신망(LAN)에서 사용되는 유선 네트워크 기술- 컴퓨터, 프린터, 스위치 등 여러 기기를 물리적으로 연결하여 데이터 전송- 케이블을 통해 연결하며, 일반적으로 빠르고 안정적인 속도 제공- 예시: 집, 회사 등에서 컴퓨터와 공유기를 이더넷 케이블로 연결하는 경우 이더넷 케이블 인터넷- 전 세계적으로 연결된 대형 네트워크- 이더넷과 같은 다양한 네트워크 기술을 통해, 서로 연결된 컴퓨터, 서버 등을 통해 정보를 공유하고 웹사이트에 접속- TCP/IP 프로토콜 기반 동작. 인터넷에 연결된 기기일 경우, 서로 통신 가능- 예시: 웹 브라우저 등을 통해 이메일을 보내는 경우 이더넷과 인터넷의 차이점특징이더넷인터넷종류유선 네트워크 기술전 세계 네트워크범위근거리전 세계연결 방식케이블다양한 네트..
[Linux] 리눅스 필수 명령어
1. pwd(Print Work Directory)작업중인 디렉토리 경로 조회2. ls(List Segments)현재 디렉토리의 파일과 폴더를 표시3. cd(Change Directory)현재 디렉토리를 변경4. mkdir(Make Directory)폴더 생성5. cp(Copy)파일 또는 폴더를 복사할 때 사용6. mv(Move)파일 또는 폴더의 위치를 옮길 때 사용, 이름 변경시 사용7. rm(Remove)파일 또는 폴더를 삭제할 때 사용8. cat(Catenate)파일의 내용을 확인할 때 사용9. touch빈 파일을 생성, 파일의 날짜 및 시간 수정시 사용10. echo문자열을 화면에 보여줄 때 사용, 리다이렉션을 사용해 파일 생성 및 추가 작업시 사용11. ip addr / ifc..
[JavaScript] 일반 함수 vs 화살표 함수
일반 함수와 화살표 함수의 차이점1. this 객체 바인딩일반 함수실행 주체에 따른 this가 동적으로 바인딩1) 함수 실행 시 전역(window)객체로 바인딩2. 메소드 실행 시 메소드를 소유하고 있는 객체를 바인딩3. 생성자 실행 시에는 새롭게 만들어진 객체를 바인딩-> 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정화살표 함수ES6부터 새로 추가된 익명 함수즉시 실행이 필요할 경우에 사용항상 상위 스코프의 this를 바인딩 (정적 바인딩)또한, call, apply, bind 메소드를 사용하여 this를 변경할 수 없음2. 생성자 함수로 사용 가능 여부일반 함수는 생성자 함수로 사용 가능화살표 함수는 생성자 함수로 사용 불가 -> prototype 프로퍼티 존..
[Curl] 기본 쉘로 API 테스트하기
Curl(Client URL)특정 URL로 데이터 전송 테스트를 할 수 있는 명령줄 도구 및 라이브러리GUI 환경에서 URL 테스트를 Postman에서 한다면 CLI 환경에서는 Curl을 사용하면 쉽게 REST API 테스트 가능Linux 및 Unix, 심지어 Windows에서도 사용 가능 Curl 설치리눅스# 우분투$ sudo apt update$ sudo apt install curl# CentOS$ sudo yum install curl Curl 버전 확인$ curl -VGET 요청# 프로토콜 미지정시, 기본 HTTP 설정# 별도 옵션 미지정시, GET 방식 동작$ curl www.naver.com$ curl -X GET www.naver.com# 위 2개의 명령문은 동일 POST 요청# -d ..
[Java] VO와 DTO의 차이점
VO(Value Object)값 자체를 표현하는 객체변조가능성 메서드 존재 X ex) Setter, DTO와 달리 별도 메서드 추가 가능-> 필드 값이 같다면 두 객체는 같은 객체로 처리-> 실제 인스턴스 비교시 객체 주소값이 서로 다르므로, hashcode() 및 equals()를 재정의(오버라이딩) 필요DTO(Data Transfer Object)단순하게 데이터만 담아 계층 간 전달하는 객체클래스가 갖고 있는 메서드는 getter / setter 만 존재-> 오직 데이터 전달에만 초점VO와 DTO의 차이점 VODTO목적값 자체를 표현계층간 데이터 전달동등성필드값 동일시 같은 객체 취급필드값이 같아도 같은 객체 X가변성불변(수정 불가)Setter 존재시 가변Setter 존재 안할시 불가변로직G..
$(document).ready() 와 window.onload 의 차이점
두 구문을 사용하는 이유는 다음과 같다. 자바스크립트는 인터프리터 언어이므로 DOM이 그려지기 전에자바스크립트로 특정 HTML태그(DOM)를 참조할 경우 스크립트 오류가 뜰 수 있다. 이를 해결 하기 위해 두 개의 구문이 등장하게 되었다. 둘의 차이점을 알아보자. (참고로 window.onload 는 페이지당 한번만 사용 가능하기 때문에,window.addEventListener를 사용하면 이러한 문제점을 해결할 수 있다.) $(document).ready()1. 호출 시점- DOM 트리가 로드될 때 호출2. 특징- DOM만 로드되면 바로 실행(이미지 및 외부 리소스와 무관)- 중복 사용해도 순서대로 모두 실행 window.onload1. 호출 시점- 페이지의 모든 요소들이 로드된 이후에 호출2. 특징-..