groom 쿠버네티스 수업 - 2일차

박경현·2022년 8월 2일
0

DevOps - 빠른 대응 및 개선(CI/CD)으로 고객에게 최고의 서비스를 제공하자!

이해한 내용들 위주로 잘 정리해봐야겠다.

계산기 프로그램을 만들어보며 어플리케이션 이해하기

간단히 만들어본 계산기 깃허브 주소

프로그래밍 이해

(프로그래밍언어를 바이너리 언어로 바꾸는게 목표
-> 전기에 의해 작동하는 트랜지스터로 작동해서!!)

어플리케이션 작성 과정

1. 문제 정의 - 이건 인프라에서도 중요!! (우리가 구축 하려는 이유를 알아야함!)
2. 알고리즘 설계
3. 구현
4. 테스트 및 배포

이해가 안되거나 새로 배운 내용이 없어서 어플리케이션 이해부분은 조금만 적었다.
아래도 적을게 많아서..ㅋㅋ

DevOps 정의 및 이해

개발 + 운영의 합성어
하나의 기술을 의미하는것이 아닌 방법론!!자체를 DevOps라고 한다

개발과 운영을 합쳐 비지니스(User)의 요구사항을 단기간에 반영할 수 있는
품질 높은 소프트웨어를 만들고자 하는 목적(중요!!)을 갖는 방법론

DevOPs있으면 장점

DevOps를 통하여 팀내 협업 증진

예전 개발 운영 체계

개발 부서에서 개발된 결과물을 운영부서에서 이관하여 배포/운영

정확하게 누가 어떤문제를 해결해야하는지 정의 되지 않는 상황 발생-협업없어서!!(Fingerprintness )

DevOps 이해

고객이 원하는 요구에 대해 얼마나 빠르게 피드백을 받아들이고 받아들이고 바꿀수 있는지

예시)

만약 티켓팅 사이트 만드는 회사다 그러면
-> 애매자가 몰리는것에 의해서 어쩔수 없이 서비스 다운되더라도 복구 시간을 줄이자!

DevOps 관련 용어

1-0. 마이크로 서비스 아키텍쳐 -

서비스를 잘게 나눠서 서비스를 전체적으로 제공하는데 있어 조금 더 쉽고 유용하게 제공 
-> 이걸 적용하기 위해 쿠버네티스를 쓴다!

1-1. 지속적인 통합(CI, Continious integrated)

소프트웨어 모듈을 바로바로 통합하는 방법(서버,가상머신,데이터베이스등의 시스템에 포함된 리소스들)

1-3. 지속적인 전달(CD, Continuous Deployment)

소프트웨어 모듈을 바로바로 고객에게 전달하는방법

1-4. 코드형 인프라 관리(IaC, Infrastructure as a code)

코드를 이용하여 인프라 관리를 일괄적으로 관리 -요새 자주 쓰임!!(Ansible)
    모두 동일하게 코드를 작성할 수 있어서 복제해서 사용하기도 편함
    애자일 방식을 자주 사용함!! -> 이것도 하나의 방법론

네트워크의 이해 및 송수신 방법(용어 정리)

네트워크의 이해

네트워크란 대화할 사람끼리 서로 연결되있는거
객체간의 연결관계를 의미

컴퓨터 네트워크 - 컴퓨터간의 연결 관계

MAC을 찾고 IP Address로 들어간뒤 프로그램의 PORT번호를 찾아 데이터를 전송한다!!

컴퓨터간 통신을 수행하기 위해 상호간에 연결한것을 의미한다!!
컴퓨터간 통신은 대부분 데이터를 주고 받는 경우를 의미

간단하게 요약한 네트워크 통신을 위한 구성요소

	컴퓨터 식별 방법 - IP address 
	컴퓨터내에서 동작하는 프로그램식별방법 - 정확하게 어떤 프로그램에게 보낼것인지 -> PORT번호
	컴퓨터간 통신을 위한 약속 - 프로토콜
	컴퓨터간 네트워크 내에서 연결 방법 - MAC Address를 사용!
    

용어 정리

IP Address - 네트워크에 연결된 각 컴퓨터들의 식별 번호, IPv4-4byte(1바이트가 8비트)
스마트폰도 IPAdress가 부여되어있다!!!!

PORT -
소켓을 쓰느냐(우리가 정할수도 있고 임의로 정해질수도 잇다) 
웹서비스를 쓰냐(이때는 포트번호 고정)

Protocol - 네트워크내에서 어떻게 통신하자는 약속!
LAN-LocalArea Network
WAN-WideArea Network

NIC - Network interface card - 물리적으로 네트워크에 연결하기 위한 H/W
	유선네트워크 (ethernet) - 일반 데스크탑 PC
	무선네트워크 - 와이파이, 스마트폰 통신등
    
MAC address - NIC에 부여되는 고유한 번호! 

IP Address와는 layer가 다르다! 맥은 데이터링크 계층, IP는 3계층인 네트워크 계층임
네트워크 주소인 mac을 찾아서 들어간뒤 IP링크로 들어가고 PORT로 들어간다 

데이터 전송측

  1. 통신할 데이터를 프로토콜에 맞추어 생성
  2. 데이터를 수시할 컴퓨터의 IP address결정
  3. 데이터를 수신할 컴퓨터의 프로그램에 대한 Port번호 결정
  4. 연결된 네트워크에 전송할 데이터 전송

데이터 전달측

  1. 전송할 데이터를 수신할 컴퓨터 검색(MAC) - 이게 꼭 필요!!

데이터 수신 측

  1. 전송된 데이터가 나에게 전송된 데이터인지 IP Address확인
  2. 데이터가 전송될 port번호의 프로그램에 데이터 전달
  3. 수신한 프로그램에서는 프로토콜에 맞추어 데이터 해석

오늘 한 질문 모음 및 재밋는 내용들

(8비트로 256가지 경우의 수를 나타낼수있다
영어는 이 안에서 전부 표현 하고도 남아서 영어 한글자가 1바이트임,
한글은 경우의 수가 더 많아서 2바이트가 필요 )


cmd에 ipconfig입력해보면 윈도우 환경에서 네트워크 정보를 알 수가 있다

질문과 답변

Q: 코드형인프라 언어가 따로 있나요?

A: 프레임워크가 따로잇다!! -> Ansible!!이거 들어봤는데 이런 용도였네

Q: MAC을 미리 알고 그 다음 IP를 거치고 PORT를 가진 프로그램에 데이터를 전송하는 건가요?

A: 맞음 이거 전에 프로토콜까지 정해놓으면 완벽!

셀프 피드백

오늘은 간단한 계산기 만드는 실습이 있어서 생각보다 진도를 많이 나가지는 않아 어제보다는 정리할게 적긴하다.

사이트들 들어가서 찾아보니까 경력 없이 바로 엔지니어로 취업은 현실적으로 어렵네ㅜ
백엔드 개발자를 3년을 하고 -> 엔지니어로 경력을 전환하는것이 안정적인 엔지니어 취업방법이던데 한번 고민해봐야겠다.

8월달은 일단 goorm KDT에 있는 강의들을 듣고 복습하며 지식들을 흡수하자!!

profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글