Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 디자인패턴
- 99클럽
- 파이썬
- 1주일회고
- Spring multimodule
- 빈 조회 2개 이상
- DesignPattern
- 인프콘 2024
- 디자인 패턴
- spring batch 5.0
- 프로그래머스 이중우선순위큐
- Python
- 개발자 취업
- TiL
- 빈 충돌
- 단기개발자코스
- jwt
- infcon 2024
- 항해99
- 구글 OAuth login
- 커스텀 헤더
- JavaScript
- @FeignClient
- 전략패턴 #StrategyPattern #디자인패턴
- KPT회고
- 코딩테스트 준비
- 취업리부트코스
- 개발자부트캠프추천
- 프로그래머스
- jwttoken
Archives
- Today
- Total
m1ndy5's coding blog
컴퓨팅 기본 개념 본문
컴퓨터 프로그램이란?
- 특정 작업을 수행하기 위해 컴퓨터에서 실행되는 일련의 명령
- 프로그래밍 언어를 사용해 코드로 작성됨
- 일반적으로 소프트웨어라고 불림
애플리케이션 유형
- 웹 애플리케이션 : 웹 서버 또는 애플리케이션 서버에 실행되며 웹 브라우저에서 접근
- 모바일 앱 : 모바일 기기에서 접근
- 데스크톱 애플리케이션 : 데스크톱 컴퓨터에서 실행 및 접근
- IoT 애플리케이션 : 어플라이언스 또는 인터넷이 연결된 기기에서 실행 및 접근
컴퓨터 내 구성요소
하드웨어
- Main Board : 하드웨어의 모든 핵심 구성 요소를 연결시켜주는 보드
- CPU(중앙 처리 장치) : 컴퓨터의 두뇌, 소프트웨어에서 받은 연산을 실행, 코어가 많을 수록 성능 업!!, 프로세서라고도 불림
- RAM : CPU가 실행할 명령 및 데이터 저장, but 휘발성(전원 끄면 날라감), 신속 액세스 가능
- Storage Drive : HDD, SSD가 이에 해당, 영구적 저장, 파일, 앱 데이터, 문서 저장
- Network Card : 네트워크 연결 담당, 유선 무선 연결 기능, 네트워크 어댑터라고도 불림
소프트웨어
- OS(운영체제) : 하드웨어 및 소프트웨어 관리 ex) Windows, Linux, maxOS, iOS, Android
- Application : 운영체제를 제외한 나머지 소프트웨어/프로그램, 응용 프로그램이라고도 불림
서버란?
- 다른 컴퓨터에 데이터 또는 서비스를 제공하는 하나의 컴퓨터
- 클라이언트로부터 받은 요청에 대한 응답을 네트워크를 통해 전달
- 일반 데스크톱 하드웨어보다 더 많은 메모리와 CPU, 이중 전원 공급 장치 및 네트워크 인터페이스 가지고 있음
- 이중 전원 공급 장치는 전원이 꺼져서 서버가 멈추는 것을 방지하기 위함
- ex) 웹 서버, 데이터베이스 서버, 메일 서버
웹의 3요소
- HTTP : 인터넷 통신망에서 리소스를 요청하고 응답할 때 사용되는 통신규약(프로토콜)
- URI(url/urn) : 웹 상에 존재하는 리소스에 접근하기 위한 주소(다른 리소스와 겹치면 안됨)
- HTML : 연결 가능한 텍스트 링크를 통해 웹 상의 모든 리소스를 표기
데이터 센터
- 컴퓨터 및 네트워크 장비 전체를 관리
- 서버, 스토리지 장치, 네트워크 장치, 냉각 장비, 무정전 전원 공급 장치가 있음
온프레미스 vs 클라우드
온프레미스
- 온프레미스는 사용자가 데이터 센터를 자체적으로 소유하는 것
- 자체 시설 내의 모든 하드웨어, 소프트웨어를 직접 구입, 설치, 구성 및 관리
- 유지 보수할 직원도 있어야 함
- 자체적 데이터 센터 리소스 사용
클라우드
- 클라우드 서비스 공급자(CSP)가 데이터 센터 보유
- CSP가 하드웨어, 소프트웨어 구입, 설치, 구성 및 관리
- CSP가 유지 보수
- 사용자는 리소스를 사용하기 위해 CSP한테 비용을 지불
가상 머신이란?
- 가상 머신은 소프트웨어 기반의 컴퓨터
- 물리적인 컴퓨터는 Host라고 불림
- 물리적인 컴퓨터의 리소스(CPU, 메모리, 디스크, 네트워크)에 대한 엑세스를 VM에 제공하는 하이퍼바이저가 필요함
- VM은 자체 OS를 실행(ex. 내 로컬 컴퓨터 윈도우 but VM OS linux)
- 하나의 host에 다수 VM 구축 가능
- 하이퍼바이저 위에 설치 된 VM의 OS를 Guest Os라고 한다.
- VM은 클라우드 내 컴퓨팅의 기본 단위
VM의 장점
- 비용 절감 : 하나의 물리적 장치에서 다수의 VM을 생성가능함으로 새 컴퓨터 구입할 돈 아낌
- 효율성 : 다수의 vm을 사용할 수 있어 활용도가 좋음
- 재사용성 및 휴대성 : 물리적 host에서 vm이미지를 복사하거나 이동시켜 컴퓨터 환경 복제 가능
VM vs Container
VM
- Host OS가 있고 하나의 VM은 각자의 Guest OS를 가짐
- 그렇기 때문에 컨테이너보다 무거움
Container
- OS는 기존 Host OS를 사용
- 컨테이너를 가상화 시켜주는 소프트웨어 사용(ex. docker)
- 서비스가 작동하기에 필요한 설정들을 container에 올려서 실행
- 자원 격리 기술을 이용하여 개발환경에 대한 걱정없이 배포 가능
- Os를 따로 갖지 않기 때문에 VM보단 가벼움
소프트웨어 개발 과정
1. 계획
- 프로젝트 목표 수립 및 파악 -> 프로젝트 계획서가 만들어짐
- 프로젝트 구현의 경제적, 운영적, 기술적 측면 등 다양한 요소들을 고려
2. 분석
- 제품의 요구 사항 명확하게 정의해 문서로 작성
3. 설계
- 자세한 기능 설명과 사용자 인터페이스 설명과 같은 정보를 포함한 설계 사양서를 보고 여러가지 방법을 수립 및 제안
4. 개발
- 실제 코드 작성
- 코드에 관한 간단한 테스트 실행
5. 테스트
- 개발된 코드의 전체적인 테스트를 진행함
- 대표적으로 단위 테스트, 통합 테스트, 보안 테스트, 성능 테스트 가 있음
6. 구현
- 배포와 같은 말
- 애플리케이션이 출시되고 사용됨
7. 유지 관리
- 지속적으로 모니터링
- 결함 및 오류 파악, 환경 변화, 요구사항 변경, 오류 발생 방지 등등 여러가지 관리를 함
개발 팀 구성
프로젝트 관리자(PM)
- 프로젝트 계획 수립 담당
- 팀을 이끌며 관리, 팀원들에게 업무 할당
애널리스트(BA)
- 각 프로젝트의 요구 사항 수집 및 정의 그리고 정리
품질 보증(QA)
- 테스트 목록 작성 및 관리 그리고 테스트 실행
- 문제를 복제하는 단계를 문서화
소프트웨어 개발자
- 애널리스트가 제공하는 사양서에 따라 코드 작성
- 초기 테스트 실행
- 코드의 유지보수
데이터베이스 관리자(DBA)
- 데이터 유지 관리, 보안, 성능, 최적화 담당
- 데이터 백업!!! 아주 중요
'클라우드 with AWS > AWS' 카테고리의 다른 글
AWS 대표 서비스 (0) | 2023.02.20 |
---|---|
AWS 인프라(매우 중요!!) (1) | 2023.02.19 |
AWS(Amazon Web Service)에 대해 & AWS 요금제 (0) | 2023.02.19 |
클라우드 컴퓨팅 장점 (0) | 2023.02.19 |
클라우드 컴퓨팅 (0) | 2023.02.18 |