묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
ArticleRepository의 네이티브 쿼리부분 질문드립니다...
안녕하세요~~ 강의 너무 잘 듣고 있는 1인입니다.다름이 아니라 네이티브 쿼리 작성 부분에서 에러가 나는데 이게 이곳저곳 찾아봐도 해결이 안돼서요ㅠㅠ 자꾸 아래 부분에서 에러가 납니다... 참고로 툴은 vscode로 spring extension받아서 사용중입니다... LIMIT :limit OFFSET :offset " @Query( value = "SELECT article.article_id, article.title, article.content, article.board_id, article.writer_id, " + "article.created_at, article.modified_at " + "FROM ( " + " SELECT article_id " + " FROM article " + " WHERE board_id = :boardId " + " ORDER BY article_id DESC " + " LIMIT :limit OFFSET :offset " + ") t " + "LEFT JOIN article ON t.article_id = article.article_id", nativeQuery = true ) List<Article> findAll( @Param("boardId") Long boardId, @Param("offset") Long offset, @Param("limit") Long limit );
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Selet All 쿼리에서 반복적으로 Clustered Index 탐색 하는지 궁금 합니다.
select * from article where board_id = 1 order by article_id desc limit 30 offset 1499970; 해당 SQL 문을 실행하면 선생님이 설명 해주신 것 처럼 먼저 Secondary Index 에서 offset 0 부터 탐색이 일어나는데요.Secondary Index 에서 offset 0 조회 한 다음 Clustered Index 에서 데이터를 찾는다고 해주셨습니다. 이러한 과정을 offset 1499999 까지 반복 과정이 발생 하는데왜 Secondary Index 에서 탐색 후 Clustered Index 에 데이터를 찾는 과정이 필요한지 궁금 합니다. 그러니깐 Secondary Index 에서만 일단 1499999 번 탐색한 다음에 Clustered Index 을 통해 그 외 데이터 (select *) 을 가져오면 되는것이 아닌가요? 제가 아직 인덱스에 대한 지식이 부족해 이런 질문을 한건데요ㅠ 다시 정리해서 질문 드리자면 왜 Secondary Index 을 통해 offset 순번 1499999 까지 도착 하지 않았는데 불필요하게 Clustered Index 까지 탐색하는가 입니다!
-
미해결업무에 바로 쓰는 SQL 튜닝
다음과 같은 쿼리가 더 좋은 결과를 보이는데 이유가 뭔지 궁금합니다.
SELECT e.emp_id , s.avg_salary , s.max_salary , s.min_salary FROM EMP e, (select emp_id, ROUND(AVG(annual_salary), 0) avg_salary, ROUND(MAX(annual_salary), 0) max_salary, ROUND(MIN(annual_salary), 0) min_salary from SALARY where emp_id BETWEEN 10001 and 10100 GROUP BY emp_id) s WHERE e.emp_id = s.emp_id; 처음에 답을 안 보고 제가 개선해본 쿼리인데,필터링 조건을 salary에 넣어주고, 이걸 조인해서(emp의 primary key) 나오는 결과인데 미세하게 더 빠르네요.! 정답 쿼리가 조금 더 느린 이유는 salary 테이블을 3번 접근해서 그런거 같은데(index를 활용하더라도) 맞는지 궁금합니다.
-
미해결업무에 바로 쓰는 SQL 튜닝
rollup mariadb 11 ver 기준
SELECT REGION, GATE, COUNT(*) AS cntFROM ENTRY_RECORDWHERE REGION <> ''GROUP BY REGION, GATE WITH ROLLUP; -- 414ms ROLLUP 사용법이 달라서 구글이나 지피티에 서칭을 해봤습니다. 저처럼 안 되시는 분이 많을 거 같아서 올립니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
오류 도와주세요 ..제발 도와주세요 ㅠㅠ
어제까지 잘 됐는데 갑자기 오늘부터 서버실행시 오류가 나는데 찾아봐도 모르겠어서 남깁니다 .. 제발 도와주세요.다음 진도를 못 나가고 있습니다 ㅠㅠ
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 CRUD API 구현 10:39에서 에러 발생
현재 ArticleApplication.java를 실행하면 다음과 같은 에러가 발생하고 있습니다.동작에는 문제가 없어서 후에 나오는 ArticleApiTest를 작성하고 실행을 해보니, 비밀번호와 아이디가 일치하지 않는다는 에러가 나오고 있습니다.하지만 저는 docker exec -it kuke-board-mysql bashmysql -u root -proot(비밀번호)로 구성되어 있으며 application.yml 또한 아래 처럼 구성되어 있습니다.server: port: 9000 spring: application: name: kuke-board-article-service datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://locahost:3306/article username: root password: root jpa: database-platform: org.hibernate.dialect.MySQLDialect open-in-view: false show-sql: true hibernate: ddl-auto: none 그래서 gpt에게 물어본 결과 mysql plugin 문제일 수 있다고 해서 아래와 같이 변경까지 해봤습니다. 하지만 그럼에도 에러는 해결되지 않고 계속해서 이런 에러가 나와 질문드립니다.
-
미해결업무에 바로 쓰는 SQL 튜닝
use index, force index 힌트 질문
학습 환경은docker + mariadb 입니다.! 현재 힌트를 사용해서 Manager 테이블의 인덱스를 강제시켜서 실행시켰는데 다음과 같이 table full scan으로 변환되었습니다. 이거는 mariadb 내부적으로 hint가 올바르지 않다고 생각해 실행 계획을 바꾼걸까요?EXPLAIN SELECT e.FIRST_NAME, e.LAST_NAMEFROM EMP e,MANAGER m FORCE INDEX (PRIMARY)WHERE e.EMP_ID = m.EMP_ID ;
-
미해결업무에 바로 쓰는 SQL 튜닝
BNL Join 사용
SELECT EMP.emp_id, EMP.first_name, EMP.last_name, GRADE.grade_nameFROM GRADE, EMP; -- 카테시안 곱 mariadb로 실습을 진행했는데 hash join이 쓰이는게 아니라flat, BNL join을 사용한다고 되어 있네요?BNL Join은 MySQL이 인덱스가 없거나 사용할 수 없는 상황에서 기본적으로 사용하는 비효율적인 조인 알고리즘이라는데 원인이 무엇일까요?grade 테이블을 hash join table로 사용하지 않네요?
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
실습 코드 깃허브 업로드
안녕하세요! 데이터분석 직무로 SQL 수업을 듣게 되었습니다! 혹시 실습하면서 정리한 코드 깃허브에 업로드가 가능할까요? - 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.)- 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
강의 질문 있습니다
having에 있는 쿼리문을 where문으로 바꿔서 최적화 시키는 것은 이해가 갔습니다. 강의에는 인덱스 사용이 없어서 제가 한번 적용시켜보려고 멀티 컬럼(year, semester) 이렇게 넣고 explain 해보니 ref와 eq_ref가 떴는데도 불구하고 속도는 차이가 별반 다를게 없네요(2초 후반)인덱스를 어떻게 넣어야할지 알려주시면 감사합니다
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
bin폴더가 존재하지않아요
전자정부 프레임워크 3.9의 경우 종료되었다고해서 3.10을 다운 받았는데요, eGovFrame-3.10.0-Win-64bit.exe (3,641,056,401 Byte) 해당 파일을 다운로드 받았는데, jdk와 mysql등이 포함되어있는 bin폴더가 없는데 어떻게 해야하나요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
강의 자료 질문입니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. os는 window를 사용하고 있고요 자료 다운로드 후 볼려고 하는데 제pc 문제 인지 파일 문제인지 읽지를 못하네요. 확인해주시면 감사하겠습니다.그리고 코드 참고를 하려 하는데 github 주소나 파일이 있을까요??
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
sql_safe_updates 옵션
sql_safe_updates 옵션때문에 강의처럼 쿼리문을 작성할 경우, 업데이트가 되지 않습니다. 이 부분은 끄고 진행해도 되나요? 그리고 현업에서 보통 끄고 데이터 작업을 하는지 궁금합니다
-
미해결업무에 바로 쓰는 SQL 튜닝
select_type 에서 'simple' 경우 각각의 테이블이 '드라이빙' 또는 '드리븐' 인지 어떻게 알수 있나요?
안녕하세요. 우선 좋은 강의 만들어주셔서 정말 감사합니다 :)select_type 에서 'simple' 경우 각각의 테이블이 '드라이빙' 또는 '드리븐' 인지 어떻게 알수 있나요? 5-2. 실행계획 항목(1) -> 05:40 영상을 확인해보면 실행계획에서 table 필드 값 "e" 하고 "s" 가 있는데요.여기서 질문 2가지가 있습니다.질문1: 여기서 각각의 테이블이 '드라이빙' 또는 '드리븐' 인지 어떻게 알수 있나요?(실행 계획 통해 조회된 데이터 순서대로 판단하면 되는것인지... 궁금하네요.. 그런데 이걸로 100% 판단하기에 조금 어렵다고 들어서요...)질문2:만약 테이블 "e" 가 드라이빙 테이블이라고 가정시실질적으로 쿼리 수행할때 테이블 "e" 에 대한 where 절 조건을 이용해서 먼저 필터링 한다음에테이블 "s" 하고 조인 수행을 하는것인지 궁금 합니다.즉 드리아빙 테이블 조건절 이용해서 최대한 필터링 하고그다음 드이븐 테이블하고 조인을 수행하는지 궁금합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
3.x.x 버전 업데이트
섹션 1에 spring initializr를 진행하다가 java 17과 spring boot 3.4.1로 변경해 진행할 수 밖에 없다고 생각되어서 커뮤니티 질문들을 보았고 52강을 먼저 보게 되었습니다. java도 17로 업데이트하였고 17로 변경한 후에 gradle도 java 17에 맞게 7.3으로 변경하였는데 이런 오류가 뜹니다 ㅠㅠ 해결법 알려주시면 감사하겠습니다
-
해결됨대용랑 채팅 TPS에 대한 stateful 서비스 구축하기
채팅 메세지에 관한 카프카와 DB 구성도
안녕하세요 강의 잘 들었습니다.근데 채팅방에서 메시지를 보내고 받는 부분은 카프카를 사용하지 않고 바로 db로 저장하더라구요. 근데 실제로 카프카를 사용해서 채팅 서버를 구성할때는 기본적으로 아래, FE -> BE - > kafka -> DB식으로 동작하는게 맞다고 보시나요?
-
해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기
Client 파일은 어떤 IDE로 실행시키나요??
강사님 영상 오늘 하루종일 쭈욱 학습하였습니다.저는 현재 Intelli J Ult 버전 사용중인데 7002 포트의 서버는 켰지만 3000의 포트 서버는 어떤 IDE로 구동해야 하나요??
-
해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기
독립적인 Transactional을 둔 이유
음.. 코드를 보다가 강사님이 설명이 잘 이해가 가지않아서 질문 드립니다.saveChatMessage같은 경우 트랜잭션을 따로 빈으로 등록하여 saveChatMessage호출 시 독립된 트랜잭션을 호출해서 웹 소켓과 연관된 메시지 저장 작업만 독립적으로 관리하기 위함이라고 생각하면 될까요??보통 우리가 생각하는 웹소켓으로 메시징 작업을 하기 위해서는 실시간이기 때문에... 음 성능적인 부분과 데이터의 일관성을 유지하고 다른 트랜잭션 작업과 충돌을 방지하기 위해서 웹소켓사용시의 독립적인 트랜잭션을 사용한다라고 이해하면 될까요??그리고 또 한가지 현재 프로젝트에서는 MySQLConfig 클래스를 따로 정의해서 커스터마이징 하였는데, 만약 커스터마이징 하지 않고 웹소켓 기능을 사용하게 되었을 때에도 독립적인 트랜잭션 기능을 사용할 수 있나요??
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
강의 관련 질문 드립니다.
섹션 6 결제 까지 올라와 있고 그 이후 날짜에는 강의 파일이 없는데 이후에 추가로 올라오나요?
-
해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기
springdoc이 무슨 설정인가요??
springdoc이 무슨 설정인가요??Swagger를 사용했을 때의 어떤 기본 설정같은건가요??