3. 웹 어플리케이션에 대하여
웹 어플리케이션에 대하여
3. 웹 어플리케이션에 대하여
web Application과 기술
web server ⇒(실행)⇒ web application ⇒(데이터 저장)⇒ DBMS
web server
- Tomcat 등 제품을 사용함
web App
- Java App : Java + servlet/JSP+Spring Framework- Spring Framework + Tomcat 서버 == Spring Boot (제품)
→ 즉, SpringF/W와 SpringBoot는 서버가 추가되어있냐 안 되어있냐의 차이이다.
Spring Boot를 해봤으면서 SpringF/W를 안해봤다는건 어불성설 - HTML, CSS, JavaScript → jQuery + Bootstrap + React
- SQL
- XML
- Properties file
- …등
DBMS
- 데이터를 저장하고 조회하는 일을 함
- Mysql 등 제품을 설치하여 사용
개발 보조도구
- Gradle : 빌드 도구
- Docker, Git, Jenkins : Ops도구(운영(배포)를 도와주는 도구)
Application 개발 및 실행 절차
- 명령문 (컴퓨터가 해야 할 일(계획, 절차)을 명시 = Computer Program)(자연어) → VSCode로 작성(File ex. .java, .C …등)
- S/W와 Computer Program의 차이?
S/W : Program 및 이를 실행 할 수 있는 모든 프로그램을 다 갖춘 것을 SoftWare라고 함 Program : 컴퓨터가 해야할 일을 명시해둔 파일 그렇기에 엄밀히 따지자면 S/W의 범주 안에 Program이 담겨있는 형태이다 - ex.
소프트웨어: 도서관 - 여러 책(프로그램)과 그에 필요한 인프라(데이터 및 문서)를 포함.
프로그램: 단일 책 - 특정 주제를 다루는 한 권의 책.
- S/W와 Computer Program의 차이?
- ⇒ 변환(compile < compiler) ⇒
- 실행할 수 있는 코드(cpu가 이해하는 명령어 =. 기계어) ⇒(실행)⇒ OS(Window, Linux, macOS)
CPU, 기계어, OS의 상관 관계
왜 OS가 다르면 인식하지 못하나?
ex. hello.c ⇒(컴파일)⇒ 기계어(=CPU에서 인식하는 명령코드) ⇒ Windows OS / Linux OS / mac OS ⇒ Intel CPU
- OS마다 실행 파일 양식이 다르기 때문에. (ex. 공통된 이력서로 삼성, LG, SK에 넣으면 양식이 달라 거부됨)
- Windows : PE, Linux : ELF, macOS : mach-O 의 실행 파일 형식을 가지고있다.
같은 OS에 CPU가 다른 경우는?
ex. hello.c ⇒(컴파일)⇒ 기계어 ⇒ Windows OS ⇒ IntelCPU / ARMCPU 라면
- 기계어 == CPU에서 인식하는 명령코드이다.
- 이때 CPU가 마다 기계어 자체가 다르게 컴파일 되기 때문에 동일한 OS를 가지더라도 파일 실행이 불가능하다.
짤지식
- 리버스 엔지니어링 : 컴파일한 (인간의 언어 > 기계언어) 것을 다시 인간의 언어로 최적화하여 번역
- unix의 경우 컴파일러를 내장하고 있음
Application 개발 방식
컴파일 방식
[.C(source)] ⇒(compile)⇒ [기계어] ⇒(실행)⇒ [OS]
인터프리트 방식
[.js(source)] ⇒(load)⇒ [JavaScript Interpreter(= node)] ⇒(실행)⇒ [OS]
JavaScript Interpreter = engine, runtime, virtual, player, viewer로 불린다.
JavaScript 엔진에 대해 짧게
Chrom ← V8 JavaScript 엔진, Blink(HTML, CSS 렌더링)엔진
- Blink는 WebKit(HTML, CSS 렌더링)엔진을 가져와 개선해서 만든 오픈 소스 엔진이다 WebKit 엔진은 Safari에 있던 엔진이다.
V8 JavaScript 엔진 + alpha = node.js → —.js 실행
하이브리드 방식 = 컴파일 + 인터프리트
[.java] ⇒(compile)⇒ [.class] ⇒(load)⇒ [Bytecode Interpreter] ⇒(실행)⇒ [OS]
.class = 가상의 기계어 = 기계어와 유사 = 중간언어 → Bytecode = P-code
Bytecode Interpreter = Java Virtual Machine(JVM)
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.