2023/05

EBNF EBNF의 등장 이유는 BNF를 이용해서 표현하는데 어려움이 있기 때문이다 예를들어 식별자의 길이를 지정해 준 경우 아래와 같이 엄청난 가지 수의 생성 규칙이 생성 될 수 있기 때문이다 ::= | | | | | | | ... | ::= a | b | c | ··· | z ::= 0 | 1 | 2 | ··· | 9 이와 같이 BNF는 반복되는 부분을 표시하는데 어려움을 가지기 때문에, 반복되는 부분을 쉽게 표시하면서 BNF (Backus-Naur Form)로 표시하는 방법이 EBNF이다. EBNF 표기법 반복되는 부분을 BNF 표기법보다 읽기 쉽고 간결하게 표현 BNF 표기법의 세 가지 메타 기호에 반복을 나타내는 { }와 [ ]를 추가하여 사용 {a}는a가0번이상반복될수있다는것을의미 정규표현 a..
구문 도표 쉽게 이해할 수 있도록 문법을 도식화하는 방법입니다. 일반적으로 구문 도표는 사각형과 타원 그리고 이들 사이를 연결한 간선(edge)으로 구성 구문 도표를 그리는 방법 터미널 기호 : 원 논 터니멀 기호 사각형 생성 규칙 접속 : 터미널/논 터미널을 간선으로 이어 통해 표현 생성 규칙 선택 : 병렬 처리하는 그림으로 표현 생성 규칙 : 반복 위의 그림은 B → α* 를 표현한 것이다 루프 형태로 표기하면, N 번 이상 반복하는 것을 표현 가능하다 예제 : 구문 도표로 표현하기 다음 문법을 구문 도표로 표현하라 G = (V_N, VT, P, S) V_N ={A,B,C} VT = {a, (, ), b, c {, }} S=A P: A→a|(B) B → bC C → {c} 논터미널 기호인 A와 B를 ..
정규 문법의 연산 순서 정규 문법의 연산자 우선순위와 연산 과정을 살펴보자 핵심 개념 정규식의 연산자 우선 순위는 정규식을 평가할 때 작업 순서를 명확히 하기 위해 정의됩니다. 다음은 정규 표현식 연산자와 그 우선 순위입니다 Kleene Star (*): 이 연산자는 우선 순위가 가장 높습니다. 바로 앞의 정규 표현식이 0개 이상 발생함을 나타냅니다. "r"이 정규식인 경우 "r*"는 0개 이상의 “r” 항목과 일치합니다. 연결(.): 두 번째로 높은 우선 순위는 연결 연산자입니다. 두 개의 정규식 "r"과 "s"를 하나로 결합합니다. 여기서 “r” 바로 뒤에 "s"가 옵니다. 즉, "r"과 "s"가 정규 표현식인 경우 "r.s"는 두 부분으로 분해될 수 있는 모든 문자열과 일치합니다. 여기서 첫 번째 ..
SSH SSH(Secure Shell)는 클라이언트-서버 모델을 사용하여 한 컴퓨터에서 다른 컴퓨터로 보안 원격 로그인을 위한 프로토콜입니다. SSSH 클라이언트/서버 응용은 대부분의 운영체제에서 광범위하게 수용됩니다 SSH 프토토콜 스택 SSH 프로토콜 스택의 구성은 크게 3가지로 나뉜다 전송 계층 프로토콜(Transport Layer Protocol) 전방향 기밀(즉 한 세션에서 세션 키나 영구 개인키가 손상되더라도, 이전 세션의 기밀성에 영향을 미치지 않는다)을 만족하는 서버 인증, 데이터 기밀성과 데이터 무결성을 제공한다 전송 계층에서는 옵션으로 압축도 가능하다 사용자 인증 프로토콜(User Authentication Protocol) 서버에게 사용자를 인증한다 연결 프로토콜(Connection ..
HTTPS(HTTP Over TLS) HTTPS는 SSL을 통한 HTTP로, 웹 브라우저와 웹 서버 간의 보안 통신을 제공합니다. 모든 웹 브라우저에 내장 되어 있습니다. HTTPS URL 주소는 "https://"로 시작하며, HTTPS는 보안 통신을 위해 SSL을 활용하여 포트 443에서 작동합니다. 암호화 요소 요청 문서 URL 문서 내용 (브라우저 사용자가 입력한) 브라우저 양식 내용 브라우저가 서버에게 보낸 쿠키와 서버가 브라우저로 보낸 쿠키 HTTP 헤더 내용 연결 개시 HTTP 클라이언트(TLS 클라이언트)는 적절한 포트를 통해 서버에 연결을 시작하고, TLS 핸드쉐이크를 시작하기 위해 TLS ClientHello를 전송한다 TLS 핸드쉐이크가 마무리되면, 첫 번재 HTTP 요청을 전송한다...
· DEV/Java
Spring MVC의 Redirect와 Forward 웹 애플리케이션 개발에서는 한 웹 페이지에서 다른 웹 페이지로 네비게이션해야 하는 상황이 발생합니다. Spring MVC에서는 이를 리다이렉트와 포워딩을 통해 구현할 수 있습니다. Redirect 리다이렉트는 두 번의 요청과 두 번의 응답을 포함합니다. 리다이렉트가 발생하면 다음과 같은 과정을 거칩니다 클라이언트가 서버에 요청을 보냅니다. 서버는 클라이언트에게 응답을 보내 다른 URL로 새로운 요청을 보내도록 알립니다. 클라이언트는 지정된 URL로 새로운 요청을 보냅니다. 서버는 새 URL로부터 클라이언트에게 응답을 보냅니다. 리다이렉트는 클라이언트에서 서버로의 두 번의 왕복을 포함하기 때문에 포워드보다 느립니다. Forward 리다이렉트와 달리 포워..
· DEV/Java
DispatcherServlet DispatcherServlet은 Spring MVC 프레임워크의 핵심 요소 중 하나로, 모든 HTTP 요청을 최초로 받아들이는 ‘프론트 컨트롤러’ 역할을 합니다. Spring의 web MVC 프레임워크의 중앙 서블릿인 DispatcherServlet는 클라이언트의 요청을 받아 적절한 컨트롤러에게 전달하고, 그 컨트롤러에서의 처리 결과를 바탕으로 적절한 뷰를 선택해주는 중요한 역할을 합니다 DispatcherServlet의 주요 역할은 다음과 같습니다: 요청 분석: 클라이언트로부터 오는 HTTP 요청을 분석합니다. 핸들러 매핑: 분석된 요청을 해당하는 컨트롤러에게 전달하기 위해 핸들러 맵핑을 수행합니다. 요청 처리: 매핑된 컨트롤러가 요청을 처리하고 결과를 반환하면, Di..
· DEV/Java
Spring은 어떻게 매개변수만 적으면 라우팅을 해주는걸까 Spring의 라우팅은 URI가 서버의 특정 리소스에 직접 연결된 기존 웹 애플리케이션과 상당히 다릅니다. 대신 Spring은 들어오는 웹 요청을 처리하는 방법을 결정하기 위해 컨트롤러, 메소드 및 주석 시스템을 사용합니다. Understanding Controllers and Request Mapping Spring에서 컨트롤러는 들어오는 웹 요청을 처리하는 클래스입니다. 클래스에 @Controller 주석을 추가하여 컨트롤러로 지정됩니다. 이러한 컨트롤러 클래스 내에서 다양한 유형의 요청을 처리하기 위한 메서드가 정의됩니다. 이러한 메서드는 @RequestMapping 주석을 사용하여 특정 URL 또는 URL 패턴에 매핑됩니다. 예를 들면 다..
· DEV/Java
Spring MVC에서 @ModelAttribute 이해하기 Spring MVC의 @ModelAttribute 주석은 메소드 인수 또는 메소드 반환 값을 명명된 모델 속성에 바인딩하여 웹 뷰에 노출하는 데 사용됩니다. @ModelAttribute 주석은 다음 두 가지 주요 시나리오에서 사용할 수 있습니다: 1. 메소드 인자 이 시나리오는 주로 양식 처리와 관련이 있으며, 여기서 객체가 요청 매개 변수로 채워진 후 메소드로 전달됩니다. 채워진 객체는 자동으로 모델에 추가됩니다. 예를 들어 사용자가 개인 정보를 제출할 수 있는 양식 페이지를 만들고 있는 상황입니다 우리는 다음과 같은 User 클래스를 가지고 있습니다 public class User { private String name; private St..
· DEV/Java
Servlet Filter Servlet 필터는 Java Servlet 기술의 핵심 기능 중 하나로 웹 애플리케이션에서 요청과 응답을 가로채고 처리할 수 있습니다. 필터는 요청과 응답에 대해 전처리와 후처리 작업을 수행하며, 필요한 경우 수정할 수도 있습니다. 필터는 중복 코드 없이 여러 서블릿에 공통 기능을 적용할 수 있는 방법을 제공함으로써 웹 애플리케이션 작업의 효율성과 효과성을 크게 향상시킵니다. 다음은 Servlet 필터에 대한 주요 포인트를 간결하게 정리한 내용입니다: 주요 특징 구현: 필터는 javax.servlet.Filter 인터페이스를 구현하는 Java 클래스입니다. 다중 필터: 웹 애플리케이션에 여러 필터를 사용할 수 있으며, 필터 매핑 구성에 따라 정의된 순서대로 실행됩니다. 등록 ..
berom
'2023/05 글 목록 (3 Page)