묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
키워드 리스트 자동완성 관련
안녕하세요 강사님,혹시 mac에서 키워드 리스트가 계속 잘려서 보이지 않는 이유는 뭔지 여쭤보고 싶습니다.. 재설치도 해봤지만 안되네요..
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
안녕하세요 API 테스트 하는 부분에서 질문 있습니다.
안녕하세요 !선생님 코드를 보면 댓글 서비스에서 댓글을 생성할때 request로 들어온 articleId 나 writerId에 대해서 실제로 데이터 베이스에 있는지 검증하는 부분이 없는데,이렇게 구현을 하면 확실히 테스트 코드를 짤때 실제 데이터 베이스에 저장된 게시글을 넣어주지 않아서 편한것 같습니다.혹시 실제 현업에서 코드를 짤때도 request 로 넘어온 데이터를 따로 검증을 하지 않아도 되는 건가요? @Transactional public CommentResponse create(CommentCreateRequest request) { Comment parent = findParent(request); Comment comment = commentRepository.save( Comment.create( snowflake.nextId(), request.getContent(), parent == null ? null : parent.getCommentId(), request.getArticleId(), request.getWriterId() ) ); return CommentResponse.from(comment); }
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
인증 관련 질문
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 좋은 강의 잘 보고있습니다.이와 같이 마이크로 서비스로 프로젝트가 구성되면, 유저 인증과 관련된 부분은 어떻게 처리되는지 궁금합니다. 일단 스스로 생각해본 바로는, 게시글/댓글 쓰기, 좋아요 API는 로그인 한 유저만 가능하다고 하면, 각각의 서비스에서 클라이언트의 요청을 받았을 때 해당 요청을 유저 API를 호출하여 인증을 하는 방식이 있을 것 같은데 이 방법은 각 서비스들이 유저 서비스를 알고 있어야 한다는 단점이 있을 것 같습니다..위와 같은 상황에서의 실무에서 모범 사례나 정형화된 방법이 있을까요?
-
해결됨김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
WHERE절 사용에 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요쿼리를 작성하다 SELECT에 서브쿼리, 함수, 산술연산, 문자열 결합, CASE, DECODE 등 여러가지 작업을 진행하게 됩니다.이 요소를 where절에 사용하려면 select 절에 입력한 내용을 그대로 입력해야 합니다. 이런 경우 저는 쿼리를 한번 감 싸서 where절에서 별칭을 사용해서 처리하는 방식으로 많이 작성하고 있습니다. 이런 방식이 안티패턴인지, 이런 방식으로 계속 작성해도 되는지 궁금합니다. SELECT customer_name, total_purchase FROM( SELECT customer_name, SUM(price * quantity) AS total_purchase FROM order_stat GROUP BY customer_name ) A WHERE A.total_purchase >= 400000;이 케이스는 HAVING로 해결하면 되는 문제지만 이와 별개로(GROUP BY 존재여부 상관없이) 기존 SQL을 새로운 SELECT ~~ FROM (기존SQL) WHERE (별칭을 사용해서 제어) 이런 방식으로 사용해도 괜찮은 건지 궁금합니다.
-
미해결김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
mysql 버전
[질문 내용]8.0.42버전 이상 설치하라고 하셨는데 하필 부트캠프에서 했던 프로젝트에서 8.0.41버전을 사용했어요업그레이드를 해도 41버전으로 했던 프로젝트에 지장이 없을까요?
-
해결됨김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
work bench 말고 data grip으로 강의를 진행해도 될까요?
기존에 사용하던 database 도구를 data grip을 사용하고 있습니다.선생님의 강의를 따라가면서 data grip을 사용하면서 강의를 진행해도 문제가 없을지요?혹여나 강의중에 work bench의 상세기능을 설명하시면서 강의를 진행하시면 work bench로 따라가고 아니라면 data grip으로 따라가려 합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
sql 연결 오류
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]이러한 오류가 뜨는데 어떻게 해결해야 할지 잘 모르겠습니다 ㅠㅠ application.yml 코드는 다음과 같습니다 spring: datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "" driver-class-name: com.mysql.cj.jdbc.Driver
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
TransactionMessage 질문
안녕하세요.TransactionMessage 부분에서time을 기본값 LocalDateTime.now()로 설정하실 때 val -> var로 변경하시는 것을 봤습니다.실무에서 코틀린에서 기본값을 선언할때 관례적으로 var로 하는지 궁금합니다.(코틀린으로 서버를 개발해본적이 없어서 기초적인 질문 드려서 죄송합니다..)감사합니다.
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
CompletableFuture 질문
안녕하세요.KafkaProducer future.whenComplete에서throw 하는 코드를 보고 질문 드립니다.코드를 보니까 CompletableFuture로 구현되어 있던데transactional.run 안에서 예외를 잡을 수가 있는지 궁금합니다.코드만 보기로는 whenComplete가 비동기로 동작해서 저기서 예외를 던진다고 누가 받는지 잘 모르겠습니다.제가 스프링 비동기를 구현해보지 않아서 질문드립니다.감사합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
자바 버전에 관하여
자바 21버전이 아닌 17버전을 사용해도 괜찮나요?
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
스프링 빈 질문
안녕하세요.궁금한 점이 있어 질문드립니다.코드를 보면 @Component private class Advice: Runner ...이렇게 내부 클래스가 Private으로 되어 있는데 private으로 선언된 클래스도 component scan 대상이 되나요? 만약 1번에서 안된다면 인자로 받은 Runner가 프록시 빈으로 생성이 안될 것 같은데, 그렇다면 프록시가 제대로 동작하는게 맞는지 궁금합니다. private val advice : Runner = Advice()코드를 보면 만약 빈으로 생성된 인자를 넣지 않는다면 기본 Advice() 를 생성해서 넣는다고 보이는데 이렇게 된다면 Advice 프록시가 자동으로 생성되지 않는다고 생각되고 그렇다면 aop가 작동되지 않을것 같은데 맞는지 궁금합니다.(그래서 기본값을 넣지 않는게 맞지 않나 궁금합니다.) 감사합니다.
-
해결됨모르면 야근하는 문자 인코딩 완전 정복
코글 인코딩이 뭔가요?
안녕하세요강의 잘 듣고 있습니다. 강의 듣다가 용어에 관해 궁금한게 생겨서 질문 남겨봅니다.1강 1분 27초쯤에 인코딩에 대한 구체화된 방법론을 설명하시면서 구글 인코딩이라고 하시는거 같은데 스크립트에서는 코글 인코딩이라고 표현되어서 확인 부탁 드립니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
read Service 캐시방식 질문
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.안녕하세요? 강의 계속 잘 듣고 잇습니다. 이제거의 막바지에 이르렀네요 ㅎㅎ..게시글 목록조회 최적화와 관련하여 질문드리고자 합니다.제가 처음에 이해한 바는 최신의 천개의 데이터를 레디스에 적재하고, 그 외의 데이터는 직접 articleServcie를 통해 가져오자 라고 이해를 했었습니다.(hot, cold Data)그런데 이후의 결과적으로는 아래 두가지 캐시가 존재하게 되었더라구요1.zset을 활용한 인기글 데이터 관리(목록 조회 최적화)2.실제 데이터 queryModel(단건 조회 최적화)이런 구조에서는 zset에서 천개의 데이터를 관리하긴 하지만 실제로 queryModel에는 데이터가 있을지 없을지 확신을 할 수 없는 상황이라는 생각이 듭니다. 즉 실제로 zset에 있는 데이터라 해도 하루가 지났다면 queryModel이 있을지 없을지 모르는 상황이라고 인지했습니다.질문1) 제가 이해한바가 맞을까요? 맞다면 이 구조를 선택하신 이유가 조금 궁급합니다.두 캐시를 합쳐서, queryModel자체를 하나의 캐시에서 천개의 데이터만 관리하면 되지않나? 라는 의문이 생겨가지구요어차피 천개의 데이터만 관리한다면 메모리를 그렇게 크게 차지 하지 않을 것 같기도 하구요질문2) 지금과 같은 구조에서는 zset을 활용한 article_id가 그렇게 큰 의미가 있는 부분인가? 라는 생각이 듭니다.- 어차피 최신순(1000개이하)의 데이터에 대해서 id를 추출하는거면 DB에서 offset을 세어도 그렇게 안느린 거 아닌가? 하는 생각이 들구요- zset에 포함되어 있더라도, 실제 데이터(QueryModel)가 있는지 없는지 확답을 할 수 없는 상황이니 큰 의미가 있는건가? 하는 의문이듭니다. 차라리 최신 천개의 데이터에 대해서는 조회에 필요한 모든 데이터를 캐싱해둔다면 큰 의미가 있을거라고 생각이 드는데, 지금의 경우에 대해서는 잘 모르겠네요 ㅠㅠ-결론적으로, 현재 회사에서 RDB를 주로 쓰고 있는 주니어 개발자 입장에서 관련해서 레디스를 도입해본다면.. 아키텍처 복잡도가 올라가는 부분에 비해 엄청 크게 이득이 되는 부분이 있나?? 라는 생각이 많이 들었습니다.질문3)추가로, 이거는 좀 다른 부분이긴 한데 read-service에서 like, unlike등 업데이트 이벤트 핸들러의 경우 동시요청에 대해서 lostupdate처럼 동작하는 부분이 있을 것 같은데 이부분은 배제하신건지, 혹은 제가 잘못생각하고 있는건지 궁금합니다.양질의 강의 정말 감사드립니다
-
해결됨React & FastAPI로 만드는 투표 커뮤니티 플랫폼: 결제 시스템으로 수익화까지!
6-2 강의 노션 코드 오타인거죠?
SingleTopic/index.jsx -> voteOptions 으로 전달하는데요<Chart topicId={topic.topic_id} voteOptions={topic.vote_options} />Chart/index.jsx->voteOpitons 으로 받더라구요 제가 웹은 거의 몰라서 변수 선언, 호출 등 이런게 와닿지가 않고 시간적 여유가 없는 상황에 노션 코드를 많이 가져다 써서 공부하고 있는데요..ㅠ앞으로 강의에서도 노션 코드에 오타 좀 더 신경 써주시면 좋을 것 같아요c++ 같은 언어에 익숙한 저로서는 이런 에러 발생 시, 찾아가는 것도 도움이 많이 되긴합니다 ㅎㅎ
-
미해결김영한의 실전 데이터베이스 - 기본편
SELECT 절 상관 서브쿼리 성능과 가독성.. 질문 드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)1. 2. 3. 예.[질문 내용]SELECT 절에서 상관 서브쿼리를 사용하는 것에 대해, 완전히 다른 테이블에서 간단한 정보 하나만 조회할 때 적재적소에 사용하면 괜찮다고 하셨는데상황저희 회사에서 사용하는 쿼리들을 보면, SELECT 절에서 상관 서브쿼리를 활용해 다른 테이블에서 간단한 정보를 조회하는 경우가 많습니다.예를 들어, 작성자, 요청자, 접수자 각각에 대해 이름과 부서명을 조회할 때, 각 항목마다 서브쿼리가 사용됩니다.작성자 이름: (SELECT name FROM EMP WHERE emp_id = main.writer_id)작성자 부서: (SELECT dept_name FROM DEPT WHERE dept_id = main.writer_dept_id)요청자 이름, 접수자 이름 등도 동일한 방식질문이렇게 PK 기준으로 조건을 걸고 조회하는 서브쿼리가 여러개 들어가도 성능상 괜찮을까요?조인으로 처리하면 조인 테이블이 많아져 쿼리가 복잡해질 것 같은데. 이럴 경우 서브쿼리 방식이 더 적절한가요?만약 이 방식이 성능상 좋지 않다면, 보다 나은 방법이나 현실적인 대안이 있을까요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
인텔리제이 커뮤니티 버전 사용시 데이터베이스 사용방법에 대하여
10강에서 데이터 베이스 다룰때 인텔리제이 커뮤니티 버전에서는 어떻게 해야할까요?
-
미해결김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
자바 강의 듣고있는데
병행해서 할까요?아니면 자바 강의를 완강하고 들을까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
샤드 할당 관련 질문 드립니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. AssignedShard 클래스의 목적이 샤드를 균등하게 분배하는 것이라고 보이는데요 저는 처음에 스레드가 처리할 일을 분할해주는 거라고 생각했는데 찾아보니까 앱 인스턴스를 기준으로 샤드를 나누는 것이라고 하더라고요. 근데 앱 인스턴스는 말하자면 각각의 서버? 예를 들어서 포트 9000번을 A,B,C 서버에서 실행하면 그 각각을 앱 인스턴스라고 부른다고 봤습니다. 그리고 이렇게 각각 다른 서버에서 하나의 포트를 실행하려면 운영 환경에서 서버의 부담이 커질때 서버를 늘려주는 로드밸런싱?같은 기법을 쓸때 필요한 샤드 분배 기능같은데 나중에 운영환경에서 이런때를 대비해서 미리 구현하신건가요? 아니면 이런 지금 강의 환경 안에서도 이렇게 앱 인스턴스가 늘어나는? 상황이 있는건가요.. 아직 공부중이고 모르는 부분도 좀 있다보니 설명이 두서없었습니다 ㅠ
-
미해결김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
오라클 DB쓰는데 오라클DB는 안나올까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 영한님자바강의부터 지금까지 듣고있는 교육생입니다다름이아니라 디비강의도 해준시다고 하셔서 기댄마음으르 들어왔었는데 디비언어가 MySql이여서 혹시 오라클 DB에 대해서도 강의계획이 있으실까요?
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
HackerRank 진행 도와주세요
오늘 처음 강좌를 수강하는데벌써 막히네요... 해커랭크에 회원가입을 했는데 그 다음은 어떻게 하나요? 영상과 전혀 다르게 화면이 나옵니다