요구사항에 맞게 프로젝트를 시작하여 개발을 하다보면, 초기의 요구사항이 그대로 마지막까지 변하지 않고 유지되는 경우는 거의 없습니다. 개발 도중, 개발 후에 요구사항이 시시각각 변화하는 경우가 많은데요. 이런 요구사항의 변화가 오더라도 손쉽게 적용할 수 있는 코드를 작
Java8에서 새롭게 추가된 기능 중 대표적인 기능은 람다 표현식입니다.람다 표현식은 함수형 프로그래밍을 위한 필수 요소입니다. 람다 표현식에 대해 알아보고 적용해보는 시간을 가져봅시다‼️람다 표현식(Lambda Expression)은 메서드로 전달할 수 있는 익명 함
Java에서 String 클래스는 불변성을 갖습니다. 그래서 변하지 않는 문자열을 자주 사용하는 경우엔 좋은 성능을 기대할 수 있습니다. 하지만 문자열에 대한 변경이 자주 일어나는 프로그램에서 String만 사용하게 된다면 효율적인 성능을 기대하기 어렵습니다. 그래서
우리가 클래스를 선언하고 구현할 때 따로 상속을 하지 않는다면 자동적으로 java.lang.Object 클래스가 상속되게 됩니다. 또한 Object의 java.lang 패키지는 import 를 하지 않더라도 컴파일러에 의해 자동으로 import가 되어집니다. 그래서 모
Java8이 나오게 되면서 Stream API이란 개념이 도입되었습니다. 많은 사람들이 Java I/O에서 InputStream 과 OutputStream과 헷갈려 하였는데 이 두개에서의 스트림과는 전혀 다른 것입니다. Java8에서 나온 Stream은 함수형 프로그래
Multi-Thread 환경에서 가져오는 이점이 무엇일까요? 먼저 Thread(스레드)의 개념에 대해서 살펴봅시다. 스레드는 프로세스(Process)의 작업 단위 중 하나 입니다. 만약 스레드가 없었으면 프로세스는 독자적인 메모리를 할당 받고 다른 프로세스의 메모리 영
개요 > 이전 포스팅에서 Stream API의 최종 연산(Terminal Method)에 쓰이는 Collect 를 간단하게 다뤄봤습니다. Collect는 Collector 타입의 매개변수를 전달받아 원하는 자료구조로 변환시켜주는 기능이 대표적인데요. 이 기능 이외에도
이전 포스팅에서 Java8 에서 등장한 람다에 대해서 배워 보았고, 람다식을 대폭적용시킨 Stream API 에 대해 공부해보았습니다. Stream API는 Collection을 Pipe 구조를 통해 데이터를 처리하고, 기존에 여러 줄로 처리해야하는 로직을 간편한 코
java 8 이 등장하면서 인터페이스(Interface) 개념에 디폴트 메서드(default method)를 사용할 수 있게 되었습니다. 원래 기존의 인터페이스는 추상 메서드만 존재할 수 있었고 이를 상속받는 구현체에서 직접 해당 추상 메서드를 구현했어야만 했는데요.