효율성을 극대화하기 위해

 

DB 환경

효율성을 높이기 위해 인덱스를 이용해야 한다.

 

인덱스 예시

위와 같이 키 마다 묶여있는 칼럼들이 있는데 그것을 활용해야 쿼리를 수행할 때 빠르게 찾을 수 있다.

만약 저 인덱스 짝들이 맞지 않는다면 전체 테이블을 돌면서 찾게 되고 수행 속도가 느려진다.

데이터양이 적으면 크게 상관 없겠지만 데이터양은 무궁무진하기 때문에.. 효율성이 중요!!!!!!

 

❗ DB수업을 듣지 않고 쿼리를 짜려니 효율성이 떨어진다... 이번 2학기 DB 수업 들으면서 쿼리 짜는 연습이 필요해 보인다. ❗

 

비효율적인 쿼리
효율적인 쿼리

두 개의 쿼리문을 비교해보면 비효율적인 쿼리는 인덱스를 활용하지 않았고 효율적인 쿼리는 인덱스(groupby구문 쪽)를 모두 활용했기 때문에 차이점이 생긴다!

'Computer Science > DataBase' 카테고리의 다른 글

[NoSQL] mongoDB  (0) 2022.12.12
[설정] DB 환경설정하기  (0) 2021.08.06

❗ 환경 : mariaDB, HeidiSQL ❗

❗ 참고로 mariaDB 설치시 HeidiSQL은 자동으로 설치된다 ❗

 

local환경 생성

  • local 세션 세팅

세션 설정

세션의 이름과 암호는 최고 관리자(root)의 암호를 적고 열기 버튼을 누른다

암호는 꼭 기억해둘 것!!

  • 생성한 로컬에 오른쪽 마우스버튼 클릭 → 새로 생성 → 데이터베이스

DB설정

이름은 자신이 만들어둔 C:(로컬 디스크) 안 이름과 같게 설정! spring과 연결 할 땐 properties 이름도 같게 만들어줘야함!!

  • 사용자 추가

사람 모양 아이콘 클릭

추가 버튼을 누르고 사용자 이름과 암호를 spring에 맞게 입력한다.

다음으로 객체 추가 버튼을 눌러 전에 생성한 DB를 클릭하고 체크박스를 알맞게 체크해준다.

❗ 전체 권한 체크는 모든 생성된 DB 관련이니 건들지 말것! 객체 추가를 해준다 ❗

 

'Computer Science > DataBase' 카테고리의 다른 글

[NoSQL] mongoDB  (0) 2022.12.12
[Query] 쿼리의 효율성 - Index  (0) 2021.08.06

URI

"Uniform Resource Identifier" (통합 자원 식별자)

 

URL

컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약(URI의 서브셋)

 

"URI는 식별하고 URL은 위치를 가리킨다"

 

 

'Computer Science > Network' 카테고리의 다른 글

[VM] VirtualBox 네트워크 정리  (0) 2022.12.22
BGP 개념  (0) 2022.11.30
[Server] HTTPS와 SSL 인증서  (0) 2021.08.06
RESTful  (0) 2021.07.27

REST

"Representational State Transfer"

  • 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미
  • 자원(resource)의 표현(representation)에 의한 상태 전달
    • 자원: 소프트웨어가 관리하는 모든 것(문서, 그림 등)
    • 자원의 표현: 자원을 표현하기 위한 이름(DB의 학생정보가 자원이면 'students'는 자원의 표현
    • 상태 전달: JSON 혹은 XML을 통해 데이터를 주고 받는다
  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
  • 필요한 이유
    • 애플리케이션 분리 및 통합
    • 다양한 클라이언트의 등장
    • 최근의 서버프로그램은 다양한 브라우저와 안드로이드폰, 아이폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야한다.
  • 구성요소
    • 자원(Resource): URI
    • 행위(Verb): HTTP Method
    • 표현(Representation of Resource): JSON, XML, TEXT, RSS
  • 특징
    • Server-Client: 서로간 의존성이 줄어든다.
    • Stateless: Client의 context(세션, 쿠키..)를 Server에 저장하지 않는다.
    • Cacheable: 웹 표준 HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라를 그대로 활용 가능
    • Layered System
    • Code-On-Demand: Server로부터 스크립트를 받아 Client에서 실행한다.(Optional)
    • Uniform Interface: URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다.

REST API

  • REST 기반으로 서비스 API를 구현한 것(API: Application Programming Interface)
  • 특징
    • 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
    • REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.

❗ REST API 설계 규칙에 관해서는 https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html 를 확인하자 ❗

 

RESTful

  • 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어
  • "REST 원리를 따르는 시스템을 지칭"
  • 목적
    • 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
    • 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것
    • 성능이 중요한 상황에선 굳이 RESTful한 API를 구현할 필욘 없다!

 

❗ 아마 url, uri와 관련이 깊은 것으로 생각된다.. 다음 내용으론 url과 uri의 차이를 알아봐야겠다 ❗

'Computer Science > Network' 카테고리의 다른 글

[VM] VirtualBox 네트워크 정리  (0) 2022.12.22
BGP 개념  (0) 2022.11.30
[Server] HTTPS와 SSL 인증서  (0) 2021.08.06
URI vs URL  (0) 2021.07.27

+ Recent posts