Servlet(서블릿) & Servlet Container(서블릿 컨테이너) 이란?
·
CS
Servlet(서블릿) 이란? 개념 서블릿(Servlet)은 자바 언어로 작성된 웹 애플리케이션의 서버 측 컴포넌트입니다. 주로 동적인 웹 페이지를 생성하고 사용자 요청에 대한 응답을 처리하는 데 사용됩니다. 서블릿은 Java Servlet API를 구현하는 클래스로 구성되어 있으며, 서버 측에서 실행되어 웹 서버와 통신합니다. 특징 동적인 콘텐츠 생성: 서블릿은 클라이언트의 요청에 동적으로 응답을 생성할 수 있습니다. 예를 들어, 사용자가 폼을 제출하거나 특정 페이지를 요청할 때 데이터베이스에서 정보를 검색하거나 계산을 수행하여 동적으로 페이지를 생성할 수 있습니다. 플랫폼 독립성: 자바로 작성되었기 때문에 서블릿은 플랫폼 독립적입니다. 이는 서블릿이 다양한 운영 체제 및 하드웨어에서 실행될 수 있음을..
Tomcat Server 외부 접속 허용 방법
·
CS
Toacat Webserver 다른 PC에서 접속하고 싶을 때 외부애서 접속할 수 있도록 포트를 열어줘야 합니다 ! 설정 방법 1. 제어판 - Windows 방화벽을 엽니다. 2. Windows 방화벽 왼쪽 메뉴에서 [고급 설정] 메뉴를 클릭합니다. 3. [인바운드 규칙]을 오른쪽 마우스 클릭하여 [새 규칙] 메뉴를 클릭합니다. 4. 규칙 종류에서 [포트]를 선택하고 다음으로 넘어갑니다. 5. 프로토콜 및 포트에서 [TCP]와 [특정 로컬 포트]를 선택하고 다음으로 넘어갑니다. 6. 프로필은 별 다른 설정없이 다음으로 넘어갑니다. 7. 이름은 원하는 이름으로 설정해주면 됩니다. 8. 설정을 마치면 다음과 같이 인바운드 규칙이 생성됩니다. 외부 접속 방법 웹 브라우저를 열고 다음과 같이 외부 접속을 허용한..
CORS( Cross-origin Resourcs Sharing )
·
CS
CORS : Cross-Origin Resource Sharing? 추가 HTTP 헤더를 사용하여 브라우저에게 한 출처에서 실행 중인 웹 응용 프로그램의 다른 출처의 선택된 자원에 대한 접근 권한을 알려주는 메커니즘.이라고 MDN에 나와있지만 좀 어렵다. 예들 들면 현재 도메인과 다른 도메인으로 리소스가 요청되는 경우, https://domain-a.com에서 제공되는 프런트 엔드 JavaScript 코드가 XMLHttpRequest를 사용하여 https://domain-b.com/data.json를 요청하게 되면 이런 경우 보안상의 이유로 브라우저는 기본적으로 크로스 도메인 요청을 제한하고 있다. 이렇게 제한을 두게 된 까닭은, 옛날의 서버와 클라이언트는 서버에서 내려받은 클라이언트로만 통신을 했기 때..
HTTPS 인증서 만료되었을 경우
·
CS
HTTPS 인증서가 만료되면, 웹 서버와 클라이언트 간의 통신을 암호화하는 데 사용되는 디지털 인증서의 유효 기간이 만료되었음을 의미합니다. 만료된 인증서로 웹 사이트에 액세스하려고 시도하면, 일반적으로 웹 브라우저가 연결이 안전하지 않다는 경고 메시지를 표시합니다. 이는 보안에 대한 우려로 인해 사용자가 해당 사이트에 액세스하지 않도록 할 수 있습니다. HTTPS 인증서의 작동 원리는 클라이언트(일반적으로 웹 브라우저)와 서버 간의 통신을 암호화하여 네트워크를 통한 데이터 전송을 보호하는 것입니다. 이 암호화는 신뢰할 수 있는 인증 기관(CAs)에 의해 발급된 디지털 인증서를 사용합니다. 이러한 인증서에는 도메인 이름, 만료 날짜 및 서버의 공개 키와 같은 정보가 포함되어 있습니다. 인증서가 만료되면 ..
HTTP와 HTTPS의 차이를 깊게 이해하기
·
CS
소개 HTTP와 HTTPS의 중요성을 강조하며, 두 프로토콜 간의 기본적인 차이를 설명합니다. HTTP란 무엇인가요? HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간의 데이터 전송을 위한 표준 프로토콜로, 웹 브라우저와 웹 서버 간의 통신에서 사용됩니다. HTTP는 TCP/IP를 기반으로 하며, 요청과 응답 메시지를 통해 데이터를 전송합니다. 그러나 HTTP는 암호화되지 않은 텍스트를 사용하기 때문에 보안상 취약합니다. HTTPS란 무엇인가요? HTTPS(Hypertext Transfer Protocol Secure)는 HTTP의 보안 버전으로, 데이터를 암호화하여 안전한 통신을 제공합니다. HTTPS는 SSL(Secure Sockets Layer) 또는 TLS(Tra..
WAS 종류
·
CS
WAS(웹 어플리케이션 서버)는 현대 웹 개발에서 중요한 부분을 차지합니다. 그러나 많은 사람들이 WAS가 정확히 무엇을 하는지, 어떻게 작동하는지를 명확히 이해하지 못하고 있습니다. 이에 대해 좀 더 깊이 있는 이해를 돕기 위해 여기서 WAS의 개념과 기능을 살펴보도록 하겠습니다. WAS란 무엇인가? WAS는 클라이언트 애플리케이션과 데이터베이스 사이에서 중개자 역할을 합니다. 즉, 클라이언트의 요청을 받아 서버 측 로직을 실행하고, 결과를 생성하여 클라이언트에게 제공합니다. 이는 동적인 컨텐츠 생성, 데이터베이스 연동, 보안, 트랜잭션 관리 등 다양한 기능을 포함합니다. WAS의 주요 기능 Servlet/JSP 컨테이너: Java Servlet과 JSP를 실행하고 관리하는 환경을 제공합니다. 웹 컨테..
Web Server VS WAS
·
CS
Web Server와 WAS 차이 Web Server Web Server의 개념 - 소프트웨어와 하드웨어로 구분된다. 1) 하드웨어 Web 서버가 설치되어 있는 컴퓨터 2) 소프트웨어 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 컴퓨터 프로그램 Web Server의 기능 - HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스 하는 기능을 담당한다. - 요청에 따라 아래의 두 가지 기능 중 적절하게 선택하여 수행한다. 기능 1) - 정적인 컨텐츠 제공 - WAS를 거치지 않고 바로 자원을 제공한다. 기능 2) - 동적인 컨텐츠 제공을 위한 요청 전달 - 클라이언트의 요청(Request)을 WAS에 보내..
상태 관리 ) Riverpod 2 vs Bloc vs GetX
·
Flutter
상태 관리는 앱의 데이터와 정보를 추적하는 방법과 변경 사항이 있을 때 사용자 인터페이스(UI)를 업데이트하는 방법입니다. 예를 들어 화면에 숫자를 표시하는 카운터 앱이 있고 사용자가 버튼을 탭할 때 해당 숫자를 늘리거나 줄이려는 경우 해당 숫자의 상태와 이를 표시하는 UI를 관리해야 합니다. Flutter에서 상태 관리를 수행하는 방법에는 여러 가지가 있으며 각 방법에는 고유한 장단점이 있습니다. 이 기사에서는 세 가지 인기 있는 상태 관리 솔루션인 Riverpod2, BLoC 및 GetX를 비교해 보겠습니다. 우리는 그들이 어떻게 작동하는지, 무엇을 제공하는지, 그리고 서로 어떻게 다른지 알아볼 것입니다. Riverpod 2 란 무엇인가 ? Riverpod2는 Flutter의 가장 인기 있는 상태 관..
Dart 3.0 문법
·
Flutter
코드 팩토리의 플로터 프로그래밍 책을 보며 공부하다가 Dart 3.0 문법을 소개 드리면 좋을 것 같아 글을 남깁니다. 다트 3.0 신규 문법 플러터 3.0 버전부터는 다트 3.0 버전 이상을 사용합니다. 그리고 다트 언어의 메이저 버전이 3으로 업데이트되면서 새로 추가된 문법들이 생겼습니다. 다트 3.0 버전 업데이트 이후 어떤 문법들이 추가로 생겼는지 알아보겠습니다. 1. 레코드 레코드(Record)는 다트 3.0 이상부터 사용할 수 있는 새로운 타입입니다. 레코드는 포지셔널 파라미터(Positional Parameter)나 네임드 파라미터(Named Parameter) 중 한 가지 방식을 적용하여 사용할 수 있습니다. 두 방식은 모두 괄호 안에 쉼표로 구분하여 작성합니다. 자세한 내용은 다음 실제 ..
Flutter 3.7 & Dart 3.0 업데이트 내용
·
Flutter
업데이트 목록 Flutter - Fonts asset hot reload - Text animation by FontVariation widget - Dart, Flutter Engine, Flutter SDK에 대해 최소 SLSA level 2 인증 보장 - FlutterFlow (Figma와 같은 UI Toolkit), API 콜이 가능해보임 - Material 3 - ffigen & jnigen (언어 변환, 예를 들어 Android SDK => C or C++ => Dart로 활용하는 것이 가능) Dart - Pattern matching - Multiple returns - Usable switches - Object Destructing - Functional-style programming ..