Computer Science/CS Knowledge 10

JSON, XML / SOAP, REST / VPN

JSON과 XML 모두 자료를 통신할 때 사용하는 표준화된 데이터 포맷이다. REST API와 같은 데이터 통신 방법에서 사용이 된다. JSON (Javascript Object Notation): 개발 도구 환경 설정, 사용 정의 등 다양한 설정에 사용된다. 형식이 단순하고, 빠르게 읽힌다. XML (Extensible Markup Language): XML 문서를 통해 레이아웃을 재사용하고, 뷰와 로직을 분리할 수 있다. 언어와 상관 없이 데이터를 전달할 수 있음. JSON은 속도가 빠르고, 길이도 짧다. 하지만 안정성은 상대적으로 낮고 UTF-8로만 인코딩이 가능하다. XML은 느리고 길지만, 안정성이 높고, 다양한 인코딩 지원이 된다. SOAP (Simple Object Access Protoco..

IP / DNS + CORS

IP주소는 컴퓨터가 연결된 네트워크 주소이다. IP 주소에는 고정 IP, 유동 IP가 있다. 고정 IP는 고정되어서 일정한 주소를 사용하는 IP를 의미한다. 유동 IP는 계속 변하는 IP로, 고정 IP는 한정적이여서 개인마다 고정 IP를 할당해줄 수 없기 때문에, 통신 업체에서 사용하지 않는 주소 중 할당해주는 IP이다. 공인 IP는 전 세계의 유일한 IP 주소이고, 사설 IP는 개인이나 특정 기관에서 임의로 사용하는 IP이다. IPv4와 IPv6가 있는데, IPv4는 8비트씩 4개, IPv6는 16비트씩 8부분으로 이루어져있다. www.naver.com 에서 www는 호스트 이름, naver.com은 도메인이다. DNS가 도메일을 IP 주소로 변환시켜준다. CORS (Cross-Origin Resour..

Port, URI

포트란 네트워크 통신의 종단점이고, 앱 별로 용도들이 구별되는 논리적인 통로라고 할 수 있다. 즉, 하나의 IP 주소에 여러개의 프로그램이 구동 중이거나, 여러개의 기기가 공유기로 묶여있을 때 개념하는 개념이다. 0번부터 65535번까지 총 65536개의 포트가 있다. 이는 3가지로 분류가 된다. 0번부터 1023까지는 Well Known Ports로, 표준처럼 정해져 있는 포트이다. 22번은 SSH, 53번은 DNS, 80번은 HTTP이다. 1024번부터 49151번까지는 Registered Ports로, 특정 앱 제작사들이 포트 등록을 요청하여 사용되는 포트이다. 49152부터 65535번까지의 포트는 동적인 포트이다. 포트 포워딩을 통해 네트워크 게이트를 지날 때, IP 주소와 포트 번호 결합의 통..

OSI, TCP/UDP

OSI (Open Systems Interconnection) 7계층: 컴퓨터와 컴퓨터 사이에 데이터를 주고받는 통신이 일어날 때 (각 컴퓨터를 호스트라고 부름) OSI 계층을 통해서 시각적으로 통신이 일어나는 과정을 파악할 수 있다. 1계층 : 물리 계층 (Physical Layer): 하드웨어 전송 기술. 케이블, 리피터, 허브 등의 장비로 이루어짐. 물리적으로 데이터를 전송하는 역할을 함. 2계층: 데이터 링크 계층 (Data Link Layer): 물리 계층을 통해서 데이터가 제대로 도착하지 못하는 오류를 감지하고 제어함. 브릿지나 스위치를 통해서 LAN 카드에 내장된 물리적 주소인 MAC 주소를 가지고 정보를 주고 받는데, 이때 데이터 링크 계층에서 전송되는 데이터의 단위를 '프레임'이라고 함...

MVC

MVC 패턴이란 모델, 뷰, 컨트롤러 영역으로 각각 세 가지 영역으로 분할하여 각 요소에 고유의 역할이 부여되는 방식이다. 모델은 데이터를, 뷰는 사용자에게 보이는 UI, 컨트롤러는 비즈니스 로직 처리를 맡는다. 모델은 앱이 무엇을 할 건지 역할을 정의한다. 필요한 정보에 따라, 기능과 데이터를 정의한다. 뷰는 모델에서 받아온 데이터, 사용자의 결괏값을 화면으로 보여주는 역할을 하는데, 뷰는 여기서 출력을 해주는 역할만 한다. 마지막으로 컨트롤러는 모델과 뷰 사이를 연결하여 작동순서, 모델 처리에 대한 지시를 맡아서 한다. 웹 개발자들은 MVC를 통해 한 부분을 업데이트하고, 관리, 수정할 때 모든 부분을 바꾸는 것이 아니라, 각자 컴포넌트들이 독립적이기 때문에 한 부분만 해도 된다는 장점이 있다. 이런..

Cache / Cookie / Session

캐시 (Cache)란 이전에 사용한 데이터를 보관하는 사용자 저장 공간이다. 웹 사이트, 앱 등에서 재사용할 수 있는 데이터를 캐시에 저장하여 서버에 재요청 시 시간과 비용을 절약할 수 있다. 캐시는 원래 컴퓨터의 처리 속도를 빠르게 하기 위하여, 연산의 결괏값과 재사용할 데이터를 CPU의 캐시메모리에 저장하여 RAM와 CPU의 속도의 차이를 줄이는 것을 의미하였다. 현재 이 글에서 다루는 캐시는 컴퓨터 아키텍처에서의 캐시가 아닌, 웹과 앱에서의 캐시이다. 사용자가 웹 서버에 데이터를 요청할 때, 사용자의 캐시에서 캐시 데이터를 찾는다. 만약 캐시에서 데이터가 없거나, 만료되었으면, 기존 방식대로 서버에 정보를 요청하는데, 이를 캐시 미스 (Cache Miss)라고 한다. 만약 캐시에서 사용 가능한 데이..

CSR, SSR

렌더링 (Rendering)이란 웹 페이지를 구성하는 HTML, CSS 의 파일을 브라우저 위에 그려 주는 것을 의미한다. 여기서 크게 두 가지 방법으로 나뉜다. CSR (Client Side Rendering)은 클라이언트 단에서 렌더링을 수행한다. 사용자가 웹사이트에 접근 할 때, 웹사이트에서 자공하는 페이지의 HTML, CSS의 리소스를 클라이언트에서 다운로드하고, 페이지 전환을 처리한다. CSR의 경우 서버는 페이지가 맨 처음 렌더링 될 때 웹 리소스 파일을 제공하는 역할, 그리고 페이지 로딩이 이루어진 후 클라이언트 측에서 요청한 데이터를 전송해주는 역할만을 수행해준다. 사용자가 페이지를 요청하면 해당 페이지의 HTML 파일을 서버가 보내준다. CSR 방식은 클라이언트 단에서 동적으로 구성하기 ..

반응형/적응형 웹 , DOM, 크롤링 (robots.txt)

반응형 웹은 웹 페이지가 모든 화면 크기에서 잘 렌더링되도록 하는 웹 디자인 접근 방식이다. 기존에는 PC와 같은 모니터에서 사용되는 웹사이트들이 대부분을 이루었지만, 현재는 핸드폰과 태블릿 등 다양한 디바이스들이 생겼다. 그렇기 때문에 반응형 웹을 통해 모든 디바이스에서 원활하게 웹사이트가 렌더링 될 수 있다. RWD라고도 불린다. 감지된 화면 크기에 따라 자동으로 페이지가 재배열된다. 이에 반해 적응형 웹은 정적인 사이즈로 만들어진 웹사이트로, 웹사이트의 크기가 변경될때 변경되지 못한다. 그렇기에 디자이너가 이미 다양한 몇 가지의 화면 너비에 따라서 화면을 미리 만들어두고, 제일 적절한 화면을 보여주는 식으로 웹사이트를 렌더링한다. DOM (문서 객체 모델, Document Object Model)이..

WAI-WARA , WAS, On-Premise, UI / UX

웹 표준: 1. 문서 구조 ('head','body') 잘 포함해야함 2. 표준 엘리먼트 사용: 시작 태그와 종료 태그가 잘 중첩 되어있음, 모든 요소와 속성이 소문자여야 함 3. 인코딩 선언이 utf-8로 기본 인코딩. 웹 접근성 : 1. 인식의 용이성: 대체 텍스트 제공 필수 2. 키보드만으로도 사용 가능해야함. 3. 이해가 용이하게 되어야 함 (label 사용), 만약 label을 사용할 수 없다면, title을 제공. WAI-WARA : Web Accessibility Initiative - Accessible Rich Internet Applications WAI는 W3C에서 웹 접근성, ARIA는 RIA 환경의 웹 접근성. (W3C: 월드 와이드 웹 컨소시엄, 웹의 지속적 성장을 위함, RIA..

WEB 1.0, 2.0, 3.0으로의 발전

Web은 World Wide Web의 줄임말이고, 인터넷에서 작동하는 서비스이다. 웹은 인터넷을 돌아가는 서비스이고, 인터넷은 컴퓨터들을 하나로 연결하는 통신망을 의미하고, 웹은 정보를 연결, 이후 공유하는 공간이다. 즉, 인터넷이 웹보다 넓은 개념이다. 웹은 hypertext 구조로 이루어져있어서, 인터넷 상의 방대한 양의 정보를 연결해준다. (hypertext: 비순차적. HTML로 작성됨. 참조를 통해 다른 문서로 접근할 수 있는 텍스트.) 웹 1.0은 1990년대부터 2004년까지의, '읽기 전용' 기능을 가졌던 웹을 의미한다. 대부분의 유저는 정보를 단순히 소비하여, 정보 공급자와 소비자가 명확히 나뉘어졌다. 웹 2.0 에서는 웹 1.0에서의 기능에서, 쓰기의 개념을 더했다. 즉, '참여형'인 ..