Home

함수형 프로그래밍 기초 (1) 왜 함수형 프로그래밍인가

함수형 패러다임 새로운 프로그래밍 패러다임에서 중요한 것은 새로운 언어를 배우는 것이 아니라 새로운 방식으로 생각하는 법입니다. 문법을 배우는 건 쉽지만 사고방식을 배우는 건 쉽지 않죠. 컴퓨터 과학에서는 수십 년 전의 아이디어가 갑자기 주류가 되곤 합니다. 객체지향은 1983년 Simula 67이라는 언어에서 처음 등장했지만 1983년 처음 등장한 C++

마이크로서비스 Microservices (3) 프로세스 간 통신

프로세스 간 통신 모놀리식(monolithic) 애플리케이션에서는 단순하게 다른 메소드나 함수를 호출하면 됩니다. 하지만 마이크로서비스(Microservices)에서는 서비스 단위로 나뉘어져 있는 분산 시스템이기 때문에 서비스 간 통신이 필요합니다. 이러한 통신을 프로세스 간 통신(inter-process communication)이라고 합니다. 다음 그림

Java 11 릴리즈!

자바 11이 릴리즈됐습니다. 자바 10이 출시된지 6개월만입니다. 오라클은 6개월마다 새 버전을 출시한다고 했고, 특정 버전만 장기간 지원(Long-term support; LTS)한다고 밝혔는데요. 자바 11은 첫 번째 LTS 버전입니다. 오라클이 이런 버전 정책을 가져가는 이유는 두 가지입니다. 자바 생태계가 빠르게 발전할 수 있도록 6개월마다 새로

마이크로서비스 Microservices (2) API 게이트웨이

이전 포스트에서 마이크로서비스 아키텍처의 개념을 살펴봤습니다. 이번 포스트에서는 마이크로서비스의 중요한 요소 중 하나인 API 게이트웨이(API Gateway)를 알아보겠습니다. 서비스 직접 호출하기 먼저 대표적인 쇼핑몰 아마존의 모바일 애플리케이션을 예로 들어보겠습니다. 위 화면은 모바일에서 본 아마존 제품 상세 화면입니다. 간단해보이지만, 실제로 이

마이크로서비스 Microservices (1) 아키텍처 소개

주변에서 마이크로서비스 아키텍처(Microservices architecture; MSA)에 대한 이야기가 많이 들려옵니다. 마이크로서비스가 모든 것을 해결해줄 것처럼 이야기하는 사람이 있는가하면, 서비스 지향 아키텍처(Service-oriented architecture;SOA)랑 다를 게 없는 마케팅 용어에 불과하다고 폄하하는 사람들도 있습니다. 마이크

SW 라이브러리 버전 제대로 읽기

외부 라이브러리를 사용하면서 버전이 헷갈리는 경우가 있진 않으셨나요? 다음 중 높은 버전은 무엇일까요? 네, 당연히 1.5.15 가 높습니다. 하지만 얼핏 보면 1.5.7 이 더 높아보일 수 있습니다. 버전 넘버는 마치 소수처럼 보여서 소수점 자리 1과 7을 비교하게 되서 그렇습니다. 이번 포스팅에서는 소프트웨어 버전을 구분하는 방식을 살펴보겠습니다.

Java 스트림 Stream (2) 고급

이전 포스트에 이어서 Java 8의 스트림(Stream)을 살펴봅니다. 자바 8 스트림은 총 두 개의 포스트로, 기본적인 내용을 총정리하는 이전 포스트와 좀 더 고급 내용을 다루는 이번 포스트로 나뉘어져 있습니다. Java 스트림 Stream (1) 총정리 Java 스트림 Stream (2) 고급 살펴볼 내용 이번 포스트에서 다루는 내용은 다음과

Java 스트림 Stream (1) 총정리

이번 포스트에서는 Java 8의 스트림(Stream)을 살펴봅니다. 총 두 개의 포스트로, 기본적인 내용을 총정리하는 이번 포스트와 좀 더 고급 내용을 다루는 다음 포스트로 나뉘어져 있습니다. Java 스트림 Stream (1) 총정리 Java 스트림 Stream (2) 고급 살펴볼 내용 이번 포스트에서 다루는 내용은 다음과 같습니다. 아는 내용

Spark 아파치 스파크 (1) 소개

아파치 스파크(Apache Spark) 스터디를 위해 정리한 자료입니다. 하둡 Hadoop 빅 데이터 처리나 데이터 분석 쪽에는 지식이 없어 하둡부터 간단하게 알아봤습니다. 동작 원리 하둡 프레임워크는 파일 시스템인 HDFS(Hadoop Distributed File System)과 데이터를 처리하는 맵리듀스(MapReduce) 엔진을 합친 것으로 대규모

Java 8 옵셔널 Optional

개발할 때 개발자를 괴롭히는 예외 중 하나는 NullPointerException 입니다. NullPointerException 을 피하고 null 체크하는 로직을 줄이기 위해 빈 값일 때 null 대신 초기값을 사용하길 권장하곤 합니다. 12List<String> names = getNames();names.sort(); // names 가 n