[Java] 23. 중첩 클래스, 내부 클래스(1)
·
Java/Core
중첩 클래스, 내부 클래스(1)#Java정리중첩 클래스, 내부 클래스란?클래스 안에 클래스를 중첩해서 정의할 수 있는데, 이것을 중첩 클래스(Nested Class)라 한다.class Outer { ... //중첩 클래스 class Nested { ... }}중첩 클래스의 분류중첩 클래스는 총 4가지가 있고, 크게 2가지로 분류할 수 있다.정적 중첩 클래스정적 변수오 같은 위치내부 클래스 종류내부 클래스인스턴스 변수와 같은 위치바깥 클래스의 인스턴스의 멤버에 접근지역 클래스지역 변수와 같은 위치내부 클래스의 특징 + 지역 변수에 접근익명 클래스지역 클래스의 특징 + 클래스의 이름이 없는 특별한 클래스중첩 클래스를 정의하는 위치는 변수의 선언 위치와 같다.여기서 정적 중첩 클래스와 내부 클래스로 분류하는 ..
[Java] 22. 날짜와 시간
·
Java/Core
보호되어 있는 글입니다.
[JDBC] JDBC 이해
·
DB Access/Jdbc
1. JDBC 이해#Spring/DB/Jdbc정리JDBC 등장이유클라이언트가 애플리케이션 서버를 통해 데이터를 저장하거나 조회하면, 애플리케이션 서버는 다음 과정을 통해서 데이터베이스를 사용한다.애플리케이션 서버와 DB - 일반적인 사용법커넥션 연결: 주로 TCP/IP를 사용해서 커넥션을 연결한다.SQL 전달: 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달한다.결과 응답: DB는 전달된 SQL을 수행하고 그 결과를 응답한다. 애플리케이션 서버는 응답 결과를 활용한다.문제는 각각의 데이터베이스마다 커넥션을 연결하는 방법, SQL을 전달하는 방법, 그리고 결과를 응답 받는 방법이 모두 다르다는 점이다또한, 데이터베이스 종류를 변경하면 애플리케이션 서버에 개발된 데이터베..
[Spring/MVC] 09. 타임리프 - 스프링 통합과 폼
·
Spring/MVC
09. 타임리프 - 스프링 통합과 폼#Spring/MVC정리타임리프 스프링 통합타임리프는 스프링을 위해 기능을 제공한다고 말해도 과할 정도가 아닌 수준의 스프링 통합을 위한 다양한 기능을 제공한다.스프링 통합으로 추가되는 기능스프링의 SpringEL 문법 통합${@myBean.doSomething()}처럼 스프링 빈 호출 지원편리한 폼 관리를 위한 추가 속성th:object (기능 강화, 폼 커맨드 객체 선택)th:field, th:errors, th:errorclass폼 컴포넌트 기능checkbox, radio button, List 등을 편리하게 사용할 수 있는 기능 지원스프링의 메시지, 국제화 기능의 편리한 통합스프링의 검증, 오류 처리 통합스프링의 변환 서비스 통합 (ConversionServic..
[Spring MVC] 08. 타임리프 기본기능
·
Spring/MVC
08. 타임리프 기본기능정리타임리프 사용 선언(스프링 부트에 타임리프를 추가했으면 선언하지 안하도 타임리프 문법이 적용되는 것 같긴 합니다)기본 표현식• 간단한 표현: ◦ 변수 표현식: ${...} ◦ 선택 변수 표현식: *{...} ◦ 메시지 표현식: #{...} ◦ 링크 URL 표현식: @{...} ◦ 조각 표현식: ~{...}• 리터럴 ◦ 텍스트: 'one text', 'Another one!',… ◦ 숫자: 0, 34, 3.0, 12.3,… ◦ 불린: true, false ◦ 널: null ◦ 리터럴 토큰: one, sometext, main,…• 문자 연산: ◦ 문자 합치기: + ◦ 리터럴 대체: |The name is ${name}|• 산술 연산: ◦ Binary ope..
[Spring MVC] 07. 스프링 MVC - 웹 페이지 만들기(타임리프, PRG, RedirectAttribute)
·
Spring/MVC
7. 스프링 MVC - 웹 페이지 만들기(타임리프, PRG, RedirectAttribute)정리Item - 상품 객체, Repository@Datapublic class Item { private Long id; private String itemName; private Integer price; private Integer quantity; public Item() { } public Item(String itemName, Integer price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; }}리포지..
[Spring/MVC] WebMvcConfigurer
·
Spring/MVC
김영한님 Spring MVC 강의를 통해 공부하다가 Spring MVC에 WebMvcConfigurer 라는 확장 포인트가 있다는 점을 알게 되었다. (강의에서는 ArgumentResolver와 MessageConverter를 WebMvcConfigurer에서 확장할 수 있다 정도만 설명하고 넘어감)Spring MVC에는 대부분의 기능이 이미 구현되어 있어 확장 포인트가 많지 않다고 했는데, WebMvcConfigurer에서는 어떤 부분을 확장할 수 있는지 구체적으로 알아보자. WebMvcConfigurer란?WebMvcConfigurer 는 스프링 부트 혹은 스프링 MVC 애플리케이션에서 MVC 관련 설정을 직접 확장하거나 추가할 수 있게 해주는 확장 포인트 인터페이스이다. 스프링 부트가 제공하는 We..
[Web Application] SLF4J를 이용한 로깅
·
FE/Application
김영한님 Spring MVC 강의를 듣다가 @SLF4J 를 달고 log.info(), log.debug()등을 통해 로그를 출력하는 예제를 공부하다가 SLF4J에 대해 공부를 해본 내용을 정리하게 되었다. 먼저 로깅이 무엇이고 왜 해야하는지를 알아보자. 로깅이란?log를 생성하도록 시스템을 작성하는 행위이다.  로깅은 왜 해야 할까?로그들은 테스트할 때 재현하기 힘든 버그가 개발 완료된 환경에서 발생했을 경우, 그런 버그들에 대한 정보를 알려줄 수 있으며,구문들 사이에 걸리는 시간 등의 성능에 관한 통계와 정보를 제공할 수 있다. 로그가 제공하는 정보의 양은 프로그램이 실행되는 중에도 설정이 가능한 것이 이상적이다.설정이 가능할 때, 로그는 예기치 못한 특정 문제들을 디버그하기 위해 코드를 수정하고 다시..
[Spring] JAR로 패키징 vs WAR로 패키징
·
Spring
보호되어 있는 글입니다.
[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..