본문 바로가기

CS/Software Engineering

함수형 프로그래밍의 컨셉과 순수 함수 예시 함수형 프로그래밍의 컨셉 변경 가능한 상태를 불변상태(immutable)로 만들어 side effect를 없애자 모든 것은 객체이다 코드를 간결하게 하고 가독성을 높여 구현할 로직에 집중시키자 동시성 작업을 보다 쉽게 안전하게 구현 하자 변경 가능한 상태를 불변 상태로 만들어 side effect를 없애자 어떤 input parameter가 주어지느냐에 따라 output (return value) 이 정해지는 구조로 한다. 그 외에 어떤 외부 상태도 함수의 return 값에 영향을 줄 수 없다. 모든 것은 객체이다 함수형 언어에서는 모든 것이 객체. → 클래스 외에 함수 또한 객체 함수를 값으로 할당할 수 있다. 함수를 parameter로 전달할 수 있다. 함수를 return 값으로 반환할 수 있다. 사..
MSA / 마이크로 서비스 / 마이크로 아키텍처 기존 : 모노리스(monolith) 아키텍처 쉽게 말하면 기존에는 하나의 코드 베이스에 모두가 달라붙어 기능을 모두 구현하는(...) 구조가 주로 사용되었다. 이러한 아키텍처의 문제는, 점점 커질수록 뭐 하나 마음대로 수정하기가 조심스럽다. (merge하다 conflict도... 문제..) 코드 몇줄 변경에도 전체 서비스를 다시 빌드하고 다시 배포해야 하므로 위험성이 너무 커지는 방법이다. 그러다 보니 어느 곳에서는 새로운 기능의 release가 아예 느려진다고 한다. 그래서 등장한게 마이크로 서비스! 기존 서비스 → 마이크로 서비스 하지만 기존에 이미 있는 서비스를 통째로 마이크로 서비스로 바꾸는 것은 참 난감하다. 특히 인증 절차의 구성이 쉽지 않은데, 이러다보니 결국 1개의 모노리스가 n개의 모노리..