devcompass.co.kr/%EC%95%B1-%EC%A0%9C%EC%9E%91/

 

앱 제작, 어플리케이션 제작 과정 완벽 정리 • DevCompass

이 글은 앱 제작 과정을 상세히 정리하였습니다. 앱 개발 아이디어가 있는 기획자, IT 스타트업 관계자, 1인 개발자 등 어플리케이션 제작 과정을 알고자 하는 분들에게 유용한 글입니다. 앱 제

devcompass.co.kr

앱개발 단계... 잘 정리되어 있어 퍼옴

 

 

'Mobile' 카테고리의 다른 글

앱 제작 단계 설명  (0) 2021.04.13
Docker 명령어  
docker container commit container 로 부터 image를 작성할때
>docker container commit -a "reo" testServer reo/web:1.0
docker container export 가동중인 컨테이너의 디렉토리/파일 들을 모아서 tar파일로 만들때
>docker contaier export reodserver > reotest.tar
docker image import linux os 의 디렉토리/파일 로 부터 도커 이미지를 만들때
>docker 
   
   

출처: https://wnsgml972.github.io/network/network_cloud-computing.html

 

Iaas, paas, saas 차이를 너무 잘 정리해 놓은 글이 있어 보관차원에서 퍼옵니다.

 

IaaS, PaaS, SaaS란 무엇인가?

정리

  • 클라우드 컴퓨팅이 도입되면서 최근에 자주 들을 수 있는 용어입니다.
  • IT 인프라의 여러 필요한 구성 요소 중 예전에는 모두 사용자가 관리해야만 했지만, 이제는 일정 부분을 클라우드에서 내려받는 형태가 많이 도입되었습니다.
  • 얼마만큼 사용자가 관리하고 얼마만큼 클라우드에서 제공받는가에 따라 다음과 같이 네 가지로 나누어져 있습니다.
  • 위의 그림에서 보이는 데로 노란색의 You manage는 사용자가 관리해야 할 부분이고, 흰색의 Managed by vendor는 기업(클라우드)에서 관리해주는 부분입니다.

 

Packaged Software

그림에서 보이는 것과 같이 직접 인프라와 플랫폼, 어플리케이션까지 모두 구성하여 관리하는 모델을 의미합니다.

정리

  • 물리적인 장치, 하드웨어(CPU, RAM, Storage, Network device 등등)을 모두 직접 구매해야 합니다.
  • 직접 OS를 설치해야 합니다.
  • 네트워크 환경을 직접적으로 구성해야 합니다.
  • 서버 관리를 직접적으로 해야 합니다. (트래픽, 프로지버닝 등등)
  • 이런 모든 것을 직접 사용자가 다 준비해야 하기 때문에 매우 큰 시간과 돈을 소비하게 됩니다.

 

IaaS(Infrastructure as a service)

Infrastructure 레벨을 제공하는 서비스를 의미합니다. 위에 보이는 것과 같이 사용자는 OS를 직접 올리고 그 상위 계층만 구성하면 되는 모델입니다.

정리

  • 우리가 자주 사용하는 가상 호스팅(VM Hosting)과 비슷하나 처음에 말했다시피, 가상 호스팅은 우리가 직접 장비를 사서 그 장비의 한에서 자원을 할당하고 구성해야 하지만, IaaS는 기업이 준비해놓은 환경에서 우리가 선택할 수 있다는 점에서 차이가 있습니다.
  • 일반적으로 적은 OS가 지원됩니다. (아마존은 일부 Linux와 Windows Server 제공)
  • 고객은 OS와 어플리케이션을 직접 관리해야 합니다.
  • 관리 측면에서 개발자와 인프라 관리자의 역할을 분담시킬 수 있습니다.

장점

  • 고객은 가상 서버 하위의 레벨에 대해서는 고려할 필요가 없다는 장점이 있습니다.

단점

  • 그러나 역설적으로 IT 부서(특히, 운영부서)에서 느끼는 매우 큰 단점은 바로 가상 서버 하위의 레벨에 대해서는 전혀 고객이 접근하거나 컨트롤할 수 없습니다.
  • 결국, 가상 서버 하위의 레벨에 대해서 고려할 필요가 없는 사용자가 쓰기에 적합한 모델입니다.

예시

AWS의 EC2

  • AWS의 EC2를 이용하면 우리는 물리적인 서버와 Network, Storage 등등을 직접 구매하거나 준비하지 않아도 원하는 OS를 깔아 서버로 사용할 수 있습니다.
  • AWS의 EC2는 사용자가 원하는 OS를 고르고 그에 해당하는 스펙을 선택하기만 하면, 모든 관리를 아마존에서 해주는 것입니다. OS를 제공한다는 느낌이긴 하지만, 선택권을 주고 OS의 종류나 다양한 자원들을 사용자가 선택하므로 대표적인 IasS라고 불리고 있습니다.

제가 이번에 만든 오픈소스 Mosquitto를 이용한 MQTT Broker를 아마존의 EC2에 올려서 사용하고 있는데 매우 편리합니다.
1년간은 프리티어로 사용할 수 있으니 관심 있으신 분은 한번 해보시는 게 좋은 것 같습니다.

사용자

  • AWS 처럼 직접 기업이 클라우드를 운영하고 사용자인 우리가 서비스를 받는 AWS EC2 같은 것이 이에 해당합니다.

제공자

  • 직접 클라우드를 구성할 수 있는 OpenStack이라는 오픈 소스도 IaaS에 해당합니다. 서비스를 제공 받는 입장이 아닌 제공하는 인프라를 구성할 수 있는 오픈 소스입니다.
  • OpenStack에 관한 게시글은 다음 포스팅에 다루도록 하겠습니다.

 

PaaS(Platform as a service)

개발자가 응용 프로그램을 작성할 수 있도록 플랫폼 및 환경을 제공하는 모델입니다.

정리

  • 운영 팀이 인프라를 모니터링할 필요가 없습니다.
  • 사용자는 OS, Server 하드웨어, Network 등등을 고려할 필요가 없습니다.
  • 사용자는 어필리케이션 자체에만 집중할 수 있습니다. 즉 개발자는 빠르게 어플리케이션을 개발하고 서비스 가능하게 할 수 있습니다.
  • IaaS와 헷갈릴 수 있는데 아마존과 같은 서비스가 VM을 제공하는 IaaS라면, PaaS는 node.js, Java와 같은 런타임을 미리 깔아놓고, 거기에 소스코드를 넣어서 돌리는 구조입니다. 다시 한번 얘기하면 우리는 소스코드만 적어서 빌드 하는 것이고, 컴파일은 클라우드에서 하여 결과만 가져오는 거라고 생각하시면 됩니다.

장점

  • PaaS의 경우 이미 설치된 미들웨어 위에 코드만 돌리면 되기 때문에, 아무래도 관리가 매우 편리합니다.
  • 가장 이상적인 어플리케이션 플랫폼 관점의 클라우드 모델로 업계에 받아들여지고 있습니다.

단점

  • 이것도 IaaS와 마찬가지로 하나의 인프라를 기반으로 개발할 수 있다는 것 자체가 장점이자 단점이 될 수 있습니다.
  • PaaS는 기본적으로 어플리케이션과 플랫폼이 함께 제공됩니다. 어플리케이션이 플랫폼에 종속되어 개발되기 때문에 다른 플랫폼으로의 이동이 어려울 수도 있습니다.

예시

  • PaaS의 제공 업체로는 Heroku, Google App Engine, IBM Bluemix, OpenShift, SalesForce가 있습니다.

 

SaaS(Software as a service)

설치할 필요도 없이 클라우드를 통해 제공되는 SW입니다.

정리

  • 위의 그림에서 보이는 것처럼 모든 것을 기업(클라우드)에서 제공함으로 사용자는 별도의 설치나 부담이 필요 없이 SW를 사용할 수 있습니다.
  • SaaS는 소비 관점에서 제공되는 IT 방식의 서비스로 정리할 수 있습니다. 구독의 방식으로 돈을 벌거나 트래픽 기반으로 돈을 벌 수 있습니다.

장점

  • Public Cloud에 있는 SW를 웹 브라우저로 불러와 언제 어디서나 사용할 수 있습니다.
  • 사용자는 웹만 접속하면 되기 때문에 사용하기 매우 쉽고, 최신 SW 업데이트를 빠르게 제공받을 수 있습니다. 사실상 기업 입장에서도 클라우드에 SW가 있기 때문에 따로 업데이트를 하지 않아도 접속한 사용자는 최신 SW를 사용하게 될 수 있습니다.

단점

  • 단점으로는 SaaS의 특성상 반드시 인터넷에 접속할 수 있어야만 사용할 수 있고, 외부의 데이터 노출에 대한 위험이 있습니다.

예시

  • 예로는 웹 메일, 구글 클라우드, 네이버 클라우드, MS오피스365, 드롭박스 등이 있습니다.

 

결과

  • 정리하자면 위의 그림과 같이 한 단어로 host, build, consume으로 표현이 가능합니다.

사춘기 시절에... 내 안에 북받쳐 오르는 감정과 생각들이 더이상 내 안에 담아둘 수 없어서... 그대로 있으면 터질거 같은 심정에...

펜을 들고 글을 썼었다.

그냥 끄적끄적... 나만의 이야기를  썻었다.

 

이런 마음상태는 10년정도를 주기로... 찾아오는 것 같다.

학창시절엔 고민때문에 

군대를 다녀온 후엔 학창시절 이루지 못했던 나 자신의 저평가를 이겨내고 나를 상승시키고자...

이젠 나 자신이 정말 좋아하는것을 찾아가며....

똑같이 찾아온 마음의 병을 마주하고 있다.

 

난 내가 정말 좋아하는게 뭔지 몰라 매일매일을 아무도 모르는 마음의 병과 싸우고 있다.

시기별로 다른 주제로 찾아오는 병...

이젠 '내가 좋아하는 것'이란 주제로 찾아왔다. 

이런 여정은 항상 언제끝날지 알수 없었다. 기본이 7년 정도.... 그 이상이었으니....

또다시 난 그 여정을 시작하고 있다.

 

하지만.... 반드시 난.... 알아낼 것이다. 내가 좋아하는 게 뭔지.... 

답답하지만 약간은 웃을 수 있다. 결국은 알게 될 것이란걸 알기에... 결국 어떤 깨달음과 함께 마무리 될것을 알기에...

 

'하고싶은말' 카테고리의 다른 글

삶에 주기적으로 찾아오는 병  (0) 2019.11.19

CentOS 에서 yum-config-manager: command not found 에러가 날 경우

$ yum install yum-utils

해서 설치하고 나서 하면 됨.

 

로컬pc : macosx

virtualbox 사용중 공유폴더가 필요하여 설치하려는데 도저히 설정이 안되서 미친 구글링함

결론적으로는 

#1. 확장판 설치

#2. 공유폴더 설정

하면

 

아래순서 그대로 했음(당연히 centos 설치한 vm에서 진행했고, root 계정으로 진행함 )

1. centos 설치하자 마자 업데이트

  $yum update

  $reboot

  재부팅 되면

  $yum update kernel

  $reboot

  재부팅 되면

   $yum groupinstall "Development tools"

   $yum install kernel-devel (이건 반복이긴 한디... 어쨋든 수행함 )

2.Install VirtualBox Guest Additions(확장판 설치)

  $cd /mnt

  $mkdir cdrom && mount /dev/cdrom /mnt/cdrom

  $cd cdrom && ./VBoxLinuxAdditions.run

 

3. 공유폴더 설정

  해당 vm 에서 [설정>공유폴더>  ].

 

[root@vm ~]# mkdir /vm_share_dir

[root@vm ~]# mount -t vboxsf virtualbox_share /vm_share_dir

 ( virtualbox_share 는 버츄얼박스 공유폴더 설정명 )

### 마운트 되었는지 확인 ####

[root@vm ~]# mount

......

 vm_share_dir on /vm_share_dir type vboxsf (rw)`

너무 다양한 데브옵스의 세계... 점점 더 지도가 넓어지고 있다... 난 어디?

기본적인 devops engineer 스펙은 예로 들면 아래 정도 될거 같다.

- 기초 : 리눅스 관리, 파이썬, AWS 또는 다른 클라우드 플랫폼
- 구성 : 테라폼(Terraform) 또는 앤서블(Ansible)
- 버전 관리 : 깃(Git)과 깃허브(GitHub)
- 패키징 : 도커(Docker)
- 배포 : 젠킨스(Jenkins)
- 실행 : 아마존 ECS와 쿠버네티스
- 모니터링 : ELK 스택

(원문보기: http://www.itworld.co.kr/news/118329#csidx2c57a1a5dded950a27572aea7ea3a1b  )

누군가가 전체 로드맵을 잘 정리해서 퍼왔다... 음...

출처 : https://github.com/kamranahmedse/developer-roadmap

 

kamranahmedse/developer-roadmap

Roadmap to becoming a web developer in 2019. Contribute to kamranahmedse/developer-roadmap development by creating an account on GitHub.

github.com

 

 

 docker-compose up 실행시 아래와 같은 에러가 발생하여 삽질을 하였다.

ERROR: The Compose file './docker-compose.yml' is invalid because:

Invalid top-level property "manager". Valid top-level sections for this Compose file are: version, services, networks, volumes, secrets, configs, and extensions starting with "x-".

You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.

For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/

설명처럼 version 을 소수점으로 변경도 해보고, 이런 저런 별짓을 다해봤지만 ...

결론은 띄어쓰기 문제였다.

yaml 파일에서  같은 레벨의 띄어쓰기가 맞지않아서 에러가 나는 거였음... 

위 에러날때 동급의 항목이 같은 띄어쓰기로 되어 있는지 , 더 앞칸으로 되어 있는건 아닌지 확인해 보면 해결될듯함

 

 

 

이름 역할 명령어
compose 여러 컨테이너로 구성된 도커 애플리케이션을 관리(주로 단일 호스트) docker-compose
swarm 클러스터 구축 및 관리 (주로 멀티 호스트) docker swarm
service swarm에서 클러스터 안의 서비스(컨테이너 하나 이상의 집합)를 관리 docker service
stack swarm에서 여러개의 서비스를 합한 전체 애플리케이션을 관리 docker stack

 

'DevOps' 카테고리의 다른 글

Devops roadmap  (0) 2019.06.25
ERROR: The Compose file './docker-compose.yml' is invalid because  (0) 2019.06.12
docker - swarm/compose/service/stack  (0) 2019.06.07
Docker Error  (0) 2019.06.05
Docker 명령어 정리  (2) 2019.03.21
쿠버네티스 기존 리소스 수정  (0) 2019.02.08

ERROR: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

도커 이미지 pull 등을 실행시 위와 같은 에러가 발생시에는 우선 도커 로긴이 제대로 되었는지 확인을 먼저 해본다.

나같은 경우는 docker compose up  실행시 위와 같은 에러가 발생하여 , 도커 로긴을 해보니 도커 로긴 자체가 현재 안되는 상황이었다.

 

-->10분 후 다시 로긴을 해보니 정상적으로 로긴 처리 완료 되었고 위의 메세지는 더이상 발생하지 않음

 

'DevOps' 카테고리의 다른 글

ERROR: The Compose file './docker-compose.yml' is invalid because  (0) 2019.06.12
docker - swarm/compose/service/stack  (0) 2019.06.07
Docker Error  (0) 2019.06.05
Docker 명령어 정리  (2) 2019.03.21
쿠버네티스 기존 리소스 수정  (0) 2019.02.08
쿠버네티스 명령어 #6  (0) 2019.01.31

+ Recent posts