목록전체 글 (180)
YataNox
1.SPOF? 시스템 구성 요소 중에서, 동작하지 않으면 전체 시스템이 중단되는 요소를 말한다. 이중화가 되어있지 않은 요소라면 SPOF일 가능성이 높다. 장애회복성을 위해서 SPOF가 없어야한다. 예를 들어 단일 서버에 단일 API를 이용하는 상황이라고 하자 이 중 API Server가 중단된 상태라고 해보자. 다른 요소의 정상 여부에 상관없이 전체 시스템이 중단된다. Server도 마찬가지다. 혹은 단일 인터넷망에서 서버에 연결된 인터넷망이 오류가 있을 경우는? 이 역시 SPOF다. 이를 해결하기 위해서는 서버나 DB 등의 개인 요소를 이중화를 하는 등의 대처를 통해 한 쪽이 장애가 났을 때 대응할 수 있는 환경을 구축하는 것이다. 그러나 이는 필연적으로 비용의 증가 등의 문제를 가져온다. -- 참조..
1. 관심사 분리란? 개발의 기본 원칙 중의 하나로 프로그램을 하나의 단일 블록으로 작성하지 말고 작은 조각으로 나누어 각각 간단한 개별 작업을 완료할 수 있도록 하는 원칙 즉 가장 낮은 레벨에서 긴 복잡한 함수를 쓰지 말라라고 말하는 것이다. 함수의 크기가 커지기 시작하면 함수가 너무 많은 작업을 처리한 다는 것이고, 함수를 분리할 필요가 있다는 뜻이된다. 이러한 경우 이를 리팩터링하여 더 간결한 모양으로 만들어야 한다. 이 프로세스 중에 원래 알고리즘의 일부가 내보내지고 개인 액세스 수준을 가진 별도의 작은 함수로 캡슐화된다. 이렇게하면, 코드가 명료해지고 다른 부분에서 재사용할 수 있게 된다. 간단한 예시로 이해를 돕자. public static void main(){ Scanner sc = new..
1. 프로그래밍 패러다임 이전 글에서 한 번 설명했듯 프로그래밍 패러다임이란 개발자가 프로그래밍을 하는 데 있어서의 관념이나 체계를 이르는 말이다. 해당 게시글에서는 그 중 객체지향 프로그래밍과 함수형 프로그래밍에 대해 가볍게 다뤄본다. 2. 함수형 프로그래밍 함수형 프로그래밍은 소프트웨어의 크기가 점점 커지는 과정에서 복잡하게 엉킨 코드를 유지보수하기 어려워지는 것을 보완하기 위해 등장했다. 함수의 응용을 강조하고 가변을 멀리하는, 모든 것을 작은 함수를 기준으로 나누어 문제를 해결하는 기법이 근간이되는 프로그래밍이다. 이를 통해 가독성과 유지보수성을 높였다. 함수형 프로그래밍은 대입문이 없는 프로그래밍이다라는 표현을 쓴다. 사이드 이펙트가 생기지 않는 순수 함수를 1급 객체로 취급하여 파라미터나 반환..
1. 프로그래밍 패러다임 프로그래밍을 하는 데 있어서의 한 관념이나 체계를 이르는 말이다. 프로그래머에게 프로그래밍의 한 관점을 가지게하며 결정하게 하는 역할을 하게된다. 예시를 하나 들자면 객체지향 프로그래밍은 개발자에게 프로그램을 상호작용하는 객체들의 집합으로 바라보게 한다. 기본적으로 각 언어들은 하나 이상의 패러다임을 지원한다. 2. 선언형 프로그래밍 선언형 프로그래밍은 이론적으로 주로 두 가지로 이야기 되곤 한다. - 프로그램을 어떻게(How) 해야하는지 나타내기보단 무엇과(What) 같은지 표현하는 프로그래밍 - 함수형, 논리형, 제한형 프로그래밍 형태로 작성된 프로그램 즉 어떻게 작동하는지에 대한 부분은 추상화시켜 처리하고 '무엇을'에 집중하는 프로그래밍이 선언형 프로그래밍이라고 할 수 있다..