Java 공부일지 day06 :: 복기

linvi·2023년 1월 16일

java 공부일지

목록 보기
6/10
post-thumbnail

Q. 주말이 지난 뒤, 복습하는 심정은 어떠신가요?

A. 왜 다들 주말을 경계하는지 깨달았습니다.

복습의 시간.

이름을 제발(강조) 다시 확인하자.

DB 서버도, @entity도 아무런 문제가 없었다.
그런데 자꾸 404 에러가 뜨거나, Null 값이 뜨거나 하는 사태가 발생한 원인을 여기서 찾았다.

null이 떴던 이유

nullable = false 을 쓰지 않았다.
내용을 적으니 DB 내에서 null이 뜨는 일이 없었다.

내용이 이상하다.

이건 서버의 문제였다, 새로고침을 하니 멀쩡하게 나온다.

작성하는 순서는?

entity >> repository >> service >> controller>> model


service는 repository와 controller는 service와 같이 움직여야하기 때문에,
@RequiredArgsConstructor 를 적용하고,
private final... 가 작성되어진다.


entity의 값에서. ID의 값은 시퀀스이기 때문에 값이 자동으로 지정되어야 한다.
@GeneratedValue로 하나의 시퀀스 값을 만든다.

그리고...











오타내지말자, 제발...

지금까지 난 오류의 대부분이 오타였다. 뭐, inteliJ의 자동완성 덕분에 오타가 적어졌지만, 가끔씩 나는 오타들은 주의해야 할 것 같다.

API에 대해

API는 데이터의 이동을 위한 언어나 메시지 프로그램(인터페이스)

JSON은 API끼리의 소통을 위한 언어, 타입을 가지나 단순한 형식이다.
지원하는 타입:: 문자열, 숫자, Boolean

JSON의 형식

{
//JSON의 시작은{}
	"키(이름)": 값1,
  	"키(이름)": 값2
  //값에 들어가는 타입은: 문자열, 숫자, Boolean 
}

본격적인 이론의 시작,

CRUD의 기능 중, R에 대하여. DB의 출력

Date의 종류는 LocalDate와 Date가 있다.

Date는 특정 시점의 날짜, LocalDate는 날짜에 대한 정보를 출력한다.
Java 8 이후, LocalDate를 더 많이 쓴다고 한다.

Q. 데이터를 다시 반환할 때, 리턴 타입을 가질까?

A. 맞다, List<>의 형식으로 반환해야 하기에

	public List<모델값 이름> 메서드(){
    	....
    }

이런 스타일로 작성된다

DB에 값을 수신하고, 그것을 다시 반환하기

편의점의 포스기처럼, 등록된 DB를 다시 요청에 맞추어 가공하여 반환하는 프로그램을 제작했다.

이렇게, setAgeManage로 DB로 데이터를 전송하고, getAge로 DB값을 가져와 볼 수 있게끔 가공하는 서비스를 구현하였다.

List<AgeItem>가 작성된 이유는?

DB값에서 필요한 일부 데이터(아이템)를 가져와 가공하기 위해 새로운 리스트를 만든 것이다.

새로운 아이템을 담을 공간(model)값을 만들어 담기 위해, AgeItem이라는 모델을 만들었다.

.findAll()은 모든 데이터값을 가져오게한다.

즉, List<PeopleAge> originData = companyManageRepository.findAll(); 의 뜻은 companyManageRepository의 모든 값을 찾고 저장한 값이 originData이다.

컨트롤러에서는 @GetMapping이 추가되었고,

model 또한 AgeItem가 추가되었다.

복기: model값의 이름을 잘 짓자,

응용의 과정에서 햇갈리는 요소를 정리하게 되면서, List<...> 이 어떤 것인지 이해해야 한다는 것을 알게 되었다. 값이 정리된 리스트라고 생각하면 되는 것인지, 아니면 리스트 그 자체인지..

(생각해보면 값이 저장된 리스트라고 생각하는 게 더 빠를지도 모르겠다)

profile
열심히 노력하고 있는 사람

0개의 댓글