본문 바로가기

CS지식

(51)
[CS 지식 - 네트워크] 세션과 쿠키 1. HTTP의 특징, 세션과 쿠키를 사용하는 이유 HTTP(Hypertext Transfer Protocol) : 인터넷상에서 데이터를 주고 받기 위해 서버/ 클라이언트 모델을 따르는 통신규약 HTTP 특징 : 비연결성(Conectionless), 비상태성(Stateless) 1. 비연결성(Conectionless) : 클라이언트가 요청을 한 후 응답을 받으면 연결을 끊음 2. 비상태성(Stateless) : 통신이 끝나면 상태를 유지하지 않는 특징 → 서버의 자원을 절약하기 위해 모든 사용자의 요청마다 연결과 해제의 과정을 거치기 때문에 연결상태가 유지되지 않고, 연결 해제 후에 상태 정보가 저장되지 않는다는 것 → 이로 인해, 사용자를 식별할 수 없어 같은 사용자가 요청을 여러번 하더라도 매번 새로..
[CS 지식 - 알고리즘] 알고리즘이란? 1. 알고리즘이란? 사전적 의미 : 어떤 문제를 해결하기 위한 절차나 방법 프로그래밍에서 의미 : 어떤 문제를 컴퓨터를 사용해서 해결하기 위한 절차나 방법 2. 알고리즘 조건 입력 : 알고리즘은 0 또는 그 이상의 외부에 제공된 자료 존재 출력 : 알고리즘은 최소 1개 이상의 결과가 있어야함 명확성 : 알고리즘의 각 단계는 애매함 없는 명확한 과정으로 구성되어야함 유한성 : 알고리즘은 유한한 수의 단계를 수행한 후 문제가 해결되고 종료되어야 함 효율성 : 알고리즘의 모든 연산은 명백하게 실행 할 수 있음을 검증 할 수 있어야 함 3. 알고리즘의 효율성 컴퓨터를 사용해 주어진 조건에 맞게 효율적으로 문제를 해결하는 절차와 방법을 우선 → 알고리즘의 효율성은 해당 알고리즘이 적용될 조건이 어떠하냐에 따라 달..
[CS 지식 - 개발 상식] Ajax & axios & fetch js에서 비동기 HTTP통신(클라이언트와 서버 간 데이터를 주고받는 것)을 위해 사용 되는 것들 1. Ajax Asynchronous JavaScript And XML의 약자 Javascript를 사용한 비동기 통신, 클라이언트와 서버간에 데이터를 주고 받는 기술 →Javascript에서 비동기 HTTP통신이 가능하도록 해줌 **비동기 HTTP : response와 request 비동기 식으로 다룰 수 있는 것 Ajax 프레임 워크 : Ajax를 이용해 개발을 손쉽게 할 수 있도록 여러가지 기능을 포함해 놓은 개발환경 가장많이 사용되는 프레임 워크 : Prototye, script.aculo.us, dojo, jQuery 2.axios 등장배경 - 기존 비동기 요청 : WEB에서 리소스를 비동기로 요청하..
[CS 지식 - 개발 상식] Web Server와 WAS의 차이 1. 정적 페이지(Static Pages)와 동적 페이지(Dynamic Pages) 1-1. 정적 페이지(Static Pages) Web Server는 파일 경로 이름을 받아 경로와 일칠하는 file contents를 반환 항상 동일한 페이지를 반환 ex)html, css, js, image파일과 같이 컴 퓨터에 저장되어 있는 파일 1-2. 동적 페이지(Dynamic Pages) 인자의 내용에 맞게 동적인 Contents반환 웹 서버에 의해 실행되는 프로그램을 통해 만들어진 결과물 2.Web Server와 WAS의 차이 2-1. Web Server 웹 브라우저 클라이언트로부터 HTTP요청을 받아 HTML문서나 각종 리소스(Resource)를 전달하는 컴퓨터 → 정적 컨텐츠를 제공하는 서버(WAS를 거치지..
[CS 지식 - 개발상식] TDD의미 및 장점 1. TDD(Test Driven Development)란? 테스트 주도 개발 반복 테스트를 이용한 소프트웨어 방법론 → 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현 짧은 개발 주기의 반복에 의존하는 개발 프로세스 2. TDD 개발주기 Red : 실패하는 테스트코드를 먼저 작성 Green : 테스트 코드를 성공시키기 위한 실제 코드 작성 Blue : 중복코드 제거, 일반화등의 리팩토링 수행 → 실패하는 테스트 코드를 작성할 때까지 실제코드를 작성하지 않는것 실패하는 테스트를 통과할 정도의 최소 실제코드를 작성해야함 → 이를 통해, 실제 코드를 명확하게 정의함으로써 불필요한 설계를 피할 수 있고 , 정확한 요구사항에 집중 할 수 있음 3. 일반 개발 방식 vs ..
[CS 지식 - 개발상식] 함수형 프로그래밍 1. 프로그래밍 패러다임 대표적으로 절차적, 개체지향, 함수형 프로그래밍 존재 크게 분류하면 명령형, 선언형 프로그래밍 명령형(Imperative) 프로그래밍 선언형(Declarative) 프로그래밍 정의 프로그래밍 상태와 상태를 변경시키는 구문의 관점에서의 연산을 설명 필요한 것이 어떤 것인지를 기술하는 것에 초점을 맞추는 프로그래밍 구조 분류 절차적 프로그래밍 (수행되어야 할 연속적인 계산 과정 포함) 객체지향 프로그래밍 (객체들의 집합으로 프로그램의 상호작용을 표현) 함수형 프로그래밍 (순수 함수를 조합하고 프로그램을 만드는 방식) 언어 C,C++, Java, Pascal, Ruby HTML, Lisp, Haskell, Prolog,SQL,XML 2. 함수형 프로그래밍 하나의 프로그래밍 패러다임으로..
[CS 지식 - 개발 상식] MSA(Micro Service Architecture) 1. 모놀리식 아키텍쳐(Monolithic Architecture) 모놀리기식 아키텍쳐는 MSA의 반대되는 개념 애플리케이션의 모든 구성 요소가 한 프로젝트에 통합되어 있는 형태 단일 코드 베이스의 애플리케이션 1-1. 장점 개발초기에 단순한 아키텍쳐 구조와 개발에 용이 단순성 : 모든코드가 단일 코드 베이스에 있음 변경사항이 발생 할 경우 필요한 모든 코드가 한 곳에 존재한다는 의미 간편한 배포 : 단일 프로젝트로 배포하면 되기 때문에 간편 새로운 기능이 추가되거나 버그가 수정될떄마다 단일 애플리케이션을 배포하면 됨 보편성 디버깅이 쉬움 1-2. 단점 서비스 규모가 커지면 유지보수가 어려움 부분 장애가 전체 서비스의 장애로 확대될 수 있음 배포 시간이 오래걸림 기술 사용 제한 : 한 Framwork와 ..
[CS지식 - Spring] @Controller와 @RestController차이 1.@Controller 1-1. Controller로 View반환하기 Client는 URI형식으로 웹 서비스 요청을 보냄 DispatcherServlet이 요청을 위임할 HandlerMapping을 찾음 HandlerMapping을 통해 요청을 Controller로 위임 Controller는 요청을 처리한 후에 ViewName을 반환 DispatcherServlet은 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 사용자에게 반환 → 전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 Viwe를 반환하기 위해 사용 1-2. Controller로 Data반환하기 Client는 URI 형식으로 웹 서비스에 요청을 보냄 DispatcherServlet이 요청을 위임..