[TIL-22] 소프트웨어 이해

ljkgb·2021년 2월 20일
0

TIL

목록 보기
7/13
post-thumbnail

오잉 피자먹고 낮잠밖에 안잤는데 벌써 7시라구요!??! 저녁 시간은 풀 공부시간으로 보내야겠담🤣
오늘은 가볍게 소프트웨어에 대해 코드잇으로 기초강의를 듣고 파이썬공부해야지!
우째 공부하면 할수록 공부해야할게 많아지는 것 같지만 뭔가 걱정되면서도 설레는건 변탠가.... 핡
내 머리가 스펀지처럼 쫘악~~ 빨아들이고 이해하면 좋을텐데!

공부한 부분

컴파일러와 인터프리터의 차이
운영체제에 대한 기본적인 이해
플랫폼의 파편화와 크로스 플랫폼
네이티브 애플리케이션과 웹 애플리케이션

TIL

1. 컴파일러(Compiler)와 인터프리터(Interpreter)

구분컴파일러인터프리터
특징코드 수정시 컴파일을 계속해서 해야함코드 수정하고 즉시 실행 가능
속도빠름느림
보안유출가능성 적음유출가능성 있음
파일용량작음
프로그래밍 언어저수준 언어(C, C++등)고수준 언어(Python, Ruby등)

2. 플래폼 파편화
1) 플랫폼: 프로그램이 실행되는 하드웨어, 소프트웨어 환경
(어플리케이션은 운영체제 위에서 실행되니 : 운영체제 = 어플리케이션의 플랫폼,
운영체제는 하드웨어 위에서 실행되니 : 하드웨어 = 운영체제의 플랫폼)

2) 플랫폼 의존성: 프로그램은 각 플랫폼에 맞게 제작되어야 실행가능하기 때문에 플랫폼에 대한 의존성이 높아짐 -> 플랫폼 파편화 유발

3) 크로스 플랫폼: OS, CPU등의 상관없이 동일하게 실행할 수 있는 환경 -> 플랫폼 파편화 해결

  • 가상의 컴퓨터를 만들어 동일한 컴퓨터에서 실행하는 것처럼 이 컴퓨터에 맞는 프로그램을 만들면 됨
  • 기기와 프로그램을 연결해주는 크로스 플랫폼을 시도한 언어가 Java이고 이를 이용한 가상의 컴퓨터가 JVM, 때문에 Java는 다양한 플랫폼에 이식성이 좋고 범용적 사용이 가능하여 다양한 산업분야에 활용 됨
  • 웹: 소프트웨어의 규격을 정해 모든 환경에서 사용할수 있도록 함(웹 규격에 맞게 페이지를 코딩하고 웹 브라우저를 웹 규격이 맞게 제작)
  • 반응형 웹 디자인: 기기에 상관없이 최적화된 모습을 보여주며 크로스 플랫폼이 가능하도록 한 웹 구현 방법
  • 국제 표준화 기구(ISO)에 등록된 웹 표준이 있음
  • 브라우저의 종류와 버전에 따라 웹 표준의 지원 정도가 다름

3. 네이티브 애플리케이션과 웹 애플리케이션
1) 웹 애플리케이션: 웹을 활용해 애플리케이션처럼 동작

  • 브라우져를 거쳐서 OS실행
  • 장점: 웹 페이지 처럼 주소만 입력하면 바로 접근 가능 = 실시간 수정사항 반영 가능 = 접근성👍
  • 단점: 브라우저를 실행해야하니 인터넷 연결 필수

2) 네이티브 애플리케이션: 기기의 OS에서 바로 실행할 수 있는 애플리케이션

  • 브라우저도 하나의 네이티브 애플리케이션이라고 할 수 있음
  • 장점: OS와 기기의 내장된 기능을 쉽게 활용가능(인터넷 없이 실행 가능)
  • 단점: '설치', '배포'와 같은 과정 필수 -> 기능 수정시 변경된 버전으로 어플 마켓에 올리면 사용자는 새로운 버전으로 업데이트를 해줘야하는 번거로움

3) 웹, 앱 어플리케이션 패턴의 종류

  • 싱글페이지(Single-page, SPA, 스파): 서버로부터 완전한 새로운 페이지를 불러오지 않고 현재의 페이지를 동적으로 다시 작성함으로써 사용자와 소통하는 웹 애플리케이션이나 웹사이트

  • 하이브리드(Hybrid): 네이티브 앱처럽 하드웨어의 기능을 사용하지만 배포 후에도 웹 연결시 수정과 보완이 가능

  • 프로그레시브(Progressive, PWA): 네이티브 앱과 웹의 단점 개선

    *참고: 위키백과
    https://post.naver.com/viewer/postView.nhn?volumeNo=6642508&memberNo=33802574

profile
🐹

0개의 댓글