자바 웹 javaBean

Dear·2025년 6월 13일

TIL

목록 보기
41/74
post-thumbnail

💙 자바 빈

정보의 덩어리로 데이터 저장소
재사용 가능한 컴포넌트를 만들기 위한 규약을 따르는 자바 클래스

프로그램에서 다뤄야 할 정보가 여러 개일 경우, 이를 각각 따로 저장하기보다는 자바 빈 객체로 묶어 하나의 객체로 구성해 사용하는 것이 더 효율적이다.
필요한 데이터들을 하나의 클래스로 정의하고, 그 클래스의 멤버 변수로 정보를 담으면 구조화된 데이터 관리가 가능해지고, 코드의 재사용성과 가독성도 높아진다.

ex) 사용자의 이름, 이메일, 나이 정보를 따로 저장하기보다는 User라는 JavaBean 클래스를 만들어 하나의 객체로 다루는 것이 바람직

데이터 은닉(Data Hiding)

자바 빈은 단순한 데이터 저장 객체일 뿐만 아니라, 자바의 캡슐화(데이터 은닉) 원칙을 적용한 구조

  • 객체 외부에서 데이터를 직접 다루면 데이터가 손상될 수 있어 데이터를 숨긴다(은닉한다).
  • 데이터는 private 접근 제한자를 사용하고 public 접근 제한자로 공개된 메소드를 통해서만 접근한다.
  • 자바 빈은 데이터를 저장하기 위한 필드와 데이터를 컨트롤하는 getter/setter 메소드를 하나의 쌍으로 가지는 클래스

이렇게 "getter/setter를 통해 접근하는 형태의 속성"을 프로퍼티라고 한다.

this

setName은 외부에서 값을 얻와 필드에 값을 저장해야 하기에 매개 변수가 필드와 동일한 자료형태(String)으로 선언되어 있다. 매개 변수 값을 필드에 저장해야 하는데 매개 변수가 필드와 이름이 동일한 경우엥는 필드 앞에 this를 붙여서 매개 변수와 구분한다.
this는 객체 자신을 참조할 수 있는 레퍼런스이다.

public void setName(String name) {
    this.name = name;
}

MemberBean memberBean = new MemberBean();  // 객체 생성
memberBean.setName("신짱구");              // 레퍼런스 변수로 메소드 참조

this 특징

  • 메소드 내부에서 선언하지 않아도 지역 변수처럼 사용할 수 있다.
  • 자기 자신만을 가리키는 레퍼런스이다.
  • 메소드 내부의 모든 필드와 메소드 앞에 암시적으로 사용된다.
  • 필요에 따라 명시적으로 사용한다.

💙 자바 빈 관련 액션 태그


액션 태그의 종류설명
<jsp:useBean>자바 빈을 생성한다.
<jsp:getProperty>자바 빈에서 정보를 얻어온다.
<jsp:setProperty>자바 빈에 정보를 저장한다.

<jsp:useBean>

JSP와 자바 빈을 연결하기 위한 자바 빈 객체를 생성한다.

  • class : 패키지를 포함한 자바 빈 클래스의 풀 네임
  • id : 생성하는 자바 빈 객체의 이름
  • scope : 자바 빈 객체가 사용되는 유효 범위
    page, request, session, application 중 하나
<jsp:useBean class="클래스 풀 네임"
             id="빈이름"
             [scope="범위"] />

<jsp:useBean class="com.saeyan.javabeans.MemberBean"
             id="member"
             scope="page" />

<jsp:getProperty>

자바 빈 객체 필드에 저장된 데이터를 얻어온다.

<jsp:getProperty name = "빈이름" property="프로퍼티이름"/>

<jsp:useBean id="member" class="com.project.javabeans.MemberBean"/>

<jsp:getProperty name="member" property="name"/>

name 속성에는 <jsp:useBean> 태그에서 id와 반드시 일치해야 한다.

<jsp:setProperty>

자바 빈 객체 필드에 새로운 값을 설정한다.

<jsp:setProperty name="자바빈이름" property="프로퍼티이름" value="값">

<jsp:setProperty name="member" property="name" value="신짱구" />
  • name - 반드시 <jsp:useBean> 태그에서 id로 설정한 값과 일치시켜야 한다.
  • property - 지정한 값에 의해서 호출하고자 하는 setter의 이름이 결정된다.
  • value - 새롭게 변경할 값을 기술

🤍 회고

솔직히 개념이 다소 모호하게 느껴져서, 면접에서 질문을 받았을 때 한마디로 명확하게 답하기가 어려웠다. 그래서 최대한 쉽게 풀어 쓰면서 간결하게 정리해 보았다.

profile
친애하는 개발자

0개의 댓글