22.03.09

API를 가져와 쓰기 위해서 필요한 두 가지. Url 과 그리고 요청방식

Service 만들 때 @Transactioanl 잊지말기!

스프링이 그때그때 자동으로 가져와서 쓸 수 있는지 권한 판단을 할 때 사용하는 것 => 컴포넌트로 등록하면 권한이 등록된다. 마음대로 갖다 쓸 수 있는 권한 목록이 곧 컴포넌트에 등록되었다라고 한다. => 이때 컴포넌트로 등록하는 방법은 @Component 어노테이션을 부착해주면 된다.

또한, API를 받아올 때 컨트롤러에서 물음표 뒤의 query= 뒤의 파라미터를 입력으로 받고싶다면 @RequestParam String query 라고 입력해주면 된다. 이 파라미터의 뜻은, "요청된 파라미터 중에 query 라는 녀석이 있으면 그 녀석을 받아와라." 라는 뜻이다.

 

contentType 과 data 속성은 Put과 Post 방식에서만 사용한다.

삼항연산자를 이용해서 class 를 선택적으로 반환할 수 있다. ${(조건식) ? '':'(클래스이름 ex.none)'}

 

@Scheduler(cron= 정해진 예약 시간)

2022.03.06

ajax를 이용하여 데이터를 넘겨주는 것을 ARC로 서버에 요청을 보내는 방식이 코드화된 것이다. 따라서 ARC에서 요청보내던 방식 그대로 어떤 방식(get, post, put, delete)인지, url은 뭔지, contentType은 JSON이다 와 같은 내용들을 담고 있다. 이때 data 부분은 ARC에서 body에 해당하는 부분이며, 이 때 JSON.stringify(변수) 는 javascript 변수값을 JSON 형식으로 번역해주는 역할을 맡는다. 

 

window.location.reload(); 는 새로고침을 하라는 코드이다.

 

Timestamp 에 getter 넣는것, 메인실행java에서 @EnableJpaAuditing 넣어주는 것.

2022.02.21

Domain은 Table이고, Repository 는 SQL 이다.

JPA Repository 를 interface로 extends 하면, 나중에 Java 프로젝트 내에서 Domain Class 를 생성할 때 틀을 잡아준다.

JPA를 사용하면 귀찮게 SQL 을 다 작성할 필요가 없다.

 

2022.02.23

Spring은 크게 세 가지의 파트로 구분된다. Controller, Service, Repo 가 그것이다.

Controller는 요청이 들어오면 자동응답을 해주는 주소 링크 변환 길 찾아주기 같은 느낌이고,

Service는 Controller와 Repo를 연결해주면서 가장 중앙에서 데이터를 Update를 해주고,

Repo 는 Repository의 약자로써 DB와 밀접한 연관이 있다. SQL이자 데이터 저장소라고 이해하면 편한 것 같다.

 

@Entity 테이블임을 알려주는 어노테이션

만약 새로운 테이블을 create 할때 id 값이면 @Id를 붙이고, 평범한 컬럼값이라면 @Column을 붙인다.

자동 증가 어노테이션은 @GeneratedValue(strategy = GenerationType.AUTO) 이다.

SQL Query의 변경이 일어날 때 정보가 이동한다는 뜻의 어노테이션이 @Transactional 이다.

 

2022.02.24

Lombok 이란, 어노테이션을 이용하여 Java코드를 줄여주는 녀석이다. 예를들어 @Getter 어노테이션을 이용하여 getter 메소드들을 자동생성해줄수있고, 생성자도 직접 만들지 않고 @NoArgsConstructor나 @RequiredArgsConstructor를 이용하여 대신할 수 있다.

여기서 질문. @RequiredArgsConstructor를 이용하면 final로 선언된 필수적인 파라미터를 자동으로 생성자에서 가져온다고 알고있는데, 그렇다면 final로 선언된 모든 파라미터를 알아서 가져와지는건가? 아니면 courseRepository만 가져와지는건가?

DTO 란 Data Transfer Object 의 줄임말로, 자바에서 은닉화와 비슷하다는 느낌을 받았다. DB 그 자체를 건드리지 못하게 하기 위해 보안성의 이슈로 따로 클래스와 관련된 dto를 만들어서 그 클래스를 이용하여 DB를 업데이트하는 과정이다. 이 dto는 lobbok 어노테이션을 이용하면 더 쉽게 만들 수 있다.

 

2주차 과제진행중 내가 버그를 맞딱트린 이유

@Entity 나 @RestController 등 어떤게 테이블이고 컨트롤러며 서비스인지 명시를 안해서 오류

get 메소드를 컨트롤러에서 작성할 때 반환값을 void로 반환함. findAll() 이기에 List로 반환해야됨.

1주차 강의를 듣고 궁금한 것들

 

1. 왜 gradle 로 프로젝트 만들었는데 왜 maven repository 에서 라이브러리를 가져오는지

- 어짜피 같은 라이브러리 체계이고 검색해봤을 때 gradle이 maven에서 파생된 것 같다.


2. json 이 왜 라이브러리인지

- json 이라는 무언가를 가져온다기보다 json 이라는 데이터 형식을 사용할 것이라고 알려주는 것 같다.


3. 컨트롤러가 왜 꼭 main > java > '우리가 만든 패키지 폴더' 안에 있어야 하는지

- 우리가 재생버튼을 눌러서 Run할 메인 어플리케이션이 그 안에 있으니까 그런 것 같다.

+ Recent posts