반응형

사전적 의미가 아닌 IT용어로서의 의미입니다.

 

업데이트 (패치)

버그(또는 문제)를 수정하고 호환 가능한 지원을 보완 

규모는 작으나 빈번

ex) Version 1.2 -> Version 1.3

 

업그레이드

프로그램에 더 많은 기능을 추가하는 대폭적인 변화 

규모가 크나 빈번하지 않음

ex) Version 1.3 -> Version 2.0

 

마이크로소프트의 따르면, 업데이트는 보안 문제 및 버그 수정, 기타 비교적 중요한 윈도우 기능 변경을 처리합니다. 반면 업그레이드는 새 기능, 경험, 특징 구현 및 설치를 의미한다고 설명하고 있습니다.  

 

+ MS 서비스팩의 경우 업데이트라고 명시하고 있지만, 사실상 업그레이드에 가깝다.

 

 

반응형

'용어 정리' 카테고리의 다른 글

코딩 스타일  (0) 2019.09.07
J2SE/J2ME/J2EE  (0) 2018.04.22
CPU/Core/Processor  (0) 2018.04.07
차세대, 고도화, 유지보수, 통합시스템구축 프로젝트  (0) 2018.02.07
iso, ios, osi  (0) 2018.02.05
반응형

DNS

 

DNS( Domain Name System )는 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었습니다. 특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해줍니다. 예를들어 www.test.com -> DNS -> 1.2.3.4와 같이 특정 URL에 매핑되어있는 IP 주소를 반환해 줍니다.

 

 

동작원리

 

 

특정 URL ( www.naver.com ) 접근

 

0. 가장 먼저 로컬의 hosts파일에 접근하여 해당 URL에 대한 정보가 있는지 확인. 이 호스트 파일은 DNS의 초기, 모든 URL에 대한 IP정보를 사용자가 직접 관리했어야 했는데 이때 사용하는 매핑 테이블이며 로컬 캐시보다도 이 파일에 먼저 접근하여 검색 시작. 값이 있으면 IP 반환, 없으면 1. 진행

 

1. 로컬 캐시에 접근하여 값을 검색. 검색 성공시 IP 반환, 실패 시 2. 진행

 

2. 로컬에 설정되어있는 DNS Server에 접근. 따로 설정하지 않았다면 세계에 13개 존재하는 Root DNS Server가 설정되어 있으며 위 예제에서는 Root DNS Server가 아닌 다른 DNS Server를 참조한다고 가정. DNS Server에서 재귀적 쿼리를 실행하며 검색 성공시 IP 반환, 실패시 3. 진행

 

3. (.)Root DNS에서 검색 실행. 성공시 IP 반환, 실패시 4.

 

4. www.naver.com의 URL에서 TLD ( Top Level Domain )인 com에 해당하는 DNS Server IP를 반환

 

5. 재귀적 쿼리가 지속적으로 실행되며 com DNS Server에 접근해 검색 실행. 검색 성공시 IP반환, 실패시 6.

 

6. next LeverlDomain인 naver에 해당하는 DNS Server IP를 반환

 

7. 재귀적 쿼리가 지속적으로 실행되며 naver DNS Server에 접근해 검색 실행. 검색 성공시 IP 반환, 실패시 8.

 

8. 검색 성공 시 104.74.171.196 주소가, 실패시 실패 메세지가 DNS Server로 반환.

 

9. 반환된 IP에 접근 or 실패

 

 

 

 

Record

 

DNS에 매핑되는 값은 여러 종류가 존재하며 이를 레코드라고 부릅니다. 일반적으로 브라우저상에서 사용되는 레코드는 A 레코드로 도메인에 대한 IP가 매핑 됩니다. 레코드는 다음과 같은 종류들이 있습니다.

 

 

확인 방법

cmd > nslookup > set type='record type' > 'URL'

 

 

* dns 캐시 확인 방법

windows : ipconfig /displaydns

 

* dns 캐시 초기화 방법

windows : ipconfig /flushdns

반응형

'이론 정리' 카테고리의 다른 글

한글 인코딩  (0) 2019.06.04
가상화 ( IO )  (0) 2018.02.11
가상화 ( 서버 )  (0) 2018.02.11
TCP/IP  (0) 2018.02.10
Socket / Port  (0) 2018.02.05
반응형
 
소프트웨어 개발에서 유지보수로 연결되는 지점은 소스관리, 빌드, 배포의 활동이 됩니다. 물론, 소스코드 수정이 발생되기는 하지만, 소스관리/빌드/배포의 활동이 주로 발생하기 마련이며, 이는 유지보수 시점에 확실한 절차와 방법을 필요로 합니다. 오래 전부터 소프트웨어 개발에 있어서 위험을 줄이는 방식으로 개발 시점에서 이러한 활동을 지원하는 CI (Continuous Integration)가 사용되고 있었습니다. CI란 개발자가 각각 개발한 소스코드를 모아서 한꺼번에 빌드하는 통합 빌드의 과정을 특정 시점이 아니라 주기적으로 수행함으로써 통합에서 발생하는 오류를 사전에 해결하고 이러한 과정들에 소요되는 시간을 줄이기 위한 기법을 말합니다. 더 이상 빌드는 컴파일만을 의미하지 않으며, 소프트웨어가 거대해지고 복잡해지면서 팀 단위로 개발을 하게 되었고, 그 과정에 있어서 분업과 협업은 필수적이 되었습니다. 이 과정에서 소스 버전 관리 툴을 이용한 소스 코드의 merge 과정은 점점 까다로워져 도입한 솔루션이 바로 CI입니다 

 

 

CI/CD (Continuous Integration / Continuous Delivery or Deployment)란?

 

1. 지속적으로 퀄리티 컨트롤(품질 관리)을 적용하는 프로세스를 실행하는 것

 

2. 모든 개발을 완료한 뒤에 컬리티 컨트롤을 적용하는 고전적인 방법에 대체하는 방법으로서 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 

    걸리는 시간을 줄이는데 초점

 

3. 초기에 그리고 자주 통합해서 통합 시 발생하는 여러가지 문제점을 조기에 발견하고, 피드백사이클을 짧게 하여 소프트웨어 개발의 품질과 

    생산성을 향상시키는 것.

 

 

CI 적용 시 고려할 점

 

1. 모든 소스 코드가 살아있고(현재 실행되고) 어느 누구든 현재의 소스를 접근할 수 있는 단일 지점을 유지할 것

 

2. 빌드 프로세스를 자동화시켜서 어느 누구든 소스로부터 시스템을 빌드하는 단일 명령어를 사용할 수 있게 할 것

 

3. 테스팅을 자동화시켜서 단일 명령어를 통해서 언제든지 시스템에 대한 건전한 테스트 수트를 실핼할 수 있게 할 것

 

4. 누구나 현재 실행 파일을 얻으면 지금까지 최고의 실행파일을 얻었다는 확신을 하게 만들 것

 
 
 
CI/CD의 차이점
 
어디까지 자동화가 되어있느냐에 따라 달라집니다. 빌드 서버로 코드를 푸쉬 한 후 자동으로 빌드가 시작 되는 지점까지는 CI라 하며, 거기서 테스트를 거쳐 디플로이 과정까지 자동화가 되어있으면 CD라 한다 CD에서 또한 Deploy를 자동으로 해주냐, 수동으로 해주냐에 따라 Delivery, Deployment로 나뉘어집니다.
 
 

 

 

CI 시스템 구축을 위한 핵심 구성요소

 

1. CI Server : 빌드 프로세스를 관리하는 서버 

   ex) Jenkins etc..

2. SCM(Source Code Management)  :  소스코드 형상 관리 시스템

   ex) Git, SVN etc..

3. Build Tool : 컴파일, 테스트, 정적 분석 등으로 동작 가능한 소프트웨어를 생성하는 도구 

   ex)Maven, Gradle, Ant etc..

4. Test Tool : 작성된 테스트 코드에 따라 자동으로 테스트를 수행해주는 도구 

   ex) JUnit etc..

 
 
 
CI 자동화 수행 절차
 
1. 소스코드를 바이너리 파일로 컴파일 한다.
 
2. 바이너리 파일을 배포 형태로 패키징 한다.
 
3. 단위 테스트를 수행한다.
 
4. 정적 분석을 수행한다.
 
5. 분석 결과를 리포팅 한다.
 
6. 패키징한 파일을 테스트 서버에 배포한다.
 
 
 
 
 
 

 

반응형

'Jenkins' 카테고리의 다른 글

[Jenkins] 자동배포 설정  (0) 2018.07.21
[Jenkins] Github 연동  (0) 2018.07.21
[Jenkins] SVN 연동  (0) 2018.07.21
[Jenkins] Maven 설정  (0) 2018.07.21
[Linux] Jenkins 설치  (0) 2018.02.10

+ Recent posts