[C, C++, C# 차이 ] 클라우드 플레어
1. C언어 ?
- C언어의 경우 1972년에 만들어졌으며, 오래 전에 만들어진 언어인만큼 무수한 다른 언어에게 영향을 미쳤다. C가 만들어진 1970년대에는 컴푸타가 지금처러 빠르지 않았으며, 그러한 이유로 C는 리소스가 많이 없는 기계에서 작동할 때 유용하며, 하드웨어와 매우 밀접하게 작동한다. 예를 들면 화상탐사선에서 사진을 찌고 NASA로 전송하는 역할을 하는데 250만 줄의 C언어의 코딩으로 작성되어있다고 한다. 왜냐하면 화상탐사선에는 프로세싱 파워도 약하고, 가능한 적게 공간을 쓰면서 빠른 언어가 필요했기 때문이다.
1.1 Lokalise 장점
- 단일 작업 공간에서 팀원들과 협업(콜라보)할 수 있습니다. 예를 들어, 업무(Tasks)를 할당(assign)하고 진행사항(progress)을 추적(track)하고, 누가 언제 무엇을 했는지 Lokalise 내에서 확인할 수 있습니다.
- 개발 주기에 병행하여(맞춰) 현지화 작업을 진행할 수 있습니다. 예를 들어, Adobe XD, Figma 및 Sketch 디자인 툴들과 작업을 함께 할 수 있으며, 그 작업이 끝날 때까지 기다릴 필요가 없습니다.
- Lokalise 제품 내에 내장된 도구를 사용하세요. 번역 메모리, 자동 번역 그리고 QA를 체크할 수 있습니다. 제품의 스크린샷을 이용하여 해당 스크린샷을 텍스트를 번역할 수도 있습니다.
- 현지화 작업의 번거로움을 덜어낼 수 있습니다. Mobile SDKs, API, CLI 등의 시간을 절약할 수 있으며, Github, Bitbucket, Gitlab, Azure의 레포(Repos)들 혹은 Jira와 통합하여 개발자의 작업을 줄일 수 있습니다.
1.2 Lokalise 어디에 사용 가능한가?
- 웹 앱 : frontend, bakcend, single page, blogs 등 어떤 웹 앱에 사용 가능합니다.
- 모바일 앱 : 어떠한 모바일 Platform 언어 파일에도 업로드 가능합니다. 원한다면 Embed Lokalise IOS SDK 혹은 Lokalise Android SDK 가능합니다.
- 게임 : 당사의 클라우드 소포트웨어드는 전 세계의 많은 주요 게임 개발자로부터 신뢰를 받고 있습니다.
- 문서 : 당신의 DOCX 혹은 정적인 HTML 파일을 업로드하세요.
- 마케팅 자산 : 웹 페이지, 블로그, 이메일 및 기타 마케팅 자산을 고객이 사용하는 언어로 말하게 하여, 참여도 및 전화율을 높이세요. HubSport, Contentful 및 Storyblok과 Lokalise 통합하여 현지화 작업을 신속하게 제어할 수 있습니다.
- IoT : 가장 많이 사용되는 현지화 파일 형식을 지원합니다.
2. 클라우드 서비스 모델이란
- 클라우드 컴퓨팅은 다음 컴퓨팅 모델 중 하나에 속합니다. 클라우드 서비스 모델은 3가지로 나뉘어지며, 이러한 모델은 클라우드 공급자와 클라우드 사용자가 서로 다른 수준을
관리하게 됩니다.
***
2.1 laas(Infrastructure as a service)
- 우리가 자주 사용하는 가상 호스팅(VM Hosting)과 비슷하나 처음에 말했다시피, 가상 호스팅은 우리가 직접 장비를 사서 그 장비의 한에서 자원을 할당하고 구성해야 하지만, IaaS는 기업이 준비해놓은 환경에서 우리가 선택할 수 있다는 점에서 차이가 있습니다.
- 일반적으로 적은 OS가 지원됩니다. (아마존은 일부 Linux와 Windows Server 제공)
- 고객은 OS와 어플리케이션을 직접 관리해야 합니다.
- 관리 측면에서 개발자와 인프라 관리자의 역할을 분담시킬 수 있습니다.
3.2 Jenkins Plugin
- 젠킨스의 장점 중 하나는 다양한 플러그인으로 기능을 확장 할 수 있다.
- 예를 들어 git plugin을 설치하면 git과 jenkins를 쉽게 연동할 수 있다.
3.3 Jenkins 설정
- Jenkins 접속하여 새로 생성하고 싶으면 왼쪽 메뉴에 New Item 을 클릭하여 Freestyle project(혹은 다르게도 가능)을 눌러 새 작업을 생성해준다.
</img>
### 3.3.1 General
프로젝트에 대한 설명, url, discard old builds(오래된 빌드 삭제) 등 전반적인 설정을 한다.
### 3.3.2 Source Code Management (소스 코드 관리)
Repositories 설정 (URL, 인증)을 할 수 있으며, 어떤 Branches 들을 build 할 것인지 설정할 수 있다.
public 레포지토리는 credentials(인증) 설정할 필요가 없으나, private 레포지토리는 git 과 연동하여 설정해야한다.
### 3.3.3 Build Triggers (빌드 유발)
빌드를 언제 실행할 지를 설정할 수 있다.
- Trigger builds remotely (e.g., from scripts) 빌드를 원격으로 유발 : 외부에서 URL을 통해 빌드를 진행 할 수 있도록 설정합니다.
- Build after other project are built : 다른 프로젝트를 빌드한 후 이어서 현재 프로젝트를 빌드하는 설정.
- Build periodically** : 주기적으로 빌드
- Poll SCM** : 서버에서 변경된 사항이 존재할 때 빌드를 수행하는 설정 (플러그인)
```
schedule 예시
15분 간격으로 빌드 작업을 수행
H/15 * * * *
모든 시간의 첫 30분 동안에 10분 간격으로 빌드를 수행
H(0-29)/10 * * * *
주말을 제외한 주중에 9시부터 16시 사이에 2시간에 한번씩 빌드를 수행
H 9-16/2 * * 1-5
12월 달은 제외하고 매달 1일과 15일에 한번씩 빌드를 수행
H H 1,15 1-11 *
```
### 3.3.4 Build Environment (빌드 환경)
빌드 환경 설정
- Delete workspace before build start : 빌드를 실행하기 전, 이전에 사용되던 작업 공간 삭제
- Use secret text(s) or file(s) : 다양한 자격 증명에 사용할 인증 파일 또는 텍스트 사용
- Abort the build if it’s struck : 빌드가 교착 상태 등의 이유로 중지되면 지정된 시간 내로 빌드 종료 후 지정된 메시지 출력
- Add timestamps to the Console Output : 빌드 시작 시간, 빌드 종료 시간 등 시간과 관련된 내용을 Console output에 함께 출력
- With Ant : Apache Ant를 사용하여 빌드하는 환경 구성.
### 3.3.5 Build (빌드)
명령어 입력 등 다양한 방법으로 빌드 시킬 수 있다.
- Execute Windows batch command: 입력된 Window command line 실행
- Execute Shell: sh -xe 명령어 실행. Linux 전용.
- Invoke Ant: Ant 빌드 시스템을 사용하는 프로젝트의 경우에 사용. 입력된 인자를 통해 빌드
- Invoke Gradle script: Gradle를 빌드 시스템으로 빌드하는 프로젝트의 경우에 사용. 입력된 인자를 통해 작업.
- Invoke top-level Maven targets: Maven 빌드 시스템으로 빌드하는 프로젝트의 경우에 사용. 입력된 인자를 통해 작업
- Run with timeout: 지정된 시간동안 빌드가 완료되지 않으면 빌드 중지
- Set build status to “pending” on GitHub commit: Git 프로젝트 속성에 정의된 이름 속성으로 작업 이름을 대체
3.3.6 Post-build Actions (빌드 후 조치)
빌드 이후 액션을 설정해줄 수 있다. (예, 이메일 알림 혹은 Projects to build : 다른 프로젝트와 파이프라인 설정 등을 할 수 있다.)
4. Pipeline (파이프라인)
- 파이프라인이란 Jenkins Job(작업), 즉 빌드/테스트/배포 등을 Job(작업)이라고 부르는데 이를 연속적으로 수행 가능하도록 만들 수 있는 기능을 말한다.
- 새로운 아이템(New Item)을 클릭하여 새로운 작업을 만들 때, Pipeline을 설정해주면 된다.
</img>
- Pipeline script : 스크립트로만 파이프라인을 정의한다.
- Pipeline script from SCM : 서버에서 변동사항이 있을 때 스크립트 실행(위의 Poll SCM 참조)
5. 그 외
- Travis CI, Circle CI, Team City 같은 클라우드형 서비스도 있다. (유료형)
- Github, Bitbucket, Gitlab 등에서 자체적으로 제공도 한다. 예 : Github Action, Gitlab : CI/CD, Bitbucket : Pipelines (일부 서비스 유료)
- 정적 사이트를 Github를 통해 올리면 바로 자기네 서버에 배포해주는 Netlify나 Vercel 처럼 그 자체가 배포 자동화인 서비스도 있다.
*****
○ 참고 영상
○ 참조 문서 및 사이트