TIL 2021.03.12

Kyu·2021년 3월 12일
0

TIL

목록 보기
61/322

로그인 상태에서 자기 자신의 정보 수정

어제 TIL 에서 로그인 상태에서 자기 자신의 정보 수정을 위해서 유효성 검사를 하는 조건문을 구현했는데 작동하지 않았다고 했다. 이유는 단지 id를 userid와 비교해서였다.

분명히 자바지기님 다 따라했는데 왜 난 다르게 나오는거지 하고 생각했는데 단순히 오타실수였다. 이건 내가 체크도 안하고 IDE에서 나오는 자동완성기능을 무작정 따라해서인거 같다. 조심해야겠다.

스프링부트 Null 처리

회원가입이나 수정할떄 Null 처리 어떻게 하는거지? 공백도 못들어가게..?

일단 Null 처리는 여러가지 방법이있다. @NotNull, @NotEmpty, @NotBlank 그리고 @Column (nullable = flase). 각각의 차이점같은건 잘모르겠다. 중요한건 지금 미션에서 Null이 언제 들어오길래 Null값을 처리하라는건지 잘모르겠다. 일단 회원가입이나 글쓰기 폼에 아무것도 입력안하고 버튼을 누르면 null이 아니라 공백 blank 상태로 객체가 만들어진다. 그럼 이걸 처리해야하는 걸 찾아야한다

그 방법은 bat가 알려준 trim.isEmpty() 와 Jane이 알려준 @NotEmpty를 쓰면된다. 꼭 공부해서 써먹어보자.

스프링부트 Setter & Getter

객체가 한번 만들어지고 업데이트될 일이 없으면 세터가 없어도 된다.
게터는 음...도메인 객체 안에 여러 멤버변수들을 뷰에 전달하는 방법은 여러가지가 있는데 그게 세터나 생성자를 통해가져오고
게터는 컨트롤러가 뷰에서 가져올떄 쓰인다.

캡슐화 관련 조언

데이터를 꺼내서 사용하려하지말고 그 객체에서 직접 메서드를 호출해서 사용하도록 해라. 상태데이터를 외부로 노출시키는 것은 그리 좋은 것이 아니다. (From 자바지기님) (캡슐화)

예를 들어서

if(id.equals(sessionedUser.getId(id)) {
	[...]
}

위 코드처럼 id 를 비교해서 일치하면 어떤 로직을 실행하는 조건문이 있다고 쳤을 때, 지금 User 객체에서 getId() 메서드를 통해서 데이터를 꺼내 사용하>고 있다.?

if (sessionedUser.isRightId(id)){
	[...]
}

isRightId() 라는 메서드로 객체 내에서 외부에서 들어오는 값에따라 바로 id 가 일치하는지 안하는지 체크하는 메서드를 추가한 후에 위 코드처럼 바꿔서 사용하는게 좋다고 한다.

profile
TIL 남기는 공간입니다

0개의 댓글