Java

    [Java] Stream(스트림)?

    스트림(Stream)이란? 자바 8에서 추가한 스트림(Stream)은 람다를 활용할 수 있는 기술 중 하나이다. 자바 8 이전에는 배열 또는 컬렉션 인스턴스를 다루는 방법은 for 또는 foreach 문을 돌면서 요소 하나씩을 꺼내서 다루는 방법이었다. 간단한 경우라면 상관없지만 로직이 복잡해질수록 코드의 양이 많아져 여러 로직이 섞이게 되고, 메서드를 나눌 경우 루프를 여러 번 도는 경우가 발생한다. 스트림은 '데이터의 흐름' 이다. 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있다. 또한 람다를 이용해서 코드의 양을 줄이고 간결하게 표현할 수 있다. 즉, 배열과 컬렉션을 함수형으로 처리할 수 있다. Iterator과 비슷한 역할을하지만 람다식으..

    [Java] 람다식?

    람다식(Lambda Expressions) 메서드를 하나의 식으로 표현한 것! 이름 없는 메서드! 그래서 람다식이란?? 람다식이란 함수명을 선언하고 사용하는 것이 아닌 식별자 없이 실행가능한 함수이다. 절차형 프로그래밍, 객체지향 프로그래밍과는 사뭇 다르게 함수의 구현과 호출만으로 프로그램을 만드는 방식인 함수형 프로그래밍에서 자주 사용된다. 자바 8부터 도입되었으며, 람다식을 익명함수를 만드는 것인데 익명함수는 일급객체 특징을 가지고 있다. 람다식 사용법은 (매개변수,...) -> {실행문...} 다음과 같이 사용하면 된다. 메서드를 람다식으로 표현하면 메서드 이름과 반환값이 없어지므로 익명 함수(annonymous function) 라고도 부른다. 특히 메서드가 1번만 사용되고 메서드의 길이가 짧은 ..

    [Java] 쓰레드(Thread)

    동작하고 있는 프로그램을 프로세스(Process)라고 한다. 보통 한 개의 프로세스는 한 가지의 일을 하지만, 스레드를 이용하면 한 프로세스 내에서 두 가지 또는 그 이상의 일을 동시에 할 수 있다. 스레드란 어떠한 프로그램 내에서 특히 프로세스 내에서 실행되는 흐름의 단위이다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스라고 한다. 멀티스레딩이란? 여러 스레드를 동시에 실행시키는 응용프로그램을 작성하는 기법이다. 장점 메모리 공유로 인한 시스템 자원 소모가 줄어든다. 동시에 두 가지 이상의 활동을 하는 것이 가능해진다. 단점 서로 자원을 소모하다가 충돌이 일어날 가능성이 존재한다. 코딩이 난해해져 버그 생성 확률..

    [Java] Try-catch 문이란? (예외처리)

    1) 예외 처리하기 Try-catch문은 예외를 처리하기 위한 구문이다. Error(에러)와 Exception(예외의 차이) 에러란 컴퓨터 하드웨어의 오작동 또는 고장으로 인해 응용프로그램에 이상이 생겼거나 JVM 실행에 문제가 생겼을 경우 발생하는 것을 말한다. 이 경우 개발자는 대처할 방법이 극히 제한적이다. 하지만 예외는 다르다. 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 예외가 발생하면 프로그램이 종료가 된다는 것은 에러와 동일하지만 예외는 예외처리를 통해 프로그램이 종료되지 않고 정상적으로 작동되게 만들어 줄 수 있다. 자바에서 예외 처리는 Try-catch 문을 통해 만들 수 있다. try-catch try { //예외발생할 가능성이 있는..