자바(5)
-
Java 8 (Spider)
2014.03월, 자바가 오라클에 인수되고 나온 첫 번째 버전으로 출시됨. 언어적으로 가장 역대급 변경이 아닌가 싶다. 1. Lambda Expression - 원래는 java 7에서 도입 예정이었으나, 준비 부족으로 인해 제외하고 출시되었고, 이 버전에서 포함. - 자바는 타입과 인터페이스에 대한 규약으로 인해, 간단한 인터페이스조차도 반드시 해당 타입을 구현하고 실행. → 많은 클래스와 실제 비즈니스보다 복잡한 코드를 양산. - Functional Interface (추상 메서드 선언이 1개인 interface)는 메서드의 Meta 정보가 단일하기 때문에, 프로그램이 정확한 유추가 가능하다. import org.junit.Test; // 간단한 Thread 실행 public class LambdaTe..
2020.11.27 -
java 버전별 특징(1.0~1.7)
1. java 1.0 - 1996년 1월 발표 - "Write Once, Run Anywhere" > JVM 기반 - 메모리 관리, 다중 상속 등 기존의 문제점을 극복하기 위한 목표를 가지고 접근 - 플랫폼의 안정성 및 웹브라우저에서의 Java Applet 시연으로 급 인기 상승 2. java 1.1 - 1997년 2월 발표 - Inner Class, Java Beans, JDBC, RMI 도입 - reflection 도입 : 공개 인터페이스 부재로 런타임 중 조작 불가. - Window platform 용의 JIT 방식의 Execution Engine 내 compiler 최초 도입(by Symantec) - 국제화, Unicode 지원 3. java 1.2 (Playground) - 1998년 12월 ..
2020.11.25 -
JVM 이란
jvm은 간단히 얘기하면 java 실행 환경 이다. 이것을 아는 것은 왜 중요할까? 이는 jvm 이전의 프로그래밍 언어의 패러다임과 관련이 있다. 이전의 언어는 하드웨어를 직접 제어하기도, 메모리를 직접 관리하기도 했다. 이는 곧 특정 OS에 설치된 라이브러리에 의존하는 코드가 나오게 되고, OS가 바뀌거나 버전이 업그레이드 되면 영향을 받을 수 밖에 없다. 이 와중에.. Write Once, Run anywhere 라는 유명한 말과 같이 Java가 세상에 나오게 되며, 바로 저 말의 이면에는 JVM이 있는 것이다. 그렇다. 그 당시에 저 개념은 기존 소프트웨어 개발자들에게는 충격이었다. 이를 가능하게 하는 JVM은 개발자는 application 코드를 작성하고, 나머지 저수준의 메모리 관리 등은 가상머..
2020.10.30 -
Spring Core - IoC, DI, Context And Bean
보통 main메소드에서 시작해서 개발자의 의도대로 오브젝트가 생성되고 실행된다. 그런데 서블릿은 컨테이너가 권한을 가진다. 그렇다. 이미 제어 역전은 폭넓게 적용되고 있는 것이다. 템블릿 메소드 패턴도 슈퍼클래스로 템플릿 메소드를 통해 제어를 넘긴 것이다. 이것도 Ioc를 기반으로한 패턴이다. 팩토리 패턴도 객체생성에 대한 제어를 애플리케이션 코드에서 분리하는 IoC의 적용 패턴으로 볼 수 있다. > 팩토리 클래스를 하나의 Configuration Context 로 보면 이해됨 ※ 라이브러리 VS 프레임워크 - 라이브러리는 사용자가 능동적으로 애플리케이션의 흐름을 직접 제어하면서 사용하는 것 - 프레임워크는 사용자의 애플리케이션 코드를 프레임워크의 기반하에 흐름을 주도하는 것이다. 즉, 프레임워크는 분명..
2020.10.22 -
Spring Overview
스프링의 목표 1. J2EE 개발을 보다 쉽게 2. Business 외의 일반적인 Task를 보다 쉽게 3. 좋은 프로그래밍 습관으로의 유도 4. 개발자는 domain에 집중 Core Container 1. Core & Beans : IoC 및 Dependency Injection 등의 기능을 포함한 프레임워크의 기본적인 주요 부분을 제공. 2. Context : Bean을 정의하고 등록하고 설정하는 등등의 모든 환경 정보 Repository 3. Expression Language AOP, Instrumentation 1. AOP : aspect oriented programming 기능 지원 2. Instrumentation : application에 사용될 수 있는 class 로더 및 metics ..
2020.10.20