BackEnd - Spring 4

HTTP 비동기 통신 - WebFlux

Azure Open Ai Api(gpt4o) 통신을 하면서 대량의 데이터를 API에서 응답받을 때, 서버가 전체 데이터를 모두 받아 클라이언트로 전달하면 응답 시간이 길어져 서비스 하기 어려운 점이 있었다. 이를 해결하기 위해 WebFlux를 활용하여 서버와 클라이언트 간 스트리밍으로 데이터 전송을 구현할 수 있다.기존 HTTP 통신 방식요청-응답: 클라이언트가 서버에 요청(Request)을 보내고, 서버가 모든 데이터를 준비한 후, 완성된 응답(Response)을 한 번에 클라이언트에 전달합니다.동기 처리: 서버가 전체 데이터를 준비할 때까지 클라이언트는 응답을 기다려야 하므로, 대기 시간이 길어질 수 있습니다. 특히, 대량의 데이터가 필요한 경우 전체 데이터를 준비하는 데 시간이 걸리기 때문에 최종 ..

BackEnd - Spring 2024.10.27

API 인터페이스 소켓 SSL 핸드쉐이크 에러

java.net.SocketException: Connection reset at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at sun.security.ssl.InputRecord.readFully(Unknown Source) at sun.security.ssl.InputRecord.read(Unknown Source) at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) 시스템에서 외부 API 와 통신을 하려는데 통신이되지 않고 Socket 에러를 나타냈다. 확인해보니 통신중 서버와 클라이언트간 SSL/TLS 3W..

BackEnd - Spring 2024.10.24

front-back 통신 한글 인코딩 문제

컨트롤러에서"안녕하세요! 어떻게 도와드릴까요?"  프론트로 이렇게 데이터를 보내주었는데  ?????! ????? ?????? 에 데이터로 받아지는 것을 확인했다. 디버깅를 보니.17:06:44.161 [http-bio-8081-exec-6] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Written [안녕하세요! 어떻게 도와드릴까요?] as "text/plain;charset=ISO-8859-1" using [org.springframework.http.converter.StringHttpMessageConverter@59e13ea] 17:06:44.161 [http-bio-8081-exec-6] DEBUG o.s.web.servlet.DispatcherServl..

BackEnd - Spring 2024.10.22

Rest API 통신 방법 - HttpURLConnection, RestTemplate

HttpURLConnection 으로 통신하기 원시 HTTP 연결 사용:HttpURLConnection 클래스를 사용하여 HTTP 요청을 직접 생성하고 관리합니다.URL을 사용하여 연결을 열고, 요청 메서드, 헤더, 타임아웃 등을 설정합니다.요청 본문을 쓰기 위해 BufferedWriter를 사용하고, 응답을 읽기 위해 BufferedReader를 사용합니다.예외 처리:SocketTimeoutException, IOException 등을 개별적으로 처리합니다.연결이 끝난 후 finally 블록에서 연결을 닫습니다.직접 JSON 생성:JSONObject와 JSONArray를 사용하여 JSON 요청 본문을 직접 생성합니다.응답 처리:응답 코드를 출력하고, 응답 본문을 StringBuilder를 사용하여 읽습..

BackEnd - Spring 2024.10.22
반응형