본문 바로가기
728x90
반응형

자바웹프로그래밍45

주기적인 client 데이터 전송 Server Sent Event(SSE) 구축하기 with spring boot Contents Server Sent Event(SSE) 가 무엇인가? Server-sent events (SSE) 는 Real time으로 데이터를 클라이언트에 전송할수 있도록 하는 기술이다. SSE는 http 통신이며, long-lived 커넥션 기반으로 서버에서 클라이언트로 데이터를 전송한다. Sse 커넥션 관리 객체 생성 SseEmitters.java @Component @Slf4j public class SseEmitters { private final List emitters = new CopyOnWriteArrayList(); public SseEmitter add(SseEmitter emitter) { this.emitters.add(emitter); log.info("new emitter.. 2024. 4. 3.
[JAVA] BufferedReader / BufferedWriter 왜 사용할까? (분석) Contents 1. BufferedReader / BufferedWriter 란? 여러가지 입출력 관련 개발을 할때 아래와 같은 코드를 많이 사용한다. BufferedWriter br = new BufferedWriter(new FileWriter(jsonFIle)); 익숙한 개발자는 그냥 그러려니 넘어가지만 개발에 익숙하지 않은사람들은 너무 복잡해보인다. 왜 클래스안에 또클래스를 넣고 그러지?? 이런생각으로 왜 이렇게 하는지 궁금해할수도있고 그냥 다들 이렇게 쓰니깐 나도 써야지 하고 넘어간다. 나 또한 그랬다. 선배개발자들이 써놓은 코드를 그대로 복사+붙여넣기 하면서 개발을 했기에 이유도 모른채 작성했다. 그래서 이참에 왜 이것을 써야하는지 그리고 실제로 예제를 통해 실험을해보면서 검증작업도 해볼려고.. 2024. 2. 28.
Reader,Writer(문자 기반 스트림) with java Contents 문자 기반 스트림 이전 글에서 바이트 기반 스트림을 알아보았다. 이번에는 문자기반 스트림에대해 알아볼것이다. 2024.02.27 - [자바웹프로그래밍/JAVA] - InputStream,OutputStream 입출력 방식 분석 with java Reader와 Writer 란? Reader 는 문자 기반 입력 스트림 최상위 추상 클래스이고, Writer 는 문자 기반 출력 스트림 최상위 추상 클래스이다. 이들의 하위 클래스는 XXXReader , XXXWriter 이라는 오버라이드된 Reader 소개 read() 메소드 public int read() throws IOException { char[] cb = new char[1]; if (read(cb, 0, 1) == -1) return.. 2024. 2. 27.
InputStream,OutputStream 입출력 방식 분석 with java Contents Stream 이란? 데이터가 출발지에서 도착지로 단일 방향으로 흘러가는 것을 말한다. InputStream, OutputStream 설명 데이터가 프로세스로 흘러 들어올때는 InputStream을 사용하고 , 데이터가 프로세스로부터 나가면 OutputStream을 사용한다. Inpustream,OutputStream은 Stream 최상위 추상클래스이며, 바이트 출력 스트림이다. 그 아래로 보면 FIle,Filer 등등 xxxInputStream 오버라이드한다. Inpustream은 프로세스 기준으로 들어오는 경우에 사용한다. 이제 중요한 메소드를 알아보자 1.read() 메소드란? 1바이트를 읽고 int(4바이트)형으로 반환한다. 테스트를 해보자 이제 실행시켜보면 그외에 read(byte.. 2024. 2. 27.
JPA - 영속성 컨텍스트 ? 영속성 컨텍스트 - 엔터티를 영구 저장하는 환경이다. 예) entitymanager.persist(member) - 와 같은 엔터티매니저 persist 메소드를 사용하면 영속성 컨텍스트에 attach된다. 엔터티에는 생명주기가 있으며 다음과같이 4가지가 있다 비영속 : 영속성 컨텍스트와 상관이없다. (영속성 컨텍스트에 attach되어있지 않다.) 영속 : 영속성 컨텍스트에 저장된 상태이다. 준영속 : 영속성 컨텍스트에 저장되어있다 특정 메소드를 통해 분리된 상태이다. 삭제 : 영속성 컨텍스트에서 삭제된 상태이다. jpa에선 영속성 컨텍스트를 관리하는데 왜 이런식으로 관리하는가? 영속성 컨텍스트로 엔터티를 관리시 장점은 아래와같이 5가지가 있다 1. 영속성 컨텍스트(메모리)에서 가져와 빠르게 조회할수있다... 2023. 9. 12.
java servlet filter 란?? (자바 서블릿 필터) 자바 서블릿 필터는 클라이언트 요청을 인터셉트 하거나 전처리할수있다. 또한 , 웹 어플리케이션서버가 클라이언트에 응답할때 인터셉트하여 후처리를 할수있다. 왜 우리는 서블릿 필터를 사용하는가? 일반적인 웹 서버는 누구든지 접근하여 uri를 통해 리소스를 요청하고 응답을 받을수있다. 하지만 웹 서버에는 민감한 자료등이 있고 이 자료들은 꼭 특정 요청(특정 유저)들에게만 access를 허용하고 싶을때가 있을것이다. 위와 같은 상황을 개발하기위해 우리는 servlet session 속성을 이용할수있다. 이러한 작업들은 꼭 필터를 이용할 필요는 없지만(각각에 서블릿 안에 위와 같은 작업을 코드로 작성하면됨. 하지만 이렇게하면 유지보수하기가 너무어려워짐.) 가로안에 이유때문에 필터를 이용하여 관리하는것이 유지보수 .. 2023. 8. 10.
728x90
반응형