java 55

MQTT Protocol 의 특징 및 사용

MQTT MQTT(MQ Telemetry Transport)는 경량 메시징 프로토콜로, 네트워크에 연결된 장치들 간의 효율적인 통신을 위해 설계되었습니다. 이 프로토콜은 IoT(Internet of Things) 및 M2M(Machine-to-Machine) 통신에서 널리 사용되며, 낮은 대역폭, 제한된 네트워크 리소스, 불안정한 네트워크 연결과 같은 제약 사항을 고려하여 개발되었습니다. MQTT는 클라이언트-브로커-서버 모델을 따르며, 주로 발행-구독(pub-sub) 패턴을 사용하여 메시지를 전달합니다. 이 패턴은 여러 클라이언트가 메시지를 발행하고 해당 메시지를 구독하는 브로커를 통해 효율적으로 전달되는 것을 의미합니다. 특징 MQTT의 주요 특징은 다음과 같습니다: 경량성: MQTT는 간단하고 경량..

C# 2024.02.27

[Java17] javax.xml.bind.DatatypeConverter 오류 해결

E r r o r 이번에 JWT 이용한 로그인을 구현하였는데 javax.xml.bind.DatatypeConverter 에러코드가 나왔다. 원인은 Java 17 버전 이상에서는 javax.xml.bind 패키지가 제거되었으며, 이로 인해 관련된 클래스와 메서드에 접근할 수 없는 오류가 발생한 거였다. JWT 라이브러리는 종종 javax.xml.bind.DatatypeConverter를 사용하기 때문에 이러한 문제가 발생할 수 있다고 한다. S o l u t i o n 의존성 추가 저같은 경우 이번 Project는 Maven을 사용하였기에 아래와 같이 javax.xml.bind 의존성을 maven에 추가하여 해결하였습니다. javax.xml.bind jaxb-api 2.3.1 여기서 사용한 버전은 2.3...

error , solution 2023.10.26

Execution failed for task ':test'.> No tests found for given includes: (--tests filter) 테스트 에러

Error Execution failed for task ':test'.> No tests found for given includes: (--tests filter) 위와 같은 오류가 뜨면서 test 가 안 돼서 해결을 위해 여러 가지 방면으로 찾아보았는데 위 오류를 야기시킬 수 있는 여러 상황들을 정리하면 아래와 같다. 테스트 클래스 이름 확인: 해당 클래스가 프로젝트 내에 실제로 존재하는지 확인하십시오. 또한 클래스의 패키지 구조가 정확한지 확인합니다. 테스트 코드가 올바르게 작성되었는지 확인: 테스트 클래스 내에 테스트 메서드가 올바르게 작성되었는지 확인하십시오. 테스트 메서드는 일반적으로 테스트할 기능을 테스트하는 코드를 포함하며 메서드 이름에 "test"라는 접두사를 포함해야 합니다. 테스트 ..

error , solution 2023.10.12

[JPA] @GeneratedValue (Entity key생성)

@GeneratedValue @GeneratedValue는 Java Persistence API (JPA)에서 엔티티 클래스의 주요 키(Primary Key) 값을 자동으로 생성하기 위해 사용되는 어노테이션입니다. JPA는 관계형 데이터베이스와 자바 객체를 매핑하는 ORM(Object-Relational Mapping) 기술을 제공하는데, 이때 엔티티 클래스의 주요 키 값을 생성하는 방법 중 하나로 @GeneratedValue를 사용할 수 있습니다. @GeneratedValue (strategy type) @GeneratedValue 어노테이션은 다음의 4가지 방식으로 자동 생성 전략을 설정할 수 있습니다. GenerationType.IDENTITY: 주로 MySQL과 같은 데이터베이스에서 사용되는 방법..

Spring 2023.08.06

인텔리제이 error : 클래스를 찾거나 로드할 수 없습니다.

새로운 컴퓨터에서 기존에 쓰던 파일을 인텔리제이로 run 하려고 하니 '클래스를 찾거나 로드할 수 없습니다' 라는 오류가 계속 나와서 애를 먹었다 해결법 File -> Project Structure 을 들어간 뒤에 Modules에 있는 것들 중 경로가 꼬여 있는 것들을 삭제해서 해결하였다. 나 같은 경우 상위경로와 그 밑 하위경로 두 개가 모두 module에 포함되어 있었고 이거 때문에 class가 인식을 못했었던 것 같아 하위경로 module을 지워 해결하였다.

error , solution 2023.08.02

[Java] JDK 환경변수 설정 방법 및 이유

JDK 환경변수 설정 이유 환경변수 설정을 통해 운영체제 어디에서든 Java를 인식할 수 있도록 할 수 있습니다. *bin 폴더 안에 javac를 비롯한 각종 실행파일이 있기 때문에 환경변수를 설정할 때, jdk의 bin 디렉터리 경로를 등록합니다. 자바 실행파일의 경로가 환경변수 path에 제대로 세팅되어 있다면 어느 곳에서나 jdk의 bin에 있는 프로그램들을 실행시킬 수 있습니다. 환경변수 설정 방법 1. 환경 변수를 검색하여 '시스템 환경 변수 편집'을 열어주세요. 2. 고급 탭을 클릭 후 하단에 있는 환경 변수를 눌러줍니다. 3. 시스템 변수 탭에서 새로 만들기를 클릭하고, 값을 입력해 줍니다. 4. 시스템 변수에서 Path를 찾아 클릭하고, 편집을 눌러줍니다. - 새로 만들기를 통해 %JAVA..

Java/Java 2023.07.27

Java, Intelij,JetBrains Toolbox 다운로드

Java 설치 https://www.azul.com/downloads/?version=java-11-lts&os=windows&architecture=x86-64-bit&package=jdk#zulu Azul Downloads According to the Gartner report, “by 2025, more than 70% of Java applications will be deployed on third-party Java runtimes, up from 30% in 2019.” www.azul.com 위에 링크를 타고 들어가 본인의 OS , java 버전, 아키텍처에 맞게 선택한 뒤 다운로드를 합니다. IntelliJ 설치 https://www.jetbrains.com/ko-kr/idea/down..

Java 2023.07.27

Ngrok - 특징 및 사용법 (로컬 서버를 공개 서버로)

What is a NgrokNgrok은 로컬 개발 환경에서 인터넷을 통해 웹 애플리케이션에 안전하게 접근할 수 있도록 해주는 도구입니다. 보안 연결을 통해 인터넷에서 서버를 실행할 수 있으며, 웹 애플리케이션을 외부에 노출시키지 않고도 테스트할 수 있습니다. Ngrok의 주요 장점은 다음과 같습니다. 1. 편리한 설치와 사용 Ngrok는 다운로드 및 설치가 간편합니다. 설치 후에는 쉽게 사용할 수 있으며, 명령어 한 줄로 로컬 개발 서버를 인터넷으로 노출시킬 수 있습니다. 2. 안전한 연결 Ngrok은 TLS/SSL 보안 연결을 사용하며, 인증서는 자동으로 생성됩니다. 이를 통해 로컬 서버에서도 안전하게 연결할 수 있으며, 외부에서도 보안적으로 안전한 연결을 통해 애플리케이션을 실행할 수 있습니다. 3...

Spring 2023.04.06

Apache Tomcat (톰캣)

What is an Apache Tomcat? Tomcat 은 자바 웹 애플리케이션 서버로, 웹 애플리케이션을 실행하기 위한 자바 서블릿 및 JSP(JavaSever Pages)를 지원하며, 다음과 같은 장점들을 가지고 있습니다. 1. 경량화된 서버 : Tomcat은 경량화된 서버로써, 가볍고 빠르게 동작합니다. 따라서 웹 애플리케이션의 배포 및 실행이 빠르게 이루어집니다. 2. 개발과 배포의 용이성 : Tomcat은 자바 웹 어플리케이션을 개발하고 배포하는 데 필요한 대부분의 기능을 제공합니다. 또한, Tomcat은 많은 개발자와 커뮤니티가 활발하게 참여하고 있기 때문에, 다양한 플로그인과 라이브러리를 사용할 수 있습니다. 3. 높은 호환성 : Tomcat은 Java Servlet, JavaServer..

Spring 2023.04.06

Spring _ JAR(Java Archive) , WAR(Web application Archive)

JAR / WAR JAR과 WAR는 둘 다 자바 애플리케이션을 패키징 하는 방식입니다. JAR은 Java Archive의 약자로, 라이브러리 모듈 또는 단일 애플리케이션을 배포할 때 사용되는 방식이며, WAR는 Web Archive의 약자로, 웹 애플리케이션을 배포할 때 사용되는 방식입니다. JAR과 WAR에는 구조적으로도 차이가 있는데 JAR 같은 경우는 폴더 구조가 없으며 메타데이터(manifest) 파일을 포함합니다. 반면 WAR는 웹 애플리케이션의 구조를 따르는 폴더 구조와 웹 관련 파일들(html, jsp, servlet 등)을 포함합니다. 이러한 차이 때문에 웹 어플리케이션을 배포하는 때 WAR는 JAR보다 훨씬 효율적이며 편리합니다. JAR 패키징 방법 기본 설정에서 어플리케이션을 build..

Spring 2023.04.06