전체 글
[Git] Rebase, Cherry-pick
Rebase- 말 그대로 베이스를 재설정하는 작업- 두 개의 공통 base를 가진 branch에서 하나의 branch의 최신 커밋본을다른 branch의 base에 반영시켜 base를 재설정 처리 장점- 공유 branch의 최신 변경사항 즉각 반영 가능- 커밋 이력을 남기지 않아, 커밋 히스토리 정리 가능 단점- 커밋 충돌 발생시, 개별 커밋마다 충돌처리 필요 Cherry-pick- 다른 브랜치에 있는 특정 커밋을 선택하여 내 브랜치에 적용 가능한 명령어 사용 시기- 팀으로 협업할 때, 필요한 기능만 선택해 사용- 기존 기능에서 버그가 발견돼서, 수정이 필요할 때 사용- pull request 창을 닫아버려서 복구할 때, 사용
[인증 방식] Cookie vs Session vs Token
쿠키(Cookie)정의 - 웹 서버가 클라이언트(브라우저)에 보내는 작은 크기의 데이터 조각 - 클라이언트는 이 쿠키를 저장한 뒤, 이후 서버에 요청을 보낼 때 함께 전송특징 - 클라이언트 측에 저장 - 서버는 쿠키 값을 읽어 클라이언트를 식별 - 상태 유지를 위한 간단한 방법 - 보안에 취약(자바스크립트로 조작 가능)사용 예시 - 사용자의 로그인 상태 유지, 사이트 설정 기억 등세션(Session)정의 - 서버 측에 저장되는 임시 데이터 영역 - 클라이언트가 처음 서버에 접속시, 고유 세션ID 생성 - 쿠키를 통해 클라이언트에 고유 세션 ID 전달 - 이후 클라이언트가 요청시마다, 세션 ID를 함께 전송, 서버에서 해당 세션에 저장된 정보 참조특징 - 서버 측에 저장 - 더 안전한 상태 ..
[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 ..