정보보안 스터디 - 27주차 3일 - 기본 프론트엔드 지식
☞ MVC모델에서
컨트롤러는 java소스와 .jsp 연결해주는 것이라고 볼 수 있습니다.
비슷하게 서블릿도 DB연결해주는 컨트롤러 역할합니다.
out.append 로 html보여줄 순 있지만 적합하지 않습니다.
DAO 는 DB랑 연결하는 객체 그릇을 만들어서 관리합니다. DB불러오기위함입니다. >
<%@ page import="dao.user_dao" %> import해서 불로 옵니다.
DTO 교환, DAO 접근
DTO
생성자, setter
DAO
그냥 java처럼 select * from table
☞ javabean(=DTO, class) 사용 이유
디자이너랑 같이 작업 하기 때문에 화면표현부분과 로직 부분 같이 존재해서 복잡한 구성 피하고
프로그램 효율 높이기 위해입니다. 재사용이 가능합니다.
형태
<jsp:userBean id="" class="" scope="page" />
<jsp:setProperty name="" property="" value="">
name : <jsp:getProperty name="" property="" value="">
☞ java 역사
servlet(java에 html넣음) > jsp(html에 java넣음) 발전 순이라
간단한건 빈안만들고 복잡해지면 빈만들고 MVC패턴으로 분리합니다.
comm, controller, vo, service 로 패키지를 분류하고 - 비즈니스모델
view - html
평소 개발자마다 표준없이 하다보니 spring프레임워크로 표준을 잡습니다. build.gradle
결국 war로 배포하면 다 똑같은 구조긴 합니다.
springboot실행 8084포트 합니다.
프레임워크
프레임워크는 패키지 환경 준비해줍니다.
java / spring boot |
js / node.js - 개발속도, 규모 확장성, express.js (SPA(ajax) 사이트를 위한 프레임워크 = js로 되었고 - angular/react/vue) |
python / django |
☞ node.js 사용이유
만약 ul li를 1억개 페이지를 다 수정해야 된다면 힘듭니다. >> node.js
template.js 에서 html코드를 바꾸기만하면 됩니다.
return `<!doctype html>~
${listtag}
`
그 외로도 동적으로 컨텐츠 수정, 추가, 삭제 등 가능합니다.
runtime을 깔아야합니다.
☞ template literal
var name = "wonder";
'\nhello'+name+'sir'+name\n;
대신
`
hello ${name} sir ${name}
`
로 표현하는 게 편합니다.
${1+1} 연산도가능합니다.
기본 지원하는 모듈, url
var url = require('url');
var fs = require('fs');
fs.filewirte('file1.txt', ~);
function sum(first, second){ //파라미터
console.log(first+second);
}
sum(2,4); // arg인자
파라미터가 필요한 함수들이 있습니다.
console.log는 하나의 기능만하니까
filewrite, email(sum(2,4)); 등 여러함수에 응용을 위해서는
return ~; 하고 그걸 사용하는 것이 낫습니다. 이후로는 실행안하고 종료.
☞ ajax
새로고침을 안하고 누르면 그 부분 파일만 리소스로 추가가 되는겁니다.
리소스 전체를 활용안하기 때문에 훨씬 가볍습니다.
예를들어
현재 주식가격이나, 인스타피드를 새로고침 안하고 볼 수 있는 예시,
검색할 떄마다. 바로바로 추천검색어 통신.
즉시 글 추가하는 경우도 포함되구요.
F12 > network에서 요청하고 받아오는 것을 실시간으로 볼 수 있습니다.