2024/11/19 9

[PLT/프로그래밍언어론] 04. Names, Bindings and Scopes

04. Names, Bindings and ScopesName: 단순히 다른 객체를 표현하거나 나타내는 일련의 문자. PL에서는 identifier의 형태name과 object는 같은 것이 아니다. 하나의 이름이 여러 다른 객체, 하나의 객체가 다른 이름을 가질 수 있다.Denotable Object: 이름을 부여할 수 있는 객체들사용자가 부여 : 변수, 매개변수, 함수….PL 부여 : primitive types, primitive operations, pre-defined constnatsBinding: Association(연관성) between a name and a denoted object.다양한 시점에서 생성될 수 있다static : 디자인, 프로그램 작성, 컴파일타임Dynamic : Run..

[PLT/프로그래밍언어론] 03. PL Principle 2

03. Principle 2#PLT이전 시간에 컴파일 Step에 대해 배웠다. 그 중 Syntax Analysis를 자세히 살펴보자.문법 vs. 의미론 vs. 화용론문법(Syntax)은 프로그램의 형식에 관한 것이다.의미론(Semantics)은 프로그램의 의미에 관한 것이다.화용론(Pragmatics)은 특정 맥락에서 프로그램의 의미를 다룬다.예시: 톰과 제리문법:"쥐가 고양이를 차고 있다." ➞ 올바름!"쥐 고양이를 차고 있다." ➞ 잘못됨!의미론:"쥐가 고양이를 차고 있다." ➞ "음, 잠깐만… 뭐라고?"화용론:"쥐는 제리, 고양이는 톰이다." ➞ "아하! 가능하군."문법에 중점세 가지 중, 이 강의에서는 문법에 더 중점을 둔다.다른 것들에 대해 논의하기 전에, 프로그래밍 언어를 어떻게 정의할지 알아..

[PLT/프로그래밍언어론] 02. PL Principle 1

02. Principle 1#PLTComputers and Turing MachineWhat is a Computer?이 강의에서는 PL을 중점으로 다룰 예정이다.우리는 프로그래밍 언어의 크리에이터가 된다고 생각하자.PL을 디자인할 때, 컴퓨터에서 프로그램이 동작하도록 하기 위해 많은 것들을 고려해야 하고, 우리는 이 부분을 중점으로 학습한다.PL의 관점에서 컴퓨터란 무엇인가요?프로그래밍 언어는 결국 컴퓨터에서 실행됩니다.프로그래밍 언어를 설계하거나 프로그래밍 언어로 프로그램을 개발하려면 ➞ 컴퓨터가 어떻게 작동하는지 이해해야 합니다.이 질문을 들으면 컴퓨터에 대한 다양한 이미지가 떠오를 수 있습니다.이번 주 강의에서는 이 질문에 대해 좀 더 이론적으로 살펴볼 것입니다.강의가 끝나면 컴퓨터에 대한 일반적..

[AI/Concepts] 07. Optimization

최적화 및 탐색 알고리즘 개요최적화 (Optimization)정의: 가능한 여러 옵션 중에서 최선의 옵션을 선택하는 것.문제 해결 도구: 비용을 최소화하는 방법을 찾는 것 등 더 넓은 범위의 문제 해결.탐색 문제: 최선의 방법을 찾는 문제.탐색 방법: 그 중 하나로 지역 탐색이 있음.지역 탐색 (Local Search)정의: 단일 노드를 유지하고 인접 노드로 이동하여 탐색하는 알고리즘.미로 해결과의 비교:미로: 목표까지 가장 빠른 경로를 찾음.지역 탐색: 질문에 대한 최선의 답을 찾는 데 중점.특징:종종 최적의 답을 찾지는 못하지만, "충분히 좋은" 답을 찾아 계산 자원을 절약함.예시: 병원 위치 선정평가 기준: 이동 거리를 비용(cost)으로 사용.현재 결정의 평가 기준: 현재 decision이 얼마나..

AI/Concepts 2024.11.19

[AI/Concepts] 06. Uncertainty

AI Concepts불확실성 (Uncertainty)현실에서는 인공지능이 세계에 대한 부분적인 지식만을 갖고 있기 때문에 불확실성(uncertainty)이 존재합니다.이러한 상황에서도 우리는 인공지능이 가능한 최선의 결정을 내리길 바랍니다.예측 (Prediction)내일 날씨를 100% 정확하게 예측할 수 있는 방법은 없지만, 우리는 최선의 방법을 찾으려 합니다.강수확률: 확률로 표현되며, 이는 불확실성을 나타냅니다.Uncertainty: Likelihood를 숫자로 표현Probability: 특정 사건이 일어날 확률우연?불확실성은 여러 사건과 각각의 사건의 수, likelihood, probability로 나타낼 수 있습니다.Likelihood: 사건들을 설명할 수 있는 통계 모델Probability:..

AI/Concepts 2024.11.19

[AI/Concepts] 05. Knowledge

AI Concepts지식 (Knowledge)인간은 기존의 지식(existing knowledge)을 바탕으로 추론하여 결론을 도출(draw conclusion)합니다.Reason: Thinking rationally사고과정이 knowledge에 기반하여 이루어진다.지식을 표현하고 그로부터 결론을 도출하는 개념은 인공지능(AI)에서도 사용됩니다.지식 기반 에이전트 (Knowledge-based Agents)지식의 내부 표현을 바탕으로 추론하는 에이전트."지식을 기반으로 추론하여 결론을 도출한다 (“reasoning based on knowledge to draw a conclusion)”의 의미는 무엇인가요?예시: 해리 포터 사례비가 오지 않았다면, 해리는 오늘 해그리드를 방문했다.해리는 오늘 해그리드나..

AI/Concepts 2024.11.19

[Spring MVC] 03. 서블릿, JSP, MVC 패턴

03. 서블릿, JSP, MVC 패턴#Spring/MVC1. 서블릿으로 HTML 동적으로 제공하기서블릿으로 회원 등록 HTML 폼을 제공response.setContentType("text/html");response.setCharacterEncoding("utf-8");PrintWriter w = response.getWriter();w.write("")...자바 코드로 HTML을 제공해야 하므로 쉽지 않은 작업이다. 너무 불편하다회원 데이터가 저장memberRepository.save(member);response.setContentType("text/html");response.setCharacterEncoding("utf-8");PrintWriter w = response.getWriter();...

Spring/MVC 2024.11.19

[Spring MVC] 02. 서블릿

02. 서블릿#Spring/MVC스프링 부트 서블릿 환경 구성스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan 을 지원ㅇ한다.서블릿 등록인텔리제이에서 ctrl + o로 오버라이딩 할 수 있는데, 자물쇠 잠겨있는 service(protected)를 오버라이딩해주자. 서블릿이 호출되면, 서비스 메서드가 호출된다.@WebServlet 서블릿 애노테이션name: 서블릿 이름urlPatterns: URL 매핑HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행한다.protected void service(HttpServletRequest request, HttpServletResponse response)HttpServletRequest,..

Spring/MVC 2024.11.19

[Spring MVC] 01. Web Application의 이해

01. Web Application의 이해#Spring/MVCWeb - HTTPHTTP 메시지에 HTML, TEXT, IMAGE, JSON,…. 거의 모든 형태의 데이터를 전송한다.서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다.웹 서버기본적으로 정적 리소스를 제공하고, 기타 부가 기능을 제공한다.정적(파일) HTML, CSS, JS, 이미지, 영상ex) NGINX, APACHE웹 애플리케이션 서버(WAS - Web Application Server)웹 서버 기능을 포함하고, 정적 리소스 제공 기능도 가지고 있다.프로그램 코드를 실행해서 애플리케이션 로직 수행동적 HTML, HTTP API(JSON)서블릿, JSP, 스프링 MVC예) 톰캣(Tomcat) Jetty, Undertow웹 서버 v..

Spring/MVC 2024.11.19