분류 전체보기 12

HTTP 헤더

HTTP 헤더 개요 용도 HTTP 전송에 필요한 모든 부가정보 ex) 메시지 바디의 내용, 메시지 바디의 크기, 압축 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등 표준 헤더가 너무 많다 필요시 임의의 헤더 추가 가능 분류 - RFC2616 (과거) General 헤더 : 메시지 전체에 적용되는 정보 ex) Connection : close Request 헤더 : 요청 정보 ex) User-Agenet : Mozilla/5.0 (Macintosh; ..) Response 헤더 : 응답 정보 ex) Server : Apache Entity 헤더 : 엔티티 바디 정보 ex) eContent - Type : text/html, Content - Length : 3423 메시지 본문(message b..

HTTP 2023.03.12

HTTP 메서드, 메서드 활용, HTTP 상태코드

HTTP 메서드 - PUT, PATCH, DELETE PUT 리소스를 대체 리소스가 있으면 대체 리소스가 없으면 생성 쉽게 이야기해서 덮어버림 중요 ! 클라이언트가 리소스를 식별 클라이언트가 리소스 위치를 알고 URI 지정 POST와 차이점임 주의 ! 리소스를 완전히 대체한다 ex) 클라이언트 : age : 50 서버 : age 20, name : 민지 ---put--- 서버 : age 50 name 필드 삭제됨 수정한다는 개념보다 갈아치운다는 개념 PATCH 리소스 부분 변경 ex) 클라이언트 : age : 50 서버 : age 20, name : 민지 ---patch--- 서버 : age 50, name : 민지 patch가 지원이 되지 않을 땐 post 사용 DELETE 리소스 제거 HTTP 메서드..

HTTP 2023.03.05

인터넷 네트워크부터 HTTP 메서드까지

개발자는 평생 HTTP 기반 위에서 개발 언젠가 HTTP 정리 한번 해야됨 백엔드 개발자에게 가장 도움이 많이 될 것 같음 강의 순서 인터넷 네트워크 URI와 웹 브라우저 흐름 HTTP 메시지 전송 HTTP 기본 HTTP 메서드 HTTP 메서드 활용 HTTP 상태 코드 HTTP 헤더 HTTP 캐시 인터넷 네트워크 인터넷 통신 IP(Internet Protocol) TCP, UDP PORT DNS IP(인터넷 프로토콜) IP 주소를 부여받아야 데이터 전달 받기 가능 IP 인터넷 프로토콜 역할 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 패킷 정보에는 출발지 IP, 목적지 IP, 전송 데이터, 기타 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 ..

HTTP 2023.03.01

Provider와 프록시, 마무리

스코프와 Provider ObjectProvider 덕분에 ObjectProvider.getObject()를 호출하는 시점까지 request scope 빈의 생성을 지연할 수 있다. ObjectProvider.getObject()를 호출하는 시점에는 HTTP 요청이 진행중이므로 request scope 빈의 생성이 정상처리된다. ObjectProvider.getObject()를 LogDemoController, LogDemoService에서 각각 한번씩 따로 호출해도 같은 HTTP 요청이면 같은 스프링 빈이 반환된다. 스코프와 프록시 프록시 방식 proxyMode = ScopedProxyMode.TARGET_CLASS를 추가 적용 대상이 클래스면 TAGET_CLASS 인터페이스면 INTERFACES MY..

Spring 2023.03.01

의존관계 자동 주입, 빈 생명주기 콜백

의존관계 자동 주입 생성자 주입을 사용하면 필드에 final 사용 가능 생성자에서 혹시라도 값이 설정되지 않는 오류를 컴파일 시점에 막아줌 컴파일 오류는 세상에서 가장 빠르고 좋은 오류임 나머지 주입 방식은 모두 생성자 이후에 호출됨, 필드에 final 키워드를 사용할 수 없음 오직 생성자 주입 방식만 final 키워드를 사용할 수 있다. 생성자 주입은 프레임워크에 의존하지 않고, 순수한 자바 언어의 특징을 잘 살리는 방법 롬복이라는 라이브러리를 적용해보자. 최근에는 생성자를 딱 1개 두고, @Autowired를 생략하는 방법을 주로 사용, 여기에 Lombok 라이브러리의 @RequiredArgsConstructor를 함께 사용하면 기능은 다 제공하면서 코드는 깔끔하게 사용할 수 있다. 가끔 생성자를 직..

Spring 2023.02.12

Spring - 웹 개발 기초(정적 컨텐츠, MVC와 템플릿 엔진)

정적 컨텐츠 MVC와 템플릿 엔진 정적 컨텐츠 정적 컨텐츠는 클라이언트의 요청을 받고 서버에 미리 저장된 HTML, CSS, JS 등의 파일을 그대로 응답해 보여주는 것을 말합니다. 모든 클라이언트들의 요청에 대해 동일한 결과를 보여줍니다. 서버에서 어떠한 동작 없이 파일을 그대로 웹브라우저에 보여주는 것 정적 컨텐츠를 이용한 웹 개발 스프링 부트는 기본적으로 정적 컨텐츠 기능을 제공한다. \main\resources\static 하위에 hello-static.html 파일을 생성 hello-static.html 정적 컨텐츠 입니다. 1. 클라이언트로부터 localhost:8080/hello-static.html 요청이 들어오면 내장 톰켓 서버를 거친다. 2. 스프링 컨테이너에서 hello-static ..

Spring 2022.12.30

Spring - 프로젝트 환경설정

스프링 부트 스타터 사이트로 이동해서 프로젝트를 생성한다 프로젝트 선택 Project: Gradle - Groovy Project Spring Boot: 2.3.x Language: Java Packaging: Jar Java: 11 Project Metadata groupId: hello artifactId: hello-spring Dependencies: Spring Web, Thymeleaf IntelliJ에서 JDK는 11로 설정하였다. 동작 확인은 스프링 부트 메인 실행 후 http://localhost:8080에 접속했을 때 에러 페이지가 뜬다면 성공적으로 된 것이다. 라이브러리를 한번 살펴보자 Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다. 현업에서는 System.out.pr..

Spring 2022.12.29

MQTT, InfluxDB, Grfana

1. InfluxDB와 NodeMCU MQTT연동과정 2. Grafana 설치 및 InfluxDB와 연동 Grafana 로그인할 때 ID와 Password는 임의로 설정하고 진행하였다. new panel을 추가한 뒤에 nodeMCU와 InfluxDB를 연동하면 끝이다. nodeMCU와 InfluxDB 연동 과정에서 nodeMCU에서 읽어들인 값이 InfluxDB로 안 보내지고 있었다. 알고보니 InfluxDB의 Token, org, url을 내 환경에 맞게 다시 입력을 해주어야 했다.

멀티캠퍼스 2022.10.13

MQTT와 JSON

온습도센서 불량, 우노보드로 확인해도 인식을 못하는 상태 LCD를 연결해서 LCD에 온습도가 표시되게 바꾸었지만 이것도 안됨. 온습도가 인식이 되지 않아 LCD에 이상한 글자만 뜬다. 팀원중 한명이 나랑 같은 에러가 발생했었는데 중간과정 Skip하고 마지막 단계인 JSON_DHT11_Mqtt ino파일로 진행하면 MQTTX에는 제대로 표시된다고 하였다. 시리얼 모니터에만 표시가 안되는 상황 그러나 나의 경우는 온습도를 장착하고 nodemcu를 연결하면 nodemcu가 인식을 못하는 상황이다. 온습도를 빼고 LED를 연결하면 됨. 온습도를 뺀 상태에서 nodemcu만 연결하면 nodemcu가 인식이 된다. 온습도 핀 상태를 몇번 확인해봐도 제대로 꼽힌 상태. 핀 VIN,G를 사용하니까 전원공급이 안됨 5시..

멀티캠퍼스 2022.10.12

NodeMCU, MQTT Broker, MQTT X

MQTT Broker 검색 -> 서비스 -> MQTT Broker 실행 중인지 확인 내 컴퓨터에서는 시작 중이라는 표시가 뜬 상태였고, 중지도 안 되고 다시 시작도 안 되는 상태였다. mosquitto_sub -h localhost -p 1883 -t test 명령도 에러가 뜨는 상태 Mqtt Broker를 다시 설치했는데 해결이 되지 않아서 삭제를 했지만 삭제도 모두 삭제가 되지 않는다. 어쩔 수 없이 다시 설치를 했는데 이상하게도 실행 중 상태로 변경이 되었고 오류가 해결되었다. mosquitto_sub -h localhost -p 1883 -t test mosquitto_pub -h localhost -p 1883 -t test -m "hello" 메시지 주고 받기 확인 localhost에 IP주소..

멀티캠퍼스 2022.10.11