본문 바로가기

Dev.World

(61)
[개발상식] 13.UML이란? UML(Unified Modeling Language)정의프로그램 설계를 표현하기 위해 사용하는, 주로 그림으로 된 표기법을 의미한다.객체지향 언어와 밀접한 관련이 있기에 객체지향 모델링 언어라고도 불린다.소프트웨어 시스템, 업무 모델링, 시스템의 산출물을 규정하고 시각화하며 문서화하는 언어이다.프로그래밍 언어는 아니다.모델링 언어일뿐 방법론은 아니다. 사용하는 이유소프트웨어 시스템을 구축하기 전에 모델을 설계하는 것은 건물을 지을 때 청사진을 그리는 것과 마찬가지로필수적인 일이다.좋은 모델은 아키텍처를 건전하게 하고 프로젝트 팀의 의사소통을 원할히 하는데에 있어서 필수적이다.한번에 이해하기 힘든 복잡한 시스템이 늘어나면서 시각적 모델링은 필수가 되고 있다. 종류클래스 다이어그램 (Class Diagra..
[개발상식] #Spring / JAVA WEB - Back End Framework Spring Spring이란?Pivotal Software에서 아파치 라이센스 형태로 제공하는 오픈소스 경량급 애플리케이션 프로젝트이며자바 애플리케이션 (Standalone 과 웹 애플리케이션 모두 포함)개발에 필요한 서비스를 제공하는 프레임워크이다.라이센스 비용 없다.모듈들이 디커플링 되어 있고 테스트가 용이한 프로그램을 만들 수 있다. 핵심스프링의 핵심은 POJO(Plain Old Java Object)이다.자바의 단순한 오브젝트를 이용해 애플리케이션의 비즈니스 로직을 구현한다.부모클래스를 확장하지 않는다.인터페이스 클래스를 구현하지 않는다.어노테이션(anotation)을 포함하지 않는다. 특징IOC(Inversion of Control , 제어의 역전)애플리케이션 객체를 연결해주고 자동화된 설정 및..
[개발상식] 12. 프로토콜이란? TCP/IP, HTTP, Web Socket 각각에 대한 기본과 그 흐름 통신 프로토콜 등장배경컴퓨터 네트워크의 규모가 증가되고 네트워크를 이용한 정보 전송 수요가 다양화되며,소프트웨어와 하드웨어 장비가 계속 증가되는 최근의 환경에서,효율적인 정보 전달을 하기 위해서는 프로토콜의 기능이 분화되고 복잡해질 수 밖에 없다.이러한 환경적인 요구를 만족하기 위해 프로토콜 계층화의 개념이 나타나게 되었다. 프로토콜이란,컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다.통신 프로토콜은 신호 체계, 인증, 그리고 오류 감지 및 수정 기능을 포함할 수 있다.프로토콜은 형식, 의미론, 그리고 통신의 동기 과정 등을 정의하지만 구현되는 방법과는 독립적이디. 구성(OSI 참조 모델 기반)각 계층의 수직적 상하관계는 Top-Down 구조이다.-물리적 측면 : 자료 전송..
[그들이 쓰는 언어] 6. 프록시 / 크로스 브라우징 프록시, 프록시 서버(Proxy Server)클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터나 응용프로그램을 말한다.서버와 클라이언트 사이에서 중계기로서 대리로 통신을 수행하는 기능을 가리켜 '프록시',그 중계 기능을 하는 것을 프록시 서버라고 한다.프록시 서버는 프록시 서버에 요청된 내용들을 캐시를 이용하여 저장해 둔다.즉 웹 페이지의 복사본을 저장하여 웹 성능을 향상시키는데 도움을 준다. 프록시 서버를 사용하는데 목적프록시 서버를 통해 웹 서핑을 하도록 만들게 되면프록시 서버에는 자주 가는 웹사이트에 대한 캐시들이 쌓여 있어 좀 더 빠르게 인터넷이 가능하게 되는 이점이 생긴다.또 익명성을 이용하여 웹사이트에 접속할 수 있고 막혀있는 웹 사이트를 우회하여 접속..
[개발상식] 11. SDN(Software Defined Networking) SDN(Software Defined Networking) 말 그대로 소프트웨어를 통해 구성된 네트워크이다. 기존의 전통적인 방식인 Network Architecture들이 현대의 수요와 요구를 만족시키기 어려워 지고 있다. 기존의 네트워크는 IT(Internet Protocol)기반의 각 AS(Autonomous System)들의 연결체였다. 이 AS들간의 연결은 Gateway, 즉 Router 들을 통해 연결되었고, 각 AS내부는 Router or Switch들을 통해 연결되어 있다. 기존 네트워크 장비구조Data Plane : 데이터 전송 담당(하드웨어 영역)Control Plane : 운영체제 기능을 담당(소프트웨어 영역)Management Plane(Application) : 네트워크 지능화 기..
#NoSQL에 대해 알아보자 2. MongoDB MongoDB(Document Stroe)요즘 MEAN STACK과 유행하고 있는 데이터 베이스이다.NoSQL의 일종으로 SQL문을 쓰지 않고 JSON형식으로 핸들링한다는 특징이 있다.--- Redis(in memory : key-value Store) = 데이터 모델이 다르다.Document Store 는 Key-value Store가 확장된 형태.Humongos 라는 회사의 제품명이었다가 현재 10gen으로 회사명이 변경되었다.C++기반의 오픈소스 document 데이터베이스.기본적인 인터페이스로 JSON을 이용해 웹에서의 접근성을 높이면서도커서, 참조키 등 기존 SQL과 유사한 개념을 유지하고 있다. 특징JSON Type의 데이터 저장 구조를 제공한다.CRUD(Create, Read, Update,..
#NoSQL에 대해 알아보자 1. Redis (/ Memcached) Redis(REmote DIctionary Server)Data Model = key - value StoreNoSQL의 일종으로Memcahed와 비교되는 in memory 저장소 솔루션으로 분류되기도 한다.다양한 데이터 구조체 지원한다.(일반적인 string 뿐만 아니라 set,list,hash같은 집합형 데이터 구조를 지원)저장된 데이터에 대한 추가작업이 가능하다.(합집합, 교집합, Range Query)데이터를 disk에 저장할 수 있다. 데이터 저장방식에는 두가지 방식이 있다.1) snapshotting 방식순간적으로 메모리에 있는 내용을 DISK 전체에 옮겨 담는 방식 2) AOF(Append On File)방식redis의 모든 wirte/update 연산 자체 모두 log파일에 기록하는 형태 ..
[개발상식] 10. Cookie / Session / Cache 웹 사이트를 사용하는 사용자는 HTTP GET방식이나 HTTP POST방식을 사용하여웹 서버로 페이지를 요청하게 되고, 웹 브라우저는 웹 서버에서 응답받은 HTML을 파싱하여 렌더링하게 된다.이러한 일련의 주기를 '라운드 트립'이라고 한다. 그런데 HTTP 프로토콜은 상태를 저장할 수 없는 프로토콜이다.즉, 클라이언터의 요청이 왔을 때 웹 서버는 해당 요청에 대한 응답인 HTML 을 보내주고 연결을 끊어버린다는 말이다.그렇기에 라운드 트립 시 페이지에 있는 컨트롤의 사용자 입력정보나 페이지 정보들이 모두 손실되게 된다.동적인 웹사이트에서는 사용자의 요청이나 컨트롤의 입력정보를 유지할 필요가 있기 때문에여러 상태관리를 할 수 있는 기능들을 제공한다.상태관리의 정보를 저장하는 장소에 따라 두가지로 분류할 수..