묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기
EC2 실습 중 docker-compose / docker ps 실행 시 권한 오류 문의
안녕하세요, 강사님.실습 자료대로 진행 중인데 EC2에서 docker-compose up -d, docker ps -a 같은 명령을 실행할 때 permission denied while trying to connect to the Docker daemon socket 오류가 발생해서 문의드립니다.확인해보니 현재 제 계정(ec2-user)은 docker 그룹에 포함되어 있지 않고, /var/run/docker.sock는 root docker 권한으로 되어 있어서 sudo를 붙여야만 명령이 실행되고 있습니다.혹시 강사님 실습 환경에서는 이미 docker 그룹 설정이 되어 있어서 sudo 없이 진행이 가능했던 것인지,아니면 제가 중간에 빠뜨린 설정 단계가 있는지 궁금합니다.현재는 sudo docker-compose up -d, sudo docker ps -a처럼 sudo를 붙이면 진행은 되는데,실습 의도상 계속 sudo를 사용해도 괜찮은지 확인 부탁드립니다.감사합니다.
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
비관적 락 구현 방식 문의 건
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 여기까지 이해하신 내용은 무엇인가요?강사님 안녕하세요 :)현재 4-9 낙관적 락, 비관적 락 강의를 수강하는 중이며, 단일 행에 대해 배타 락을 거는 방식을 학습한 후 관련 문의 드립니다. 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요?만약비관적 락(PESSIMISTIC_WRITE) 방식으로 한 테이블의 여러 행에 락을 걸어야 한다면, 아래 두 방식 중 어느 방식이 적절한지 궁금합니다.N번의 DB 조회를 방지하기 위해 아래 1번 방식을 고려했으나, 관련 케이스가 많지 않아 제가 놓치는 부분이 있는지 여쭤보고 싶습니다. 더불어 실무에서는 어떤 방식으로 접근하시는지도 궁금합니다. :) 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요1. IN절 조회 후 락 걸기@Lock(LockModeType.PESSIMISTIC_WRITE)@Query("select p from Product p where p.productNumber in :productNumbers")List<Product> findAllByProductNumberIn(@Param("productNumbers") List<String> productNumbers);만약 1번 방식이 적절하다면, 데드락 방지를 위해 ORDER BY 정렬이 필수인지 궁금합니다.2. 루프를 돌며 조회 후 락 걸기for (String productNumber : productNumbers) { Product product = productRepository.findByProductNumberWithLock(productNumber) .orElseThrow( ··· ); ··· }@Lock(LockModeType.PESSIMISTIC_WRITE)@Query("SELECT p FROM Product p WHERE p.productNumber = :productNumber")Optional<Product> findByProductNumberWithLock(@Param("productNumber") String productNumber); 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!
-
해결됨김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
교재 p.31 실행순서 오류?
안녕하세요. sum과 같은 집계함수를 나중에 select 에서 계산한다는 부분이 교재에 조금 헷갈리게 되어있는거 같아서요. 그러니까 sum, count 같은부분은 이미 group by 하고 난다음 select전에 집계함수가 미리 구해진 걸로 ai로 공부하다가 찾아보면서 알게되어서요.. 그렇게 미리 구해진 집계함수가 having이나 select에서 사용되는 거지 select 절에서 계산되는게 아니라고 알게 되었어요. 그거 때문에 성능도 빠른거라고.. 그런데 교재 7. 집계와 그룹핑에 p. 31에 보면 5번 select 절이 실행될때 집계함수 계산이 여기에 이루어진다고 나와있습니다. 수정이 필요한게 아닌가 싶습니다. 아.. 그래서 group by 가 없는 경우와도 헷갈렸었는데 그 경우도 select에서 집계함수가 계산된다기 보다 group by가 없어도 전체 데이터가 하나의 데이터로 implicit grouping으로 select 전에 계산되어지고 select에서는 보여주는 것만 관여하는게 되어서 흐름이 맞춰지더라구요... 개인적으로.. 공식문서에 https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html"This section describes aggregate functions that operate on sets of values"
-
미해결왕초보도 코딩 가능한 AI 바이브코딩(웹사이트 제작, claude code)
웹사이트2에서 검은 화면에 커서만 보여지는걸로 나와요. 저만 그런가요? ㅜ
-
-
해결됨Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기
gradlew, java -jar 로 애플리케이션 실행시키기에서
강의에서 build 전에 mysql을 사용하지 않고 인메모리로 갈아끼우신 이유가 무엇인가요?
-
해결됨Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
소스코드 빈파일 문의
안녕하세요, 자료 다운로드를 통해 소스코드를 다운 받았는데 빈 압축파일로 나오는 상황입니다확인 한번만 부탁 드립니다감사합니다
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
통계 데이터 수정 질문
안녕하세요, 좋은 강의 만들어주셔서 정말 감사합니다!!이번에 신규 기능을 추가하면서 통계 데이터도 필요한 상황인데 통계 데이터에 사용되는 원본 데이터가 수정되는 케이스는 어떻게 설계하는게 좋을지 조언을 구하고자 질문드립니다.통계 데이터는 유저가 조회하고, 데이터 조회 기간은 최근 7일/최근 한달/과거 한달(사용자 조정 가능)로 조정이 가능하고, 한 화면에 4가지 유형의 통계 데이터를 제공해야 해서 이를 위해 일별 통계 테이블을 사용하려고 했는데요.그런데 원본 데이터가 언제든 수정되거나 추가될 수 있는 상황입니다.그래서 수정한 사용자와 수정 일자를 따로 모아 배치를 돌리는 방향이 생각났는데 이렇게 설계해본 경험이 없어,우선은 실시간 증분 업데이트를 진행하고 데이터 정확성이 필요해지는 상황이 필요하다면 그때 위와 같은 배치를 돌리는게 나을지 또는 다른 방향이 있을지 궁금하여 질문드립니다.정산 데이터는 아니기 때문에 멱등성이 깨질 수 있는 상황은 감안하고, 기획 요구사항인 실시간성을 반영하는게 좋을지도 고민이 되어 질문드립니다!
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
28강 sql 파일 어딨나여?
28강 sql 파일 어딨나여?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
리액트 관련 질문이 있습니다.
안녕하세요. 선생님.너무 쉽게 설명해 주셔서 이해가 아주 잘되고즐겁게 강의를 듣고 있습니다. ^^ 그런데 강의를 듣다보니이미 만들어져 있는도서관리 애플리케이션 화면(index.html) 파일에 로드되어 있는 js파일을 보니잘 이해가 안되서 ai 에게 물어보니 리액트 라고 하더라고요. 제가 리액트를 한번도 해본적이 없는데이 강의를 들을 때 리액트를 몰라도 크게상관이 없을까요?
-
해결됨10,000++억의 데이터를 다루는 카카오 면접관의 MySQL
오라클
이번에 취업한 회사에서 SQL이나 DB에 관련된 역량이 더 필요할 것 같은데DB는 오라클을 주로 쓰더라구요.오라클이나 MySQL이나 강의 내용이 상관없을까요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
스프링부트 버전
안녕하세요. 선생님.선생님 강의를 들으면서 하고 있는데스트링 부트 어떤 버전을 받으면 될지 질의 드립니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
2NF의 엄밀한 정의
2NF를 충족하기 위한 조건은 다음과 같은 것으로 알고 있습니다.제1 정규형을 만족하고,모든 컬럼이 후보 키 전체에 완전 함수 종속되어야 한다. 예를 들어 수강 테이블의 컬럼이 다음과 같다고 할 때,id: PK [대리 키]student_id: UK1 [자연 키]course_id: UK1 [자연 키]student_name [일반 컬럼]후보 키:id [기본 키 - 단일 후보 키](student_id, course_id) [대체 키 - 복합 후보 키] (student_id, course_id)는 복합 후보 키이고,student_id -> student_name (부분 함수 종속)이므로 2NF에 위배되지 않나요?따라서 대리 키만 써도 2NF에 위배되는 일이 발생할 수 있다고 생각합니다. 아니면, 실무에서는 2NF의 정의를 기본 키에만 한정하여 2NF를 만족하는 것으로 보나요?
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
공통 코드에서 Redis Pub/Sub은 최근 실무에서 쓰이진 않나요?
Redis Pub/Sub 구독을 통해 Redis 갱신 시 Sub로 구독 중인 각 서버에 캐시 무효화 및 강제 갱신 시키는 구조는 잘 안쓰이나요?이 방법도 네트워크 순단 시 fire and forget, 구현 복잡도가 높음 등의 문제가 있긴한데 실무에서는 Pub/Sub을 잘 안쓰는지 궁금합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.
6강까지 강의를 들으면서 서버가 켜지고 POSTMAN으로 동작하는걸 확인했었는데 다음날부터 서버가 실행이 안되더라고요. 그래서 gpt한테 물어보니 resources 파일 안에 application.yml 폴더를 만들고 그 안에 spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 이걸 쳐서 넣으니까 되더라고요. 오류는 2026-03-13 15:22:27.732 ERROR 7960 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : APPLICATION FAILED TO START Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active). 종료 코드 1(으)로 완료된 프로세스이렇게 떴습니다. 제가 뭐 건드린게 없었는데 다음날 서버가 안켜지기도 하나요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
33강. UserLoanHistory의 관계성에 대한 질문
안녕하세요 선생님.강의를 듣던 중 궁금한 점이 생겨서 이렇게 글을 남기게되었습니다.UserLoanHistory라는 Entitiy는 강의에서 말씀하셨듯이 User와 ManyToOne의 관계를 가져가는데,이게 또 Book과의 관계를 보더라도 ManyToOne이 성립할수 있지 않나 싶습니다.(물론 UserLoanHistory의 변수로 pk인 bookId가 아닌 bookName을 쓰셔서 조금 다를수 있지만...) 따라서 user_loan_history 테이블을 설계할때 칼럼을 book_name이 아닌 book_id로 해서 만든다면 그게 좋은 선택일지 궁금합니다만일 1번의 테이블 설계가 나쁘지 않은 방식이라면 UserLoanHistory Entity에 Book에 대해서도 ManyToOne을 무조건 해주는게 좋은지,아니면 '유저'의 대출기록만 자주 쓰이고'책'의 대출기록은 거의 조회되지않을거 같으면 굳이 ManyToOne을 해줄 필요가 없을지 궁금합니다.
-
미해결따라하며 배우는 MySQL on Docker
pdf 압축파일 제공
강의자료 하나씩 받는게 힘드네요. 압축파일로 한번에 받을수 있는 방법 있을까요?
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
DELETE -> SELECT 질문 드립니다.
안녕하세요 단건데이터(ex: 로그) 처리의 경우에는 크게 고민하지 않고 MERGE를 사용하여 처리하고 있습니다. 하지만 10~20건 이상의 데이터셋이 들어오는 경우에는 어떤 방식으로 처리하는 것이 더 적절한지 고민이 되어 질문드립니다. 데이터 DELETE -> INSERT 2번의 쿼리 수행(또는 BEGIN으로 1번에 수행) 데이터 STATE (I, U, D 등)를 활용하는 방식 화면에서 데이터에 INSERT / UPDATE / DELETE 상태값을 기반으로 서버에서 DELETE 1회, INSERT 1회, UPDATE N회를 수행실무에서는 작업 공수 문제로 1번 방식(DELETE -> INSERT)을 선택하는 경우가 많았습니다. 다만 이 방법을 사용하면서 DELETE로 인해 발생하는 DB 블록 낭비기존 데이터의 CREATE_DATE가 유지되지 않아 UPDATE_DATE와 의미 차이가 사라지는 문제데이터 관리, 유지보수, 성능 측면에서 어떤 방식이 더 바람직한 선택인지 궁금합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
상속 관계 모델링의 적용 기준 질문
안녕하세요 영한님!"8. 상속 관계 설계" 강의에서, 상품 테이블을 예시로 들어, 슈퍼타입-서브타입 모델링을 설명해주셨는데요! 만약에 서브타입이 다른 테이블과 관계를 맺게 된다면, 이 케이스에도 슈퍼타입-서브타입 모델링을 적용하는게 괜찮을지 궁금하여 질문을 드립니다! 예를 들어, 신고 내역을 저장하는 테이블을 모델링하는 상황에서, 회원 신고/게시글 신고/댓글 신고/그룹 신고 이렇게 나뉜다면 슈퍼타입-서브타입 상속 전략을 사용해도 괜찮은지 궁금합니다.
-
해결됨Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
jobParameter를 통한 멱등성 질문
안녕하세요 우선 좋은 강의 감사드립니다. 덕분에 Batch에 대한 기본적인 틀을 잡을 수 있을 것 같아요! 중급강의도 기대됩니다.실습을 따라가던 와중, 멱등성을 유지하기 위해서 궁금한점이 생겨서 질문드립니다.같은 파라미터로 완료된 job은 재실행을 허용하지 않기 때문에 parameter로 time을 넣어주셨는데요.그렇게 되면 만약에 job을 실패지점부터 재실행 하고 싶은 경우에는 targetDate 뿐만 아니라 실패한 시간대에 time 파라미터까지 넣어서 재시작을 해야하는 것인가요?만약에 time 파라미터를 추가한 상태에서, 이전 실행과 다른 time 파라미터로 완료된 job을 재실행 할경우에는 정산 테이블에서 targetDate에 해당하는 값을 DELETE를 하고 INSERT를 진행해야 멱등성이 유지될 것 같습니다. 이럴 경우 DELETE 같은 경우는 Settlement INSERT 작업 이전에 별도의 Step으로 구성이 되야할까요?만약에 DELETE를 해야한다면 DELETE의 경우에는 targetDate의 해당 하는 값을 한번에 전부 지우고 INSERT를 시작하는지 궁급합니다..!
-
해결됨데이터 분석을 위한 SQL 문제풀이 (Advent of SQL 2024)
평균값 구하기
안녕하세요. 장르별 평균 값을 구할 때, 데이터가 null 인 부분은 모두 0으로 처리해서 계산해야 하지 않나요?