| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- JavaScript
- 서버
- 프론트엔드
- node.js
- 스프링부트
- SQL
- BACK-END
- Next.js
- 코드테스트
- 프런트엔드
- jpa
- 백엔드
- 디자인 패턴
- 프로그래머스
- 쿼리
- 스프링
- MySQL
- oracle
- 정리
- 데이터베이스
- spring
- 자바스크립트
- 코드 테스트
- jsp
- 알고리즘
- 오라클
- web
- 미니정리
- 자바
- java
- Today
- Total
목록Spring (36)
참치코더의 꿈 메모장
@PersistenceContext + EntityManager 방식 장점 - JPA 내부 동작을 직접 학습이 가능하다. (요즘엔 잘 사용하지 않는다....)- 복잡한 커스텀 쿼리나 특수한 트랜잭션 제어 시 유연함 단점 - 반복 코드 많음(save, find 등)- 스프링 데이터가 제공하는 편리한 기능 활용 불가 1234567891011121314151617@Repository@Transactionalpublic class MemberRepository { @PersistenceContext // DB 선언 private EntityManager em; public Long save(Member member) { em.persist(member); ret..
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869@RestControllerAdvice@Log4j2public class CustomRestAdvice { @ExceptionHandler(BindException.class) // BindException이 발생했을때 이 메서드를 호출시켜준다. @ResponseStatus(HttpStatus.EXPECTATION_FAILED) //417 실패 페이지를 반환해준다. public ResponseEntityMapString, String>> handleBin..
Spring Data JPA Projection Projection- 엔티티 전체가 아니라 일부 필드만 조회하고 싶을 때 사용 Interface-based Projection 12345678910111213141516171819202122232425262728293031323334353637383940414243// 인터페이스로 조회를 원하는 필드를 선택// 인터페이스는 실체 클래스가 없고 getter만 정의된 인터페이스이다. // 개인 프로젝트 발췌 public interface FindAllReservationDTO { Long getId(); String getCalender(); String getClock(); String getDogType(); int getDog..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879// @ 사용방법 // 1. @RequestParam 으로 설정한 후에 item repository 저장 후 반환// 코드 다소 복잡 @PostMapping("/add")public String addItem(@RequestParam String itemName, @RequestParam Integer price, Model model) { Item item =..
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107// 타임리프 사용 선언// build.gradle 라이브러리 다운로드 다운 및 적용된 가정 // 속성 변경 - th:href th:href="@{/css/bootstrap.min.css}" // 기존에 있던 a태그의 href 값을 스프링 서버를 거치면 선언한 속성으로 변경해준다, 만약 값이 없다면 새로 생성해준다.// HTML..
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113// HTTP 응답 - 정적 리소스, 뷰 템플릿/* 스프링에서 응답 데이터를 만드는 방법(3가지) 1. 정적 리소스 : 웹 브라우저에 정적인 HTML, CSS, JS를 제공할 때는, 정적 리소스를 사용한다. 2. 뷰 템플릿 사용 : 웹 브라우저에 동적인 HTML을 제공할 때..
HTTP 요청 메시지 (단순 텍스트) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273// Http 요청 메시지 - 단순 텍스트// Http message body에 데이터를 직접 담아서 요청 /* 1. Http message body에 데이터를 직접 담아서 요청 2. HTTP API에서 주로 사용, (JSON, XML, TEXT) 3. 데이터 형식은 주로 JSON 사용 4. POST, PUT, PATCH */ // 요청 파라미터와 다르게, HTTP 메시지 바디를 통해 데이터가 직접 넘어오..
@Data 역할 @Data는 Lombok에서 제공하는 편리한 단축 어노테이션이다. 포함되는 기능!!!- @Getter + @Setter -> 모든 필드에 getter/setter 생성- @ToString -> toString() 생성- @EqualsAndHashCode -> equals() & hashCode() 생성- @RequiredArgsConstructor -> final 필드나 @NonNull 필드만 포함하는 생성자 생성 생성자를 생성하는 Lombok 어노테이션 3가지 - @NoArgsConstructor : 파라미터 없는 기본 생성자 - @AllArgsConstructor : 모든 필드를 파라미터로 받는 생성자 - @RequiredArgsConstructor : final 또는 @NonNu..