반응형

1. 프레임워크

## 스프링 프레임워크 (Spring Framework)

  • 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로 스프링(Spring)라고도 한다.
  • 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.
  • 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.

### 스프링 프레임워크 - 스프링 부트 (Spring Boot) 프로젝트

  • 스프링 부트란 스프링 프레임워크의 프로젝트를 의미, 이를 사용하여 쉽게 애플리케이션을 만들 수 있다.
  • 스프링을 쉽게 사용할 수 있도록 미리 필요한 설정을 대부분 세팅해 놓은 것 이다.
  • 단독으로 실행 가능한 애플리케이션을 생성하고, 톰캣 등이 내장되어 있으며, 상용화에 필요한 통계, 상태 체크, 외부 설정 등을 제공한다. 설정을 위한 xml 코드를 생성하거나 요구하지 않는다.

 

2. 프로그래밍 언어

## 자바 (Java)

public class HelloWorldApp {
  public static void main(String[] args) {
    System.out.println("Hello World!"); // Hello World 를 출력
    
    int a = 10;
    
    System.out.println(a); // 10 출력
  }
}
  • 객체 지향적 프로그래밍 언어이다.
  • 현재 웹 애플리케이션 개발에 가장 많이 사용하는 언어 가운데 하나이고, 모바일 기기용 소프트웨어 개발에도 널리 사용하고 있다.
  • 자바를 다른 컴파일언어와 구분 짓는 가장 큰 특징은 컴파일된 코드가 플랫폼 독립적이라는 점이다. 자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트코드라는 특수한 바이너리 형태로 변환한다. 바이트코드를 실행하기 위해서는 JVM(자바 가상 머신, Java Virtual Machine)이라는 특수한 가상 머신이 필요한데, 이 가상 머신은 자바 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다. 때문에 자바로 개발된 프로그램은 CPU 운영 체제의 종류에 관계없이 JVM을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있으며, 이 점이 웹 애플리케이션의 특성과 맞아떨어져 폭발적인 인기를 끌게 되었다.

## 자바 스크립트 (JavaScript)

<!DOCTYPE html>
<html>
	<head>
    <meta charset="UTF-8">
    <title>${logoText}-${pageTitle}</title>
    	<script>
        	var name = "코딩초보";
            var age = 28;
            document.write("닉네임 : " + name + " 나이 : " + age);
        </script>
    </head>
    <body>
    </body>
</html>
  • 객체 기반 스크립트 프로그래밍 언어이다. 자바와 자바스크립트는 직접적인 관련성이 없다.
  • 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 프로그래밍에도 사용되고 있다.

# JSP (Java Server Pages)

<%@ import="page import="com.sbs.jhs.at.util.Util"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	String str = "안녕 이게 바로 JSP"
    
    int a = 5, b = -5;
    
%>
<!DOCTYPE html>
<html>
	<head>
    <meta charset="UTF-8">
    <title>${logoText}-${pageTitle}</title>
    </head>
    <body>
      <%
		out.print(str + " a + b 합 : " + a + b);
      %>
    </body>
</html>
  • 서블릿의 단점을 보완하고자 만든 서블릿 기반의 스크립트 기술.
  • 서블릿 이용 시 웹프로그래밍을 할 수 있지만, 자바에 대한 지식도 필요하고, 인터페이스 구현에 너무 많은 코드를 필요로 하는 등의 비 효율적 측면이 있는데, 이러한 문제점이 있는 서블릿을 작성하지 않고 간편하게 웹 프로그래밍을 구현하게 만든 기술이다.
  • 키워드가 태그화 되어 서블릿에 비해 배우기 쉽고, 자바 코드를 <%%> 태그 안에 처리해줘야 하며, html처럼 태그를 사용하여 자바 코드도 사용이 가능하다.

## 서블릿 (Servlet)

  • 서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바로 작성된 프로그램.
  • 클라이언트의 요청을 처리하고 결과를 다시 클라이언트에게 반환하는 서블릿 클래스의 구현 규칙을 지킨 자바 프로그램을 의미한다.Java 서버에서 움직이는 작은 프로그램으로  JSP의 기반이 되며, 서블릿은 웹 서비스를 java로 만들 때 반드시 필요하다.
  • 자바코드로 구현하고 컴파일하고 배포해야 하고, HTML태그로 문자열("")스크림으로 처리해야 하며, 코드가 수정되면 다시 컴파일 후 배포 해야 한다.

 

 

# 3. 라이브러리

## AJAX (Asynchronous Javascript And XML)

<script>
	var RecruitmentWriteForm__submitDone = false;
	function RecruitmentWriteForm__submit(form) {
		if (RecruitmentWriteForm__submitDone) {
			alert('처리중입니다.');
			return;
		}
		form.title.value = form.title.value.trim();
		if (form.title.value.length == 0) {
			form.title.focus();
			alert('제목을 입력해주세요.');
			return;
		}
		form.body.value = form.body.value.trim();
		if (form.body.value.length == 0) {
			form.body.focus();
			alert('내용을 입력해주세요.');
			return;
		}
		var startUploadFiles = function(onSuccess) {
			var needToUpload = form.file__recruitment__0__common__attachment__1.value.length > 0;
			if (!needToUpload) {
				needToUpload = form.file__recruitment__0__common__attachment__2.value.length > 0;
			}
			if (!needToUpload) {
				needToUpload = form.file__recruitment__0__common__attachment__3.value.length > 0;
			}
			if (needToUpload == false) {
				onSuccess();
				return;
			}
			var fileUploadFormData = new FormData(form);
			$.ajax({
				url : './../file/doUploadAjax',
				data : fileUploadFormData,
				processData : false,
				contentType : false,
				dataType : "json",
				type : 'POST',
				success : onSuccess
			});
		}
		RecruitmentWriteForm__submitDone = true;
		startUploadFiles(function(data) {
			var fileIdsStr = '';
			if (data && data.body && data.body.fileIdsStr) {
				fileIdsStr = data.body.fileIdsStr;
			}
			form.fileIdsStr.value = fileIdsStr;
			form.file__recruitment__0__common__attachment__1.value = '';
			form.file__recruitment__0__common__attachment__2.value = '';
			form.submit();
		});
	}
</script>
  • 비동기 통신을 위한 기술들 간의 연계(묶음)을 의미 (자바스크립트 그리고 XML) 
  • AJAX의 경우 필요한 데이터만 웹 서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다.
  • 보통 SOAP, XML 기반의 웹 서비스 프로토콜이 사용되며, 웹 서버의 응답을 처리하기 위해 클라이언트 에서는 자바스크립트를 사용한다.
  • 페이지 이동없이 고속으로 화면 전환이 가능하다.
  • 서버 처리를 기다리지 않고, 비동기 요청이 가능하다.
  • 수신 데이터의 양을 줄일 수 있고, 클라이언트에게 처리를 위임할 수 있다.

## 제이쿼리 (jQuery)

## 제이쿼리 사용 시 필수 입력
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

## 그외 사용 관련 예시
$("div.test").add("p.quote").addClass("blue").slideDown("slow");

$.ajax({
  type: "POST",
  url: "some.php",
  data: "name=John&location=Boston",
  success: function(msg){
    alert( "Data Saved: " + msg );
  }
});
  •  HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 크로스 플랫폼의 자바스크립트 라이브러리다.
  • 오늘날 가장 인기있는 자바스크립트 라이브러리 중 하나이다.
  • 제이쿼리의 문법은 코드 보기, 문서 객체 모델 찾기, 애니메이션 만들기, 이벤트 제어, Ajax 개발을 쉽게 할 수 있도록 디자인되었으며 개발자가 플러그인을 개발할 수 있는 기능을 제공한다.

## 자바서버 페이지 표준 태그 라이브러리 (JSTL : JavaServer Pages Standard Tag Library)

## JSTL 사용을 위한 필수
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

## JSTL 데이터 포맷
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

## JSTL 태그 라이브러리 중 하나로 JSTL의 choose ~ when ~ otherwise문(=자바 if~else 문)사용 시 입력
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

## 변수 선언
<c:set var="변수이름" value="값"/>


## if문
<c:if test="${isLogined}">
</c:if>

- ${변수} 가 참이면 실행 된다.
- ${변수 == true} , ${변수 eq true} 로 입력 가능하다.
- ${변수 != true} , $[변수 ne true] 로 입력 가능하다.


## 반복문
<c:forEach var="변수이름" items="반복할 객체명" begin="시작값" end="마지막값" step="증가값" varStatus="반복상태 변수명">

- forEach 태그에는 꼭 입력해야 하는 속성 : items, var
- items 속성 : 반복할 값들이 있는 배열과 리스트명
- var 속성 : forEach문 안에서 사용할 배열의 변수명
- varStatus 속성 : 인덱스를 사용할 수 있는 변수명

- 예제) 단순히 i를 1 ~ 100까지 반복 후 출력
<c:forEach var="i" begin="1" end="100" step="1">
	${i}
</c:forEach>
  •  Java EE 기반의 웹 애플리케이션 개발 플랫폼을 위한 컴포넌트 모음이다.
  • JSTL은 XML 데이터 처리와 조건문, 반복문, 국제화와 지역화와 같은 일을 처리하기 위한 JSP 태그 라이브러리를 추가 JSP를 확장했다.
  • JSTL은 JSP 페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공한다.
  • 표준화된 태그 셋을 사용, 자바 코드가 들락거리는 것보다 더 코드의 유지보수와 응용 소프트웨어 코드와 사용자 인터페이스 간의 관심사의 분리로 이어지게 한다.

 

## 출처 

  • 위키백과
  • 구글
반응형

+ Recent posts