728x90
반응형
개발언어
- 컴파일 언어 : 실행파일 → 컴파일 / OS 종속적, 수행속도 빠름
- 인터프리터 언어 : 소스 → 실행 (브라우저가 번역) / HTML / OS독립적, 번역해야 하니까 수행속도 느림
- 자바는 컴파일, 인터프리터 기반 둘 다 - 자바는 플랫폼/DBMS/WAS에 독립적 / 수행속도도 빨라
- 소스 코드 작성 HELLO.java (javac)
- HELLO.class (byte code) - 중간단계 기계어 - 번역기(JVM)에 의해서 번역
- 실행 HELLO →
JDK - 개발 키트
JVM - 번역기 역할
Api - jar 형식으로 클래스 묶음 제공
JRE - JVM + API : 자바 실행 환경
- HTML5 - 표준화한 것
- static / dynamic contents
CGI
- CGI : common gateway interface (공용 게이트웨이 인터페이스)
- 데이터를 가공처리해주는 것들
- 서버에서 1:1 요청 진행해줌 → 서버/메모리 과부하, 응답속도 느려짐
- c, php, asp 언어들 - 서버나 os에 종속적이야
- → 서버가 클라에게 데이터 전달 - 동적인 콘텐츠를 보여줄 수 있게 해줌
- 확장 CGI - 자바 진영에서 **servlet/JSP**
- 자바 기반의 동적인 콘텐츠 제공하는 기술 - 플랫폼에 독립적 (CGI의 한계 개선)
- 스레드 기반 in-processing - 멀티스레드 : 응답시간 빨라지고, 서버 과부하 감소
- 기존에 있었던 문제 해결
💡 요약
동적인 콘텐츠 제공해주는 기술이 시쥐아이다,
기존 시쥐아이는 프로세스 단위로 요청이 이뤄져서 되게 시간이 오래 걸리고 서버 과부하도 오져
그래서 자바 진영에서는 자바 기반의 서블릿과 제이에스피를 통해 자바 특징인 플랫폼 독립적과 스레드 기반 제공해서 서버 과부하, 응답속도 빨라짐. 즉, 기존 시쥐아이보다 부가적인 기능 제공해서, 확장 시쥐아이라고 부른다.
즉, 서블릿과 제이에스피는 동적/정적 콘텐츠 제공해주는 자바의 자식들
- **웹 서버** : 웹 서버(Web Server)는 클라이언트로부터 HTTP 요청을 받아들이고, 해당 요청에 대한 정적인 콘텐츠(HTML 파일, 이미지, CSS 파일 등)를 제공하거나, 동적인 콘텐츠 생성을 위해 어플리케이션 서버에 요청을 전달하는 소프트웨어
- **웹 컨테이너** : 서블릿과 제이에스피의 실행환경, 메모리 관리
- 즉, 자바 기반의 동적인 콘텐츠 제공하려면 이 웹 컨테이너도 필요하다.
- TOMCAT 10 - 웹 서버와 웹 컨테이너의 역할을 둘 다 할 수 있는 것
- b.jsp(원래 자바는 실행파일 자체에 확장명이 필요없음, 그러나 클래스 파일이면 웹 서버가 웹 컨테이너로 넘겨) 라는 요청이 들어오면, 서버에서 웹 컨테이너로 넘겨서 처리하고, 다시 웹 서버에게 결과를 넘기면, 응답을 진행
- ajax - 비동기 - js & xml 기반의 비동기 통신을 도와주는 놈
- 웹 페이지를 새로 고치지 않고도 서버와 통신하여 데이터를 가져오거나 전송할 수 있게 함
- 응답 결과를 비동기 통신으로 받아~
- 결과 데이터로 보내주기 위한 응답 데이터 형식 - 텍스트(JSON), html
- web transaction : 웹 요청 ~ 응답까지
- 스프링부트 - 스프링 프레임워크에 환경설정을 편리하게 해주는 놈
- REST API / Open API
- DBMS : 데이터 저장 및 관리
- JDBC API :
- MyBatis 프레임워크 : 자바와 디비 연결하는 거 너네가 하는데, 대신 단일인지, 다중컬럼인지, 파라미터, 반환타입, 쿼리문 작성해줌 내가 알아서 해줄게 / SQL 매핑 프레임워크
728x90
반응형
'⭐️ 개발 > JAVA' 카테고리의 다른 글
[JAVA] 기본문법 - 변수, 형변환, 배열 (0) | 2024.01.15 |
---|---|
[JAVA] Maven, pom.xml (0) | 2024.01.13 |
[개발] JAVA 기초 (0) | 2024.01.10 |