[JSP 강좌] JSP문서에 주석 달기
JSP 뿐만아니라 대부분의 프로그래밍 언어에서 "주석" 이라는 기능을 제공합니다. 웹 프로그래밍 언어인 JSP 역시 자바 문법을 따르고 있으므로 주석 기능이 제공 되는데요. 주석은 프로그램의 논리적 구조에는 전혀 영향을 미치지 않는 글로 각 부분의 간략한 설명을 써 놓을 때 사용합니다.
JSP 프로그래밍 환경에서는 두 가지 형태의 주석이 사용됩니다.
JSP 부분에서 사용되는 주석과 HTML 환경에서 사용되는 주석이 있습니다.
JSP 주석 1 - HTML 스타일 주석
<!-- HTML 주석입니다. -->
이런 스타일의 주석은 동적 웹 프로그래밍언어가 아니라 순수한 HTML로만 이루어진 웹 페이지에서도 많이 볼 수 있는 태그입니다. 실제로 웹 브라우저에서 실행시켜 보면 "HTML 주석입니다." 라는 글자는 출력되지 않죠.
JSP의 관점에서 보면, 이런 HTML 스타일의 주석은 클라이언트로 전달되는 주석이라는 특징이 있습니다. HTML 스타일의 주석도 어떻게 보면 하나의 태그이기 때문에 다른 태그들과 마찬가지로 클라이언트의 웹 브라우저로 전송이 됩니다.
그렇기 때문에 비즈니스 로직이나 JSP 프로그램의 핵심 알고리즘을 노출 시킬 수 있는 주석을 이런 HTML 스타일로 작성을 하게 되면, 주석이 그대로 클라이언트 웹 브라우저로 전송이 됩니다. 클라이언트에서 <소스보기> 기능을 이용해서 HTML 코드를 뜯어 볼 경우 이런 주석은 그대로 노출되기 때문에 보안상 위험이 있는 내용은 HTML 주석으로 처리하면 안 됩니다.
HTML 스타일의 주석 사용의 예를 들어보겠습니다. 다음 소스를 작성해서 실행 시켜 보도록 하겠습니다.
그리고 실행 결과가 나오는 창에서 소스보기를 통해 주석이 클라이언트에서 어떻게 보이는지 보도록 하겠습니다.
HTML 주석이 그대로 노출 되는 것을 볼 수 있습니다. 위의 예에서 본 것 처럼 만약 데이터 베이스나 기타 시스템의 아이디와 비밀번호를 HTML 스타일 주석으로 처리를 했다면, 그 아이디와 비번은 만천하에 공개되는 것입니다.
그렇기 때문에 HTML 스타일 주석을 사용 할 때에는 주의가 필요합니다.
JSP 주석 2 - JSP 스타일 주석
그렇다면 핵심적인 비즈니스 로직이나 비밀번호 같은 중요한 정보를 주석으로 설명하되, 클라이언트로 전송이 되지 않도록 하는 방법은 없을까요? 없다면 거짓말이겠죠.
바로 JSP 스타일의 주석을 이용하면 서버에서만 ( JSP 파일에서만 ) 볼 수 있고 결과로 전송되는 HTML에서는 보이지 않는 주석을 작성 할 수 있습니다. JSP 스타일의 주석은 다음과 같습니다.
<%-- JSP 주석입니다 -- %>
아까 봤던 HTML 스타일의 주석과 비슷하지만 약간 다르네요. 느낌표 대신에 퍼센트 문자가 들어갔습니다.
이렇게 쓰는 주석은 JSP 파일을 편집 할 수 있는 서버측에서만 볼 수 있으며, 클라이언트 쪽에서는 이 주석을 볼 수가 없습니다.
테스트를 해보자면, 다음 소스코드를 실행해 보도록 합시다.
그리고 실행 결과가 나오는 창에서 소스보기를 통해 이 주석이 클라이언트에서 어떻게 보이는지 보도록 하겠습니다.
아까와는 달리 JSP 스타일의 주석은 클라이언트가 <소스보기>를 통해서 볼 수 없음을 알 수 있습니다.
그러므로 중요한 비즈니스 로직이나 JSP 파일의 핵심 내용, 보안상 중요한 정보 등은 HTML 스타일의 주석보다는 JSP 스타일의 주석을 이용해서 설명해 놓는 것이 좋다는 걸 알 수 있습니다.
JSP 주석 3 - JAVA 스타일 주석
그 밖에 JSP는 자바 언어의 문법을 그대로 이용하고 있기 때문에 기존의 자바스타일의 주석도 이용할 수 있습니다. 자바 스타일의 주석에는 두 가지가 있는데,
// 한 줄 짜리 자바 주석
/*
한줄 혹은
여러 줄 짜리
자바 주석
*/
/*
한줄 혹은
여러 줄 짜리
자바 주석
*/
첫 번째는 한 줄 전체를 주석처리하는 것으로 다음 줄은 주석처리가 되지 않습니다.
두 번째는 주석의 범위를 지정할 수 있는데, '/*' 문자는 주석을 여는 문자이고, '*/'는 주석을 닫는 문자입니다. 즉, '/*' 과 '*/' 사이의 모든 문자는 줄 바꿈문자를 비롯하여 모두 주석처리가 되는 것입니다. 자바를 배워보셨거나 기타 다른 프로그래밍 언어를 배워 보신 분들은 쉽게 이해가 가실 거라고 생각합니다.
마지막으로 한번 더 주석처리에 대한 연습을 해보겠습니다.
이 소스 코드를 실행해 보면,
이렇게 나옵니다.
주석은 안 쓰는 것보다 쓰는 것이 프로젝트 관리와 진행에 있어서 많이 도움이 됩니다. 하지만 웹 프로그래밍과 같은 경우에는 주석을 잘 못 썻을 경우에 보안상 문제가 발생 할 수도 있는데요.
어떤 주석이 어떤 특성을 갖고 있는지 알고 사용해야 합니다.