전체 글
-
SQL 문제 풀이 중 새롭게 배운 것 메모3코딩공부/데이터베이스, SQL 2025. 11. 28. 20:18
1. 비트 단위 OR을 반환하는 집계함수 BIT_OR(expr) 예시(문제풀이)select ID, EMAIL, FIRST_NAME, LAST_NAMEfrom DEVELOPERSwhere SKILL_CODE & (select bit_or(CODE) from SKILLCODES where NAME in ("C#", "Python")) != 0 order by ID asc;아직 완전히 이해하지 못했으니 추가 학습이 필요하다. 2. 이름을 가진 서브쿼리 정의 후 재사용WITH [ 별명1 ] [ ( 컬럼명1 [, 컬럼명2 ] ) ] as ( sub query ..
-
SQL 문제 풀이 중 새롭게 배운 것 메모2코딩공부/데이터베이스, SQL 2025. 11. 18. 18:57
1. 달에 해당하는 정수만 추출하기MONTH(날짜_칼럼) 2. join할 때 left table의 내용을 모두 가져오기(임시)LEFT JOIN 예시(문제풀이) select p.ID, count(c.PARENT_ID) as CHILD_COUNTfrom ECOLI_DATA p left join ECOLI_DATA c on p.ID = c.PARENT_ID group by p.IDorder by p.ID asc; 3. 상위 n개 데이터만 출력하기LIMIT (숫자) 예시(문제풀이)select ID, LENGTHfrom FISH_INFOorder by LENGTH desc, ID asclimit 10; 출처https://makand.tistory.com/entry/SQL-LEFT-JOIN-%EA%B5%AC%EB..
-
SQL 문제 풀이 중 새롭게 배운 것 메모코딩공부/데이터베이스, SQL 2025. 11. 17. 23:33
1. 숫자 반올림하기ROUND(숫자, 반올림할 자릿수) 예시(문제 풀이)select round(avg(DAILY_FEE)) as AVERAGE_FEEfrom CAR_RENTAL_COMPANY_CARwhere CAR_TYPE = "SUV"; 2. 날짜 형식 지정하기DATE_FORMAT(날짜, 형식) 3. 범위 구하기BETWEEN a AND b 예시(문제 풀이)select b.TITLE, b.BOARD_ID, r.REPLY_ID, r.WRITER_ID, r.CONTENTS, date_format(r.CREATED_DATE, "%Y-%m-%d") as CREATED_DATEfrom USED_GOODS_BOARD b, USED_GOODS_REPLY rwhere b.BOARD_ID = r.BOARD_ID an..
-
JUnit 사용 연습코딩공부/자바 2025. 7. 2. 09:34
JUnit은 Java에서 독립된 단위테스트를 지원해 주는 프레임워크이다. 테스트끼리 영향을 주지 않도록 각 테스트를 실행할 때마다 테스트를 위한 실행 객체를 만들고 테스트가 종료되면 실행 객체를 삭제한다. 테스트 대상 단위는 일반적으로 클래스 또는 메소드이다. Run Test를 실행하면 콘솔창에 테스트 결과가 출력된다. 테스트 정보를 확인하기 위해 체크 모양 아이콘을 눌러야 한다. 주로 사용하는 애너테이션 & 메서드 @Before @Test 메서드보다 먼저 실행 됨@Test이 에너테이션을 붙인 메서드는 테스트를 수행하는 메서드가 됨Assertions.asserEquals(a, b) Junit에서 제공하는 검증 메서드. a와 b의 값이 같은지 확인함. a는 기대하는 값, b는 실제로 검증할 값을 넣는다...
-
내일배움캠프 84일차코딩공부 2023. 9. 12. 21:05
오늘은 뷰에서 offset 방식과 No offset 방식의 페이징을 각각 적용했다. 쿼리 최적화에 대해 설명해주시고 방법에 대해 설명해주세요. 쿼리 최적화란 select문을 보다 빠르고 효율적으로 실행되도록 하는 작업입니다. 데이터를 빠르게 가져옴으로서 비용 감소와 서비스의 질을 높일 수 있습니다. 쿼리 최적화는 휴리스틱 최적화와 비용 기반 최적화의 두 가지 범주로 크게 나눌 수 있습니다. 휴리스틱 최적화는 개발자 또는 데이터베이스 관리자가 수동으로 정의한 사전 결정된 규칙 및 모범 사례 집합에 의존합니다. 이러한 규칙에는 일반적으로 중복 작업 제거, 검색 조건 단순화 또는 처리 시간을 줄이기 위한 쿼리의 작업 순서 재정렬과 같은 기술이 포함됩니다. 이 접근 방식은 쿼리 성능을 향상시킬 수 있지만 비용 ..
-
내일배움캠프 83일차코딩공부 2023. 9. 11. 20:55
기술면접 질문과 답 멀티프로세스와 멀티쓰레드의 특징에 대해 설명해주세요. 멀티 프로세스란 두개 이상 다수의 프로세서가 협력적으로 하나 이상의 작업을 동시에 처리하는 것을 말합니다. 각 프로세스 간 메모리 구분이 필요하거나 독립된 주소 공간을 가져야 할 경우 사용합니다. 멀티 스레드란 하나의 프로세스에 여러 스레드로 자원을 공유하며 작업을 나누어 수행하는 것입니다. 멀티 스레드는 멀티 프로세스보다 적은 메모리 공간을 차지하고 Context Switching이 빠른 장점이 있지만, 동기화 문제와 하나의 스레드 장애로 전체 스레드가 종료 될 위험을 갖고 있습니다. 멀티 프로세스는 하나의 프로세스가 죽더라도 다른 프로세스에 영향을 주지 않아 안정성이 높지만, 멀티 스레드보다 많은 메모리공간과 CPU 시간을 차지..
-
내일배움캠프 82일차코딩공부 2023. 9. 8. 21:00
오늘은 페이징 처리에 No offset을 적용해보고, 페스티벌 수정 시 태그 변경 여부 확인 기능을 추가하려고 한다. No Offset을 적용할 항목 유저 팔로워/팔로잉 조회 기능 태그 전체 조회 기능 리뷰 댓글 전체 조회 기능 < 고민중 No Offset은 생각보다 어려워서 다 하지 못했고, 태그 확인 기능만 작성할 수 있었다. 기존의 페스티벌 수정 시에는 페스티벌과의 연관관계를 모두 삭제하고 새로 생성했지만, 이번에는 태그 리스트에 변화가 있을 때만 해당 작업을 실행하도록 하였다. 다음의 블로그 글을 참고하여 순서 상관 없이 리스트끼리 비교할 수 있는 containsAll()메소드를 사용하면 된다고 생각한다. https://playground.naragara.com/513/ [Java] 자바 Arra..
-
내일배움캠프 81일차(QueryDsl에서 동적으로 정렬하기)카테고리 없음 2023. 9. 7. 20:44
오늘은 QueryDsl을 이어서 적용할 예정이다. 오늘 할 일의 목록은 다음과 같다. Pageable 이용해 동적으로 정렬하기 No offset에 대해 알아보고 적용할지 선택하기 키워드 검색 기능 구현하기 1. 동적으로 정렬하기 OrderSpecifier을 사용해 동적으로 정렬하는 데 성공하였다. PathBuilder의 두번째 인자에는 정렬 기준이 되는 클래스의 QEntity를 불러낼 때 사용한 variable과 같은 문자열을 쓰면 된다. //팔로우한 페스티벌 정렬을 위한 OrderSpecifier private List getOrderSpecifier(Sort sort){ List orders = new ArrayList(); sort.stream().forEach(order -> { Order dir..