인터페이스는 일종의 추상클래스 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만 멤버로 가질 수 있다. 그 외의 다른 어떠한 것도 허용하지 않는다. 추상클래스를 부분적으로만 완성된 미완성 설계도라고 한다면, 인터페이스는 구현된 것은 아무 것도 없고 밑그림만 그려져 있는 기본 설계도 라고 할 수 있다. 인터페이스도 추상클래스처럼 완성되지 않은 불완전한 것이기 때문에 그 자체만으로 사용되기 보단 다른 클래스를 작성하는데 도움 줄 목적으로 작성된다. interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름(..

JPA(Java Presistence API)는 Java를 이용해서 데이터를 관리하는 기법을 하나의 스펙으로 정리한 표준입니다. JPA 자체로는 스펙에 불과하기 때문에 이를 실제로 구현한 프레임워크들의 존재가 필수적입니다. Servlet이라는 기술 스펙을 Tomcat에 구현한 것처럼, JPA를 구현한 구현체 중에서 스프링 부트 프로젝트에서는 Hibernate(http://hibernate.org/)를 이용합니다. 엔티티(Entity)는 데이터베이스에서 데이터로 관리하는 대상을 의미합니다. ex) 상품, 회사, 직원 데이터베이스에서는 엔티티를 위해 테이블을 설계하고 데이터를 추가합니다. 이렇게 추가된 데이터는 인스턴스 또는 레코드라고 부릅니다. JPA에서는 Java를 이용해서 엔티티들을 관리하기 때문에 엔..
한 개의 소스파일에는 한 개의 클래스만 정의하는 것이 일반적이지만 둘 이상의 클래스를 정의하는 것도 가능하다.이 때 주의해야할 사항은 소시파일의 이름은 public class의 이름과 일치해야 하는 것이다. 만약 소스파일 내에 public class가 없다면 소스파일의 이름은 소스 파일 내의 어떤 클래스의 이름으로 해도 상관없다. ex) HelloWorld.java 파일 내에public class HelloWorld{ class HelloWorld2{ }} ---->가능 ex) HelloWorld.java 파일 내에 public class가 존재하지 않다면class HelloWorld{}class Hello{}가능 ex) HelloWorld.java 파일내에 public class가 두개 이상 존재해서는..
스프링 프레임워크를 사용하다가 설정해주는 xml에 잘못 추가한 경우 invocation of init method failed nested exception is java.io.filenotfoundexception 이런 에러 로그가 찍힙니다. xml에 설정해야할 부분을 추가하지 않은 상태로 다른 곳에서 사용을 하고 있거나 xml파일에 오타가 나서 못찾는 경우일 수 있으니 매의 눈으로 다시 확인해보세요.
Apache Tomcat은 자바의 서블릿과 JSP 기술의 오픈소스 소프트웨어입니다. 다음은 아파치 홈페이지에서 제공하고 있는 버전별 사양들입니다. 서블릿 스펙JSP 사양EL SpecWebSocket 사양재 스픽 사양Apache Tomcat 버전최신 출시 버전지원되는 Java 버전4.02.33.01.11.19.0.x9.0.148 이상3.12.33.01.11.18.5.x8.5.377 이상3.12.33.01.1N / A8.0.x (대체 됨)8.0.53 (대체 됨)7 이상3.02.22.21.1N / A7.0.x7.0.926 이상 (WebSocket의 경우 7 이상)2.52.12.1N / AN / A6.0.x (보관 처리됨)6.0.53 (보관 처리됨)5 이상2.42.0N / AN / AN / A5.5.x (보관 ..
스프링 MVC의 흐름은 아래와 같습니다.사용자의 모든 요청은 스프링 MVC의 Front Controller에게 전달된다.전달된 요청은 적절한 컨트롤러를 찾아서 호출한다.이때 사용되는 컨트롤러의 작업이 개발자의 몫이며 컨트롤러는 적절한 서비스 객체를 찾아 호출하고 서비스는 데이터 베이스의 작업을 담당하는 DAO(Data Access Object)를 이용해서 원하는 데이터를 요청한다.DAO객체는 MyBatis를 이용하는 Mapper를 통해서 원하는 작업을 수행한다.서비스가 처리한 데이터를 컨트롤러에게 전달한다.컨트롤러는 다시 스프링 MVC쪽으로 데이터를 전달한다. 스프링 MVC가 처리해주는 작업 개발자가 직접 해야하는 작업 URI를 분석해서 적절한 컨트롤러를 찾는 작업컨트롤러에 필요한 메소드를 호출하는 작업..
최근 웹 개발은 대부분 모델2 방식을 사용중입니다. 흔히 MVC 구조를 응용한 방식이라고 하며 '화면과 데이터 처리를 분리해서 재사용이 가능하도록 하는 구조'를 갖추고 있습니다. 모델(Model) : 데이터 혹은 데이터를 처리하는 영역을 의미뷰(View) : 결과 화면을 만들어 내는데 사용하는 자원컨트롤러(Controller) : 웹의 요청(request)을 처리하는 존재로 뷰와 모델 사이의 중간 통신 역할 컨트롤러는 모델 계층과 연동하여 필요한 데이터를 처리하고, 결과를 뷰로 전송합니다.모든 요청은 기본적으로 컨트롤러를 호출하고 각 컨트롤러는 자신을 호출하는 특정한 URI 경로를 가지고 있습니다.개발자와 웹 퍼블리셔의 영역을 분리할 수 있고컨트롤러의 URI를 통해 뷰를 제어하기 때문에 뷰의 교체나 변경..
데이터베이스 객체란 오라클 같은 DBMS가 데이터를 관리하기 위해 존재하는 논리적인 저장 구조를 말한다.데이터베이스 객체의 종류를 살펴보자. 데이터베이스 객체 설명 테이블 데이터를 담고 있는 객체 뷰 하나 이상의 테이블을 연결해 마치 테이블인 것처럼 사용하는 객체 인덱스 테이블에 있는 데이터를 빠르게 찾기 위한 객체 시노님 데이터베이스 객체에 대한 별칭을 부여한 객체 시퀀스 일련번호 채번을 할 때 사용되는 객체 함수 특정 연산을 하고 값을 반환하는 객체 프로시저 함수와 비슷하지만 값을 반환하지는 않는 객체 패키지 용도에 맞게 함수나 프로시저를 하나로 묶어 놓은 객체 테이블은 CREATE 문으로 생성하는데 기본 구문은CREATE TABLE [스키마.]테이블명(컬럼1 컬럼1데이터타입 [NULL, NOT NU..
자바의 역사자바는 1991년 6월 셋톱 프로젝트를 위해 제임스 고슬링이 만들었는데 이 언어는 원래 제임스 사무실 밖에 있던 오크 나무에서 이름을 따와 오크, 혹은 그린이라고 불렀으나 단어 리스트 중 무작위로 뽑은 JAVA를 선택하였다. 제임스는 C와 C++ 스타일의 언어와 가상 머신을 구현하고자 했는데 첫 공개 버전은 1995년의 자바 1.0이었고 한 번 쓰고 어느 곳에도 실행하는 것을 약속하였고 인기 플랫폼에 무료 런타임을 제공했다. 대부분의 브라우저들은 곧 자바 애플릿을 웹페이지 안에서 실행할 수 있었고 자바의 인기는 급상승했다. 자바2의 출현으로 여러 다양한 플랫폼에서 사용할 수 있는 설정들을 만들었다. 예를 들어 J2EE는 엔터프라이즈 애플리케이션을 실행할 수 있었고, J2ME는 모바일 애플리케이..
18세기 철학가 칸트순수 이성 비판과 실천 이성 비판, 판단력 비판 등의 저서를 낸 칸트는 종래의 경험론 및 독단론을 극복하도록 비판철학을 수립했다. 인식 및 실천의 객관적 기준을 선험적 형식에서 찾고 사유가 존재를 규정하고 방법이 대상을 규정한다고 하였다. 도덕적 인격을 목표로 하면서도 자의적인 한 사람의 의욕과 다른 사람의 의욕이 자유의 보편적 원칙에 따라 합치될 수 있는 여러 조건을 법이라 생각했다. 칸트의 비판 철학이란?칸트의 철학이 비판철학이라 일컫는 이유는 순수이성비판, 실천이성비판, 판단력비판에서 비롯된 것이다. 이 책들의 제목에 붙은 비판이라는 개념은 칸트가 과거 철학을 비판적 연구 분석한 것으로 이해되며 칸트가 이런 비판 철학을 펼치게 된 것은 루소의 철학과 뉴턴의 자연과학, 흄의 인간 ..