[Design Pattern] 퍼싸드 패턴 || Facade Pattern
·
🐣 Computer Science
❓ 구조 패턴 클래스나 객체를 조합하여 더 큰 구조를 생성하는 방법이다. 서로 다른 인터페이스를 묶어 단일 인터페이스를 제공하거나, 새로운 기능을 제공한다. 따라서, 독립적인 각 클래스들을 마치 하나인 것처럼 사용한다.퍼싸드 패턴은 이러한 구조 패턴 중 하나이다.Facade : 건물의 외관❓ 퍼싸드 패턴이란내부의 서브 시스템을 감싸고, 클라이언트에게 인터페이스를 제공하여 쉽게 접근할 수 있도록 하는 패턴 서브 시스템을 더 쉽게 사용할 수 있도록 high-level 인터페이스를 정의하고 제공한다. 즉, 일련의 인터페이스에 대한 통합된 인터페이스를 제공한다. 클라이언트는 내부에 어떤 기능이 존재하는지 복잡한 것에 대해 잘 모르더라도, 해당 기능에 접근하여 사용할 수 있다. ❗예시
출처(Origin) | SOP | CORS
·
🐣 Computer Science
출처(Origin)URL에서 protocol, host, port를 묶어서 Origin이라 한다. localhost != 127.0.0.1 둘은 동일한 사이트로 연결되지만, URL을 문자열 값으로 비교하면 동일하지 않으므로, 다른 출처라고 판단한다.📌SOPSOP(Same-Origin Policy, 동일 출처 정책) : 동일한 출처 간에 API 등의 데이터 접근 및 리소스만 사용이 가능하도록 하는 보안 방식1️⃣ 사용자가 A라는 동일한 출처의 사이트에 정보를 가지고 요청을 하는 상황 2️⃣ 실수로 다른 출처인 사이트에 접속하게 되어 지니고 있던 정보가 유츨된다. 3️⃣ 이 정보를 가지고 악의적으로 A 사이트에 원치 않았던 요청을 하게 될 수 있다. XSS : 접속한 사용자의 브라우저에 악성 스크립트가 실행..
[Git] Git Branch 전략 || Github Flow vs. Git Flow vs. GitLab Flow
·
🐣 Computer Science
❕ Branch가지를 뻗어나가듯이, 다른 작업(브랜치)의 영향을 받지 않고 독립적으로 작업을 진행할 수 있는 공간이다. “독립적”이라는 특징을 가지고 있기 때문에 기능 구현 & 오류 수정 등 다양한 작업이 동시에 진행될 수 있다. ( master/main 브랜치 : 기본 브랜치 ) ❕ Branch 전략여러 명의 개발자가 하나의 저장소를 가지고 협업하는 환경에서, 효율적으로 관리하기 위해 각 브랜치에 대한 역할을 설정하고, 규칙을 정하는 것 등을 의미한다.어느 브랜치가 가장 최신인가어디서부터 끌어와서 개발을 시작해야 하는가어디로 push해야하는가등등의 상황을 줄이고자 사용된다.📌Github FlowGithub Flow는 Git Flow의 브랜치 전략이 매우 복잡하고 적용하기 힘들기 때문에 생기게 된 브랜치..
정적 & 동적 페이지, 웹 서버와 컨테이너, WAS, MVC
·
🐣 Computer Science
❏ 서버(Server) 서버(Server)란, 클라이언트(Client)에게 네트워크를 통해 정보 및 서비스를 제공하는 컴퓨터 프로그램 또는 장치를 의미한다. 서버는 클라이언트로부터 요청(Request)를 받아 그에 맞게 처리한 서비스를 제공한다. 이 서비스에 따라 서버의 역할도 다양하게 나뉜다. (메일, 도메인, 웹 등등) ❏ 웹 서버(Web Server) vs. WAS ❍ 정적 페이지 (Static page) 데이터베이스에서 정보를 가져오거나 별도의 서버 처리가 없어도 사용자들에게 보여줄 수 있는 페이지이다. 모든 사용자에게 항상 동일한 페이지를 보여주게 된다. ( HTML, CSS, JS, IMAGE 같은 요소들 ) ❍ 동적 페이지 (Dynamic page) 서버가 데이터베이스에서 정보를 가져와 처리..