Java 28

타임라인서비스) Service 만들기

/*MemoService.java*/ package com.sparta.week03.service; import com.sparta.week03.domain.Memo; import com.sparta.week03.domain.MemoRepository; import com.sparta.week03.domain.MemoRequestDto; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import javax.transaction.Transactional; @Service //서비스단인 것을 스프링에게 알려줘야함 @RequiredArgsConstructor public class MemoService ..

Spring Framework 2021.07.21

타임라인서비스) Repository 만들기

/*Memo.java*/ package com.sparta.week03.domain; ... @NoArgsConstructor // 기본생성자를 만듭니다. @Getter @Entity // 테이블과 연계됨을 스프링에게 알려줍니다. public class Memo extends Timestamped { // 생성,수정 시간을 자동으로 만들어줍니다. @GeneratedValue(strategy = GenerationType.AUTO) @Id private Long id; //아이디 @Column(nullable = false) private String username; //사용자이름 @Column(nullable = false) private String contents; //내용 public Memo(S..

Spring Framework 2021.07.21

API - POST, PUT, DELETE

- POST , PUT, DELETE 데이터 생성, 수정, 삭제 API 만들어보기 /*CourseController.java*/ package com.sparta.week02.controller; ... @RequiredArgsConstructor //Repository를 대신해서 넣어주는 역할 @RestController //JSON으로 응답 public class CourseController { private final CourseRepository courseRepository; private final CourseService courseService; //Spring은 요청을 주고 받는 방식을 강제하는 프레임워크다..!!// // PostMapping을 통해서, 같은 주소라도 방식이 다름을 구..

Spring Framework 2021.07.21

API-GET

- API 클라이언트와 서버 간의 약속 클라이언트가 정한 대로 서버에게 요청 Request를 보내면 서버가 요구사항을 처리하여 응답 Response를 반환함 - REST 주소에 명사 & 요청 방식에 동사를 사용함으로써 의도를 명확히 드러냄 생성(POST)/ 조회(GET)/ 수정(PUT)/ 삭제(DELETE) 요청 방식 주소 뜻 POST localhost:8080/courses 강의 생성 요청 GET localhost:8080/courses 강의 전체 목록 조회 요청 GET localhost:8080/courses/1 ID가 1번인 데이터 조회 요청 PUT localhost:8080/courses/3 ID가 3번인 데이터 수정 요청 DELETE localhost:8080/courses/2 ID가 2번인 데..

Spring Framework 2021.07.18

Lombok, DTO

- Lombok Getter, Setter 등 필수적으로 필요한 메소드들을 어노테이션으로 자동 생성해줘서 코드의 길이를 줄일 수 있도록 도와주는 라이브러리 - @Getter, @NoArgsConstrucctor 적용 @Getter : Getter 함수를 대신함 public void getTutor() { return this.tutor; } 등 Getter함수들을 적을 필요 없음 @NoArgsConstructor : 기본생성자를 대신 생성 public Course() { } 를 기재 안 해도 됨 /*Course.java*/ @Getter //getter함수를 대신함(lombok) @NoArgsConstructor // 기본생성자를 대신 생성해줍니다.(lombok) @Entity public class C..

Spring Framework 2021.07.18

JPA) 생성일자, 수정일자

- extends 클래스의 상속 이미 만들어둔 것을 가져다가 쓰는 것 - 상속 연습-Timestamped DB의 기본 중 기본은 데이터의 생성일자와 수정일자를 파악하는 것임 생성일자와 수정일자를 필드로 가지면 파악할 수 있음 Timestamped 클래스를 미리 만들어두면 다른 클래스를 만들 때 상속해서 사용하면 굳이 일일이 매번 클래스 멤버변수에 생성일자, 수정일자를 쓸 필요가 없음 : 번거로움이 줄음 /*Timestamped.java*/ @MappedSuperclass // 상속했을 때, 멤버변수를 컬럼으로 인식하게 합니다. //@EntityListeners: 테이블 같은걸 주시하는것 @EntityListeners(AuditingEntityListener.class) //AuditingEntityLis..

Spring Framework 2021.07.11

JPA) JPA 사용해보기

- 콘솔에 SQL이 보이도록 application.properties 세팅 spring.jpa.show-sql=true - JPA 사용해보기 @SpringBootApplication public class Week02Application { public static void main(String[] args) { SpringApplication.run(Week02Application.class, args); } //프로젝트에서 실제로 쓰이진 않음. 단지 JPA 사용을 보여주기 위해 튜터가 만들어본 코드임 // Week02Application.java 의 main 함수 아래에 붙여주세요. @Bean //repository: 쿼리를 날리는 녀석 public CommandLineRunner demo(Cours..

Spring Framework 2021.07.11

JPA) JPA 시작하기

- JPA SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기 JPA를 사용 안한다면 DB에 맞는 문법을 가지고 SQL을 일일이 다 짜야함 DB를 다른 종류로 바꾸게 된다면 기존 SQL을 바꾼 DB 문법에 맞게 다 바꿔야함 JPA를 사용한다면 DB 종류를 바꾸게 되더라도 문법에 맞춰 쿼리 변경을 안 해도 됨 JPA가 알아서 DB 종류에 맞춰 번역해주기 때문 DB에서 '테이블'이라는 용어가 JPA에서는 '도메인' DB에서 'SQL'이라는 용어가 JPA에서는 'Repository' 테이블을 만들 때 적었던 컬럼 이름을 가지고 클래스 만들기 /*Course.java*/ package com.sparta.week02.domain; @NoArgsConstructor // 기본생성자를..

Spring Framework 2021.07.09

그레이들(Gradle)이란?

- Gradle 다른 사람들이 만들어둔 도구 다른 사람의 코드를 다운받고 적용하는걸 도와주는 도구 인터넷에 스프링 프로젝트를 배포할 수 있게 빌드를 도와줌 JAVA 라이브러리 다운 받는 곳 : https://mvnrepository.com/ 예시로 JSON In Java를 다운받을것임 Gradle 아래에 있는 것을 복사해서 프로젝트의 build.gradle 파일에 내용을 추가하면 라이브러리를 불러올 준비가 된것임 내용을 추가한 뒤 컴파일 하면 라이브러리가 추가된것임

Spring Framework 2021.07.07