23일차 학습내용
웹과 JSP
JSP : html에 자바코드를 적게 해주는 기술
백단 개발자 : 문서를 서버에서 동적으로 만드는 기술 : 데이터 서비스를 담당 : 웹 개발하기 위해서 다양한 서버 스택 중 하나를 이용 백단 개발자 구분 : 사용 스택으로~ 운영체제 플랫폼 실행환경 - 웹서버에 올리고 - 데이터페이스 DB - 개발언어(페이지 기술) LAMP스택 : Linux운영체제에 - Apache - DB는 MySQL- PHP로 개발하는 사람들 WISA스택 : Windows에 - IIS - DB MS-SQL - ASP 또는 ASP.net으로 개발 Java스택 : Java 플랫폼에 - WAS (톰캣같은 웹서버겸 어플리케이션 서버) - Oracle - JSP를 개발 자바스크립트로 서버스택을 구현할 수 있음 MEAN스택 : NodeJS -Express - MongoDB - Angular 기본 언어가 javascript이기 때문에 서버스택과 클라이언트 스택을 다 담당한다~~라고 해서 풀스택이라고 말하기도 함. 자바스택이 기업에서 많이 쓰이고 있음 자바 실행환경 JVM 웹서버겸 어플리케이션 서버 WAS 데이터베이스 DBMS 서버스택 자바를 이용해서 개발하려면 [[ JDK + (Servlet + JSP)+ JDBC ]] : Java WEB API 를 사용해서 웹 서비스 만들게 됨. 여기서 Java WEB API 맨땅에 만들기 -> Spring 쉽게, 코드 양 줄여서 개발 JDBC를 도와줄 수 있는 라이브러리 중 하나가 ORM (중 하이버네이트)/ JDBC라이브러리 중에는 MyBatis 를 쓰거나 JSP개발하다보면 화면 중복되는 부분 분리해서 집중할 수 있도록 하는 라이브러리가 Tiles 리눅스에 서비스 올려야 하니까 리눅스 조금 알아야 하고 Maven 빌드툴 Git 형성관리툴 버전관리툴 |
0. 세팅 - 프로젝트 만들기 전에
1) 준비물 : JDK(11버전 중요 + 환경변수), 이클립스, 톰캣 9(내pc를 서버pc로 만들어줌), DBMS, SQLDeveloper(실행확인 테스트), 구글 크롬 브라우저
https://tomcat.apache.org
[ 톰캣 다운, 설치 ]
톰캣 사이트 > Downlad Tomcat 9 > zip 다운
> 다운받은 파일(경로찾기 편한 위치로 C:\server(임의폴더 안에 해제해야 권한문제없음)) 이동
> 압축해제하면 끝 ///(jdk설치 중 자바 홈 환경변수 설정 해놔야 하고 (1일차 강의_ https://jobreview.tistory.com/3) / 다른 톰캣이 동작중인 경우 포트 사용되고 있다면 이클립스같이 ... 포트번호 충돌나지 않게 충돌날만한 프로그램을 꺼줘야함)
❗❗톰캣 설치 확인❗❗ : 브라우저에서 localhost:8080 주소창 요청하면
톰캣 실행 전 |
톰캣 실행 후 |
톰캣 실행 다른방법 빈까지 들어와서 카탈리나.bat 런 (프로젝트에서는 이렇게 실행하지 않음. )
포트 충돌 확인
netstat -a : 넷상태 전체 확인 명령
포트번호 쓰고있는 목록이 보임 8080 쓰고있는지 확인
포트죽이기
taskkill /f /pid 3440 : 이런식
[ 이클립스 세팅 ] - 이클립스 집파일을 새로운 폴더안에 넣어서 다시 압축해제~~ 새로운 이클립스가 생긴거라 세팅도 다시
압축해제 > JavaEE 모드로 사용 (설치시 처음 되어있는대로. 우측 상단에 커피콩모양) > .jsp 로 파일 만들 수 있게 됨
> Encoding UTF-8
* ISO-8859-1 한글지원 표준인코딩
* KSC5607
* MS949 / CP949 : MS사
* EUC-KR : ANSI 확장
* ANSI
1. 웹
// 인터넷 전세계 네트워크
// 웹은 인터넷기반의 서비스 World Wide Web, FTP, 원격, 펠렛? 중 하나. URL, HTTP, HTML 주소, 통신규칙, 내용
1) 웹 동작원리
클라이언트 / 서버 방식으로 동작.
클라이언트 : 사용자(요청자), 웹브라우저
웹서버 : 인터넷기반, 정보나 서비스 제공자(컴퓨터 시스템) (아파치, 제우스)
동작방식 :
클라이언트 ---- 웹페이지 요청 request ----> 웹서버
(브라우저) <--- 결과물로 응답 response ---- (ex. 톰캣)
2) 정적 웹페이지 / 동적 웹페이지
정적 웹페이지 : 저장된 텍스트파일 그대로 \보는 것
html 같은 웹언어로 작성
동적 웹페이지 : 저장된 내용을 가공처리해서 보는 것
PHP, ASP, JSP 같은 웹언어로 작성
3) 웹 주소
URL : http:// ip : port / file경로
http://192.168.219.141:8080/jsp/main.jsp : 할당받은 ip주소 = 내pc
http://127.0.0.1:8080/jsp/main.jsp : lookback 주소 = 내pc
http://localhost:8080/jsp/main.jsp : localhost는 자기자신을 가르킴 = 내pc
https://sports.news.naver.com/wfootball/vod/index?id=915936&category=epl&listType=total
Domain --> it주소 어려우니까 문자로 주소 대치 DNS
4) 웹 서버 프로그래밍과 JSP
웹 서버 프로그래밍 : 웹서버가 브라우저에 응답으로 전송할 데이터를
생성해주는 프로그램을 작성하는 것.
웹개발을 이용한 서버 프로그램을 만들어서 기존의 클라이언트프로그램과 서버프로그램 CS 프로그램 , 웹에서는 클라이언트 프로그램 필요없어 , 그냥 브라우저로 보여주면 끝나는 거니까. 과거에는 웹개발자 = 서버 프로그래머 , 서버 개발자 지칭했음 . 요즘에는 javascript 등장해서 페이지를 요청하는 게 아니라 데이터요청으로 바뀌게 됨. 브라우저단에 과거 윈도우 프로그램을 만들었던 것처럼 javascript를 이용해서 window 프로그램을 만드는 시대. 클라이언트 프로그램이 웹기반, 브라우저 기반으로 클라이언트 프로그램 만드는 시대가 되니 그쪽을 웹의 프론트 단을 개발하는 사람 (프론트엔드)./ 웹서버쪽은 웹서버단을 개발하는 사람(백엔드)라는 용어가 자리잡게 됨. |
백엔드 개발위한 실행 환경 : WAS// 웹으로 CS프로그램 만들면서 클라이언트가 요구한 정보를 동적으로 돌려주기위해서는 서버에서는 웹문서를 제공해주는 서비스 웹서버 말고/ 동적으로 돌려줄 해당 리스트(코드)를 실행할 수 있는 그걸 돌려줄 수 있도록 하는 뭔가가 있어야 하는 것. 그게 WAS Web Application Server 추가적으로 필요.
동적으로 문서 만들기 위한 코드(서버 어플리케이션. )
이것이 실행할 수 있도록 하는 환경 ( 실행환경 Web Server톰캣(정적) + WAS톰캣(동적) )
서버 어플리케이션만드는 데 필요한. 서버환경의 구성요소 3.
웹서버 + 웹 어플리케이션 서버 + 서버 어플리케이션 Servlet
클라이언트의 요청 GET : list/reg/edit/del ---> 웹서버 ---> list/reg/edit/del 해당 파편적 코드단위 서버어플리케이션(Server Application Let)이 실행 읽혀짐. ---> 전달 후 프로그램 종료.
웹 프로그래밍 : 클라이언트측 실행 언어와 서버 측 실행 언어로 구분
JSP (JavaServer Pages) : 자바를 기반으로하는 서버측 웹프로그래밍 언어.
자바로 웹개발하는 프로그래밍 방법 : 이 때 사용하는 API - Servlet과 JSP
자바 웹 프로그래밍 :
자바 프로그램(기존의 내부 콘솔이나 윈도우에서) + 사용자와의 상호작용 (입출력) 추가 혹은 대체된 것.
서블릿 프로그래밍
JSP 프로그래밍
MVC Model1
MVC Model2
서블릿 프로그램 환경 구축 = 톰캣 설치
처리과정 : jsp페이지는 서블릿 프로그램으로 변환되어 실행됨.
1. 브라우저에서 hello.jsp 요청하면, 웹 서버는 jsp확장자를 발견, 확인하여
웹서버에 있는 JSP컨테이너 (jsp엔진)에 전달.
2. jsp 컨테이너는 jsp페이지를 서블릿 프로그램인 hello_jsp.java로 변환
3. jsp 컨테이너가 서블릿 프로그램을 컴파일하여 hello_jsp.class 로 만들어
웹 서버에 전달
4. 웹 서버는 .class 실행결과를 웹브라우저에 응답으로 전달,
웹브라우저는 새로 가공된 HTML 페이지를 동적 처리한 결과를 보여줌.
서블릿 프로그램을 단순히 반복해야 하는 것(html코드)을 대신해 주는 게 제스퍼에게 일을 시켜서 서블릿을 대신 만들게 함. 제스퍼에게는 내가 필요한 내용을 설정해달라고는 지시해야 하는데, 그 내용이 jsp가 됨. jsp는 M, V, C가 한번에 섞여있음. 이를 분리해서 만드는 작업이 M만 분리한 게 MVC Model 1, C를 분리한게 MVC모델2 |
5) 웹 서버, 웹 컨테이너, 웹 어플리케이션 서버
#1. 웹 서버
: 요청받아 응답 돌려줌. 자체적으로 처리 못하면(동적요청오면) 컨테이너처럼
처리할 수 있는 곳으로 넘겨줌.
정적페이지 서비스. (http, css, 이미지까지만) 구구단 직접 다 적어야해.. 프로그래밍 아니고 말그대로 텍스트로..
아파치, IIS, NGiNX 제품군
#2. 웹 컨테이너
: JSP와 서블릿(자바기반의 웹 .class파일 )을 실행할 수 있는 프로그램으로
서블릿컨테이너라고도 함. (자바계열에서 웹 어플리케이션 컨테이너라고도 함). 웹 어플리케이션 배포 공간.
웹 서버 웹 컨테이너 함께 설치하면 연산이나 DB연결 동적처리 가능, 처리 결과를 웹서버로 전달.
#3. 웹 어플리케이션 서버 (Web Application Server : WAS) = 서버+컨테이너 = 웹컨테이너 = 서블릿 컨테이너
: 웹 서버와 웹컨테이너를 결합한 서버.
동적 페이지
PHP, JSP, ASP같은 언어들을 사용 / so, 프로그램 실행 환경이나 DB 접속 기능, 로직 처리 제공 가능..
아파치 톰캣, JEUS, IBM WebSphere, JBoss, BEA 제품군의 웹로직 등 종류 다양.
사용자 요청(브라우저) -> 웹서버 -> 컨테이너가 연산처리 -> 웹서버 -> 사용자에게 응답(브라우저)
6) JSP 생명주기
jsp -> .class 에는 jspInit(), _jspService(), jspDestroy() 메서드등 존재함.
hello.jsp --번역--> hello_jsp.java --컴파일--> hello_jsp.class
---> jspInit() 호출 --> _jsService() 호출 ---> jspDestroy() 호출 (소멸)
두번째 요청부터는
페이지 요청시 이것만 실행
요청 ---> 응답
프레임워크 내에서 서버세팅
프레임워크(이클립스) 내에 서버 스타트와 종료, 서버에 파일을 올리는 것도 톰캣 폴더 내에 직접 넣는 게 아니라 이클립스를 통해서 할 수 있게
서버 세팅 프로젝트 만들기 전!! 톰캣 서버 세팅
server 탭 > 빈공간에 마우스 우클릭 > new > server(팝업뜸)
사용할 서버 선택 : Apache 폴더 안에 Ttomcat 9 선택 next> > Browse 선택해서 Tomcat 압축 해제한 곳(bin이라는 폴더 등이 보이는 곳까지 들어가기)
> next > finish!!
확인 : 서버 스타트 (세모화살표 눌럿)해서 console탭에 서버연결 정보 확인!
2. 웹프로젝트 생성
2) 프로젝트 생성
File > New > Dynamic Web Project
> name : 프로젝트이름
tamcat 눈으로 확인 next!! > next!!
> 체크박스 선택하고 finish!!! ( web.xml 파일 만들겠다~~ 체크 필수)
JRE Library 17 버전으로 자동잡혀있을 수 있으니 본인이 사용하는 버전으로 변경 (11로 변경)
프로젝트 우클릭 Properties 설정정보 Java Build Path > Libraries 에서 > Edit >자바 버전 변경 Project Facets 에서도 자바 버전 변경 |
3) 웹 프로젝트 구조
웹서버가 준비된 상태에서 아래와 같은 폴더 구조를 갖춰야한다.
[폴더명]//루트폴더 : 프로젝트명 (Context Path, Root Context) : web
루트ㅡ [WEB-INF] // 폴더 이름, 대문자, 띄어쓰기, 위치 형식 다 맞아야
ㅡㅡㅡㅡㅡㅡ [lib] : 추가할 외부 라이브러리 배치할 폴더
ㅡㅡㅡㅡㅡㅡ [classes] : 자바의 컴파일된 클래스 파일들 담을 폴더 (이클립스에서는 안보임 작업폴더 아니라. 실제 서버에 올라가는 파일은 워크스페이스랑 달리 다른 곳에 복사되어 생성됨 /tmp0으로 끝나는 실제 경로)
ㅡㅡㅡㅡㅡㅡ web.xml : 웹의 기본 설정정보를 담을 파일. 웹요청이 들어올 때 제일 먼저 찾는 메일 설정 파일
ㅡㅡㅡㅡㅡㅡ (jsp) <<안에 숨겨놓을 때
루트ㅡ [META-INF] : 부수적인 설정관련 파일을 저장하는 폴더. 자바 패키징 기술인 .jar의 일부 부수적 설정 파일들 저장.
ㅡㅡㅡ (jsp) / html / css / 이미지 등등 .... <<밖에 노출되는 경로
4) 프로젝트 페이지에 올리고 요청해보기
jsp파일 만들기 : 웹앱 내부에 jsp파일 작성.
서버 우클릭 Add and Remove 에서 서버에 프로젝트를 올려야 한다.
그래야 페이지 요청해서 서비스됨!
모듈스 탭에서 프로젝트 명이 기본 경로에 붙어있어서
경로에서 프로젝트명 없애려명 Edit '/'만 남기면 된다.
파일위치 : webapp 폴더 바로 안에 (WEB-INF안에 넣지 않기)
http://localhost:8080/web/jsp01.jsp 브라우저에 주소 입력해서도 되고 Ctrl+F11
오라클 DB설치 (19c버전)
오라클 계정 디비 시스템계정 파서 연습하기
데스크톱클래스 - 다 기본설정 다음. 관리자모드 계정 기본 system
** 비밀번호 최고관리자 비밀번호만 잘 메모해둔다.
설치가 끝나면
cmd 창에 sqlplus (cmd에서 sql명령어 날리는 프로그램)
사용자명 계정없으니까 system
비밀번호 치고
접속되는지 확인 ~~
sqldeveloper 설치해서 sql연습
사용자 계정을 따로 만드려면 오라클 19c사용자계정ㅎ=생ㅅ성
<일정>
1. 자바 - 3주
2. html, css, javascript, sql - 2주
3. 프레임워크 - (스프링) - 3주
4. 프로젝트(발표) - 3주
'코딩' 카테고리의 다른 글
25일차 (0) | 2022.03.16 |
---|---|
2022.03.14_24일차_jsp(2) (0) | 2022.03.16 |
2022.03.09_21일차_sql(1) (0) | 2022.03.16 |
2022.03.07_20일차_javascript(3)ㅡㅡㅡㅡㅡ (0) | 2022.03.09 |
2022.03.04_19일차_javascript(2) (0) | 2022.03.06 |
댓글