분류 전체보기 229

타임라인서비스) 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

MYSQL) 테이블 생성, 삽입, 조회

- SQL(Structured Query Language) 데이터베이스에서 생성, 삽입 조회 등 명령문 - course 테이블 생성 CREATE TABLE IF NOT EXISTS courses ( id bigint(5) NOT NULL AUTO_INCREMENT, title varchar(255) NOT NULL, tutor varchar(255) NOT NULL, PRIMARY KEY (id) ); bigint 는 java에서 Long과 같은 자료형 NOT NULL: NULL값이 없어야함. 그 컬럼에 데이터가 모두 들어있어야함 AUTO_INCREMENT: 1씩 자동 증가 - 데이터 삽입 INSERT INTO courses (title, tutor) VALUES ('웹개발의 봄, Spring', '남병..

Spring Framework 2021.07.09

RDBMS(Relational DataBase Management System)

- RDBMS(Relational DataBase Management System) 컴퓨터에 정보를 저장하고 관리하는 기술 (like 고도화된 엑셀 프로그램) - RDBMS 종류 MySQL / PostgreSQL / Oracle Database [사용할 DB] - H2 In-memory DB 중 하나 (인메모리DB: 서버가 작동하는 동안에만 내용을 저장하고 서버가 작동을 멈추면 데이터가 모두 삭제되는 DB) - MySQL AWS RDS라는 서비스를 사용해볼 예정

Spring Framework 2021.07.09