본문 바로가기

Theory

(8)
웹과 네트워크의 기초 1. 웹은 HTTP로 나타낸다 주소창에 URL을 입력하면 내가 원하는 웹 페이지를 얻을 수 있습니다. 그런데 URL을 입력하는 과정부터 웹 페이지가 뜨기까지 무슨 과정을 거치는걸까요? 🚀 간단하게 설명하면 클라이언트가 웹 브라우저에 띄워줘야 하는 정보를 서버에 요청하면, 서버에서는 우리가 필요한 정보들을 응답해줍니다. 이렇게 인터넷 상에서 클라이언트부터 서버까지 데이터를 주고 받을 수 있는 프로토콜을 바로 HTTP(Hyper Text Transfer Protocol)라고 합니다. HTTP의 탄생 배경 HTTP는 멀리 떨어져 있는 동료와 지식을 공유하기 위해 처음으로 등장했습니다. 최초로 고안된 것은 여러 문서를 상호간에 관련 짓는 하이퍼 텍스트와 상호간 참조할 수 있는 WWW(World Wide Web)..
OSI 7계층과 TCP/IP 4계층 1. OSI 7계층의 정의 1-1. OSI 7계층이란? 네트워크를 이루고 있는 구성요소들을 7단계의 계층적 방법으로 나누고, 각 계층의 표준을 정한 것이다. 1-2. OSI 7계층이 생긴 이유 시스템 간의 통신을 개방하기 위해서 (OSI 7계층이 생기기 이전에는 표준이 존재하지 않아 각양각색으로 개발을 했기 때문에 데이터 전송이 어려웠음) 2. OSI 7계층과 TCP/IP 4계층 2-1. OSI 7계층 일반적인 네트워크를 포괄하는 네트워크 모델로, 수행 기능에 따라 물리 계층(1계층), 데이터 링크 계층(2계층), 네트워크 계층(3계층), 전송 계층(4계층), 세션 계층(5계층), 표현 계층(6계층), 응용프로그램 계층(7계층)으로 나뉜다. 2-2. TCP/IP 4계층 TCP/IP 프로토콜을 사용하는데 ..
클라우드 서비스(Cloude Service) 클라우드 서비스(Cloude Service) 클라우드 서비스란? 사용자가 IT 자원을 소유하거나 구매할 필요 없이 사용한 양에 따라 그에 맞는 사용료 지불하고 사용하는 것이다. 클라우드 서비스의 종류 SaaS(Software as a Service) 클라우드 환경에서 운영되는 애플리케이션 서비스로, 모든 서비스가 클라우드에서 이루어진다. 대표적인 예시로는 네이버 클라우드, 드롭박스 등이 있다. 로그인만 하면 모든 기능을 사용할 수 있는 것 처럼 굳이 소프트웨어를 구매하고 설치하는 개념이 아니라 웹에서 소프트웨어를 빌려쓰는 개념이라고 생각하면 된다. SaaS는 사용료만 지불하면 어디서든 곧바로 사용할 수 있다. 제어를 하는 곳이 사용자가 아니라 웹이기 때문에 업그레이드를 할 필요도 없다. IaaS(Infr..
TDD 간단하게 알아보기(Test Drivent Development) TDD란 TDD = Test Driven Development → 테스트가 개발을 이끌어 나간다. TDD 사이클 (Test Drivent Development Cycle) 아래 사이클을 NodeJs에서 가장 많이 사용하는 Mocha를 이용해서 간단한 예제를 살펴보겠다. TDD와 함께하는 짝수/홀수 판별 프로그램 짝수면 "Event"을, 홀수면 "Odd"를 return하는 프로그램을 작성하여라. RED const assert = require('assert'); describe('짝수/홀수 판별', function () { function solution(num) { var answer = ''; return answer; } it('홀수(정답)', function () { assert.equal(solu..
MVC 패턴(MVC Pattern) MVC란? 애플리케이션을 모델(Model), 뷰(View), 컨트롤러(Controller)인 세 부분으로 나눈 디자인 패턴 Model : 데이터, 비즈니스 로직 View : 사용자에게 보여주는 화면 Controller : Model과 View를 연결함 ⓐ : User가 요청함 (ex. 웹 페이지에 접속함) ⓑ : Controller가 Model에게 로직을 받아옴 (ex. 웹 페이지에 해당하는 로직을 받아옴) ⓒ : Controller가 View에게 뿌려줌 (ex. 해당하는 로직을 View에게 뿌려줌) ⓓ : User는 화면을 볼 수 있음 (ex. 웹 페이지를 볼 수 있음) 모델(Model) 뷰와 컨트롤러에 의존하지 않는다. 데이터베이스나 비즈니스 로직(+DAO)처럼 데이터와 데이터가 동작하는 방식을 제공..
응용된 정렬 방법들 (셸, 병합, 퀵)에 대해 알아보자 응용된 정렬 방법들 (셸, 병합, 퀵) 이 게시글은 정렬의 코드보단 정렬의 방법과 특징에 비중을 두고 있습니다.기본적인 정렬 방법들 (선택, 삽입, 버블) 보러가기 정렬의 종류와 시간복잡도 정렬은 버블 정렬, 선택 정렬, 삽입 정렬, 셸 정렬, 병합 정렬, 퀵 정렬로 이루어져있으며, 각각의 특징이 있으므로 상황을 고려해서 쓰는 게 좋다. 응용된 정렬 알고리즘(1) - 셸 정렬(Shell Sort) 셸 정렬의 과정 셸 정렬은 삽입정렬을 보완한 알고리즘이다. 일정한 간격 gap끼리 묶어 삽입 정렬을 수행(gap=배열의 길이/2) 간격을 줄여나가면서(gap = gap/2) 간격(gap)이 1이 될 때까지 삽입정렬을 반복 직접 짧은 정렬을 만들까하다가 셸 정렬을 보여주기에는 조금 긴 정렬이 나을 것 같아 동영상..
기본적인 정렬 방법들(선택, 삽입, 버블)에 대해 알아보자 기본적인 정렬 방법들 (선택, 삽입, 버블) 이 게시글은 정렬의 코드보단 정렬의 방법과 특징에 비중을 두고 있습니다.응용된 정렬 방법들 (셸, 병합, 퀵) 보러가기 정렬의 종류와 시간복잡도 정렬은 버블 정렬, 선택 정렬, 삽입 정렬, 셸 정렬, 병합 정렬, 퀵 정렬로 이루어져있으며, 각각의 특징이 있으므로 상황을 고려해서 쓰는 게 좋다. 기본적인 정렬 알고리즘(1) - 선택 정렬(Selection Sort) 선택 정렬의 과정선택 정렬은 앞에서부터 가장 작은 수를 찾아 key의 값과 교체하는 정렬 방법이다. key(7)부터 끝까지의 수들 중, 가장 작은 수(1)를 찾아서 key의 값과 바꾼다. key(11)부터 끝까지의 수들 중, 가장 작은 수(3)를 찾아서 key의 값과 바꾼다. key(15)부터 끝까지..
순환 함수(Recursion Function) 순환함수(Rescursion Function)이란? 함수가 자기 자신을 반복적으로 호출하는 것 재귀함수라고도 한다. 그림으로 이해하는 순환함수 간단한 예제로 이해하는 순환함수 window.onload = main(); function main() { whoAreYou(); // = 너는 누구야? } function whoAreYou() { console.log("저번에도 누가 물어봤었지"); whoAreYou(); } 위 그림을 코드로 옮긴 모습이다. 이걸 실행하고 콘솔창을 확인하면 자기 자신을 계속 호출하는 무한 루프를 실행하고 있는 것을 확인할 수 있다. 즉, 순환함수란 자기 자신을 반복적으로 호출하는 것이다. 그렇다면 순환함수는 무한루프밖에 안될까? 방금 보여준 예시에서 외계인한테 이런 상황이 3번..