일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- post
- Jenkins
- tomcat
- Spring
- sonarQube
- Set
- 캐시서버
- JPA
- cloud
- container
- 소켓
- 허브
- STREAM
- docker
- 방화벽
- 라우터
- map
- AOP
- LAN어댑터
- IntelliJ
- gradle
- DevOps
- Pipeline
- ansible
- mybatis
- Java
- jdk
- Collection
- Linux
- 액세스회선
- Today
- Total
목록CI&CD (54)
거북이-https://velog.io/@violet_evgadn 이전완료
Cloud 제공 형태 ◎ Public Cloud(퍼블릭 클라우드) 특정 기업이나 사용자를 위한 서비스가 아닌 인터넷에 접속 가능한 모든 사용자를 위한 Cloud Service Model이다. 클라우드 서비스 제공자(Cloud Service Provider;CSP)가 HW와 SW를 관리한다. 우리가 일반적으로 알고 있는 HW와 SW 전체를 클라우드 업체에서 빌려오는 클라우드 형태를 Public Cloud라고 이해하면 편할 것이다. Public Cloud는 사용자가 직접 HW와 SW를 설치할 필요가 없으므로 비용적인 면에서 효율적인 솔루션이다. 또한 사용양에 따른 종량적 결제가 가능하기 때문에 필요한 리소스에 대해서만 비용을 지불할 수 있다는 장점을 가진다. 퍼블릭 클라우드의 가장 큰 장점은 뛰어난 확장성 ..
Cloud ◎ Cloud란? Cloud Computing은 인터넷 기반의 컴퓨팅으로써 인터넷을 통해 돈을 지불하여 필요한 만큼의 IT 자원을 제공받는 것을 말한다. Cloud를 직역하면 "구름"이라는 의미를 가지는데, 마치 구름에 가린 것처럼 실제로는 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)이지만 구름 너머에는 실제로 존재하기 때문에 필요할 때마다 가져다 쓸 수 있는 서비스라는 의미를 가진다. 1965년 미국의 컴퓨터학자 존 맥카시가 "미래의 컴퓨팅 환경은 공공시설을 사용하는 것과도 같을 것"이라는 말을 했었는데, 이 말에서 공공시설(IT 자원)을 활용하는 것이 바로 Cloud Computing이라고 이해하면 될 것이다. Cloud Computing을 활용할 경우 물리적 Data Cente..
Application Infrastructure Physical Server, Virtual Server 및 Container는 배포한 파일을 Server에서 어떻게 관리하는지에 대한 방법론이었다. 그렇다면 여기서 Server를 물리적으로 어떻게 형성하여 배포된 Application을 관리하는지도 궁금해진다. Application Infrastructure는 우리가 흔히 말하는 "인프라"와 동일한 의미로써 어떤 방식으로 Server를 구성할 것인지에 대한 방법론, 즉 "Server 그 자체"를 형성하는 방법에 중점을 둔 개념들이라고 말할 수 있겠다. Data Cente ◎ Data Center란? 기업 컴퓨터, Network, Storage나 기타 IT 장비가 위치하는 중앙집중식 물리적 시설이다. 이전에..
Container Container는 응용 프로그램과 프로그램을 실행하는데 필요한 모든 것을 단일 단위로 포장함으로써 Process를 표준화하는 Deplyoment 방식을 의미한다. 기존 VM이나 Physical Server에서 Application을 배포시킬 때는 오로지 Application을 패키징하고 배포시켜야 했기 때문에 Local 컴퓨터와의 환경이 달라 동일한 동작 방식이 보장되지 않는다는 단점이 존재하였는데 Container는 프로그램 실행에 필요한 모든 것을 포함하여 포장하기 때문에 Local 컴퓨터와 동일하게 동작하는 것을 어느 정도 보장할 수 있게 된 것이다. 위 사진에서 볼 수 있듯 Conatiner는 VM과 유사한 형태를 가졌으나 Guest OS가 없다는 특징을 가지고 있다. 따라서 ..
Virtual Server ◎ Virtual Server란? Virtual Server, Virtual Machine(VM)이라고도 불리는 가상 서버를 말한다. 기존 Physcial Server에서는 Resource의 경계를 한정 지을 수 없어 Resource 할당에 대한 단점이 존재하였다. 이런 문제점을 해결하기 위해 "1대의 물리적 서버가 있더라도 마치 여러 개의 물리적 서버가 있는 것처럼 설정하면 되지 않을까?"라는 생각으로 나온 해결책이 바로 Virtual Server이다. VM에서는 1개의 Physical Server 위에 여러 개의 Virtual Layer를 두어 실제로는 1개의 HW만 존재하지만 마치 Virtual Layer 개수만큼의 컴퓨터가 존재하는 것처럼 활용할 수 있게 하는 방식이다...
Deployment Deployment란 Build 된 파일을 WAS 등의 Application을 제공할 Server에 올려 사용자들이 실제로 이용할 수 있도록 하는 것이다. 여기서 Build란 Application의 소스코드를 실제로 활용할 수 있는 실행 파일로 변환하는 과정을 말한다. Packaging Build 과정이 Application의 소스코드를 실제로 활용할 수 있는 실행 파일로 변환하는 과정을 말한다고 위에서 언급했다. 그리고 이 Build 과정에서 Build Tool이라는 것이 활용되는데 이 Build Tool이 하는 역할 중 하나가 패키징이다. Build 과정은 아래와 같은 단계로 이뤄진다. 먼저 설정했던 Dependency들을 다운로드한다. 이후 Source Code를 Binary C..
Microservice Architecture ◎ Microservice Architecture(MSA)란? MSA란 작은 애플리케이션들을 합쳐 큰 애플리케이션을 만드는 Application Architecture를 말한다. MSA는 대형 프로젝트가 힘들다는 Monolithic Architecture 문제점을 해결하기 위해 나온 Architecture로써 SOA(서비스 지향 아키텍처)에서 발전된 형태를 가진다. MSA의 가장 기본적인 철학은 "한 가지만 잘 처리하자"이다. MSA에서는 단일 책임 원칙(SRP)을 중시하여 큰 문제를 최대한 독립성 있는 작은 문제로 분해한다. 이렇게 분해된 문제들을 Component를 통해 해결하고, 개발된 Component 간 REST API를 통해 데이터를 주고받음으로써..
3-tier Architecture, 4-tier Architecture 구조 N-tier Architecture를 이해하기 전 3-tier, 4-tier Architecture에 대해 이해할 필요성이 있다. 3-tier, 4-tier 뿐만이 아닌 2-tier Architecture도 존재하긴 하지만, 2-tier Architecture는 Monolithic Architecture와 차이점이 거의 없기 때문에 이번 Section에서는 3-tier, 4-tier Architecture만 관찰해보자 ◎ Presentation Layer(프리젠테이션 레이어; 표현 계층) 사용자와 직접 상호작용하는 UI(User Interface)를 의미한다. MVC Pattern와 비교해 봤을 떄 View Layer에 해당하..
Application Architeture란? 개발 방법론에 대한 공부가 끝났고 이제는 Application Architecture에 대해 설명할 차례이다. Application Architecture에는 대표적으로 Monolithic, N-Tier Architecture, 그리고 Microservice Architecture(MSA)가 존재한다. 그렇다면 Application Architecture란 무엇인가? Application Architecture란 애플리케이션을 설계하고 구축할 때 활용할 수 있는 패턴이나 기술들을 의미한다. 즉, "어떤 방식으로" Application을 만들 것인가에 정하는 설계도라고 보면 될 것이다. Application Architecture는 개발하는 Software에서..
DevOps ◎ DevOps란? 회사에선 프로젝트를 가지고 온다. 개발자는 코드를 짠다. 그리고 애플리케이션이 생성되어 고객에게 전달된다. ...라는 간단한 흐름으로 개발이 진행되지는 않는다. 개발자는 개발만 진행하는 것이 아닌 외적인 일에도 많은 시간을 할당한다. 기능들에 대해 테스트도 진행해봐야 하고 고객에게 전달할 수 있도록 프로젝트를 Build도 해야 하며 운영 서버에서도 제대로 애플리케이션이 작동하는지 검수해야 하며 이를 위해 Build 한 프로젝트를 서버에 배포도 해야 한다. 운영 서버에서 애플리케이션이 수행될 수 있도록 DB를 세팅하고 Server에 대한 설정도 수행해야 하며 HW에 대한 관리도 필요할 것이다. 또한 운영 과정에서 생기는 문제점이나 생길 수 있는 문제점을 확인하기 위해 모니터..