| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 백엔드
- 디자인 패턴
- 서버
- 스프링부트
- 알고리즘
- 코드테스트
- 오라클
- BACK-END
- 미니정리
- oracle
- 프로그래머스
- MySQL
- 프런트엔드
- 코드 테스트
- spring
- 정리
- 자바
- 스프링
- jsp
- java
- Next.js
- web
- 자바스크립트
- 쿼리
- 프론트엔드
- node.js
- jpa
- SQL
- 데이터베이스
- JavaScript
- Today
- Total
목록분류 전체보기 (357)
참치코더의 꿈 메모장
JPA를 쓰다 보면 성능이 갑자기 느려지는 구간이 있다.그 대표적인 원인이 바로 N+1 문제다. N+1 문제란? - 연관된 데이터를 조회할 때 쿼리가 불필요하게 많이 실행되는 현상 게시글과 댓글이 있을때 Post (1) : (N) Comment 게시글 10개를 조회했을 때 실행되는 쿼리 1번: 게시글 10개 조회10번: 각 게시글의 댓글 조회 -> 각각의 게시글에 작성되어 있는 댓글을 일일이 JPA Hibernate가 퍼오게 된다. 이게 바로 N(게시글 수) + 1 = N+1 문제이다. 왜 발생할까? - JPA의 지연 로딩(FetchType.LAZY) 때문이다. 123456789101112@ManyToOne(fetch = FetchType.LAZY)@OneToMany(mappedBy="post", f..
1234567891011121314SELECT CAR_ID, CASE WHEN MAX( CASE WHEN START_DATE = DATE '2022-10-16' AND END_DATE >= DATE '2022-10-16' THEN 1 ELSE 0 END ) = 1 THEN '대여중' ELSE '대여 가능' END AS AVAILABILITYFROM CAR_RENTAL_COMPANY_RENTAL_HISTORYGROUP BY CAR_IDORDER BY CAR_ID DESC;cs - CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 ..
12345678-- 코드를 입력하세요SELECT DISTINCT CC.CAR_ID AS CAR_IDFROM CAR_RENTAL_COMPANY_CAR CCJOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY RH ON CC.CAR_ID = RH.CAR_IDWHERE CC.CAR_TYPE = '세단' AND EXTRACT(MONTH FROM RH.START_DATE) = 10ORDER BY CAR_ID DESC;cs - CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성하는 문제이다. 이때 자..
1. 서버 컴포넌트에서 브라우저 API 사용이 불가능 하다. - 서버에서 실행되기 때문에 사용하면 바로 오류가 발생한다.- window, document, localStorage, navigate, react 훅 등 사용이 불가능하다.- Client Component로 분리하여 사용이 가능하다. (코드 상단에 'use client' 표시로 client 컴포넌트 표시) 2. useState( ), useEffect( ) 등 사용이 불가능 하다. - react 훅 (useState, useEffect, useReducer, useRef) 등 사용이 불가능하다.- Client Component로 분리하여 사용이 가능하다. (코드 상단에 'use client' 표시로 client 컴포넌트 표시) 3. Props..
123456789-- 코드를 입력하세요SELECT u.USER_ID, u.NICKNAME, SUM(b.PRICE) AS TOTAL_SALESFROM USED_GOODS_BOARD b JOIN USED_GOODS_USER u ON b.WRITER_ID = u.USER_IDWHERE b.STATUS = 'DONE' GROUP BY u.USER_ID, u.NICKNAME HAVING SUM(b.PRICE) >= 700000ORDER BY TOTAL_SALES ASC;Colored by Color Scriptercs - USED_GOODS_BOARD 와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 S..
123456789101112131415161718192021SELECT u.USER_ID, u.NICKNAME, CONCAT(u.CITY, ' ', u.STREET_ADDRESS1, ' ', u.STREET_ADDRESS2) AS 전체주소, CONCAT( SUBSTRING(u.TLNO, 1, 3), '-', SUBSTRING(u.TLNO, 4, 4), '-', SUBSTRING(u.TLNO, 8) ) AS 전화번호FROM USED_GOODS_USER uJOIN USED_GOODS_BOARD b ON u.USER_ID = b.WRITER_IDGROUP BY u.USER_ID, u.NICKNAME, u.CITY, ..
1234567891011-- 방법 (1)SELECT *FROM tableLIMIT 개수 OFFSET 시작위치; -- 방법 (2)LIMIT 시작위치, 개수; SELECT *FROM usersLIMIT 10 OFFSET 20; -- 21번째 행부터 10개 가져옴 cs
1. 메시지(Message) - 스프링에서 말하는 메시지는 화면, 로그, 에러 메시지 등에 사용되는 문자열을 코드에서 분리한 것이다.- 문자열을 코드에 하드코딩 하지 않고, properties 파일에 모아 관리하는 개념이다. 사용하는 이유 - 다국어 지원 (국제화)- 메시지 수정 시 코드를 재배포 할 필요가 없다. 그냥 수정이 간편하다(properties 만 수정하면 다 수정된다.)- Validation, Exception 메시지를 공통 관리할 수 있다. 2. MessageSource - MessageSource는 메시지를 읽어오는 인터페이스이다.- 일반 스프링 이라면 ResourceBundleMessageSource를 기본적으로 빈으로 등록해서 사용해야 하지만 - 스프링부트를 사용한다면 MessageS..