개발지식/CS 지식

    [개발지식] 프록시란?

    [개발지식] 프록시란?

    프록시란? 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 말한다. 프록시란 ‘대리’ 라는 의미를 가지며, 서버와 서버사이의 중계기 역할을 해 준다. 서버가 프록시에게 접근 할때는 클라이언트 처럼 작동하며, 클라이언트가 프록시에게 접근하면 서버처럼 작동을 해준다. 프록시는 프록시 서버에 요청이 된 내용을 캐시 를 이용해서 저장해 두어 중복 요청에 대해서 다시 데이터를 가져올 상황이 발생하지 않게 해줌으로서, 클라이언트에게는 빠른 속도의 서비스를 제공하고, 서버에게는 불필요한 부하를 줄이는 효과를 제공할 수 있다. 프록시의 두 종류 프록시 서버는 네트워크 상의 위치와 제공하는 데이터의 방향에 따라서 Forward Prox..

    SPA(Single Page Application)란?

    SPA(Single Page Application)란?

    SPA란? Single Page Application의 약어로, 한 개의 페이지로 이루어진 애플리케이션 이라는 의미이다. 전통적인 웹페이지는 여러 페이지로 구성이 되어 있다. 전통적인 웹페이지와 현재 웹 페이지 전통적인 웹 페이지(Multi Page Application) 다른 페이지로 이동하면, 새 html을 받아서 페이지 로딩 마다 서버에서 리소스를 전달받아 해석한 뒤 화면에 출력 a 페이지를 만들고싶으면 a.html, b페이지를 만들면 b.html로 각 페이지마다 html을 만들었다. 불필요한 로딩으로 인해서 비 효율적이다 현재의 웹 페이지(Single Page Application) 리액트 같은 라이브러리 혹은 프레임워크를 사용해서, 뷰 렌더링을 사용자의 브라우저가 담당하게 한다. 웹 사이트의 전..

    [개발지식/CS] CI / CD 란?

    [개발지식/CS] CI / CD 란?

    CI / CD 란? CI(Continuous Integration) CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다. CI를 성공적으로 구현하는 경우, 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로, 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다. CD(Continous Delivery / Continous Deployment) CD는 지속적인 서비스 제공(Continuous Delivery) 또는 지속적인 배포(Continuous Deployment)를 의미하며, 이 두 용어는 상호 교환적으로 사용된다. 두 가지 의..

    SOLID : 좋은 객체 지향설계의 5가지 원칙

    SOLID : 좋은 객체 지향설계의 5가지 원칙

    SOLID : 좋은 객체 지향설계의 5가지 원칙 SRP 단일 책임 원칙 Single responsibility principle 한 클래스는 하나의 책임만 가져야 한다 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. 문맥과 상활에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급효과가 적으면 단일 책임 원칙을 잘 따른 것. ex) UI변경, 객체의 생성과 사용을 분리 OCP 개방-패쇄 원칙 open/closed principle 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. ex) DB의 확장에는 열려 있고, JDBC 인터페이스의 변화는 닫혀있다. 인터페이스를 중간에 두어서 자바 애플리케이션과 DB와의 직접적인 연동을 피하게 설계하였다. LSP 리스코프 치..