개발기술/Web Dev (9) 썸네일형 리스트형 파일서빙 전략, 표준 그리고 구현 파일 서빙 전략1. 주체별 분류누가 실제로 클라이언트에 파일을 보내주는가?분류설명예시앱(Java( 서버에서 직접 응답Java에서 InputStream → OutputStream으로 전달바이트 스트림 방식웹(Ngnix, S3) 서버에서 정적 서빙클라이언트가 직접 정적 파일 서버에 요청해서 받음Nginx /files/, S3 public 버킷앱 + 웹 연계(Java 인증 후 Nginx 서빙)Java가 인증/권한 체크 후 Nginx로 위임X-Accel-Redirect 등으로 우회시킴CDN글로벌 캐시 서버가 등록된 파일을 대신해서 전송해주는 전송 대행 서비스CloudFront, Cloudflare주체별 분류 : Java 직접 응답바이트 스트림 방식 (Java 등에서 직접 처리)Java (Spring 등)에서 I.. Static File Upload Generalized Static File Upload WorkflowClient uploads a file (MultipartFile)Client (frontend or mobile) sends a multipart/form-data request:POST /uploadContent-Type: multipart/form-data--boundaryContent-Disposition: form-data; name="file"; filename="image.jpg"Content-Type: image/jpeg (binary data) Server stores the file (locally or in cloud) and returns a public-accessible URL@PostMapping("/u.. Tomat And Netty Tomcat vs Netty — What's the Difference? Feature / AspectTomcatNettyBuilt forServlet-based web apps (Spring MVC)General-purpose networking (low-level)I/O modelBlocking or semi-blockingFully non-blocking, event-drivenProtocolsHTTP/1.1, some HTTP/2HTTP/1.1, HTTP/2, WebSocket, TCP, UDPUse caseTraditional web serversReactive systems, custom protocolsAbstraction levelHigh (Servlets, Filters)Low (Chan.. NGNIX 사용 Nginx의 역할 개요 Nginx는 "클라이언트 요청을 목적지로 라우팅(프록시)하는 고성능 리버스 프록시 서버" 로써 다양한 역할을 수행하는 강력한 서버 소프트웨어(미들웨어)입니다. 본질적으로 "요청 분기 처리기", 즉 라우팅 분기 부가적으로 요청 경로가 특정 조건(location block)에 맞으면, 디스크에서 직접 파일도 제공 가능 역할 설명① 웹 서버 (Web Server)HTML, CSS, JS, 이미지 등 정적 파일을 빠르게 서빙② 리버스 프록시 (Reverse Proxy)클라이언트 요청을 받아 백엔드 서버(Spring, Node 등)로 전달→ 백엔드 직접 노출 없이 보호 및 전달③ 로드 밸런서 (Load Balancer)여러 서버에 요청을 분산하여 트래픽 균형 유지④ 보안 게이트.. RESTFUL API 설계 REST API의 등장배경 멀티플랫폼의 등장단순히 하나의 브라우저만 지원하면 되었던 이전과는 달리, 최근의 서버 프로그램은 여러 웹 브라우저는 물론이며, 아이폰, 안드로이드 애플리케이션과의 통신에 대응할 수 있어야 합니다. 그전에는?2010년 이전만 해도 Server Side에서 데이터를 전달해주는 Client 프로그램의 대상은 PC 브라우저로 그 대상이 명확했다. 클라이언트의 환경이 비교적 일정했기 때문에, 서버에서 완성된 웹 페이지를 만들어 전송하는 방식이 일반적이었습니다. 그렇다 보니 그냥 JSP ASP PHP 등을 필요한 웹페이지를 구성하고 작업을 진행하면 됐다.즉, 데이터와 프레젠테이션 로직이 서버에서 함께 처리되었습니다. 그래서 범용적이고 유연하고 확장성이 있는 구조가 필요서버는 데이터만을 제.. Interception , Filter 서블릿 FilterServlet Filter is an object that can intercept and manipulate requests and responses in a web application. "filter" specifically refers to the interception and processing of HTTP requests and responses within the web application framework. (interception is a broader concept than filter) Key Concepts of Servlet Filters:Interception Mechanism: Filters work by intercepting requests before.. 프론트엔드 연계 관련 지식 백엔드/프론트 엔드 관계백엔드는 프론트엔드 서버에 응답을 보내는 것이 아니라, 직접 브라우저로 데이터를 전송합니다. 즉, 브라우저에서 자바스크립트 코드가 해당 응답을 처리하게 되는데, 이때 CORS 정책이 적용됩니다.. 유저의 브라우저가 내려받은 JavaScript가 백엔드의 Authorization 헤더에 접근할 수 있도록 설정하는 것이 핵심입니다. 4. CORS 설정CORS (Cross-Origin Resource Sharing) 설정: 브라우저가 최초 접속한 도메인과는 상이한 도메인에서 오는 요청을 접근하는 것을 허용하도록 application.yml에 CORS 설정을 추가합니다. 이 설정은 클라이언트가 다른 도메인에서 Gateway에 접근할 때 필요한 것입니다. CORS 설정을 통해 허용된 출.. 외부 API 활용 (Pure Java, Webclient, 최적화)과 직렬화/역직렬화 Parsing API란?Application programming Interface, 어플리케이션의 프로그래밍 통신수단 일반적으로 OPEN API는 브라우저 웹페이지 로딩과 유사하게 HTTP프로토콜의 request와 response 방식으로 이루어진다. 단지, 전달되는 컨텐츠가 html인지 혹은 데이터(json 등)인지의 차이가 있음. 사용할 API 선택시 고려사항API documentation 상세확인을 통해서 아래와 같은 질문에 답해본다.API가 내가 원하는 얼만큼의 세부적인 query가 가능한가 ? (request)API가 사용하기는 편한가? 유료인가 혹은 무료인가API의 호출결과가 쓸만한지? (response)데이터 타입은 사용할만한지? 제공하는 데이터가 얼마나 상세한가? API 요청방식(1) Pure J.. 이전 1 2 다음