Camp/Java 문법 종합

[TIL] CRUD CRUD CRUD CRUD CRUD !!!!!!!!!!!!!!!!!!!!

taeri7204 2026. 7. 14. 20:11

Spring 주차로 넘어오고 나서 2~3주를 가까이 아직도 CRUD에 붙잡혀 있는게 너무 답답하다..

알듯 말듯하다가도 막상 혼자 작성해보려그러면 시작을 못하겠고 어디서부터 손을 대야할지도 모르겠고 

학습하면서 아무렇게나 끄적거렸던 것들 까먹기전에 끄적여본다...

 

엔티티
@Getter
@Entity
@Table
@NoArgsConstrustor


public class {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;
등등등

// 생성자

public Schedule(String title,String content, String author, String password){
        this.title = title;
        this.content = content;
        this.author = author;
        this.password = password;

    }

서비스에 
private final ScheduleRepository scheduleRepository 


dto는 무조건 @Getter 적고 시작

dto에는 생성자가 들어간다.

 

--------------------------------------------------------------------------------------

 

엔티티 정의 → 레포지토리 → DTO → 서비스 → 컨트롤러


리턴값을 계속 생각해보자


엔티티 만들기
레포지토리 만들기
서비스 만들기
컨트롤러
dto

요청 들어옴 controller>requestdto>service>entity>repository>db
응답해줌 entity>service>responsedto>controller

@PostMapping = @RequestBody
@GetMapping = @PathVariable

1. Entity 클래스 코드 작성 시
1. @Getter
2. @Entity
3. @Table(name= ~~)
4. @NoArgsConstructor(access = AccessLevel.PROTECTED)
5. @Id
6. @GeneratedValue(strategy = GenerationType.IDENTITY)
는 무조건 적고 시작하기!

프라이빗 long id 
프라이빗 String name;
등등등

생성자 만들기
퍼블릭 생성자 (id는 X, 스트링 등등등)
this. 등등등

퍼블릭 보이드 update(id는 X)
this. 등등등

2. 레포지토리 만들기

얜 ㄹㅇ 별거없음 extends Jpa레포지(엔티티명, pk 타입)

3. 서비스 만들기

@service
@Required

서비스는 레포지토리를 가져옴
private final ~repository

4. 컨트롤러 만들기
컨트롤러에는
@RestController
@RequiredArgsConstructor

컨트롤러는 서비스를 가져옴       컨 서 레

private final ~Service ~Service; 


이게 기본적인 틀
서비스를 만들자 컨트롤러가 엔티티를 알면 안됨

엔티티에 있는 id 빼고 가져와
private name; 등등등



컨 서 레
컨트롤러 안에 서비스 넣어줘야 함
서비스안에 레포지토리 넣어줘야 함


Controller부터 시작
@RestController
@RequiredArgsConstructor

private final Guestbook서비스  guestbook서비스

등록부터 만들기

@PostMapping
createUser(@Request body ~~~)
userService.save() ;라는 매서드를 호출할건데 그럼 dto가 있어야 함


CreateGuestbook dto 생성
안에 들어갈 내용은 

private String name;
private String message;

생성했으면 응답도 있어야 함

GuestbookResponse dto 생성

response는 final
id 포함
private final Long id
~ 등등

// 생성자
만들기

Controller로 이동
public ResponseEntity<GuestbookResponse> create(@RequestBody CreateGuestbook createGuestbook){
GuestbookResponse saved = uestbookService.create(createGuestbook);
}

Service로 이동
저장을 해야함

@Transactional readOnly 아님

Service는 Controller에 의해 호출됨

Controller에 썼던 GuestbookResponse create(CreateGuestbook createGuestbook)을 입력

포스트 맵핑, 리스폰스 엔티티

서비스는 @Transactional