CI/CD 등장배경: 
소프트웨어가 거대해지고 복잡해지면서 팀 단위로 개발하게 되었고, 그 과정에서 분업과 협업은 필수가 되었는데, 이 분업과 협업의 과정에서 코드의 Merge 과정이 까다롭게 되었고, 테스트하는데 큰 자원이 소비되게 되었다. 이 문제를 해결하기 위해 도입된 방법론이며 개발 - 테스트 -빌드 단계에서 시간을 절약하는 효과를 발휘하게 되었다.




더 빠른 릴리스 주기는 마이크로 서비스 아키텍처를 채택하는 가장 큰 이유 

모놀리식 응용 프로그램에서 출력이 응용 프로그램 실행 파일인 단일 빌드 파이프라인이 존재

즉, 모든 개발 작업은 이 파이프라인으로 피드하게 되는데, 이는 새로운 기능의 릴리스를 지연시킬 수 있게됨.

마이크로 서비스 기본 원칙을 따르면 모든 팀이 줄을 서야 하는 불편함이 없음

즉, 서비스 "A"를 빌드하는 팀은 병합, 테스트 및 배포될 서비스 "B"의 변경 내용을 기다릴 필요 없이 언제든지 업데이트를 릴리스할 수 있음

=> CI/CD 프로세스는 이를 가능하게 만드는 데 중요

즉, 릴리스 파이프라인은 업데이트 배포의 위험이 최소화되도록 자동화되고 매우 안정적이어야 하고

매일 또는 하루에 여러 번 프로덕션에 대해 릴리스하는 경우 재발 또는 서비스 중단은 매우 드물어야 함


CI/CD에 대해 논의할 때 실제로 여러 가지 관련된 프로세스: 지속적인 통합, 지속적인 업데이트 및 지속적인 배포에 대해 논의합니다.

  • 지속적인 통합은 주 분기의 코드가 항상 프로덕션 수준이 되도록 자동화된 빌드 및 테스트 프로세스를 사용하여 코드 변경 내용이 주 분기로 자주 병합됨을 의미

  • 지속적인 업데이트는 CI 프로세스를 전달하는 코드 변경 내용이 프로덕션 환경과 유사한 환경으로 자동으로 게시되는 것을 의미

  • 지속적인 배포는 CI/CD 프로세스를 전달하는 코드 변경 내용이 프로덕션 환경으로 자동으로 배포되는 것을 의미


방식: 

CI/CD는 애플리케이션 통합과 딜리버리 단계를 자동화하고 애플리케이션 구성을 표준화한다. 개발자가 새 코드를 체크인하면, CI/CD 파이프라인이 빌드, 테스트, 데이터 마이그레이션, 애플리케이션 배포, 서비스 호출 및 기타 스크립트화된 절차에 따라 대상 환경에서 코드 변경을 실행한다. 팀은 이러한 자동화를 통해 작업 방식을 조정해서 코드를 체크인하고 더 빈번하게 애플리케이션을 통합, 테스트, 제공한다.

기대효과: 

- 빠른 개발 및 적용
- 안정적 시스템 운영
- 단위 테스트 및 테스트주도 개발 방법
- 테스트자동화 구축
- 매일 코드변경을 커밋하도록 개발자 독려


[출처] CI/CD, 서버패턴|작성자 demonic

[출처] https://docs.microsoft.com/ko-kr/azure/architecture/microservices/ci-cd


'정보관리기술사 도전 > 용어 정의' 카테고리의 다른 글

DB 분류 및 종류  (0) 2018.11.20
REDIS( REmote DIctionary Server)  (0) 2018.11.20
멀티테넌시(Multitenancy)  (0) 2018.11.20
DC/OS(Data Center Operating System)  (0) 2018.11.20
깃허브(GitHub)  (0) 2018.11.19

클라우드는 이미 우리 생활 깊숙이 들어와 있습니다. 파일을 저장하고, 소프트웨어를 사용하고, 동료나 친구와 협업하는 모든 일이 인터넷을 통해 클라우드를 통해 이뤄집니다. 

이처럼 인터넷에서 여러 사람이 동시에 같은 작업을 하려면 소프트웨어나 서비스를 여러 사람이 공유해서 사용할 수 있어야 합니다. 그리고 이것을 가능하게 하는 것이 바로 '멀티테넌시(Multitenancy)' 아키텍처입니다.

Image Credit: Getty Images Bank


멀티테넌시란 그 용어에서 유추할 수 있듯 여러 테넌트(tenant, 사용자)를 가진 아키텍처라는 의미입니다. 많은 사람이 같은 기능을 사용하는 웹메일 서비스가 대표적인 멀티테넌시 아키텍처 소프트웨어입니다. 여기서 중요한 것은 각 사용자가 독립적으로 이용할 수 있어야 한다는 점입니다. 웹메일에 접속했는데 모든 사용자의 메일이 하나의 메일함에서 보인다면 아무도 사용하지 않겠죠. 멀티테넌트 아키텍처 덕분에 사용자별로 데이터와 설정, 화면 구성 등 많은 속성을 개인화할 수 있게 됐고, 이 기술이 성숙하면서 비로소 클라우드도 본격 확산했다고 할 수 있습니다.

멀티테넌시의 역사와 장점
멀티테넌시 아키텍처는 다양한 기술이 진화, 통합한 결과물입니다. 먼저 1970년대의 IBM 메인프레임입니다. 당시 기업은 메인프레임 컴퓨터에서 저장공간과 프로세싱 파워를 필요한 만큼만 빌려 사용했습니다. 전체를 사용하기엔 너무 비쌌으니까요. 로그인 ID에 따라 CPU와 메모리, 저장공간 등을 개별적으로 할당해 사용하는 방식이었는데, 현재 AWS나 마이크로소프트 에저 등의 서비스 방식과 매우 비슷하죠?

이밖에 1990년대 등장한 ASP(Application Server Provider)와 웹 애플리케이션도 큰 영향을 줬습니다. 단, 전자는 아키텍처의 한계로 각 소프트웨어를 별도의 장비에서 운영해야 했고, 후자는 초기 앱의 경우 개인화에 한계가 있었습니다. 지금은 한 장비에 설치한 소프트웨어를 여러 사람이, 그것도 마치 다른 환경처럼 설정해 사용할 수 있으니 ASP와 초기 웹 애플리케이션의 진화된 형태가 현재의 멀티테넌시 아키텍처라고 할 수 있습니다.

멀티테넌시 아키텍처의 가장 큰 장점은 비용 절감입니다. IT 리소스를 유연하게 할당할 수 있어 규모의 경제성과 관리 비용 절감을 동시에 구현했습니다. 소프트웨어 라이선스 비용 측면에서도 같은 규모의 사용자를 기준으로 멀티테넌시 방식이 더 저렴한 경우가 많습니다. 새로운 버전이 나와도 장비 쪽 소프트웨어만 업데이트하면 모든 사용자가 새로운 기능을 사용할 수 있어 관리하기도 편합니다.

멀티테넌시 아키텍처의 또 다른 장점은 데이터 통합이 쉽다는 점입니다. 하나의 시스템과 소프트웨어를 여러 사용자가 공유하는 구조이므로 사용자별 데이터가 사실상 같은 데이터 스키마에 저장됩니다. 이 대규모 데이터를 분석하는 작업도 더 빠르게 편리해졌죠. 분석에 대한 수요가 커지고, 동시에 데이터의 양과 형식이 점점 다양해지면서 멀티테넌시 아키텍처의 장점이 더 두드러지고 있습니다.

장점은 곧 단점
멀티테넌시 아키텍처가 등장한 지 10년이 넘어가면서 상당한 수준까지 고도화됐습니다. 같은 소프트웨어를 사용해도 사용자 혹은 기업고객별로 메뉴 구성과 디자인 등 이른바 '룩앤필(look and feel)'을 완전히 다른 형태로 구성할 수 있습니다. 기업별 고유의 업무 절차 차이까지도 반영해 소프트웨어를 수정할 수 있고 특히 특정 기업단위 사용자 중 일부에게 특정 권한과 제한을 하는 것도 가능해졌습니다.

그럼에도 불구하고 멀티테넌시에는 몇 가지 단점이 있습니다. 예를 들어 개인화를 지원하기 위해서는 더 정교한 멀티테넌시 아키텍처를 적용해야 하는데 이를 개발하는 입장에서는 상당한 비용과 인력이 필요합니다. 업데이트 과정에서 자칫 버그나 장애가 발생하면 모든 사용자가 공통으로 장애를 겪을 수 있고, 또 일부 사용자에게 유용한 업데이트가 다른 사용자에게는 오히려 불편함을 유발할 수도 있습니다.

가장 논란이 되는 것은 보안입니다. 외부적으로는 사용자별로 다른 것처럼 보인다고 해도 결국 멀티테넌시 아키텍처 내부적으로는 단일 데이터베이스에 다양한 사용자의 데이터가 공존하게 됩니다. 따라서 사용자별 데이터가 서로 섞이지 않도록 해야 하고, 해킹이라도 발생하면 해당 장비를 사용하는 모든 사용자의 데이터가 동시에 유출되지 않도록 더 강력한 보안 체계를 갖춰야 합니다. 

출처 : 
http://www.itworld.co.kr/news/101255#csidxb6e6cb3c4bcd694a50ddabeceacbd52 

'정보관리기술사 도전 > 용어 정의' 카테고리의 다른 글

REDIS( REmote DIctionary Server)  (0) 2018.11.20
CI/CD(Continuous Integration / Continuous Deployment)  (0) 2018.11.20
DC/OS(Data Center Operating System)  (0) 2018.11.20
깃허브(GitHub)  (0) 2018.11.19
Git  (0) 2018.11.19

DC/OS(Data Center Operating System)는 하이브리드 및 에지 클라우드 인프라 및 플랫폼 구축이 가능하고, 이를 토대로 MSA(Micro Service Architecture), 인공지능, 빅데이터와 같은 서비스 어플리케이션을 위한 자원관리 환경 제공 및 구글의 쿠버네티스(Kubernetes)를 서비스로 제공하여 다양한 클라우드 환경을 지원하는 최고의 에지 컴퓨팅 분산처리 및 도커 오케스트레이션(Docker Orchestration) 솔루션이다. 


현대 웹개발은 모노리틱(Monolithic) 방식 대신 마이크로서비스(Microservice)를 지향하는 방식을 지향하고 있음

- 단일 웹 어플리케이션이 아닌 여러가지의 서비스가 조합된, 어떻게 보면 더 복잡한 아키텍처일 수 있지만 이러한 문제점을 단순화하기 위함

다수의 장비 및 다수의 솔루션들이 복잡하고 다양한 커뮤니케이션에 의해 서비스되는 웹서비스의 아키텍처는 기존의 시스템 아키텍처로 커버하기는 어려운 점이 많은 상황

 

모노리틱 어플리케이션 특징

 - 하나의 ear 또는 war안에 모든 내용이 들어가 있음.

 - 재사용 가능한 부분은 sharing.jar와 같이 jar영역에 대해서만 재사용 가능

 - 일년에 한두번 대규모 push 를 통한 업데이트 (못하는 경우도 많음)

 - 500k 라인 이상의 코드

 - heavyweight infrastructure

 - 수없이 많은 테스트 케이스

 - 대규모의 팀 규모

 - 많은 버그 목록

 

이러한 모노리틱 어플리케이션을 H/W 장비마다 서비스를 구성하고, 여러 사용자를 대응하기 위하여 다수의 장비를 구성하는 경우는 대응이 가능할지라도

-> 그 이상의 서버를 설정하는 것은 매우 노동집약적 힘든 중노동이 될 수 있다. 

-> 또한 이러한 환경의 가용성(HA)을 높이기 위하여 수많은 안정성 테스트 및 소스 개발.배포 등도 매우 복잡해 질 수 있다.

 

[ 빅데이터 처리를 위한 장비 아키텍처 발전사]



이러한 문제점을 해결하기 위해

-> Amazon이나 Google Cloud와 같은 인프라를 이용하거나,  

-> 관리 용이성을 위하여 Docker와 같은 container 기반의 인프라를 통한 Modern Web Application 을 개발



요구하는 기능

수많은 서버장비에 자신이 원하는 서비스 및 기능을 손쉽게 설치하고, 관리하고

- 특정 서버가 죽으면, 자동으로 해당 서비스를 다른 서버로 이동해주고,


관련 솔루션 

- Apache 오픈소스 진영에서 개발되어 가장 많은 사용자 지원을 받고 있는 Mesos DCOS




STATIC PARTITIONING to ELASTIC SHARING

DC/OS는 Data Center OS 즉 Data Center와 같이 대규모 서버 환경을 하나의 OS처럼 관리 목적으로 개발

- 여러 서버 환경을 하나의 자원처럼 관리하기 위해서는 기존의 정적 파티션 개념에 의한 고정된 자원 분배개념이 아닌 유연한 공유(Elastic sharing)에 의한 각 서버 자원의 자유로 효율적인 사용이 주요 이슈이며 이를 OS처럼 손쉽게 처리하기 위한 목적


대부분 기업 인프라는

기존(일반적인 방법) : 정해진 하드웨어 장비에 정해진 솔루션만 설치하여 이용하는 방법을 사용


정적파티션 큰 단점

  • 장애대응

  • 자원낭비

하나의 하드웨어나 솔루션에 문제가 생기면 전체시스템의 문제로 발생되고 

시스템 자원이 효과적으로 이용하기 어렵기 때문에 자원낭비가 발생합니다.


이러한 문제점을 해결하기 위하여 동적 공유를 통해 자원을 자동적으로 분배하는 기술이 필요


여러 물리적 하드웨어 장비를 커널 레벨에서 하나의 자원처럼 관리하는 클러스터링 관리자가 필요했고 이러한 역할을 하는 것이 Apache Mesos 로 개발 및 발전



[아키텍처별 자원 파티셔닝 구조도] 



Apache Mesos 특징

 

l 어플리케이션 리소스 관리 및 스케줄링

l분산시스템 커널

l10000개 노드까지 확장가능

l기본 Docker 지원

l multi-tenancy

l fault-tolerance, HA

l 확장성

   

DCOS는 커널레벨에서 분산환경을 지원하는 mesos를 좀더 매끄럽고 유연하게 마치 하나의 컴퓨터를 다루듯이 분산 Datacenter의 자원을 손쉽게 관리하고

kafka spark 등 여러 데이터 서비스를 손쉽게 설치 및 관리가 가능하도록 하는

마이크로 서비스 환경에 최적화된 운영체계임


DCOS를 쓰면 기존 장비 효율성을 4배로 향상시켜줄 수 있으며, 자동화된 스케쥴러 및 워크로드 다중 처리는 손쉽게 데이터센터 를 다룰 수 있습니다.

 

DC/OS 특징

다양한 실행환경

사내 서버들에 적용할 수 있으며, Amazon,Azure등 클라우드 환경에도 적용할 수 있음

강력한 리소스 관리

메모리,CPU,네트워크 자원에 대해 각 서버마다 작업부하를 조정할 수 있으며, 

리소스 공유를 통해 자원 활용도를  높임

가상 네트워크 오버레이

가상 IP를 컨테이너 마다 부여하고 동적으로 할당 및 조정이 가능하여 완벽한 가용성을 제공

동적분산 로드밸런싱

트래픽 과부하 상태에 따라 자동 로드 밸런싱 

자가 치유 인프라스트럭처

부하 장애시 자동 감지 자동복구 

무중단 업그래이드

전체적 서비스 중단없이 서비스 배포 및 업그래이드가 가능

UNIVERSE

DCOS의 강력한 기능으로 스마트폰의 google play 앱스토어처럼 

DCOS환경용 어플리케이션을 손쉽게 설치하고 업그레이드 할 수 있음

   

    [DCOS 환경에서 손쉽게 설치할 수 있는 각종 어플리케이션]

 

활용범위

  • 개인화 서비스 기계학습, IoT 신속한 서비스 개발 및 배포

  • 마이크로 서비스 아키텍처 웹 개발

  • 대규모 사용자 서비스 지원

  • Private/Public Cloud 혼용을 위한 Hybrid Cloud 환경 

  • 손쉬운 GPU 기반의 AI 환경 구성

  • 빅데이터 처리


'정보관리기술사 도전 > 용어 정의' 카테고리의 다른 글

CI/CD(Continuous Integration / Continuous Deployment)  (0) 2018.11.20
멀티테넌시(Multitenancy)  (0) 2018.11.20
깃허브(GitHub)  (0) 2018.11.19
Git  (0) 2018.11.19
Subversion  (0) 2018.11.19

깃허브는 세계 최대 오픈소스 커뮤니티로 깃(Git) 전문 호스팅 업체다. 컴퓨터 프로그램 소스를 공유하고 협업해 개발할 수 있는 버전 관리 시스템인 깃에 프로젝트 관리 지원 기능을 확장, 제공하는 웹 호스팅 서비스다. 

 2005년 개발된 분산형 버전관리 시스템(DVCS: Distributed Version Control System)을 말한다. 오픈소스 소프트웨어다. 리눅스 제작자인 리누스 토발즈(Linus Torvalds)가 오픈소스 리눅스(Linux) 커널 개발의 효율성을 높이기 위해서 개발했다.

깃을 이용하면 누가 어떤 코드를 수정했는지 기록하고 추적할 수 있다. 많은 개발자가 함께 SW를 개발할 때 유용하다. 관리자는 여러 사람 코드를 합쳐가며 완성본을 만들 수 있다. 버전관리 시스템은 깃 외에도 SVN, CVS 등 여러 가지가 있다. 하지만 깃은 수천명의 사람들이 이용해도 안정적이며 중앙 저장소에 의존하지 않아 속도도 훨씬 빠르다는 장점이 있다. 



깃허브는 많은 개발자들이 소프트웨어 소스 코드를 공유하고 협력하면서 개발할 수 있도록 지원하는 분산형 버전 관리 시스템이다. 

깃허브는 깃의 기본 기능을 포함해 프로젝트 관리에 필요한 버그 추적, 기능 요청, 작업 관리, 위키 기능 등 소프트웨어 개발에 필요한 관리 기능을 제공한다. 사용자에게 무료로 계정과 저장소를 제공하며, 서버 장애 시 데이터 복원력이 뛰어나다. 
현재 전 세계에서 오픈 소스 프로젝트 관리를 위해 가장 많이 사용되는 웹 호스팅 서비스 중 하나이다. 



'정보관리기술사 도전 > 용어 정의' 카테고리의 다른 글

멀티테넌시(Multitenancy)  (0) 2018.11.20
DC/OS(Data Center Operating System)  (0) 2018.11.20
Git  (0) 2018.11.19
Subversion  (0) 2018.11.19
spotfire  (0) 2018.11.07

Subversion이 중앙 서버에서 모든 소스 코드를 보관 관리하는 시스템이라면, Git는 분산 소스 버전 관리 시스템(Distributed VCS)으로서 서버를 분산시켜 구축할 수 있다.


개발 팀의 구성

• 리눅스 배포판 개발 프로젝트
• 커널, 라이브러리, 킬러 어플리케이션 등을 분야별로 분리하여 개발팀 구성
• 개발팀은 한국, 중국, 일본 회사에서 분야별로 1~2명씩의 개발자가 참여. 서버는 중국에 둠.
• 소스 버전 관리 시스템(VCS)에 올려진 소스를 패키징하여 리눅스 배포판으로 만드는 시스템이 구축 되어 있음.VCS에 잘못된 소스가 올려져 있으면 제품 품질에 곧바로 영향을 미치기 때문에 소스 관리가 중요함.


개발 팀의 구성


Git는 개발자의 시스템에 있는 복사본 디렉터리를 하나의 저장소 서버로 삼을 수 있다. 개발자는 수정 후 개발 팀장의 저장소로 수정된 소스를 푸시(Push)한다. 개발 팀장은 수정된 소스를 리뷰한 후 문제가 없다고 판단되면 바로 중앙 서버에 커밋한다. 여러 개발자가 수정한 소스를 개발 팀장의 복사본 디렉터리에 보내면 Git는 강력해진 통합(merge) 기능으로 각 소스를 통합하여 중앙 서버로 한 방에 커밋하는 기능을 제공한다.

속도 문제 또한 개선된다. SVN을 사용할 때는 중국에 위치한 SVN 서버의 네트워크 속도가 느리고, 개발자의 커밋 요구가 많을 때, 커밋를 걸어 놓고 시간을 허비했으나, Git를 도입하고 나서는 분기된 저장소를 로컬에 두었기 때문에 자연스럽게 중앙 서버의 속도에 영향을 덜 받게 된다.


깃 관련 사항


http://thrillfighter.tistory.com/560

'정보관리기술사 도전 > 용어 정의' 카테고리의 다른 글

DC/OS(Data Center Operating System)  (0) 2018.11.20
깃허브(GitHub)  (0) 2018.11.19
Subversion  (0) 2018.11.19
spotfire  (0) 2018.11.07
통합 멀티 무료 SQL Editor DB 관리 프로그램 DBeaver  (0) 2018.11.05

Subversion은 소스 코드의 버전 관리 시스템으로, 시차를 두고 등록한 모든 소스 코드 혹은 파일을 저장하고, 변경된 내용에 대한 로그를 기록한다. 누가, 언제, 어떻게 그리고 왜 소스를 편집, 삭제, 추가했는지를 알 수 있으며, 실수를 하여 과거로 돌아가고 싶다면 기존 파일로 복원할 수 있다. 소스 코드는 파일 DB 혹은 버클리 DB 형태로 저장되며, 저장된 파일 혹은 디렉터리를 통상적으로 소스 저장소(Source Repository)라고 부른다.


1. SVN의 구조

기본 적으로 SVN은 아래와 같이 가장 상위에 3개 디렉터리로 나누어져 있다.

trunk

현재의 개발 소스 보관소. 현재 개발 중인 소스를 등록(commit)하는 저장소이다. 메인 소스 트리라고 한다.

branches

개발 관리를 위한 소스 보관소. 새로운 기능을 개발할 때 주로 사용한다. 새로운 기능을 추가할 때 초기 단계부터 메인 소스 트리에서 개발하면, 메인 소스에까지 버그가 영향을 끼칠 수 있다. 따라서 새로운 기능은 보통 브랜치를 만들어 개발하고 안정화되고 나면 메인 소스 트리에 해당 기능을 통합한다.

tags

릴리즈된 소스의 보관소. 릴리즈된 소프트웨어의 소스 버전을 구분하여 버전별로 소스를 효율적으로 관리할 수 있으며 문제 발생 시 추적 확인이 용이하다.

2. 소스 코드의 생명 주기

소스 버전 관리 시스템의 사용에 낯선 분들의 이해를 돕기 위해 소스 코드의 생명 주기(Lifecycle)부터 정리해 보자. 소스 코드 관리 생명 주기를 크게 본다면, ‘소스 생성 및 등록’, ‘소스의 발전과 수정’, ‘릴리즈와 클로우징’ 3단계로 나눌 수 있다. 그중 개발자가 하는 대부분의 일은 ‘소스의 발전과 수정’이며 이 작업을 효율적으로 관리해 주는 것이 VCS의 주요 역할이다.

3. SVN 사용 절차

소스 코드의 생명 주기 중 개발이 가장 활성화되어 소스의 변경이 가장 많은 단계가 ‘소스의 발전과 수정’이고, 이 단계에서 VCS를 사용하면 효율적이고 안전하게 소스를 관리할 수 있다.

일반적으로 ① SVN 서버 접속 → ② 소스 목록 확인 → ③ 원하는 소스 코드 받아오기 → ④ 소스 작성 및 수정 → ⑤ 소스 코드 추가 → ⑥ 변경 내용을 메모하여 서버에 올리기 순서로 이루어진다. 아래는 각 절차별로 사용법을 설명하였다. 아래의 요약된 내용만 익혀도 SVN을 사용하는데 큰 무리가 없다.


'정보관리기술사 도전 > 용어 정의' 카테고리의 다른 글

깃허브(GitHub)  (0) 2018.11.19
Git  (0) 2018.11.19
spotfire  (0) 2018.11.07
통합 멀티 무료 SQL Editor DB 관리 프로그램 DBeaver  (0) 2018.11.05
AJAX[Asynchronous Javascript And XML]  (0) 2018.11.05

https://blog.naver.com/koys007/220841967114


https://blog.naver.com/ultech11/221304084807


https://cafe.naver.com/tibco/1332


https://blog.naver.com/waferanalysis/221386468101


https://blog.naver.com/definitice/221103911487


https://blog.naver.com/yys2818/220855545188


https://blog.naver.com/bigtorygw/220987207924


http://bongury.tistory.com/218


https://blog.naver.com/koys007/221038707153


https://blog.naver.com/withplanit/220681186633


https://blog.naver.com/ultech11/221124536038


https://blog.naver.com/kimyh900/220596053015


https://blog.naver.com/learningclue_/221282355781


https://dd00oo.tistory.com/176



데이터 시각화란

http://blog.daum.net/hkw1209/566


https://blog.naver.com/germ14/220486456012



IT 기획자가 갖춰야 할 사항

https://blog.naver.com/bell_rings/220702899851



'정보관리기술사 도전 > 용어 정의' 카테고리의 다른 글

Git  (0) 2018.11.19
Subversion  (0) 2018.11.19
통합 멀티 무료 SQL Editor DB 관리 프로그램 DBeaver  (0) 2018.11.05
AJAX[Asynchronous Javascript And XML]  (0) 2018.11.05
JSON(JavaScript Object Notation)  (0) 2018.11.05

https://mastmanban.tistory.com/953


https://blog.naver.com/nsh83/221052064942


DBeaver는 SQL 클라이언트이자 데이터베이스 관리 도구이다. 관계형 데이터베이스의 경우 JDBC API를 사용하여 JDBC 드라이버를 통해 데이터베이스와 통신한다. 그 밖의 데이터베이스(NoSQL)의 경우 사유 데이터베이스 드라이버를 사용한다. 자동 완성과 구문 강조를 지원하는 편집기를 제공한다. 이클립스 플러그인 구조 기반의 플러그인 아키텍처를 제공함으로써 애플리케이션 동작 중 상당수를 수정하여 데이터베이스에 특화된 기능이나 데이터베이스에 독립적인 기능들을 제공할 수 있게 한다. 이것은 자바로 작성된 데스크톱 애플리케이션이며 이클립스 플랫폼에 기반을 둔다.

'정보관리기술사 도전 > 용어 정의' 카테고리의 다른 글

Subversion  (0) 2018.11.19
spotfire  (0) 2018.11.07
AJAX[Asynchronous Javascript And XML]  (0) 2018.11.05
JSON(JavaScript Object Notation)  (0) 2018.11.05
논리erd vs 물리erd  (0) 2018.11.05

비동기식 자바스크립트 XML(Asynchronous Javascript And XML)의 약자. 하이퍼텍스트 표기언어(HTML)만으로 어려운 다양한 작업을 웹페이지에서 구현해 이용자가 웹페이지와 자유롭게 상호 작용할 수 있도록 하는 기술. 별도 프로그램을 설치하거나 웹페이지를 다시 로딩하지 않고도 메뉴 등 화면상의 객체를 자유롭게 움직이고 다룰 수 있다. 비슷한 기능의 액티브X나 플래시 등에 비해 가볍고 속도가 빨라 차세대 웹 기술로 각광받고 있다.


WEB2.0의 기반 기술 중 하나이다. AJAX는 자체가 하나의 특정한 기술을 말하는 것이 아니며, 함께 사용하는 기술의 묶음을 지칭하는 용어로 대화식 웹 애플리케이션의 제작을 위해 사용된다. AJAX 애플리케이션은 실행을 위한 플랫폼으로 사용되는 기술들을 지원하는 웹 브라우저를 이용하는데, 이를 지원하는 브라우저로는 모질라 파이어폭스, 인터넷 익스플로러, 오페라, 사파리 등이 있다.


https://yms9713.blog.me/221391352726


AJAX는 비동기식으로 서버와 데이터를 주고  받을 수 있다. Ajax를 이용하면 페이지를 리로드 할 필요 없이 특정 영역의 데이터를 갱신 할 수 있다. 그리고 페이지가 로드된 후에 서버에게 데이터를 요청할 수 있고 받을 수 있다. 그리고 백그라운드에서 서버에게 데이터를 보낼 수 도 있다


https://cosmosjs.blog.me/221379444712



자바스크립트(JavaScript) 토대로 개발되었다. 여러 프로그래밍 언어에도 사용할 수 있어 독립형 언어이며 텍스트로 기술하여 사람도 쉽게 읽고 작성할 수 있다. 웹 브라우저와 웹 서버 간 비동기 통신, 웹 서버 간의 데이터 교환 등에 주로 사용된다.

일반적으로 서버에서 클라이언트로 데이터를 보낼 때 사용하는 양식. 클라이언트가 사용하는 언어에 관계 없이 통일된 데이터를 주고받을 수 있도록, 일정한 패턴을 지닌 문자열을 생성해 내보내면 클라이언트는 그를 해석해 데이터를 자기만의 방식으로 온전히 저장, 표시할 수 있게 된다.


 웹 브라우저에서 비동기 처리에 사용되는 에이잭스(AJAX)가 데이터 교환 형식으로 JSON을 사용하면서 널리 알려졌다. 과거 웹 초기 시절부터 사용되어 온 XML은 헤더와 태그 등의 여러 요소로 가독성이 떨어지고, 쓸데없이 용량을 잡아먹는다는 단점이 항상 지적되어 왔다. 이에 대응해 간결하고 통일된 양식으로 각광을 받고 있는 것이 JSON이다. 


AJAX가 기존 사용하던 XML 기반의 메시지 포맷은 시작 태그와 끝 태그를 포함하여 메시지 크기가 커지는 문제가 있었다. 이를 해결하기 위해 JSON으로 대체하였다. 대부분의 웹 기반 애플리케이션에서 데이터 교환 형식으로 XML 대신 JSON을 활용한다. 특히, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는 데 적합하다.


JSON은 자바스크립트(JavScript)의 구문 형식을 따르지만, C, C++, C#, 자바(Java), 파이선(Python) 등의 프로그램 언어와도 함께 사용되는 플랫폼과 프로그래밍 언어 면에서 독립적인 언어이다. 데이터 구조는 속성(name)과 값(value) 한 쌍으로 구성되며, “속성: 값” 형식으로 데이터 객체를 표현한다.



{

    "name": "paul",
    "age": 27,
    "address": {
    "Address": "11Ro Seoul Korea"},
    "phone": [
    { "type": "home",
    "number": "02-000-0000" },
    { "type": "cellphone",
    "number": "010-0000-0000" },
    ],
    "children": [],
    "spouse": null
}

 ‘paul’이라는 사람에 대한 정보(나이, 주소 등)를 JSON 형식으로 표현한 예시이다. ‘name’ 속성에 대한 값은 ‘paul’이며, ‘age' 속성에 대한 값은 ‘27’이다. 전화번호(phone)는 집(home) 전화와 휴대폰(cellphone) 객체 2개를 갖는 배열로 표현한다.



JSON tablo


 <출처 :  https://docs.microsoft.com/tr-tr/azure/sql-database/sql-database-json-features>


https://clay1987.blog.me/221384948332

https://blog.naver.com/sonhanbi1002/221388667722


+ Recent posts