전체 글 346

[Spring/MVC] WebMvcConfigurer

김영한님 Spring MVC 강의를 통해 공부하다가 Spring MVC에 WebMvcConfigurer 라는 확장 포인트가 있다는 점을 알게 되었다. (강의에서는 ArgumentResolver와 MessageConverter를 WebMvcConfigurer에서 확장할 수 있다 정도만 설명하고 넘어감)Spring MVC에는 대부분의 기능이 이미 구현되어 있어 확장 포인트가 많지 않다고 했는데, WebMvcConfigurer에서는 어떤 부분을 확장할 수 있는지 구체적으로 알아보자. WebMvcConfigurer란?WebMvcConfigurer 는 스프링 부트 혹은 스프링 MVC 애플리케이션에서 MVC 관련 설정을 직접 확장하거나 추가할 수 있게 해주는 확장 포인트 인터페이스이다. 스프링 부트가 제공하는 We..

Spring/MVC 2024.12.24

[Web Application] SLF4J를 이용한 로깅

김영한님 Spring MVC 강의를 듣다가 @SLF4J 를 달고 log.info(), log.debug()등을 통해 로그를 출력하는 예제를 공부하다가 SLF4J에 대해 공부를 해본 내용을 정리하게 되었다. 먼저 로깅이 무엇이고 왜 해야하는지를 알아보자. 로깅이란?log를 생성하도록 시스템을 작성하는 행위이다.  로깅은 왜 해야 할까?로그들은 테스트할 때 재현하기 힘든 버그가 개발 완료된 환경에서 발생했을 경우, 그런 버그들에 대한 정보를 알려줄 수 있으며,구문들 사이에 걸리는 시간 등의 성능에 관한 통계와 정보를 제공할 수 있다. 로그가 제공하는 정보의 양은 프로그램이 실행되는 중에도 설정이 가능한 것이 이상적이다.설정이 가능할 때, 로그는 예기치 못한 특정 문제들을 디버그하기 위해 코드를 수정하고 다시..

WEB/Application 2024.12.24

[PLT/프로그래밍언어론] 14. Logical Programming(2)

14. logical 2#PLT논리 프로그래밍(Logic Programming)First-order Logic논리 프로그램(Logic Program)은 기본적으로 논리식(Logic Formulae)의 집합이다.따라서 이러한 논리식을 작성하기 위한 언어가 필요하다.여기서 다루는 것은 First-order Logic이며, 이는 predicate logic 또는 predicate calculus으로도 알려져 있다.이는 propositional logic(명제 논리), 0th-order 및 higher-order logic와 구분된다.Propositional Logic vs Predicate LogicPropositional Logic와 달리 first-rder logic는 predicate(술어)와 quant..

[PLT/프로그래밍언어론] 13. Logical Programming

13. logical 1#PLT논리 프로그래밍 (Logic Programming)프로그래밍 언어 이론 (Programming Language Theory)목차 (Topics)논리 프로그래밍 소개 (Logic Programming Introduction)프로로그 기초 (Prolog Basics)1순위 논리 (First-order Logic)치환과 통일 (Substitution and Unification)⠀논리 프로그래밍 소개 (Logic Programming Introduction)알고리즘이란 무엇인가? (What is Algorithm?)알고리즘 (Algorithm) = 논리 (Logic) + 제어 (Control)로버트 A. 코월스키 (Robert A. Kowalski)논리는 "무엇을" 해야 하는지를..

[PLT/프로그래밍언어론] 12. Scala - Functional Programming Language

12. functional2#PLT함수형 프로그래밍 (Functional Programming)프로그래밍 언어론 (Programming Language Theory)1. 주제 (Topics)함수형 언어 기초 (Functional Language Fundamentals)패러다임 개요 (Paradigm Overview)표현식 평가 (Expression Evaluation)Scala에서의 함수형 언어 주제 (Functional Language Topics in Scala)블록과 스코프, 패턴 매칭, 커링 (Blocks and Scope, Pattern Matching, Currying)λ-calculus (λ-Calculus)2. 함수형 언어 (Functional Language)Scala에서의 주제 (Top..

[PLT/프로그래밍언어론] 11. Functional Programming(2)

11. functional(2)#PLTλ Calculusλ-term(term) (λ-Term)다항식 x² - 2x + 5을 고려해 봅시다.x = 2일 때 다항식의 값은 얼마일까요?상황을 표현하기 위해 λ-Term을 사용할 수 있습니다.기호 λ는 변수 x를 expression에 바인딩합니다.정의 (Definition)모든 변수는 λ-term입니다.Application Terms: M과 N이 λ-term이라면, (MN)은 λ-term입니다.Abstraction Terms: M이 λ-term이고, x가 변수라면, (λx[M])은 λ-term입니다.Convention: 왼쪽으로 결합M1M2M3...Mn ➞ ((M1M2)M3)...Mn함수형 패러다임에서의 Redex를 기억하세요 - ((fn x => M) arg)..

[PLT/프로그래밍언어론] 11. Functional Programming(1)

11. functional1#PLT함수형 프로그래밍 (Functional Programming)프로그래밍 언어 이론 (Programming Language Theory)목차 (Topics)함수형 언어 기초 (Functional Language Fundamentals)함수형 패러다임 개요 (Functional Paradigm Overview)표현식 평가 (Expression Evaluation)Scala에서의 함수형 언어 주제 (Functional Language Topics in Scala)블록과 스코프 (Blocks and Scope), 패턴 매칭 (Pattern Matching), 커링 (Currying)λ-계산 (λ - Calculus)함수형 패러다임 개요 (Functional Paradigm Ov..

[PLT/프로그래밍언어론] 10. Object Oriented Paradigm

10. OOP()#PLT객체 지향 패러다임(Object-Oriented Paradigm)프로그래밍 언어 이론(Programming Language Theory)객체 지향 프로그래밍(OOP)과 데이터 추상화(Data Abstraction)데이터 추상화(Data Abstraction)물리적 기계는 bit strings이라는 한 가지 타입만 처리합니다.High-level Language에서는 다양한 값을 “wrapping하여 제공합니다.타입(Type): 값 + 연산Data Abstraction: 값들이 하나로 결합되어 새로운, 더 추상적인 타입을 형성하고 적절한 연산을 가질 수 있습니다.이러한 새로운 타입을 통해 실제 세계의 복잡한 객체를 표현할 수 있습니다.장점복잡한 데이터 구조를 더 쉽게 처리할 수 있습니..

[PLT/프로그래밍언어론] 09. PL Paradigms, Scripting Language

09. Paradigms + Scripting Language#PLT프로그래밍 언어 패러다임 및 스크립팅 언어프로그래밍 언어 이론 (Programming Language Theory)목차프로그래밍 언어 패러다임 개요 (PL Paradigm Overview)스크립팅 언어 (Scripting Languages)프로그래밍 언어 패러다임 (Programming Language Paradigms)프로그래밍 언어가 따르는 원칙과 전략입니다.예: 절차적(procedural), 명령형(imperative), 객체 지향(object-oriented, OOP), 함수형(functional), 논리형(logic) 등하나의 프로그래밍 언어가 여러 패러다임을 따를 수 있습니다.예: 자바(Java)는 명령형과 객체 지향 패러다임..