전체 글 153

가격대별 상품 구하기

처음에 풀은 방식 SELECT CASE WHEN price between 0 and 9999 THEN 0 WHEN price between 10000 and 19999 THEN 10000 WHEN price between 20000 and 29999 THEN 20000 WHEN price between 30000 and 39999 THEN 30000 WHEN price between 40000 and 49999 THEN 40000 WHEN price between 50000 and 59999 THEN 50000 WHEN price between 60000 and 69999 THEN 60000 WHEN price between 70000 and 79999 THEN 70000 WHEN price betwee..

자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

SELECT CAR_TYPE, count(CAR_TYPE) as CARS from CAR_RENTAL_COMPANY_CAR where OPTIONS LIKE '%통풍시트%' OR OPTIONS LIKE '%열선시트%' OR OPTIONS LIKE '%가죽시트%' group by car_type order By CAR_TYPE ============================================== SELECT CAR_TYPE, count(CAR_TYPE) as CARS from CAR_RENTAL_COMPANY_CAR where OPTIONS REGEXP '통풍시트|열선시트|가죽시트' group by car_type order By CAR_TYPE Like OR 을 연속으로 쓰는것 보다 보다 ..

조건에 부합하는 중고거래 상태 조회하기

USED_GOODS_BOARD 테이블에서 2022년 10월 5일에 등록된 중고거래 게시물의 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태를 조회하는 SQL문을 작성해주세요. 거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류하여 출력해주시고, 결과는 게시글 ID를 기준으로 내림차순 정렬해주세요. SELECT BOARD_ID,WRITER_ID,TITLE,PRICE, case (STATUS) when 'SALE' then '판매중' when 'RESERVED' then '예약중' when 'DONE' then '거래완료' end as status FROM USED_GOODS_BOARD as ugb where CREATED_DATE = '2022-10-05' ..

가격이 제일 비싼 식품의 정보 출력하기

FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품 분류, 식품 가격을 조회 # SubQuery 를 이용한 조회 SELECT PRODUCT_ID,PRODUCT_NAME,PRODUCT_CD,CATEGORY, PRICE FROM food_product WHERE price = (SELECT MAX(price) FROM food_product) # Order Limit을 활용한 조회 select PRODUCT_ID,PRODUCT_NAME,PRODUCT_CD,CATEGORY, PRICE from food_product order by price desc limit 1 SELECT PRODUCT_ID,PRODUCT_NAME,PRODUCT_CD,CATEGORY,ma..

오프라인/온라인 판매 데이터 통합하기도움말

# 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성 # OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 # 매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬 SELECT DATE_FORMAT(SALES_DATE,"%Y-%m-%d") as SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE WHERE SALES_DATE between '2022-03-01' and '2022-03-31' UNION ALL SELECT DATE_FORM..

조건에 부합하는 중고거래 댓글 조회하기

# 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회 # 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬 SELECT ugb.TITLE,ugb.BOARD_ID,ugr.reply_id,ugr.writer_id, ugr.contents, DATE_FORMAT(ugr.created_date,'%Y-%m-%d') as created_date FROM USED_GOODS_BOARD AS UGB INNER JOIN USED_GOODS_REPLY AS UGR ON UGB.BOARD_ID = UGR.BOARD_ID WHERE ugb.created_date between '2022-10-01' ..

@Transactional

@Transactional 이란? - 서비스에서 사용되는 DB접근 기술 마다 Transaction을 관리해주는 방법이 다른데 이를 추상화하여 Spring AOP 기능을 통하여 Transaction을 관리하는 Spring의 트랜잭션 통합 관리 기능 - Transaction 관리 방법을 Bean으로 등록하여서 AOP를 이용하여 DB접근 기술에 Transaction을 지정해주는 방법을 최상단에서 관리하는 것을 선언적 트랜잭션 (declarative transction) 이라고 한다. 이와 반대로 개별적으로 DB접근 기술을 직접 코드 안에서 사용하는 방법은 프로그램에 의한 트랜잭션 ( programmatic transaction) 이라고 한다. @Transactional 사용 방법 - DB 접근 방법에 따른 T..

Sequence 란 무엇인가?

Sequence란? 컬렉션에서 map, filter 등에서 실행되는 결과는 해당 컬렉션을 즉시(eagerly) 생성한다. 이는 컬렉션 함수를 연속으로 사용하게 된다면 사용되는 단계마다 새로운 컬렉션에 임시로 담고 다음 함수를 실행한다는 의미이다. 그러나 지연(lazy) 연산의 특징을 가진 Sequence 에서는 중간 결과를 새로운 컬렉션에 담지 않고 연산을 연속으로 사용할 수 있다. 중간 결과를 저장하는 컬렉션이 생기지 않기 때문에 원소가 많은 경우에는 성능이 눈에 띄게 좋아진다. 또한 Sequence 는 결과값을 반환하는 map,filter 와 같은 결과 값을 반환하는 컬렉션 함수만 있다는 점을 참고해야한다 그렇다면 어떤 방법으로 Sequence는 연속적인 함수의 계산 값을 반환하는 것일까? Seque..

Kotlin 2023.07.23

406 ERROR : Not Acceptable

서비스를 운영하는데에 있어 간헐적으로 나오는 406 ERROR 가 발생하여 해당 에러에 대한 원인과 해결 방안에 대해 끄적여 보겠습니다. 406 ERROR 란 무엇인가? 클라이언트 에러 응답 코드로써 서버가 요청(Request)의 주도적인 콘텐츠 협상 헤더에 정의된 허용 가능한 값 목록과 일치하는 응답을 생성할 수 없으며, 서버가 기본 표현을 제공하지 않음을 나타냅니다. ⌘ 콘텐츠 협상 헤더란? 동일한 URI에서 리소스의 서로 다른 버전을 제공하기 위해 사용하는 매커니즘 사용자 에이전트가 사용자에게 제일 잘 맞는 것이 무엇인지 (언어, 이미지 포맷, 인코딩 등)를 명시할 수 있다. Accept, Accept-Charset(UTF 탄생으로 폐기), Accept-Encoding,Accept-Language ..

에러 모음집 2023.07.19

Kotest

Kotest 를 사용하는 이유 - 중첩된 테스트 코드의 가독성을 가독성을 높혀줄 수 있다 - kotlin 에서 DSL (Domain Specific Language, 도메인 특화 언어) 를 이용하여 테스트 코드를 보기 쉽게 작성하며 비 개발자도 쉽게 알아 볼 수 있도록 명확하게 나타낼 수 있다. Kotlin Third-Party Libarary 1. Assertion Libarary - 테스트 통과 여부를 판단하는 보조 라이브러리 2. Property Testing - 여러 입력값을 테스트로 만드는 보조 라이브러리 Kotest 유형 10가지 유형은 모두 같은 기능을 하며 테스트를 표현하는 방법이 다른 것이므로, 자신이 생각하는 좋은 테스트 코드를 짜기 위한 클래스들을확장하여 사용하면 된다. 1가지 유형 ..

Kotlin 2023.06.08