inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

HelloWorld Bean 추가

질문 드립니다!!

166

Jerry

작성한 질문수 19

1

빈 클래스 생성시에, 디폴트 생성자, 생성자, getter setter를 만들어야하는 이유를 알 수 있을까요...? helloWorldBean 예제에서는 생성자만 만들어도 될 것 같은데 getter setter 도 추가적으로 필요한건지 궁금합니다.

spring-boot rest-api

답변 1

1

Dowon Lee

안녕하세요, 이도원입니다. 

어떤 클래스에 기본 생성자를 생성해 주는 것은 그 생성자에서 특별한 작업, 예를 들어 인스턴스 변수의 설정이나 초기화 작업등을 위해 주는 겁니다. 만약 기본 생성자에서 특별한 작업을 하지 않은 채 선언만 한 것이라만, 아무것도 선언하지 않았을 때와 같으니, 특별한 의미는 없습니다. 

그리고 Setter/Getter 메소드를 생성해 주는 이유는 선언 인스턴스 변수는 일반적으로 private 으로 선언하게 됩니다. 그렇지 않게 되면, 외부에서 직접 변수의 상태를 변경해 버릴 수 있기 때문에, 보안상 좋지 않습니다. 이렇게 private으로 선언된 인스턴스 변수의 상태를 변경하기 위해 setter, 상태 값을 가져가거나 사용하기 위해서 getter 메소드를 추가로 선언해서 사용하게 됩니다. 그러면, 단순하게 값을 변경하고 반환하는 용도외에, 추가적인 작업을 해당 Setter/Getter 메소드에서 처리할 수 있게 됩니다. 

예를 들어, 

public void setValue(int value) {

    if (isAuthenticated()) {

         this.value = values;

    } else {

         log.error("권한을 가지고 있지 않습니다!");

    }

}

위와 같이 응용해 보실 수도 있을 것 같습니다. 

감사합니다. 

0

Jerry

감사합니다!!

JPA

0

57

1

jpa dependency를 추가하고 SecurityConfig클래스에서 오류가 납니다.

0

68

1

웹 브라우저 400 bad request

0

70

1

@Size는 되는데 @Past는 안 됩니다.

0

61

1

pdf 자료는 없나요?

0

73

2

locale 정보가 null 이면 무조건 messages_ko.properties이 호출 되는 문제

0

87

2

Swagger 강의, Unable to infer base url 이거 뜨시는 분들 도움되시라고

0

118

1

강의에서나온 화면 피피티

0

158

1

HelloWorldBean 관련 에러

0

182

2

Swagger API 3.x 오류..

0

218

1

java: variable message not initialized in the default constructor 에러는 어찌하면 좋을까요?

1

282

1

현재 GIT에 올리신 소스를 실행해봤습니다.

0

188

2

고양이 소리가 귀엽네요 !!

0

137

2

git에서 소스받고 실습중인데

0

117

1

post가 안되요

0

102

1

한국어 같은 경우 언어코드인 messages_ko.properties 로 생성하는게 더 좋지 않나요?

0

167

2

리턴타입으로서 EntityModel<User> 와 ResponseEntity질문

0

103

1

예외처리쪽 관련 질문있습니다.

0

159

2

엔티티가 바로 응답으로 나가도 되나요??

0

220

2

안녕하세여 Cannot invoke "co.kr.joneconsulting.resfulservice.repository.PostRepository.save(Object)" because "this.postRepository" is null

0

135

2

사용자 등록하고 나서 H2 에서 보면 신규 사용자의 password, ssn 이 null 로 되어 있습니다.

0

140

2

ApplictionContext 질문

0

190

2

롬북이 안먹히는것같아요

0

156

1

인텔리제이에서스프링부트 파일 실행하면

0

239

1