본문 바로가기
JSP

[JSP] 내장 객체_3

by lmyourpearl 2025. 12. 3.

out 내장 객체

웹 브라우저에 데이터를 전송하는 출력 스트림 객체.

JSP 컨테이너는 JSP 페이지에 사용되는 모든 표현문 태그와 HTM, 일반 텍스트 등을 out 내장 객체를 통해 웹 브라우저에 그대로 전달.

 

out 내장 객체 메소드의 종류

out 내장 객체 메소드 반환 유형 설명
print(String str) void 설정된 str 값을 웹 브라우저에 출력
println(String str) void 설정된 str값을 웹 브라우저에 출력. ln으로 줄바꿈 되지 않으니 줄을 변경하고 싶다면 <br>을 사용해야함.
newLine( ) void 줄바꿈을 출력
getBufferSize( ) int 현재 출력 버퍼의 크기를 가져옴.
getRemaining( ) int 현재 남아있는 출력 버퍼의 크기를 가져온다.
clear( ) void 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 전송하지 않고 비운다. 만약 버퍼가 이미 플러시되었다면 IOException이 발생.
clearBuffer( ) void 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 전송하지 않고 비운다. 만약 버퍼가 이미 플러시되었다면 IOException이 발생하지 않는다.
flush( ) void 현재 출력 버퍼에 저장되어 있는 내용을 웹 브라우저에 전송하고 비운다.
isAutoFlush( ) boolean 출력 버퍼가 채워졌을 때의 처리를 결정한다. 자동으로 플러시하는 경우 true를 반환하고, 그렇지 않은 경우 false를 반환.

여기서 println( )메소드는 줄 바꿈이 적용되지 않기 때문에 줄 바꾸려면 <br>을 해야함.


버퍼(Buffer)
임시로 출력을 모아두는 곳( 임시 저장 공간)

JSP가 실행되면 서버는 브라우저(클라이언트)에게 보낼 HTML, 텍스트, 데이터 등을 만드는데요. 이때, 데이터를 한 글자 한 글자 만들 때마다 즉시 인터넷으로 쏘는 것은 매우 비효율적입니다.

이 비효율을 막기 위해, 서버 메모리에 '장바구니' 같은 공간을 하나 마련합니다. 이것이 바로 버퍼입니다.

 

버퍼의 크기(Buffer Size)

그 버퍼의 최대 용량을 의미합니다.

  • 비유: "이 장바구니는 8kg까지만 담을 수 있습니다."와 같습니다.
  • JSP에서는 보통 서버(예: 톰캣)가 기본 버퍼 크기를 설정해 둡니다. (예: 8KB)

getBufferSize() 메소드는 바로 이 설정된 최대 용량을 정수(int) 값으로 알려줍니다.

  • 예시: 만약 기본 버퍼 크기가 8KB(킬로바이트)라면, getBufferSize()는 8192 (단위: 바이트)라는 숫자를 반환합니다.
  • 동작: 버퍼에 데이터가 계속 쌓이다가 이 크기(예: 8192 바이트)를 넘어서게 되면, 버퍼는 "장바구니가 꽉 찼다!"고 판단하고 **자동으로 버퍼의 모든 내용을 브라우저로 전송(flush)**한 뒤, 자신을 비웁니다.
  • 버퍼(Buffer): JSP가 브라우저에 보낼 HTML/데이터를 임시로 저장하는 메모리 공간 (장바구니)
  • 버퍼 크기(Buffer Size): 그 임시 저장 공간의 최대 크기 (장바구니 용량)
  • getBufferSize(): 설정된 최대 크기(용량)가 몇 바이트인지 알려주는 메소드

IOException(Input/Output Exception)

그대로 번역하면 입출력 예외 라는 뜻입니다.

프로그램이 외부와 데이터를 주고받으려 할 때, 예상치 못한 문제로 작업이 실패하거나 중단되면 발생하는 비상 신호(예외)

 

예외 발생 이유

이런 입출력 작업은 프로그램이 100% 통제할 수 없는 '외부 환경'에 의존합니다. 이 외부 환경에 문제가 생기면 IOException이 발생합니다.

  • 파일이 없을 때:
    • C:\\mytext.txt 파일을 읽으라고 명령했는데, 그 위치에 파일이 존재하지 않을 때 (정확히는 FileNotFoundException이 발생하며, 이는 IOException의 자식 클래스입니다.)
  • 권한이 없을 때:
    • 읽기 전용 파일에 데이터를 쓰려고 시도할 때
  • 디스크 공간이 부족할 때:
    • 파일을 저장하려는데 하드디스크가 꽉 찼을 때
  • 네트워크 연결이 끊겼을 때:
    • 웹사이트에서 데이터를 다운로드하는 중에 인터넷 연결이 끊겼을 때
    • (조금 전 out 객체와 연결 지으면) 서버가 버퍼의 내용을 브라우저로 전송(write)하는 중에, 사용자가 갑자기 브라우저를 닫아버릴 때 (이때 "연결이 끊겼다"고 판단하여 IOException이 발생할 수 있습니다.)

URL vs URI

구분 URL (Uniform Resource Locator) URI (Uniform Resource Identifier)
의미 “어디 있는지(위치)”를 가리키는 주소 “무엇인지(식별자)”를 나타내는 더 넓은 개념
포함관계 모든 URL은 URI URI ⊃ URL ⊃ (또 다른 하위개념: URN)
예시 https://example.com/users?id=3 https://example.com/...(URL), urn:isbn:9783161484100(URN)
구성 스킴(scheme) + 권한부(authority) + 경로(path) + 쿼리(query) + 프래그먼트(fragment) URI 문법은 URL/URN을 아우르는 상위 규격
실무 사용감 웹 주소를 가리킬 때 보통 “URL”이라고 말함 표준/이론 문맥이나 식별자 전반을 말할 때 “URI” 사용
  • URL = “리소스의 위치(접속 방법+주소)”
  • URI = “리소스를 식별하는 모든 표현(그중 하나가 URL, 다른 하나가 URN)”

HTTP vs HTTPS

구분 HTTP HTTPS
보안 암호화 없음 → 내용이 평문으로 오감 TLS(옛 SSL)로 암호화: 기밀성, 무결성, 서버 인증
기본 포트 80 443
인증서 없음 서버 인증서 필요(CA 발급, 도메인 소유 검증)
혼합 콘텐츠 개념 없음 HTTPS 페이지에서 HTTP 리소스 로드하면 차단/경고
성능/프로토콜 HTTP/1.1, HTTP/2/3 일부 환경 HTTP/2, HTTP/3는 사실상 TLS 위에서 주로 사용 (핸드셰이크 최적화, 0-RTT 등)
SEO/브라우저 정책 보통 HTTPS 권장: 주소창 ‘안전하지 않음’ 경고 회피, HSTS 적용 가능

보안에서 얻는 것(HTTPS):

  • 기밀성: 중간에서 패킷을 훔쳐봐도 내용을 해독 못 함
  • 무결성: 전송 중 변조를 탐지/차단
  • 인증: 접속한 서버가 진짜 그 도메인임을 검증(피싱/중간자 공격 방지)

'JSP' 카테고리의 다른 글

[JSP] 폼(form) 태그  (0) 2025.12.03
[JSP] 기본 내장(Implicit) 객체 정리  (1) 2025.12.03
[JSP] 내장 객체_2  (0) 2025.12.03
[JSP] 자바빈즈 액션 태그  (0) 2025.12.03
[JSP] 스크립트 태그  (0) 2025.12.03