목록전체 글 (76)
Paper.Yellow

user.java import java.sql.Timestamp; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import shop.mtcoding.final5th.domain.AudingTime..

프로젝트 DB ToDo 관련된 어플을 만든다는건 알고 있었지만 DB를 보면서 서비스 흐름을 이해하게 됐음. 시간을 저장하기 위해서 일괄적으로 Timespamp를 사용했지만 SQL 자체에서도 년월일 / 시간 / 년월일+시간 별로 구별할 수 있다는걸 알게 되었음. 정리 겸 기록용 포스팅 ↓ MySQL 시간 입력하기 DATE DATETIME TIMESTAMP Format YYYY-MM-DD YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss Desc - 날짜만 표기 - 날짜 및 시간 표기 - 날짜 및 시간 표기 - 기본적으로 NOT NULL - Timezone 기반 Supported 1000-01-01 ~ 9999-12-31 1000-01-01 00:00: paper-y.tistory.co..

DATE DATETIME TIMESTAMP Format YYYY-MM-DD YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss Desc - 날짜만 표기 - 날짜 및 시간 표기 - 날짜 및 시간 표기 - 기본적으로 NOT NULL - Timezone 기반 Supported 1000-01-01 ~ 9999-12-31 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 1970-01-01 00:00:01 UTC ~ 2038-01-1903:14:07 UTC Storage 3 bytes 8 Byte 4 Byte 테이블 생성시 쿼리 예시 create table TIME( DATE DATE, TIME TIME, datetime DATETIME, timestamp TIMEST..

{ // Place your snippets for java here. Each snippet is defined under a snippet name and has a prefix, body and // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are: // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the // same ids are connecte..
HTTP 상태코드 ● 100 번대 상태코드: Information responses - 서버가 요청을 받았으며, 서버에 연결된 클라이언트 작업을 계속 진행하라는 의미. 100 : 진행 중, 현재까지 진행 상태에 문제가 없으며, 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 됨. 102 : 서버가 요청을 수신하였으며 처리 중이지만, 제대로 된 응답을 알려줄 수 없음을 알림. ● 200 번대 상태코드 : Successful responses 정상적인 처리 후 응답 200 : 요청 성공. 정상 처리. 201 : 요청 성공으로 새로운 리소스가 생성됨. 일반적으로 POST 요청 또는 일부 PUT 요청 이후 발생. 204 : 정상처리 되었으나, 서버에 보낼 데이터가 없음 ● 300..

시큐리티 설정 전에 api Exception 만들고, Exception 터트렸을때 제어권이 있는 컨트롤러를 만든 후에 시큐리티를 설정해야한다. >>> 시큐리티 먼저 설정하지 않기!!! Exception 컨트롤이 중요!!!!!!!!!! ExceptionAdvice.java import lombok.Getter; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @Getter public class ResponseDto { private final Integer code; private final String msg; private final T data; } 변경될 일이 없으니 Setter을 달지 않음. ExceptionHandler를 자바가..

정해진 Domain이 있을 경우 Enum으로 >> role을 생성할때 String 사용하지 않기 설계가 나오면 글자수도 필요하다. 하드디스크에서 일부를 DBS로 사용하게 된다. Table의 스키마에 따라 용량이 정해진다. = Table Space ?? 컬럼의 제약조건 ?? 테이블에 Enum 타입은 없기 때문에, 실제로 적용되는 타입은 String 이란것을 알려주기 위한 @Enumerated(EnumType.STRING). @NoArgsConstructor 내가 따로 User.java를 new할 이유가 있을까? 없음 하이버네이트가 getter를 통해 테이블을 생성함. 필드값을 보고 어노테이션을 분석. 이 생성자가 public일 이유 또한 없음. 하이버네이트는 private, public 상관없이 다 접근이..

모든 Entity에 시간을 걸고 싶을때 순서 1. AudingTime 클래스 생성 - updatedAt / createdAt 만듦 - 추상클래스(abstract)로 생성 / new를 막음 - @EntityListeners 리스너 달아주기 - @MappedSuperclass 자식이 이 필드를 인식해서 컬럼을 생성할 수 있게 함. - private X >> protected 자식이 사용 할 수 있게, public X 다른 곳에서 쓸 필요 없기 때문 2.main 실행 클래스에서 @EnableJpaAuditing 달아주기 AudingTime.java import java.time.LocalDateTime; import javax.persistence.Column; import javax.persistence.E..