변수를 써서 구현하는 방법.

SET @H = -1;
SELECT @H:=@H +1 AS HOUR, (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @H) FROM ANIMAL_OUTS WHERE @H<23;

 

 

 

GROUP BY를 써서 푸는 문제.

시간별로 묶고 시간 순으로 정렬하고 9시부터 19시까지로 설정.

 

SELECT HOUR(DATETIME), COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME)>=9 AND HOUR(DATETIME)<=19 GROUP BY HOUR(DATETIME) ORDER BY HOUR(DATETIME);

데이터를 조회할 때 SELECT 사용.

 

DISTINCT 유니크한 데이터를 조회하는 경우 사용. 중복된 결과를 제거할 때 사용한다.

 

GROUP BY 데이터를 그룹화해서 조회하는 경우 사용.

 

SELECT DISTINCT col1 FROM table1;

SELECT col1 FROM table1 GROUP BY col1;

 

두 쿼리는 같은 결과를 주지만. GROUP BY는 그룹화하고 정력 작업을 같이한다.

정렬작업이 필요 없는 경우 DISTINCT를 사용하는 것이 성능적으로 좋다.

 

 

https://m.blog.naver.com/PostView.nhn?blogId=itperson&logNo=220840607398&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

MVC, MVP, MVVM 디자인패턴 이해하기

지금도 수 많은 디자인 패턴이 생겼다가 사라져 갔고 앞으로도 계속 그럴 것이지만 가장 많이 언급되는 이 ...

blog.naver.com

 

'개발' 카테고리의 다른 글

객체지향 설계 기법  (0) 2021.04.25
소프트웨어의 두 가지 가치 - 행위와 구조  (3) 2020.11.08
테스트 페이지  (0) 2020.02.16
REST  (0) 2019.08.12

REST란?

REST는 인터넷 상의 시스템간의 상호 운용성을 제공하는 방법 중 하나. 즉 호환성을 위한 아키텍쳐.

상호운용성(Interoperability, 相互運用性)이란 하나의 시스템이 동일 또는 이기종의 다른 시스템과 아무런 제약이 없이 서로 호환되어 사용할 수 있는 성질을 말한다.

 

REST는 HTTP기반으로 필요한 자원에 접근하는 방식을 정해놓은 네트워크 아키텍쳐.

여기서 자원이란, 데이터베이스는 물론, 이미지/동영상/문서와 같은 파일, 서비스(이메일 전송, 푸쉬메시지 등) 등을 모두 포함.

 

REST는 HTTP의 주요 저자 중 한사람인 로이 필딩의 2000년 박사학위 논문에서 처음 소개가 되었음.

 

REST의 제약조건

아래의 조건을 준수하는 웹서비스를 RESTful하다고 한다.

  • 클라이언트-서버 구조
    클라이언트와 서버가 각각의 역할 구분. -> (상호 의존성이 줄어듭니다.)
    서버는 API를 제공, API요청 시 비즈니스 로직 처리와 데이터 저장을 책임진다.
    클라이언트사용자 인증, 상태(세션, 로그인 정보)관리와 서버 리소스 요청을 책임진다.
  • 무상태
    HTTP는 stateless 프로토콜이므로 REST도 stateless.
    REST서버는 작업을 위한 상태정보(세션, 쿠키)를 관리하지 않는다. -> (구현이 단순해진다)
    서버는 각각의 요청을 독립적인 요청으로 인식하고 처리한다. -> (서버의 처리에 일관성이 생기고, 서비스 자유도가 높아진다.)
  • 캐시 처리 가능
    HTTP가 가진 강력한 특징 중 하나인 캐싱 기능을 적용할 수 있다.->(응답시간, 성능이 향상된다)
    대량의 요청을 효율적으로 처리하기 위해 캐시가 필요.
  • 계층화
    서버는 여러개의 레이어로 구성될 수 있다.
    API서버는 순수 비즈니스 로직을 수행하고, 그 앞단에 보안, 로드밸런싱, 암호화, 사용자 인증 등을 추가하여 유연성을 높일 수 있다.
  • 인터페이스 일관성
    자원에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다.
    HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.

REST API란?

REST기반으로 서비스 API를 구현한 것을 REST API라고 한다.

 

OpenAPI(공개된 API: 구글맵, 공공데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍쳐) 등을 제공하는 대부분의 업체는 REST API를 제공한다.

 

-REST API 특징

REST 기반으로 시스템을 분산하여 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.

REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.

 

 

REST 주요 구성요소

REST 주요 구성요소는 리소스, 메소드, 메시지 3가지 입니다.

  • 리소스: 접근할 대상. URI를 통해 식별.
  • 메소드: 리소스에 대한 행위, 표준 HTTP 메소드에 따라 자원에 접근(Create, Read, Update Delete)
  • 메시지: HTTP 헤더와 바디에 포함된 메시지는 메시지를 처리하기위한 정보를 포함한다.

즉, REST는 어떤 자원(리소스)에 어떤 행위(메소드)를 어떻게(메시지)할지 HTTP기반으로 정해놓은 아키텍쳐이다.

 

 

 

출처:

http://tech.devgear.co.kr/delphi_news/433404

 

개발자 기술자료 - [REST API] REST API 이해하기

이 글에서는 REST 아키텍처를 소개합니다. REST는? REST(Representational State Transfer)는 인터넷 상의 컴퓨터 시스템간 상호 운용성을 제공하는 방법 중 하나입니다. REST는 HTTP 기반으로 필요한 자원에 접근하는 방식을 정해놓은 네트워크 아키텍처입니다. 여기서 자원이란, 저장된 데이터(DBMS 등)는 물론, 이미지/동영상/문서(PDF 등)와 같은 파일, 서비스(이메일 전송, 푸쉬 메시지 ...

tech.devgear.co.kr

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://m.blog.naver.com/itperson/220844559492

 

REST API 이해하기

RESTREST (REpresentational State Transfer) 는 웹의 창시자(HTTP) 중 한 사람인 Roy F...

blog.naver.com

 

'개발' 카테고리의 다른 글

객체지향 설계 기법  (0) 2021.04.25
소프트웨어의 두 가지 가치 - 행위와 구조  (3) 2020.11.08
테스트 페이지  (0) 2020.02.16
MVC, MVP, MVVM  (0) 2019.08.18

import io를 하고

sbuf = io.BytesIO(imgByte)를 하면 (여기서 imgByte는 jpg이미지의 bytes였음.)

byte 이미지 데이터가 stream이 된다.

 

통신을 통해 받은 이미지를

wxPython을 사용해서 GUI에 bitmap으로 출력해주기 위해 스트림으로 바꿈.

wx.BitmapFromImage(wx.ImageFromStream( sbuf ))

스트림을 이미지로 바꾸고 이미지를 비트맵으로 바꿔주었음.

INADDR_ANY는 어떤 주소로든 접속하게 해준다.

 

처음에 python으로 서버를 만들때 localhost를 서버 address에 넣었는데 외부에서 연결이 되지않아 당황했다.

C코드 서버를 보니 INADDR_ANY로 바인딩하는 것을 보고, 어떤 주소에서든 접속하려면 localhost로 설정하는게 아니라 INADDR_ANY로 설정해야함을 알게되었다.

 

python의 소켓 모듈을 사용해서 서버를 만들 때, INADDR_ANY로 설정하려면 bind할 때 empty string을 address부분에 넣어주면 된다.

 

예) server_socket.bind(('', PORT))

+ Recent posts