본문 바로가기

프로그래밍3

프로그래밍 패러다임 - 함수형 프로그래밍 - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 예제 함수형 프로그래밍은 예제를 살펴보는것이 이해하기가 수월하다. 0~24 까지 제곱을 출력하는 프로그램을 작성해보자. Java 1.8 이전까지는 아래처럼 코드를 작성하였다. public static void main(String[] args){ for(int i = 0; i < 25; i += 1) { System.out.println(i*i); } } 하지만 Java 1.8 부터는 람다(익명함수)를 지원하면서 아래와 같이 코드를 작성할수도 있다. public static void main(String[] args){ IntStream.range(0, 25) .map(.. 2021. 2. 10.
프로그래밍 패러다임 - 구조적 프로그래밍 - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 문제인식 및 아이디어 데이크스트라는 아무리 간단한 프로그램이라도 컴퓨터에게 명령을 하려면 디테일한 세부사항까지 지시를 해야하기 때문에 프로그램이 의도한대로 동작하는것이 힘들다는 문제 인식을 하였다. 데이크스트라는 수학자가 유클리드 계층구조를 사용하는 방식을 프로그래머도 사용할 수 있다고 믿었다. 이 연구를 진행하면서 모듈을 재귀적으로 분해하는 과정에서 goto 문장이 방해가 된다는 사실을 발견하였다. 모듈을 재귀적으로 분해할 수 없다면, 알고리즘 풀이방법중 하나인 분할정복을 사용할 수 없게 된다. 반면 문제가 되지 않는 goto문의 사용방식이 있었는데, 이는 분기(if/.. 2021. 2. 10.
프로그래밍 패러다임 - 개요 - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - https://ko.wikipedia.org/wiki/%EA%B5%AC%EC%A1%B0%EC%A0%81_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D - 패러다임의 개요 프로그래밍의 대표적인 패러다임에는 구조적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍이 있다. 이번 절에서는 3가지 패러다임에 대한 간략한 개요를 알아보도록 한다. - 구조적 프로그래밍 최초로 적용된 패러다임이다.(최초로 만들어진 패러다임은 아니다.) 데이크스트라는 무분별한 goto 문이 프로그램 구조에 해롭다는 사실을 제시하였다.(https://ko.wikip.. 2021. 2. 10.