REST와 SOAP 비교
1. 데이터 전송 방식 REST와 SOAP는 각기 다른 두 가지의 온라인 데이터 전송 방식이다. 둘 다 웹 애플리케이션 간 데이터 통신을 허용하는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)를 구축하는 방법을 정의한다. REST(Representational State Transfer)는 ...
1. 데이터 전송 방식 REST와 SOAP는 각기 다른 두 가지의 온라인 데이터 전송 방식이다. 둘 다 웹 애플리케이션 간 데이터 통신을 허용하는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)를 구축하는 방법을 정의한다. REST(Representational State Transfer)는 ...
1. 람다의 사용 List<Apple> greenApples = filter(inventory, (Apple a) -> GREEN.equals(a.getColor())); 람다는 함수형 인터페이스라는 문맥에서 람다 표현식을 사용할 수 있다. 위 예제에서는 함수형 인터페이스 Predicate<T> 를 기대하는 filter...
1. Kubernetes란 컨테이너를 도입하는 조직이 점점 많아짐에 따라 컨테이너 중심 관리 소프트웨어인 Kubernetes는 사실상 컨테이너화된 애플리케이션을 배포하고 운영하기 위한 표준이 되었다. Kubernetes는 원래 Google에서 개발되어 2014년에 오픈소스로 출시되었으므로 Google Cloud가 시초라고 할 수 있다. Kuber...
1. Spring Initializr SpringBoot 프로젝트 구조를 만드는 웹 애플리케이션이다. 기본적인 프로젝트 구조와 코드를 빌드하는데 필요한 maven이나 gradle 빌드 명세를 만들어준다. Spring Initializr는 웹 기반 인터페이스, Spring Tool Suite(STS), IntelliJ IDE, SpringBoot CLI...
1. 람다란 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 방식, 발생할 수 있는 예외 리스트는 가질 수 있다. 람다의 특징은 아래와 같다. 익명 보통의 메서드와 달리 이름이 없으므로 익명이라 표현한다. 구현해야 할 코드에 대...
1. Interpreter 패턴이란 디자인 패턴의 목적 중 하나는 클래스의 재이용성을 높이기 위해서이다. 재이용성이란 한 번 작성한 클래스를 별로 수정하지 않고(가능하면 전혀 수정하지 않고) 몇 번이고 사용할 수 있도록 하는 것이다. Interpreter 패턴에서는 프로그램이 해결하려는 문제를 간단한 ‘미니 언어’로 표현한다. 구체적인 문제를 미니 ...
1. Command 패턴이란 클래스가 일을 실행할 때에는 자신의 클래스나 다른 클래스의 메소드를 호출한다. 메소드를 호출한 결과는 오브젝트(객체)의 상태에 반영되지만, 일의 이력은 어디에도 남지 않는다. 이때 ‘이 일을 실행하시오’라는 ‘명령’을 표현하는 클래스가 있으면 편리하다. 실행하고 싶은 일을 ‘메소드 호출’하는 동적인 처리로 표현하는 것이 ...
1. Proxy 패턴이란 proxy는 ‘대리인’이라는 의미이다. 대리인이란 일을 해야할 본일을 대신(대리)하는 사람이다. 본인이 아니라도 가능한 일을 맡기기 위해서 대리인을 세운다. 대리인은 어디까지나 대리에 지나지 않기 때문에 할 수 있는 일에는 한계가 있다. 대리인이 할 수 있는 범위를 넘는 일이 발생하면, 대리인은 본인한테 와서 상담을 한다. ...
1. Flyweight 패턴이란 Flyweight 디자인 패턴은 오브젝트(객체)를 ‘가볍게’하기 위한 것이다. 오브젝트는 컴퓨터 안에서 가상적으로 존재하는 것이기 때문에 ‘무겁다’ 혹은 ‘가볍다’라고 표현해도 실제의 무게를 나타내는 것은 아니다. 여기에서 말하는 무게는 ‘메모리의 사용량’을 의미한다. 많은 메모리를 사요하는 오브젝트를 ‘무겁다’고 표현...
1. State 패턴이란 오브젝트 지향 프로그래밍에서는 프로그램 할 대상을 ‘클래스’로 표현한다. 어떤 것을 클래스로 표현할지는 설계를 하는 사람이 생각해야 한다. 클래스에 대응하는 구체적인 ‘사물’이 현실에서 존재하는 경우도 있고 존재하지 않는 경우도 있다. 경우에 따라서는 ‘이런 것이 클래스가 될 수 있나?’하고 놀랄 정도의 것을 클래스로 하는 경...