목록IT 기술
Step-by-Step

Http vs WebSocket HTTP(HyperText Transfer Protocol)은 기본적으로 "Client의 요청 - Server의 응답" 방식으로 이루어져있다. 클라이언트의 요청이 있는 경우에만 서버가 응답으로 리소스를 전송한 후, 연결을 바로 끊는 일방향 통신 기법이다. 또한 서버는 클라이언트의 정보를 저장하지 않는 Stateless 속성을 지녔으며, 쿠키나 세션을 통해 Stateful하도록 만들 수는 있다. 하지만 클라이언트가 정보가 필요한 경우에만 요청하고 응답하는 방식은, 두 클라이언트 사이의 정보를 유지하면서 끊임없이 정보를 주고받는 실시간 및 양방향 통신에는 적합하지 않다. 만약 HTTP로 채팅이나 실시간 통신을 구현하게 된다면, 모든 클라이언트들이 다른 클라이언트로부터 온 메세..
https://expressjs.com/ Express - Node.js web application framework Fast, unopinionated, minimalist web framework for Node.js $ npm install express --save expressjs.com ExpressJS 공식문서 설명 : Fast, unopinionated, minimalist web framework for Node.js Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크 자체적인 최소한의 기능을 갖춘 라우팅 및 미들웨어 웹 프레임워크 NodeJS 공식문서 설명 : Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 비동기 이벤트 주도 JavaScript..
AUTO_INCREMENT 속성을 사용하게 되면, 3 rows를 INSERT 후 모두 DELETE 해도 다음 값이 1이 아니라 4가 된다 처음 테이블을 만들때 부터 중간에 데이터가 삭제되어도 브레이크 없이 계속 올라가는 특징이 있다. AUTO_INCREMENT 값을 ALTER로 초기화해 줄 수 있다. ALTER TABLE 테이블명 AUTO_INCREMENT = 초기값 최근 PK 값을 가져와서 등록해주려고 SQL문을 만들었는데, ALTER TABLE post AUTO_INCREMENT = (SELECT IF(count(*) = 0, 0, max()) FROM post) BUT 안된다.. 이유가 뭘까 그냥 두 가지 sql 문을 따로 실행해주었다. MyBatis에서 DDL은 안될거같았지만, Update로 해두..
PK의 최근 값 가져오기 SELECT last_insert_id() FROM 테이블명 만약 테이블에 데이터가 하나도 없을 경우 다음과 같이 작성해주면 된다 SELECT IF(count(*) = 0, 디폴드 값, last_insert_id()) FROM 테이블명

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/http/ResponseEntity.html ResponseEntity (Spring Framework 6.0.5 API) Create a ResponseEntity with a body, headers, and a raw status code. docs.spring.io ResponseEntity Header + Body 구성인 HttpEntity에서 HttpStatusCode를 추가하여 기능을 확장한 클래스 ResponseEntity 에서 T는 Body로 넣은 타입으로 생각하면 됨 ResponseDTO @Getter @Setter @AllArgsCon..
HTTP Hyper Text Transfer Protocol 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜 HTTP 상태 코드 클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드 총 3자리 : 응답의 클래스(1자리) + 세부 상태(2자리) 로 구성 응답의 클래스 1xx (정보) : 요청을 받으면서 프로세스를 계속함 2xx (성공) : 요청을 성공적으로 받았으며 인식했고 수용함 3xx (리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요함 4xx (클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없음 5xx (서버 오류) : 서버가 명백히 유효한 요청에 대해 충족을 실패함 1xx (조건부 응답) 상태코드 내용 설명 100 Continue 서버가 클라이언트로부터 요청을 ..

안드로이드에서 받은 데이터를 스프링을 통해 DB에 저장하고, 인공지능 측에서 DB에 저장된 데이터를 꺼내어 결과를 도출한 후 값을 DB에 넣어주면, 스프링에서 다시 DB를 통해 꺼내와 안드로이드(사용자)로 넘겨주는 방식을 구현해야한다. 지금으로서는 시간도 부족해서 그냥 스프링에서 DB에 데이터를 넣고 파이썬과 HTTP 통신을 하려고 한다. 하지만 나중에 사용할 일이 생길지 모르니 미리 개념만 다져놓기로 하였다 Apache Kafka - 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메세지 브로커 프로젝트 - 카프카 프로젝트 목표 : 실시간 데이터 피드를 관리하기 위해 통일된, 높은 처리량, 낮은 지연시간을 지니는 플랫폼 제공 - 분산 트랜잭션 로그로 구성된 확장 가능한 Pub/Sub 메세지 큐로 정..

무엇이든 사용하기 전에 기본 개념을 제대로 알고 사용하는 것이 장기적으로 도움이 되는 것 같다 그리고 한 번 배운 내용을 평생 기억할 순 없으니 블로그에 작성하여 잊을때마다 복습하려고 한다 REST - REST : REpresentational State Transfer - 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것 1) HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource) 명시 2) HTTP Method(POST, GET, PUT, DELETE)를 사용하여 3) 해당 자원에 대한 CRUD Operation 적용 - 자원 기반 구조 설계의 중심에 Resource가 있고, HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍..