묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    해결됨Real MySQL 시즌 1 - Part 1MySQL Where절 내 조건의 순서안녕하세요. MySQL 사용에 있어 Where절 내 조건의 순서가 쿼리 성능에 영향을 미치는지 여쭙고자 문의드립니다. 기본적으로는 옵티마이저가 쿼리를 최적화하기 때문에 Where절의 순서가 중요하지 않은 것으로 알고 있는데, DBMS에 따라 통계정보를 활용하는 데 있어 차이가 있다는 이야기를 들은 바 있어 호기심에 여쭤봅니다. (MySQL 공식문서에는 관련된 내용을 못 찾겠네요..) 
- 
      
        
    미해결장래쌤과 함께하는 쉽고 재미있는 SQL 이야기집계 연산자에 대한 질문안녕하세요 선생님, 집계연산자 다가 궁금한게 생겨서 질문드려요. 이 쿼리를 쓸때 여러 수식을 중복해서 쓰는데 and 를 쓰면 왜 오류가 나나요? 여러함수를 같이 쓴다 = and를 써서 이어줘야 한다 라고 이해하고 있는데 제가 잘못 이해한 부분이 있는 것 같아서요. 피드백 부탁드립니다! 
- 
      
        
    미해결중고급 SQL과 실전 데이터 분석 101 문제 풀이중급 연습문제 25번안녕하세요 ㅠㅠ 제가 알기론 궁극적으로 목표한 테이블이 연결되면 어떤 방식으로 조인을 하든 상관없는걸로 알고있는데 이렇게하니까 하나의 행도 반환되지 않더라고요.... 혹시 무슨 문제가 있는건지 알 수 있을까요?? 조인 기준 컬럼이 중복되면 안되는걸까요? 조인 문제를 풀 때 조인을 먼저하려고 SELECT절은 *로 먼저 두고 시작을 하는데 그때는 오류코드로Error Code: 1060. Duplicate column name 'category_id'다음과 같이 나오더라고요 ㅠㅠ 
- 
      
        
    미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지Putty에서 nginx를 vi로 수정할때 오류- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 제목과 같이 putty 터미널에서 vi로 vi /etc/nginx/sites-.../에서 수정하는데 저는 다음과 같은 화면이 나옵니다. ㅠㅠ 이거 왜 이런건가요 
- 
      
        
    미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지mysql과 선생님의 깃허브 코드연결- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요선생님께서 올리신 완성본 코드를 깃허브에서 다운받아서 결과를 보고싶은데, 지도상에 음식점들의 핀이 뜨지 않습니다 ㅠ 아마 sql상에 더미 데이터들이랑 연결이 안되어서 그런것같은데 지도상에 마커들이 뜨게 하려면 어떻게 해야할까요 도와주세요 
- 
      
        
    미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지nodemon 실행오류[nodemon] 3.1.7[nodemon] to restart at any time, enter rs[nodemon] watching path(s): .[nodemon] watching extensions: js,mjs,cjs,json[nodemon] starting node index.js[nodemon] app crashed - waiting for file changes before starting... 다음과 같은 오류가 발생하는데 어떻게 해결해야하나요 ㅠ 
- 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]26강 updateUser request id값이 안들어옵니다.private final UserServiceV2 userService;jpa로 설정한 이후 putMapping에서 id값이 0으로만 들어옵니다.코드는 json원시값보고싶어서 httpRequest 로 테스트한 상황입니다.(로그는 Raw JSON Body: {"id":0,"name":"333"}) db 데이터, 등록, 삭제 모두다 잘동작하고 id만 client에서 받아오질 못하는 것 같습니다. postman으로 json값 정상적으로 요청하면 작동도 잘되구요.UserServiceV1 인 jdbctemplate를 이용한 방식도 파라미터 정상적으로 넘어와서 잘동작합니다.이유를 모르겠습니다. 
- 
      
        
    미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]Mysql 이클립스랑 연동하는 부분에서 ...드라이버 jar 파일 lib 파일에다 넣고 path에 자르파일 추가해주고 Data Source Explorer 부분에서막힙니다.강의보면서 막힌적 없었는데 이번강에서 연결이 안되고 뜨지도 않아 막히고 있습니다.도와주세요 ㅠㅠㅠㅠㅠ 
- 
      
        
    해결됨Real MySQL 시즌 1 - Part 11강. delete marking된 데이터의 정리 주기는 어느 정도인가요?안녕하세요. 좋은 강의 감사드립니다.강의 내용 중, VARCHAR타입 컬럼에 더 긴 문자열로 UPDATE 작업 시 이전 공간은 delete marking 된다고 하셨습니다.PostgreSQL의 경우에도 비슷한 매커니즘을 사용하기 때문에 VACUUM을 사용해 단편화 문제를 해결하는 것으로 알고 있고, 찾아보니 OPTIMIZE TABLE문을 통해 비슷한 작업을 할 수 있는 것 같습니다.PostgreSQL의 경우에는 VACUUM을 주기적으로 수동으로 해줘야 한다고 알고 있습니다만 MySQL의 경우에는 OPTIMIZE TABLE을 수동으로 해줄 필요가 있는지, 있다면 어느 정도 주기가 좋은지 궁금합니다. 
- 
      
        
    해결됨인프라공방 - 그럴듯한 서비스 만들기지하철 노선도 미션 VPC IP 대역 질문지하철 노선도 미션의 망 구성하기에서 처음 VPC를 생성할 때, 할당하는 CIDR 블록도 결국은 프라이빗 IP 주소라고 이해하는게 맞는건가요? 제가 이해한 내용은 다음과 같습니다.VPC에 할당된 CIDR 블록 (192.168.0.0/24) 및 내부에 속한 4개의 서브넷 IP 대역은 모두 VPC 내에서만 사용되는 프라이빗 IP 주소다.퍼블릭 서브넷 자체는 프라이빗 IP 주소로 할당되어 있지만, 퍼블릭 서브넷인 이유는 IGW와 연결되어 인터넷 접속이 가능하기 때문이다. (인터넷 통신을 할 때, NAT를 통해 프라이빗 IP 주소가 IGW의 퍼블릭 IP 주소로 변환된다)제가 이해한 내용이 맞는지 혹시 이 중에서 틀린 내용이 있는지 알고 싶습니다! 
- 
      
        
    해결됨Real MySQL 시즌 1 - Part 1Mysql table avg_row_lengthTEXT, LONGTEXT 타입 칼럼이 존재하는 테이블의 경우에 informatino_schema.TABLES에 존재하는 avg_row_length의 값은 LOB 칼럼들의 평균바이트 수도 같이 계산이 되는걸까요? 
- 
      
        
    미해결[웹 개발 풀스택 코스] Node.js 프로젝트 투입 일주일 전 - 기초에서 실무까지MySQL 8.0 설치 및 MySQL Workbench 대체 관련 질문드립니다!선생님, 안녕하세요! 상세히 설명해주시는 강의를 통해서 부족한 부분들이 어디인지를 꼼꼼히 검증하는 시간을 가지고 있습니다 😃 혹시 MySQL 8.0을 마지막으로 MySQL Workbench 지원이 종료될 예정으로 보이는데, 일단 강의는 MySQL 8.0을 설치해서 해결하고 있는데, 나중에 MySQL 8.4 이후 버전의 데이터베이스를 사용하는 경우를 대비해서 혹시 대체재로 사용할 만한 것이 있을까요? 만약에 8.4나 9.0버전이 주로 쓰인다면 혹시 추후에 강의가 업데이트될지도 궁금합니다 😃 일단 macOS에서 Homebrew를 사용하여 다음과 같이 설치하였습니다.brew install mysql@8.0감사합니다 😄 
- 
      
        
    미해결장래쌤과 함께하는 쉽고 재미있는 SQL 이야기array_agg 배열 해제안녕하세요 array_agg 처리해서 여러 값이 묶인 배열 형태로된 컬럼에 있는 값을다시 꺼내는 방법이 있을까요? 
- 
      
        
    미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)MariaDB 사용 시 EXPLAIN ANALYZE 이용 불가 문의MariaDB 사용하고 있고 버전은 아래와 같은데 회사 DB로 버전 변경은 불가능한 상태입니다. 버전 : 10.4.12-6-MariaDB-enterprise-log EXPLAIN ANALYZE 사용 시 에러가 발생하여 구글링 해보니 MariaDB 에서는 사용이 불가능한 것 같더라고요.Mysql 에서 EXPLAIN ANALYZE 로 조회되는 내용을 동일하거나 유사하게 볼 수 있는 방법이 없을까요? 
- 
      
        
    해결됨중고급 SQL과 실전 데이터 분석 101 문제 풀이mysql 워크 벤치 커뮤니티 설치 중 에러설치 중 이 단계에서 계속 에러가 납니다구글링 해보니까 pc명이 한글이라서 그렇다는데제 pc명은 영어거든요......그외의 블로그나 구글에서 할 수 있는 모든 조치를 했지만..안되네요이제 포맷 하나 남았는데..포맷까진 가고 싶지 않아요 너무 귀찮습니다..도와주세요.. 
- 
      
        
    미해결Real MySQL 시즌 1 - Part 2질문드립니다.안녕하세요. 1,2 강의 전부 잘봤습니다!! 많은 도움 되었습니다.근데 강의에 대한 질문은 아닌데 도저히 여쭤볼 사람이 딱히 없어서요..현재 백엔드 취준생인데 프로젝트에 mysql 레플리카를 도입해서 master / slave1,2 아키텍처를 구성 하였습니다.--master[mysqld]log_bin = mysql-binserver_id = 10binlog_do_db = reservationdefault_authentication_plugin = mysql_native_password-- slave[mysqld]log_bin = mysql-binserver_id = 11relay_log = /var/lib/mysql/mysql-relay-binlog_slave_updates = ONread_only = ONdefault_authentication_plugin = mysql_native_password master와 slave에 맞게 설정을 해주고 master의 LOG_FILE, LOG_POS를 토대로 각각의 슬레이브에 설정하여Slave_IO_Running, Slave_SQL_Running slave1,2 각각 YES 인걸 확인하고 데이터 복제 및 인덱스 복제 까지 잘 동작하는것 까지 확인하였습니다. 그래서 백엔드 로직에서 ReadOnly 쿼리 비지니스로직은 SLAVE1,2의 dataSource가 할당 되어서 동작 하도록 구성하였고 실제로 테스트 해봤는데 master가 아닌 SLAVE1,2에서만 읽는것을 확인 하였습니다. 근데 여기서 문제인게 읽기작업에 대해서만 부하를 줘서 성능테스트를 진행하였는데 실제로 레플리카를 도입하기 이전 1대의 mysql 서버만 존재했을때가 성능이 20~30% 가 더좋게 나옵니다.저는 실제로 이미 쓰기작업을 끝낸 데이터에 대해 읽기 작업을 slave1,2가 트래픽을 분산(라운드 로빈 방식으로 정확히 50프로 확률로 분산) 하여 처리하니까 성능이 올라갈것으로 기대했는데 왜그런지 도저히 모르겠습니다.추가로 쓰기작업(JPA 긍정적 락), 읽기작업을 동시에 요청하는 부하테스트도 진행 했는데 물론 이 경우도 쓰기는 master만 진행하고 읽기작업은 나머지 slave1,2에서만 진행하는걸 확인했지만 성능 결과 1대의 mysql서버가 읽기,쓰기를 다 처리하는것이 성능이 더 좋았습니다. 그래서 제가 내린 결론은 만약 제가 한 테스트 방법이 잘못되지 않았다고 가정할 경우SLAVE 아키텍처를 가져 갈 경우 성능 향상보다는 부하를 분산시켜 최대 허용 TPS 향상 및 아키텍쳐의 안정성을더 해주는게 의미가 있다고 생각되고,만약에 SLAVE1,2를 두었는데 무조건 읽기작업의 성능향상이 이뤄져야 한다고 말씀 하시면 어떤 부분에서제가 무엇을 잘못 설정한걸 수 도있는지 아니면 어떤 이유가 존재할 수도 있는지 해결가능성이 있는 키워드정도 알려주시면 정말 감사하겠습니다. 추가로 상황에 따라 다르겠지만, 마스터 슬레이브 간의 동기화 문제를 해결하는 가장 보편적이고 추천 해주실만한 방법(제가 생각한 방법은 쓰기작업 직후의 읽기작업은 슬레이브가 아닌 마스터에서 하는 방식)이 있는지 알려주시면 정말 감사하겠습니다! 긴글 읽어주셔서 감사합니다. 
- 
      
        
    미해결비전공자도 이해할 수 있는 DB 설계 입문/실전데이터 타입 (Data Type) 질문True, False 같은 BOLEAN type을 안쓰고 TINYINT type을 사용하는 이유가 궁금합니다 
- 
      
        
    미해결장래쌤과 함께하는 쉽고 재미있는 SQL 이야기null 수강 관련 문의퀴즈 풀고 있는데 강의를 들어도 왜 여기서 오류가 나는지 모르겠어요 ㅜㅜ 
- 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]영속성 컨텍스트 1차캐시 질문안녕하세요! 질문이 생겨 질문글 남깁니다 :) 영속성 컨텍스트는 트랜잭션을 사용하면 생겨난다 라고 말씀 해주셨는데요. 이중에 1차 캐시 부분에 대한 내용이 궁금해서 코드를 작성하던중에 의아한점이 생겼습니다. @Transactional public List<UserResponse> getUsers() { User user = userRepository.findById(4L).orElseThrow(); user.updateName("test"); userRepository.findById(4L); userRepository.findById(4L); return userRepository.findAll() .stream() .map(UserResponse::new) .toList(); }우선은 위 내용인데요, updateName을 호출한 시점에 변경 감지가 되어서 update문이 호출 되었는데, 이후에 로그로 찍히는 select문이 없더라구요. 1차캐시가 진행되면 그 이후에 객체의 값이 변경 되더라도 그 내용까지 다시 반영해서 캐싱 해주는걸까요? public List<UserResponse> getUsers() { userRepository.findById(4L); userRepository.findById(4L); userRepository.findById(4L); return userRepository.findAll() .stream() .map(UserResponse::new) .toList(); }그리고 두번째 질문은 코드를 이런식으로 트랜잭션 어노테이션 없이 작성했을 때 인데요.제 추측은 트랜잭션 어노테이션이 없으니 영속성컨텍스트가 생성되지 않을것이고 그에따라 select문이 3번 호출될것이다. 였는데 실행해보니 select문은 한번만 호출되더라구요.나름대로 왜일까 고민해본 결론은 findById가 구현된 SimpleJpaRepository클래스에 붙어있는 Transactional이 영향을 주는건가? 싶긴 한데 명확한 답은 모르겠습니다 ☹1차캐시에 한해서는 트랜잭셔널과는 독립되게 영속성컨텍스트가 동작하는걸까요? 
- 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]ddl-auto 관련 질문.안녕하세요,24강 수강중에 궁금한점이 생겨 문의 남깁니다.야믈파일에 설정한 ddl-auto옵션 관련해서 validate로 값을 바꾼 뒤 몇가지 테스트를 해보았습니다. age필드를 완전히 제거name필드를 named 명칭으로 변경.name필드의 column()안에 들어가는 속성값들을 변경.이렇게 3가지를 해보았는데 실질적으로 테이블과 일치하지 않는다 라며 서버를 실행하지 않는 경우는 2번 name필드가 다른 명칭으로 변경되었을 때 한가지 경우더라구요. age는 nullable이라 아에 필드가 명시되지 않아도 일치한다고 판단하는걸까요?column 어노테이션 안에 들어가는 값들은 감지하지 못하는게 맞나요? 
