전체 글579 NFA와 DFA NFA와 DFA DFA와 NFA는 서로 동등하다 DFA보다 NFA가 언어의 구조를 쉽게 표현 NFA는 DFA보다 프로그램으로 구현하기 어려움 DFA는 NFA보다 프로그램으로 구현했을 경우에 효율면에서 훨씬 우수 일반적인 구현은 DFA로 해야 되는데 NFA가 언어의 구조를 쉽게 표현할 수 있기 때문에 서로가 변환이 필요하다 DFA의 상태수 최소화(state minimization) DFA를 이용하는 어휘 분석기의 상태 전이표의 크기를 줄임 기억공간을 적게 차지하도록 하고 또한 어휘분석 프로그램을 간단히 하는데 큰 도움 상태수를 최소화하는 방법 동치관계(equivalence relation)을 이용 상태수를 합침(state merge) [정의 3.22] 구별가능(distinguishable) [정의 3.23.. Computer Science/프로그래밍 언어론 2023. 5. 28. 페이로드-공격 에이전트-좀비, 봇 페이로드-공격 에이전트-좀비, 봇 페이로드 부류는 악성 소프트웨어가 컴퓨터나 감염된 시스템 네트워크 자원을 공격자가 사용하기 위해 전복 시킨다. 인터넷에 연결된 컴퓨터를 비밀리에 장악하고, 그 컴퓨터를 이용해 공격을 수행하고 관리한다. 봇 작성자를 추적하기 어렵다 보통 공격자는 봇넷을 형성해서 공격한다. 주로 무결성과 가용성을 공격한다 봇 활용 Distributed Denial-of-service Attack (DDoS) (분산 서비스 거부 공격) DDoS 공격은 엄청난 양의 요청 또는 트래픽으로 네트워크, 서비스 또는 웹 사이트를 압도하여 정상적인 기능을 방해하려는 시도입니다. 웹사이트의 서버를 여러 소스에서 유입되는 대량의 트래픽으로 압도하여 합법적인 사용자가 웹사이트에 액세스할 수 없도록 합니다. .. Computer Science/Security 2023. 5. 28. BlindTok (5) - 갈등 해결 오늘은 프로젝트를 진행하며 생긴 갈등을 기록하고자 합니다. 항상 팀 프로젝트 과제는 악명이 높습니다. 누군가는 의미 없다고도 하죠 그럼에도 팀 프로젝트 사라지지 않는 이유는 우리 사회가 협력을 통해 성장해왔기 때문이라 생각합니다 즉 팀 프로젝트는 일종의 사회 나가는 연습을 하는 것이죠 또한, 팀 프로젝트가 중요한 이유는 기술적인 역량보다 사람과 소통하는 능력을 키우는게 더 어렵기 때문입니다 1차 난관 : 왜 하지 않는걸까…? Feat 내 욕심 캡스톤을 시작하며 전 욕심이 있었습니다. 한 마디로 정의하면 이상적인 개발자 협업 방식을 꿈꿨습니다. 예를 들면 잘 지켜지는 커밋 규칙, 어느 정도 변동을 반영하며 일정 대로 진행 되는 개발, 최소한의 서류 작업 등이 있었습니다 하지만, 역시나 이상과 현실은 달랐습.. 프로젝트/사이드 프로젝트 2023. 5. 28. 데이터 변환 with Spring 데이터 변환 with Spring Custom Property Editor: Spring이 사용 가능한 경우 유형 변환에 사용할 첫 번째 메커니즘입니다. 변환 서비스(Converter 및 Formatter 포함): 적합한 사용자 정의 PropertyEditor를 사용할 수 없는 경우 Spring은 해당 유형에 등록된 Converter 또는 Formatter를 사용합니다. 기본 속성 편집기: 다른 변환을 수행할 수 없는 경우 Spring은 기본 PropertyEditor로 폴백합니다. PropertyEditor PropertyEditor는 양방향 유형 변환을 위해 Spring에서 사용되는 Java Beans의 기능입니다. 속성 편집기에는 두 가지 유형이 있습니다. Default Property Editor.. DEV/Java 2023. 5. 27. 데이터 검증 with Spring 데이터 검증 with Spring Spring MVC에서 WebDataBinder를 통해서 데이터를 검증 할 수 있습니다 WebDataBinder는 요청 매개변수를 JavaBean 객체에 바인딩하는 Spring MVC 기능입니다. 유형 변환 및 데이터 유효성 검사를 처리합니다. @RequestMapping("/getYoilMVC5") public String main(@ModelAttribute MyDate date, BindingResult result){} 이 코드에서 WebDataBinder는 요청 매개변수를 MyDate 개체에 바인딩합니다. BindingResult는 이 프로세스의 결과 및 관련 오류를 보유합니다. @InitBinder @InitBinder 주석은 WebDataBinder를 초기화.. DEV/Java 2023. 5. 27. Spring MVC 예외 처리 및 상태 코드 매핑 가이드 Error 페이지 생성 with Spring 예외 종류별로 뷰 지정 Spring MVC에서는 servlet-context.xml 설정 파일에 이러한 매핑을 지정함으로써 특정 상태 코드를 사용자 정의 뷰에 매핑할 수 있습니다. SimpleMappingExceptionResolver 빈 설정 : 예외 종류 별로 뷰 지정 servlet-context.xml 에 SimpleMappingExceptionResolver 빈을 선언해야 합니다. 이 빈은 예외를 뷰 이름에 매핑하는 데 사용될 수 있습니다: error400 이 설정에서 com.fastcampus.ch2.MyException은 error400 뷰에 매핑됩니다. 이는 MyException이 발생하면 error400.jsp 뷰가 사용자에게 반환된다는 것을 의.. DEV/Java 2023. 5. 26. 예외처리 with Spring Spring 예외 처리 Spring 프레임워크에서는 @ExceptionHandler, @ControllerAdvice, @ResponseStatus 등의 애노테이션을 사용하여 예외 처리를 합니다. @ExceptionHandler @ExceptionHandler는 @Controller 클래스 내에서 발생하는 예외를 처리하는 데 사용되는 애노테이션입니다. 이는 예외를 처리하는 메서드 내부에서 사용되어야 합니다. @Controller public class ExceptionController { @ExceptionHandler({NullPointerException.class, FileNotFoundException.class}) public String handleException(Exception ex, .. DEV/Java 2023. 5. 26. 프로그래밍 언어론 - 식 프로그래밍 언어론 - 식과 제어문 표현식(Expression) 계산 표현의 기본 수단 연산자, 피연산자, 괄호, 함수 호출 등으로 구성 연산자(Operator) 피연산자가 하나인 단항 연산자 피연산자가 2개인 이항 연산자 C 기반 언어 삼항 연산자: (i%2) ? “홀수” : “짝수” 대부분의 프로그래밍 언어에서 이항 연산자는 피연산자 사이에 위치합니다: x + y LISP에서 연산자는 피연산자 앞에 위치합니다: (+ x y) 연산자 표기 방법 중위 표기법(infix notation) : 연산자가 피연산자들 사이에 위치하는 표기법 전위 표기법(prefix notation) 연산자가 피연산자들보다 앞에 위치하는 표기법 예) 함수 호출 표기 : add(1, mul(2, 3)) 후위 표기법(prefix not.. Computer Science/프로그래밍 언어론 2023. 5. 25. Session 개요 with Spring Session 개요 with Spring 세션은 사용자의 상태와 데이터를 여러 관련 HTTP 트랜잭션(거래)에 걸쳐 유지하기 위한 메커니즘입니다 세션은 Cookie처럼 여러 HTTP 트랜잭션을 아우를 수 있어, 동일한 브라우저에서의 일련의 요청과 응답을 그룹화 할 수 있습니다 이를 통해 서버는 사용자의 상호작용을 기억하고 웹 애플리케이션을 탐색하는 동안 상태를 유지하게 됩니다 Spring에서는 standard manager가 세션 객체를 만들고 삭제 등의 관리를 합니다 하지만, 세션 저장소의 편리함의 이면에는 서버 부담이 존재하기 때문에 유의해서 사용해야 합니다. 핵심 원리 세션을 인식하는 방법은 간단합니다. 오고가는 HTTP 트랜잭션에 세션 ID를 붙이면 되죠 세션 ID를 붙임으로써 원래 요청과 응답은.. DEV/Backend 2023. 5. 25. Cookie Cookie 쿠키는 ASCII 문자로만 된 이름과 값의 쌍으로 구성된 작은 정보입니다. 보통 쿠키는 클라이언트 식별 기술로 사용됩니다. 서버에서는 저장된 쿠키를 읽어 사용자를 식별합니다 서버에서 생성 되어 사용자의 브라우저로 전송되어 저장됩니다. 이 때 쿠키에는 유효기간, 도메인, 경로도 같이 포함 되어 전송됩니다 유효기간 쿠키에 저장된 유효기간에 도달하면, 쿠키는 자동으로 삭제 됩니다. 또한, 쿠키에는 상대시간과 절대 시간이 모두 기록되어서, 쿠키가 만료 시기를 결정하는데 도움을 줍니다 경로 사용자가 서버에 요청을 보낼 때마다, 브라우저는 요청의 도메인과 경로가 쿠키의 경로와 일치하는 경우에만 요청과 함께 쿠키를 자동으로 보냅니다 Cookie 왜 쓰는가? 쿠키는 HTTP의 Stateless에 기인한 문.. DEV/Backend 2023. 5. 25. BindingResult argument is expected to be immediately after the model attribute argument in the controller method signature BindingResult Argument is Expected to Be Immediately After the Model Attribute Argument in the Controller Method Signature @Controller public class YoilTellerMVC6 { @ExceptionHandler(Exception.class) public String catcher(Exception ex, BindingResult result) { System.out.println("result="+result); System.out.println("error="+result.getFieldError()); return "yoilError"; } @RequestMapping("/getYoil.. ETC 2023. 5. 23. 오토마타 오토마타 오토마타는 디지털 컴퓨터의 추상적 모델이다. 그래서인지 입력 장치, 제어 장치, 출력 장치, 저장 장치로 이루어져 있다. 추가로, 일시 기억 장치(무한개의 기억소자 cell로 이루어짐), 제어 장치(유한 개의 내부 상태 중 하나의 상태를 항상 유지)도 있다 오토마타의 분류 기능적인 측면 : 인식기(accepter)와 변환기(transducer) 구분 인식기의 경우 입력된 결과에 대해 오토마타는 인식/기각(accept/reject) 등을 표시하는 이진 기호를 출력한다 언어 변환기는 주어진 입력에 대응하는 새로운 문자열을 출력한다 변환기에는 상태에 따른 출력을 내는 Moore 기계와 전이에 따른 출력을 내는 Mealy 기계 등이 있다. 결정적 오토마타 VS 비결정적 오토마타 구분 결정적/비결정적 오.. Computer Science/프로그래밍 언어론 2023. 5. 23. 이전 1 ··· 24 25 26 27 28 29 30 ··· 49 다음