2022/06 5

Builder Pattern (빌더 패턴)

빌더 패턴의 정의 빌더 패턴은 "복잡한 객체의 구성을 해당 표현과 분리하여 동일한 구성 프로세스에서 여러 개의 다른 표현을 생성할 수 있도록 하는 것"을 목표로 합니다. 빌더 패턴은 fluent interface와 비슷해야 합니다. fluent interface는 일반적으로 람다식에서 볼 수 있듯이 method cascading(또는 method chaining)을 사용하여 구현됩니다. *메서드 체인은 객체 지향 프로그래밍 언어에서 여러 메서드를 호출하기 위한 일반적인 구문입니다. method chainig example) public class PersonMethodChaining { private String name; private int age; //해당 속성을 설정하는 부작용 외에도 setter..

스프링 2022.06.28

함수형 프로그래밍 + 람다(재정리) JAVA

함수형 프로그래밍? 함수를 값으로 취급한다. 0개 이상의 인수를 가지며, 한 개 이상의 결과를 반환해야하고, 부작용(no side effect)이 없어야 한다. 함수나 메서드가 어떤 예외도 일으키지 않아야 한다. 여기서 부작용(Side Effect)이란 자료구조를 고치거나 필드에 값을 할당(setter 메서드 같은 생성자 이외의 초기화 동작) 예외 발생 파일에 쓰기 등의 I/O 동작 수행 함수형 프로그래밍의 주요 특성 1. 불변(Immutable) 객체를 사용한다 원본은 변하지 않기 때문에, 객체의 상태를 바꿀 수 없으므로 thread safe하다. 2. 참조 투명성(Referential Transparency) // Pure Function 동시에 함수를 처리해도 사이드이펙트 없이 동일한 값 출력시킬 ..

L4, L7 Load Balancer

L4, L4 계층 L7: 애플리케이션 계층 최종 사용자에게 가장 가까운 L7은 사용자 데이터와 직접 상호 작용하는 유일한 계층입니다. 이메일 클라이언트, 웹 브라우저 및 기타 소프트웨어 애플리케이션은 모두 레이어 7에 의존하여 통신을 시작합니다. L4: 전송 계층 L4는 장치, 최종 시스템 및 호스트 간의 데이터 전송 및 종단 간 통신을 처리합니다. 여기에는 데이터를 L3으로 보내기 전에 세션 계층에서 데이터를 분할하고 수신단에서 분할된 데이터를 세션 계층을 위한 소비 가능한 데이터로 재조립하는 작업이 포함, 오류 제어 및 흐름 제어를 처리 L4 와 L7 Load balancer (스위칭 장비) 로드밸런서는 트래픽을 받아서 여러 대의 서버에 분산시키는 하드웨어 또는 소프트웨어 부하 분산에는 L4 Load..

CS 2022.06.12

GSLB(Global Server Load Balancing)

정의 글로벌하게 분산된 서버간의 로드 밸런싱 작업으로 지리적으로 분산된 애플리케이션 서버 간에 트래픽을 효율적으로 분산 즉 지리적으로 분산된 위치에 있는 서버 간 부하 분산 사용하는 이유? 성능 : 사용자 요청을 가장 가까운 서버로 전달하여 네트워크 지연 및 네트워크 문제를 최소화 맞춤형 콘텐츠 : GSLB를 사용하면 기업이 해당 지리적 위치 및 언어의 관련성을 위해 맞춤화된 로컬 서버에서 콘텐츠를 호스팅 재해복구(Disater Recovery)용도로도 사용 (ex 지진으로 인한 서울서버 장애시 부산서버로 연결) 유지 관리 : 클라이언트 요청을 다른 서버로 간단히 리디렉션할 수 있으므로 데이터 센터 마이그레이션 및 업그레이드를 중단 없이 실행 기존 DNS는 사용자에게 최적의 경로를 안내하지 못함, 기반 ..

CS 2022.06.11

XSS 와 CSRF

XSS(Cross Site Scripting) Web Application에서 나타나는 취약점중 하나로 웹사이트 관리자가 아닌 이가 사이트에 악성 script를 삽입할 수 있는 취약점이다. 사용자의 쿠키, 세션 탈취, 비정상기능 수행등을 한다. html이 를 자바스크립트라고 인식해서 실행한다. 악성코드를 퍼트릴 때 많이 사용한다. 다음과 같은 경우에 발생 데이터는 신뢰할 수 없는 소스를 통해 웹 응용 프로그램에 입력되며 가장 자주 웹 요청이 발생합니다. 데이터는 악성 콘텐츠의 유효성을 검사하지 않고 웹 사용자에게 전송되는 동적 콘텐츠에 포함됩니다 1. Reflected XSS - non persistent 요청과 동시에 결과가 사용자에게 반사되는 형태 클라이언트 요청에서 전송된 악성 스크립트는 서버에 전..

스프링 2022.06.05