전체 글

전체 글

    [인증 방식] 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 인터넷

    이더넷 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..