[네이버클라우드] AIaaS 개발자 과정/웹 프로그래밍

[네이버클라우드캠프] 2023.5.22 웹 프로그래밍 - 소프트웨어

_꼬마돌 2023. 5. 22. 14:19
반응형

프로그래밍 개론

소프트웨어

소프트웨어란?
컴퓨터 시스템에서 실행되는 프로그램이나 애플리케이션의 집합.
쉽게 말해, 소프트웨어는 컴퓨터에 명령을 내리고 작업을 수행하는 데 사용되는 명령어와 데이터의 모음이다. 

 - System S/W (시스템 소프트웨어)
컴퓨터의 하드웨어와 다른 소프트웨어 간의 상호 작용을 관리하고, 운영체제, 디바이스 드라이버, 컴파일러 등이 해당됨. 

 - Application S/W (응용 소프트웨어)
응용 소프트웨어는 사용자의 요구에 따라 특정 작업을 수행하는 애플리케이션으로, 워드 프로세서, 그래픽 디자인 프로그램, 게임 등이 응용 소프트웨어의 대표적인 예이다. 

 

Application S/W

Application S/W 는 Standalone(독립형)과 Client / Server 로 나뉠 수 있다. 

 - Standalone 
독립적으로 작동하는 소프트웨어. 
사용자의 로컬 컴퓨터나 장치에 설치되어 독립적으로 실행되며, 외부 서버와의 네트워크 연결이 필요하지 않다. 
모든 기능을 로컬에서 처리하고 데이터를 로컬에 저장한다.
워드 프로세서, 포토샵, Visual Studio 등이 독립형 소프트웨어에 포함된다. 

 - Client / Server
여러 대의 클라이언트가 중앙 서버와 통신하여 데이터를 요청하고 처리하는 소프트웨어.
네트워크를 통해 데이터베이스 서버, 웹 서버, 파일 서버 등과 상호작용한다. 클라이언트는 사용자 인터페이스를 제공하고, 서버는 데이터 처리와 저장을 담담한다.
웹 애플리케이션, 이메일 클라이언트, 데이터베이스 클라이언트 등이 포함된다. 

 

Web Application

Web Application
웹 브라우저를 통해 실행되고 웹 서버에서 동작하는 소프트웨어 어플리케이션이다. Client / Server 모델을 기반으로 하며, 사용자는 웹 브라우저를 통해 어플리케이션에 접속하여 상호작용을 할 수 있다. 
웹 어플리케이션은 다양한 기능을 제공할 수 있으며, 온라인 상점, 소셜 미디어 플랫폼, 웹 메일, 뉴스 사이트, 인터넷 뱅킹 등 다양한 종류가 있다. 

Web Server
클라이언트(웹 브라우저)의 요청에 응답하여 웹 페이지와 리소스를 전송하는 컴퓨터 프로그램.
웹 서버는 클라이언트로부터 HTTP 요청을 받아들이고, 요청에 따른 적절한 응답을 생성하여 클라이언트에게 전송한다. 웹서버는 보통 정적인 컨텐츠 (HTML, CSS, 이미지 파일 등) 를 제공하는 역할을 한다. 

Web Browser
사용자가 웹 페이지를 표시하고 탐색하는 데 사용되는 응용 프로그램. 
웹 브라우저는 사용자가 입력한 URL 주소로 웹 서버에 요청을 보내고, 서버로부터 받은 HTML, CSS, JavaScript 등의 리소스를 해석하여 화면에 표시한다. 웹 브라우저는 사용자와 웹 서버 간의 인터페이스 역할을 수행하며, 다양한 기능 확장성을 제공한다. 

 

Web Application + Mobile

웹 서버와 모바일 어플리케이션의 관계
웹 서버와 모바일 어플리케이션은 서로 다른 역할을 가지며, 서로 협력하여 사용자에게 원활한 경험을 제공한다. 

• 웹 서버

클라이언트 (웹 브라우저, 모바일 앱)의 요청에 대해 응답하는 컴퓨터 프로그램.
클라이언트의 요청을 받아들여 정적인 컨텐츠(HTML, CSS, 이미지 파일 등) 또는 동적인 컨텐츠(서버 측에서 생성되는 데이터)를 생성하여 클라이언트에게 전송한다. 웹 서버는 웹 어플리케이션의 핵심 구성 요소 중 하나이며, 웹 어플리케이션의 배포와 실행을 담당한다. 

• 모바일 어플리케이션
모바일 기기(스마트폰 또는 태블릿)에서 실행되는 소프트웨어 어플리케이션.
모바일 운영 제체에 특화된 어플리케이션으로, 사용자가 모바일 기기에서 편리하게 사용할 수 있도록 최적화되어 있다. 사용자에게 풍부한 기능과 접근성을 제공하기 위해 모바일 운영 체제와 상호작용하며, 네트워크 연결을 통해 웹 서버와 데이터를 주고받을 수 있다. 

IOS 플랫폼에서 실행되는 앱은 Swift 또는 Objective-C로 개발됨.
Android 플랫폼에서 실행되는 앱은 Java 또는 Kotlin으로 개발됨.

 

Application 실행

Application 실행 과정

1. High-Level Language (고수준 언어)

프로그램은 일반적으로 고수준 언어(C, Java, Python 등)로 작정된다. 고수준 언어는 사람이 이해하기 쉽고 추상화된 형태의 코드로 작성되며, 프로그래머가 원하는 작업을 표현할 수 있다. 

2. 컴파일러 또는 인터프리터
고수준 언어로 작성된 프로그램은 컴파일러 또는 인터프리터를 통해 실행 가능한 형태로 변환된다. 컴파일러는 소스 코드 전체를 기게어로 변환하는 과정을 거치고, 인터프리터는 소스 코드를 한 줄씩 해석하여 실행한다. 

3. Assembly Language (어셈블리어)
컴파일러 또는 인터프리터에 의해 변환된 고수준 언어의 프로그램은 어셈블리어로 변환된다. 어셈블리어는 컴퓨터 아키텍쳐에 특화된 저수준 언어로, 기계어와 1:1 대응되는 명령어들로 구성된다. 

4. 어셈블리어로 변환된 프로그램 실행 파일
어셈블리어로 변환된 프로그램은 실행 파일로 저장된다. 실행 파일은 보통 바이너리 형식으로 저장되며, 컴퓨터가 직접 실행할 수 있는 형태의 기계어 코드가 포함되어 있다. 

5. Instruction Set (명령어 집합)
실행 파일에 포함된 기계어 코드는 해당 컴퓨터 아키텍쳐의 명령어 집합에 기반하여 작성된다. 명령어 집합은 컴퓨터가 수행할 수 있는 기본적인 명령어들의 집합을 의미하며, 이러한 명령어들은 CPU가 이해하고 실행할 수 있다. 

6. CPU에 의한 실행
실행 파일이 로드되고 CPU에 의해 실행된다. CPU는 명령어를 가져와 해석하고, 해당 명령어에 맞게 연산을 수행하거나 메모리에 접근하여 데이터를 처리한다. 이 과정을 반복하여 프로그램은 CPU에 의해 한 단계식 실행되며, 프로그램의 목적에 맞게 동작한다. 

반응형