- 사진에서 보시다시피 트리는 대표적인 비선형 구조이며, 상위 원소와 하위 원소를 구분하는 계층형 자료구조 입니다.
Stack,Queue와 같은 경우에는 데이터가 앞뒤로 하나씩 붙어서 나열되지만, 트리 같은 경우 하나의 원소가 다른 원소와 관계를 가질수 있습니다.
- 자식 노드가 0개 이여도 이진트리입니다.
- 최대 2개의 자식노드를 가져야 함으로, 자식노드가 3개인 경우는
이진 트리가 아닙니다.
: 모든 노드가 0개 또는 2개의 자식노드를 갖는 경우 (1개의 자식 노드는 X)
: 모든 레벨에 노드의 갯수가 최대로 차있으며,
마지막 레벨에 노드가 존재할 경우, 제일 왼쪽부터 차례대로 채워넣어진 이진 트리입니다.
EX 게시판 서비스의 게시글에 댓글을 작성
❗ (댓글은 게시글에 종속 됩니다. URL도 거기에 맞춰서 작성해야 될것입니다.)
아직 엔티티와 엔티티 간의 연관관계를 배우지 않아서 일반적인 관계형 데이터 베이스 처럼 게시글의 PK를 나타내는 필드를 작성 합니다.
( 권장하지 않는 방법 )
(1:1 매핑, 1:N 매핑은 혼자 이전에 공부하며 작성한 블로그 복습)
@Data
@Entity
@Table(name = "comments")
public class CommentEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long articleId; // 게시판 PK
private String writer;
private String content;
}
@ResponseBody 는 이전 블로그를 참고하시면 될것같습니다.@RequestBody 란 ?클라이언트 ➡ 서버 요청이며,
- 클라이언트에서 서버로 JSON 형태의 요청 데이터를 전송했을때, 해당 JSON 형식의 데이터를 받기 위해서 JSON -> Java Object로 변환 합니다.
( JSON 기반의 데이터를 자바 객체로 변환 )
CommentEntity 을 바탕으로포스트맨에서 POST 요청을 보낼경우
{
"id": 1,
"writer": "user1"
}
@PostMapping("api")
public void create(@RequestBody CommentEntity entity) {
System.out.println("id = " + entity.id);
System.out.println("writer = " + entity.writer);
System.out.println("content = " + entity.content);
}
@RequestBody 에 의해 JSON 데이터를 매핑하여HTTP 요청에서 멱등성이란 여러 번 연속해서 호출해도 클라이언트가 받는 응답은 동일하다는 것
(Put은 대부분 update, Post는 대부분 추가)