Computer Science
-
[CS] Dispatcher ServletComputer Science 2022. 3. 8. 23:05
Servlet이 web application에서 작동하려면 web.xml이라는 파일이 필요하다. web.xml은 특정 url과 해당 servlet에 대한 매핑을 가지고 있어서, 어떠한 요청이 들어왔을 때 Servlet Container에서 해당 Servlet을 매핑시키는데 사용되는 파일이다. 매핑된 Servlet에서는 Parameter 정보를 받고, Service 로직을 수행한 뒤, 경우에 따라서 View를 만들어서 Client에게 반환해주는 일련의 과정을 거친다. Spring Web MVC pattern에서는 Servlet이라는 개념을 Dispatcher Servlet으로 이용하고 있다. Spring은 Tomcat이라는 Servlet Container을 갖고 있다. Spring은 모든 request을 ..
-
[CS] Servlet의 개념과 동작 과정Computer Science 2022. 3. 8. 22:23
Servlet Servlet이란 서버 쪽에서 실행되며 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다. Request가 오면 해당 요청을 자바를 활용하여 처리하는 것을 Servlet이라 한다. Spring framework에서는 기본적으로 data의 위치를 직접적으로 명시하는 방식의 URL의 접근을 막아놨으며, 식별자를 이용하여 접근을 요청하는 URI의 접근방법을 사용한다. 따라서 어떠한 request가 들어오면 Tomcat이 이를 가져오며, Tomcat은 Servlet을 활용하여 Java를 거쳐 Request을 처리한다. Servlet의 생명 주기와 동작과정 Servlet의 생명주기는 크게 세가지로 나눌 수 있다. Init : Servlet instance 생성 Service : 실..
-
[CS] Web server와 Was(web application server)Computer Science 2022. 3. 8. 22:04
Web Server web server란 클라이언트로부터 HTTP 요청을 받아 HTML 문서나 각종 리소스를 전달하는 컴퓨터를 말한다. 어떤 요청을 받았을 때 정적인 데이터를 반환해주는 컴퓨터라고 볼 수 있다. 예를들어 Computer는 Video1.mp4, Video2.mp4, VIdeo3.mp4 이렇게 세 개의 동영상 파일을 가지고 있다라고 가정한다. A, B, C는 인터넷 연결망을 통해 서로 연결되어 있다. A가 Computer의 Video1.mp4을 요청했고, Request에는 다음과 같은 정보가 포함되어야 한다. - IP주소 - URL IP주소는 목적지인 Computer의 주소여야하고, URL은 Computer에서 필요한 데이터를 명시해야한다. 이를 표현하면 다음과 같다. https://~~~(..
-
[CS] CQS - Command Query SeparationComputer Science 2021. 12. 30. 17:23
Betrand Meyer에 의해 개념이 정리된 Command Query Separation(이하 CQS)는 질의(query)와 명령(command)을 정확히 분리하는 것을 목적으로 한다. - query(질의)는 결과값을 반환하고, 시스템의 상태를 변화시키지 않는다. 즉 부작용에서 자유롭다.(free of side effets) - command(명령)은 결과를 반환하지 않고, 시스템의 상태를 변경한다. 기본적으로 이 원칙을 지켜야지만 상황에 따라 예외를 두어야한다. cqs의 예외 중 하나는 stack의 pop이다. pop함수는 스택의 맨 위의 값을 빼서(command) 반환(query)하는 일까지 병행한다. cqs를 기본적으로 지키되 필요할 때는 예외를 두는 것이 효율적이다. 예를 들어 insert의 경..
-
[CS] REST API란?Computer Science 2021. 11. 16. 00:26
REST란? REpresentational State Transfer 의 약자이며, 다음과 같이 구성되어 있다. - 자원(Resouce) : URI - 행위(Verb) : HTTP Method - 표현(Representaions) REST의 특징 1. Uniform Interface(유니폼 인터페이스) Uniform Interface는 URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말한다. 2. Stateless(무상태성) REST는 무상태성 성격을 갖는다. 다시 말해 작업을 위한 상태정보를 따로 저장하고 관리하지 않는다. 세션 정보나 쿠키정보를 별도로 저장하고 관리하지 않기 때문에 API 서버는 들어오는 요청만을 단순히 처리하면 된다. 때문에 서비스의 자..
-
[CS] 객체지향(OOP)의 5원칙 (SOLID)Computer Science 2021. 11. 5. 16:22
★단일 책임 원칙(SRP : Single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. ★개방 폐쇄 원칙(OCP : Open/closed principle) 확장에는 열려 있으나, 변경에는 닫혀 있어야한다. 리스코프 치환 원칙(LSP : Liskov substitution principle) 프로그램의 객체는 프로그램의 정확성을 깨트리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야한다. 인터페이스 분리 원칙(ISP : Interface segregation principle) 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다. ★의존관계 역전 원칙(DIP : Dependency inversion principle) 추상화에 의존한다. ..
-
[CS] 객체지향(OOP)의 4가지 특징Computer Science 2021. 11. 5. 16:09
1. 캡슐화 a. 객체의 속성을 보호하기 위해 사용 b. 변수와 메소드를 하나로 묶음 c. 데이터를 외부에서 직접 접근하지 않고 함수를 통해서만 접근 2. 상속 a. 자식 클래스가 부모클래스의 특성과 기능을 물려받는 것 b. 기능의 일부분을 변경하는 경우 자식 클래스에서 상속받아 수정 및 사용함 c. 상속은 캡슐화를 유지, 클래스의 재사용이 용이하도록 해줌 3. 추상화 a. 인터페이스로 클래스들의 공통적인 특성(변수, 메소드)들을 묶어 표현하는 것 4. 다형성 a. 어떤 변수, 메소드가 상황에 따라 다른 결과를 내는 것
-
[CS] 함수형 프로그래밍Computer Science 2021. 10. 3. 16:04
함수형 프로그래밍은 순수 함수 위주로 문제를 해결하는 기법으로, 변수를 줄이고, 가독성을 높이고, 유지보수를 용이하게 만들어준다. 클린코드의 저자 마틴옹은 함수형 프로그래밍을 대입문이 없는 프로그래밍이라고 정의했다. 함수형 프로그래밍의 특징 함수형 프로그래밍의 특징은 크게 3개로 볼 수 있다. 1. 불변성 2. 참조투명성 3. 일급함수 불변성 어떤 값의 상태를(메모리에 이미 담긴 상태를) 변경하지 않는다는 뜻 상태의 변경은 Side Effect(부수 효과)를 일으키기 때문에, 함수형 프로그래밍에서는 이를 제한한다. 참조투명성 함수가 외부의 영향을 받지 않는 것을 의미한다, 파라미터와 멤버변수에 결과를 의존한다. 일급함수 일급이 붙어있다는 뜻은 이런 의미를 갖고 있다. - 변수나 데이터 구조안에 담을 수 ..