목록CS (7)
undefined
소프트웨어의 재사용성과 호환성 그리고 유지보수성을 위함 원칙 객체지향적으로 설계되어야함 객체지향적이란? 하나의 클래스는 하나의 역할을 수행한다. 상속에는 열려있으나 수정에는 닫혀있다. 자식은 부모를 대체할 수 있어야 한다. 인터페이스가 분리되어 클래스는 최소한의 구현만 해야한다. 상위 모듈은 하위모듈에 의존적이면 안된다. 종류 생성 패턴 - 객체의 생성 방식을 결정한다 구조 패턴 - 객체간의 관계를 조직한다. 행위 패턴 - 객체의 행위를 조직, 관리한다. 어댑터 패턴 현재 진행중인 클라이언트에서 사용하지 못하는 클래스를 사용하기 위해 어댑터 패턴을 거치면서 변환시킨다. 방식 : 상속 특징 : 기존의 클라이언트는 바뀔 필요가 없다. 싱글톤 패턴 클래스가 하나의 메모리를 할당하고 그 메모리에 인스턴스를 생성..
Server side session (서버 사이드 세션) 서버쪽에 유저의 고유 ID를 저장한다. 프론트와 그 ID를 통해 통신함 서버 - 클라이언트는 연결된 상태로 존재해야함 백 - 프론트는 서로 긴밀히 연결되어 있어야함 구글 맵스 API의 경우에는 적합하지 않음 서버는 유동적이면 안되고 무상태를 유지해야함 고유 ID는 서버와 클라이언트가 알기 때문에 보안에 취약 Auth Token (인증 토큰) 유효성이 검증되면 서버측에서 데이터가 문자열로 인코딩 된 토큰을 발행 토큰은 서버측에서 변형해서 보내기 때문에 고유 ID는 서버만 안다 클라이언트는 요청과 함께 토큰을 보내야함 JSON형식의 웹 토큰 형식으로 생성 참고 : JWT에 관한 내용 https://fcscode.tistory.com/89?categor..
브라우저 동작 방법 사용자가 선택한 자원을 서버에 요청 ⇒ 브라우저에 표시 자원의 주소는 URI에 의해 결정됨 브라우저는 웹표준기구인 w3c에서 정한 명세에 따라 자원을 해석한다. 사용자가 서버에 요청함 해당 페이지의 자원이 보내짐 렌더링 엔진을 통해 HTML과 CSS를 명세에 따라 해석 HTML의 파싱을 통해 DOM Tree 구축 CSS의 파싱을 통해 스타일구조체 생성 렌더트리 구축 렌더트리 배치 UI 백엔드의 그리기 시작 렌더링 HTML 파싱 → 콘텐츠 트리 내부에서 태그를 DOM Node로 변환 → CSS와 함께 스타일 파싱 → 렌더링 트리 구축 → 렌더링 트리 배치 (정확한 위치에 표시) → 백엔드 UI가 그리기 시작 모든 렌더링이 끝날 때 까지 대기하는 것이 아니라 실시간으로 받은 내용을 화면에..
Model 컨트롤러가 호출 시 요청에 맞는 역할을 수행 비즈니스로직의 구현영역 *비즈니스 로직 : 업무에 필요한 데이터를 처리하는 응용프로그램의 일부 상태가 변하면 컨트롤러와 뷰에 다음 명령을 요청한다. View 컨트롤러로부터 받은 모델의 결과값을 유저에게 출력하는 화면을 만든다. 뷰가 화면을 만들고 브라우저에 보내면 브라우저는 해당 화면을 출력한다. 사용자와 상호작용하는 영역 Controller 클라이언트로부터 요청을 받으면 그 요청을 수행하는 모델을 호출한다. 모델에 보낼 데이터를 가공한다. 모델이 업무를 마치면 컨트롤러를 통해 뷰로 결과를 전달한다.
Test Driven Development 테스트가 주도하는 코드 작성 방식 자동화된 테스트케이스를 생성하고 그 테스트를 통과하는 코드를 작성한다. 기능을 추가하기 전에 테스트를 작성한다 장점 1. 테스트를 작성하기 위해서 개발자는 요구사항을 분명히 이해하고 있어야 하므로 결과적으로 개발자는 코드작성 이전에 요구사항이 무엇인지 명확히 이해할 수 있다. 2. 새로운 기능을 추가한 후 테스트를 작동함으로써 새로운 기능과 기존의 기능이 잘 작동하는지 확인할 수 있다. 3. 코드 리팩토링시에 테스트를 거쳐가면서 진행할 수 있다. 단점 1. 코드량의 증가로 인해 시간이 많이 소요될 수 있다. 2. 테스트 코드를 작성함에 진입장벽이 존재한다. 3. 테스트가 필요한 부분때문에 메인코드를 변경하는 경우가 발생할 수 있..
Representational State Transfer 디자인패턴X vs 아키텍쳐O 아키텍쳐란? 최적화를 위하여 시스템을 설계하는 설계도 Rest의 특징 1. 유니폼 인터페이스 통일된 인터페이스로 실행되는 아키텍쳐 스타일 2. 무상태성 불필요한 세션 쿠키등을 따로 저장하지않고 api로 들어오는 요청만 처리하기에 간단함 3. 캐시 가능 기존의 HTTP환경을 활용하기에 HTTP기능인 캐시를 활용가능 4. 자체표현구조 Rest API의 메세지를 보고도 구조를 쉽게 이해 가능한 자체표현구조 5. 클라이언트-서버구조 서버는 데이터를 제공 클라이언트는 데이터를 관리함으로서 각각의 역할이 구분되고 의존성이 줄어듬 6. 계층형구조 API의 서버를 다중계층으로 구성가능, 구조상의 유연성이 높고 프록시, 게이트웨이등의 ..