Red Team/프로젝트 관련

정보보안 스터디 - 27주차 3일 - 기본 프론트엔드 지식

wonder12 2023. 4. 16. 04:26

 

 

 

 

 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에서 요청하고 받아오는 것을 실시간으로 볼 수 있습니다.