Language 14

람다식(Lamdba Expressions) 정리

람다식이란? 람다식은 수학자 알론조(Alonzo Church)가 발표한 람다 계산법에서 사용된 식으로, 이를 제자 존 매카시(John Macarthy)가 프로그래밍 언어에 도입했다.Java8 버전부터 이 람다식(Lamdaba Expressions)을 지원하게 되었다.람다식은 익명함수(anonymous function)을 생성하기 위한 식으로 객체 지향 언어보다 함수 지향 언어에 가깝다.람다 형태는 매개변수를 가진 코드 블록이지만, 런타임 시에는 익명 구현 객체(추상메소드를 한개 포함한)를 생성한다. 위 설명처럼 람다식이란 일종의 함수형 프로그래밍에 적합한 문법적 표현방식이다.함수형 프로그래밍은 병렬처리와 이벤트 지향 프로그래밍에 적합하며 딥러닝이나 빅데이터와 더불어 일종의 문법적 트렌드처럼 관심을 받고 ..

Language/Java 2019.03.25

예외 처리(Exception)

개발자가 되기위한 첫 걸음 예외 처리란? 에러를 잡아내는 데 가장 이상적인 시기는 컴파일을 할 때이다. 그러나 컴파일할 때 모든 에러를 검출할 수 없다.자바에서의 예외 처리 목표는 규모가 크고 신뢰성 있는 프로그램의 생성을 현재보다 적은 양의 코드를 사용해서 단순화하는 것이며, 또한 애플리케이션에는 미처리된 에러가 없다는 확신을 가지게 하는 것이다. 예외 잡아내기 자바에서 예외의 경우도 다른 자바 객체가 생성되는 것과 같은 방법으로 예외 객체가 생성된다. new를 사용하여 생성되며 힙(heap) 영역에 할당된다. 그 다음에 현재의 실행은 중지되며 예외 객체의 참조는 예외 처리 메커니즘으로 전달된다. 이러한 것을 가르켜 '예외를 던진다'라고 한다. 코드는 아래와 같다.1throw new NullPointe..

Language/Java 2019.03.21

컬랙션 프레임워크란?

개발자가 되기위한 첫 걸음 컬렉션 프레임워크의 개념 컬렉션 프레임워크(collection framework)란? 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다.데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니다. 이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현됩니다. 주요 인터페이스 컬렉션 프레임워크에서는 데이터를 저장하는 자료 구조에 따라 다음과 같은 핵심이 되는 주요 인터페이스를 정의하고 있씁니다. List 인터페이스Set 인터페이스Map 인터페이스이 중에서 List와 Set 인터페이스는 모두 베이스 타입은 Collection 인터페이스이지만 약간의 차이가 있다. 또한..

Language/Java 2019.03.20

JVM 구조

개발자가 되기위한 첫 걸음 JVM(Java Virtual Machine)이란? JVM은 물리적인 형태가 아닌 소프트웨어로서 하나의 개념으로 존재합니다. 이것은 "VIRTUAL"을 뜻하는 것입니다. 그리고 JVM은 독자적으로 작동할 수 있는 메커니즘과 구조를 가지고 있습니다. 이는 하나의 축약된 컴퓨터와 같은 의미에서 "MACHINE"이라는 단어가 조합된 것입니다. JVM은 JAVA 프로그램과 OS의 사이의 중간 다리 역활이며 JAVA 프로그램이 OS에 독립적으로 실행 될 수 있게 해줍니다.Java Compiler를 통해 Java Source File을 ByteCode로 변환하여 JVM에 넘겨주면 JVM은 OS가 ByteCode를 이해할 수 있도록 해석 해줍니다. JVM 구조 - Java Source : ..

Language/Java 2019.03.07

RxJava란? -4 Scheduler

이번에는 스케줄러와 에러 처리에 대해 살펴보겠습니다.Error Handling여태까지 우리는 거의 onCompleted()와 onError()를 무시 하고 있었습니다. 이 두개의 메소드는 Observable 가 emit을 끝내거나 받을 수 없는 에러 상황을 맡습니다. 예시를 보고 설명 하겠습니다. 12345678910111213Observable.just("Hello, world!") .map(s -> potentialException(s)) .map(s -> anotherPotentialException(s)) .subscribe(new Subscriber() { @Override public void onNext(String s) { System.out.println(s); } @Override pu..

Language/Java 2019.01.26

RxJava - 3 Operators 이어서

예제를 통해 좀 더 operator에 대해서 설명하겠습니다. 아래와 같은 매소드가 있다고 가정합니다.12// text에 기반한 검색 된 website URL 리스트를 반환Observable query(String text); cs text 검색을 통한 결과를 보여주는 시스템을 만들려고 합니다.이전에 본 매소드를 이용하면 다음과 같은 결과가 나올 수 있습니다. 123456query("Hello, world!") .subscribe(urls -> { for (String url : urls) { System.out.println(url); } });cs 이러한 구조는 데이터 스트림을 변환하는 기능이 없어지므로 매우 불만스러울 수 있습니다. 만약 각각의 URL에 대해서 수정을 하고 싶다면 이것을 Subscri..

Language/Java 2019.01.26

RxJava란 - 2 Operators

이번에는 데이터를 어떻게 다루는지 Map을 비롯한 Operator를 통해 살펴보겠습니다. "Hello, world" 출력에 나의 서명을 덧붙이고 싶습니다. 한가지 방법은 Observer를 바꿔보는 것입니다. 12Observable.just(“Hello, world! -Juyoung”) .subscribe(s -> System.out.println(s));cs 이것은 원본의 데이터를 변경하는 것입니다. 이 경우에 Observable을 여러 장소에서 사용하지만 가끔만 서명을 추가하고 싶다면 문제가 생깁니다. 그럼 대신 Subscriber을 변경하는 것은 어떨까? 12Observable.just(“Hello, world!”) .subscribe(s -> System.out.println(s + “ -Juyou..

Language/Java 2019.01.26

RxJava란? - 기본 구조

RxJava는 Reactive java에서 이름을 따왔다고 한다. Reactive programming 패러다임을 자바에서 구현한 프로그래밍 라이브러리이다. 프로그래밍 패러다임에는 여러가지가 있는데 OOP(객체지향), Function(함수), Imperative(명령형) 등이 있다. 여러가지 언어 중에서 자바는 OOP(Object Oriented Programming)라고 해서 객체지향형 프로그래밍의 대표 언어이고 Functional Programming 을 대표하는건 파이썬, node.js 하스켈, 스칼라, 클로저등 이라고 할 수 있다. 자바로 Reactive Programming을 해야할 일이 생겨서 이 라이브러리가 등장 하였다. 그리고 자바가 버젼이 올라가면서 여러가지 요즘 트렌트에 맞게 기술들이 ..

Language/Java 2019.01.26

JDBC- MariaDB와 Java연동

JDBC- Java Database Connectivity- 자바에서 DB 프로그래밍을 하기 위해 사용되는 API ==> 데이터베이스 종류에 상관없다.JDBC API 사용 어플리케이션의 기본 구성 - JDBC 드라이버 : 각 DBMS에 알맞는 클라이언트 JDBC 프로그래밍 코딩 흐름 1) JDBC 드라이버 로드2) DB 연결 3) DB에 데이터를 읽거나 쓰기 (SQL문)4) DB 연결 종료 JDBC 커넥터는 https://downloads.mariadb.org/connector-java/위 링크에서 다운로드 가능합니다. 다운 받은 커넥터를 라이브러리에 추가 해줍니다. 아래는 예시로 작성한 코드입니다.12345678910111213141516171819202122232425262728293031323334..

Language/Java 2019.01.02