람다식(Lambda Expression)
- Java8에서 도입된 기능으로 익명 함수(Anonymous Function)를 구현하는 방식
- 간결하고 효율적으로 코드 작성
- 주로 함수형 인터페이스(Functional Interface)와 함께 사용
주요 특징
- 구문 형식 : (매개변수) -> {함수 본문}
- 필요성
- 불필요한 코드 중복 제거
- 익명 클래스 작성 간소화
- 코드 가독성 향상
- 예제
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("기존 방식으로 작성한 코드");
}
};
runnable.run();
Runnable runnable = () -> System.out.println("람다식으로 작성한 코드");
runnable.run();
EJS(Embeded JavaSciprt) 템플릿
- Node.js 환경에서 사용하는 템플릿 엔진
- HTML 코드에 JavaScript 코드를 삽입하여 동적으로 HTML을 생성할 수 있도록 도움
주요 특징
- 템플릿 문법
- <%= %> : 값 출력
- <% %> : JavaScript 코드 실행
- 데이터 바인딩
- 서버에서 전달한 데이터를 템플릿 내에서 사용 가능
- 반복문/조건문 사용
- 템플릿에서 JavaScript의 기본 문법 활용 가능
- 파일 포함
- 부분 템플릿(include) 기능으로 재사용성 증가
간단한 예제
- title과 items 데이터를 받아 동적으로 HTML 리스트 생성
<h1><%= title %></h1>
<ul>
<% for(let item of items) { %>
<li><%= item %></li>
<% } %>
</ul>
- boardList.ejs : EJS 템플릿을 사용하여 HTML 테이블에 동적으로 데이터 렌더링
- <%= title%> : title 데이터 출력
- <% for(let i = 0; i < data.length; i++) { %> : 서버에서 전달된 data 배열 반복 처리
- <%= data[i].속성 %> : 각 배열 항목의 속성 출력(subject, writer, viewcnt 등)

- index_express_ejstemplate.js
- sql 쿼리
- board테이블에서 originbidx와 depth 기준으로 정렬된 모든 데이터 조회
- EJS 렌더링
- title과 data(조회된 게시글 목록)를 ejs.render로 boardList 템플릿에 전달하여 HTML 페이지로 변환
- 응답 전송
- 변환된 HTML 페이지를 클라이언트에게 전송

- 결과
