study/java7 JAVA STOMP 개념 및 활용 팀 프로젝트에서 JAVA의 STOMP를 통해 실시간 채팅 기능을 구현하였고이 과정에서 사용한 STOMP의 개념과 활용에 대해 Spring 문서를 참고하여 정리해 보았다. STOMP는 TCP 및 WebSocket과 같은 안정적인 양방향 스트리밍 네트워크 프로토콜을 통해 사용할 수 있다.즉 WebSocket 위에서 동작하는 메시징 프로토콜로 추가적인 메시징 기능과 편리함을 제공한다. 다음은 STOMP 프레임의 구조이며 명령(command), 헤더(headers), 본문(body)으로 이루어져 있다. STOMP의 Pub/Sub 구조와 메시지 브로커STOMP는 메시지 브로커를 통해 pub/sub 구조로 메시지를 전송하고 수신하는 프로토콜이다.이 구조는 분산 시스템에서 효율적이고 확장 가능한 메시징을 지원한다... 2024. 6. 9. JAVA 21 Virtual Threads 회사에서 자바 21을 도입하면서 기존 자바 버전과 다른 새로운 기능이 무엇이 있을까 알아보았다. 그 과정에서Kakao Tech Meet의 발표 영상 을 보게 되었고 Virtual Threads에 대한 여러 정보를 얻을 수 있었다. 자바 애플리케이션에서 스레드를 사용하는 방식은 기존에 OS 스레드를 래핑 하여 사용하는 플랫폼 스레드 형태이다.이는 자바의 스레드가 실제로는 OS의 스레드를 사용하는 것을 의미한다. 그러나 OS 스레드에는 생성 개수 제한과 높은 유지 비용이라는 단점이 있다. 이러한 단점을 극복하기 위해 플랫폼 스레드를 사용할 때는 스레드 풀을 활용하여 스레드를 관리한다. 플랫폼 스레드와 웹 요청 처리 문제전통적으로 자바의 웹 요청 처리 방식은 하나의 요청당 하나의 스레드를 사용하는 방식이다.. 2024. 6. 8. 자바 실행 과정(JVM의 개념 및 동작 과정) 평소 자바를 사용하면서 자바 프로그램의 내부적인 실행과정을 잘 알지 못했고 보다 정확한 자바 프로그램의 동작 과정을 이해하기 위해 공부하며 정리해 보았다. 자바의 전반적인 실행과정 1) 자바소스(.java)를 자바 컴파일러(javac)를 통해 자바 바이트 코드(.class)로 컴파일한다.2) .class 파일은 jvm의 클래스 로더(Class Loader)에 의해 로드 후 jvm 메모리 영역(RunTime Data Area)에 적재된다.3) 실행엔진(Execution Engine)의 interpreter에 의해 운영체제가 이해할 수 있는 기계어로 변환된다. 자바의 실행과정을 크게 3가지 단계로 나눴다. 우리가 코드로 작성한 자바 파일을 실행하게 되면위와 같은 3단계 과정을 거치면서 동작이 실행되는데 .. 2023. 2. 4. java 객체 배열이란? (객체 배열의 정의와 코드 구현 예제) 객체 배열을 구현해 보고 원하는 값을 얻기 위해 출력해보는 과정에서 객체 배열의 정확한 의미와 동작 과정을 정확히 이해하기 위해 자세히 공부해 보았다. 객체 배열이란? 객체 배열을 간단히 설명하자면 말 그대로 생성된 객체를 담는 배열이다. 여기서 생성된 객체란 바로 클래스의 인스턴스이다. 예를 들어 Student라는 클래스가 인스턴스를 생성하면서 참조변수 st를 생성하게 되는데 바로 이 참조변수의 값이 저장되는 것이다. (정확히 말하면 참조변수의 주소값이 저장된다.) 아래 코드 예시와 함께 살펴보자 1. Student 클래스 class Student { private String name; private String department; private int studentId; public String .. 2023. 1. 9. java 접근 제어자 private, getter, setter.. 오늘은 평소 클래스나 변수를 선언하면서 사용해왔던 접근 제어자에 대해 정확하게 짚고 넘어가기 위해 정리를 하려 한다. 접근 제어자란? 접근 제어자란 변수나 메서드, 생성자의 사용 권한을 설정하는 것이다. 접근 제어자를 사용하는 이유? 접근 제어자로 선언된 데이터를 외부 접근으로부터 데이터 변경을 방지하기 위해서이다. 이는 객체에 대한 구체적인 정보를 제공하지 않는다 라는 정보은닉의 개념에서 중요한데 정보 은닉을 위해 접근 제어자 잘 활용할 필요가 있다. 접근 제어자의 종류는 다음과 같다. - public : 어디서나 접근 가능 - default : 동일한 패키지 내에서만 접근 가능 (아무런 선언을 하지 않을 경우 default 접근 제어자로 지정) - protected : 동일한 패키지내 또는 외부 클래.. 2022. 10. 13. [java/Eclipse] "Editor does not contain a main type" 에러 해결 오랜만에 Eclipse editor 를 사용해 코드를 컴파일 하던 중에 오류가 났다. 오류는 아래 사진과 같이 Launch Error "Editor does not contain a main type" 라는 에러였고 이를 해결하기 위해 구글링 해봤는데 오류의 원인은 build path에서 필요한 라이브러리의 누락이었다. 다음은 이를 해결한 과정이다. 1. Buid Path -> Configure Build Path 2. Java Build Path -> Order and Export -> [JRE System Library] 체크 후 적용 3. 컴파일 후 정상 작동 확인 2022. 8. 3. 이전 1 2 다음