inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

버퍼가 비워지는 시점

미해결

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부

안녕하세요. Backpressure의 Drop 전략에서 버퍼가 비워질 때까지 Emit된 데이터가 Drop이 된다는 것은 이해했습니다. 그런데 1번 데이터가 subscriber에게 전달되어서 처리가 되면 버퍼에 자리가 한 자리 비게 되는데 왜 데이터가 계속 Drop이 되는건가요? (코드 실습에서 onNext()함수가 호출이 되어도 255,256,257 ~ 1024까지 모두 드랍됨) | 1, 2 | <-------- 3 듣랍 | 2, |. <-------- 4 드랍 (여기서 왜 4번 데이터는 안들어가나요?) | 5, 6 | Buffer DROP-LATEST를 보면 | 1, 2 | <---- 3들어오는 중 버퍼 가득 차서 drop | 2, 4 | <------ 1번이 버퍼에서 나가고 한 자리가 비어서 4번이 들어와짐 이런식으로 동작을 하는데 Drop은 이렇게 동작하지 않는 것 같아 버퍼가 어떻게 동작하는지 궁금하여 질문드립니다.

  • java
  • spring
  • project-reactor
  • webflux
jhjikhsdsdw 댓글 1 좋아요 1 조회수 364

리트코드 highest department salary 문제

미해결

[백문이불여일타] 데이터 분석을 위한 고급 SQL

첨부한 파일에 작성한 것과 같이 오답에서 where절과 서브쿼리절에 departmentid가 왜 와야되는지 이해가 가지 않습니다. department.name 이라고 생각을 했는데 앞에서 inner join을 했기 때문에 where와 서브쿼리절에 departmentid가 오는건가요?

  • sql
David Lee 댓글 2 좋아요 0 조회수 289

The report 문제 order by부분 질문

미해결

[백문이불여일타] 데이터 분석을 위한 고급 SQL

다른 부분은 다 이해가 갔는데 해당 부분에 대한 order by가 왜 별도로 없어도 되는지 잘 이해가 가지 않아서 질문드립니다. If there is more than one student with the same grade (1-7) assigned to them, order those particular students by their marks in ascending order. → 그레이드가 8미만인 경우에 해당하는 마크를 asc로 표현하는 식이 추가되어야 되는거 아닌가요? 식으로 표현한다면 order by s.marks asc (order by구문에 다른 값들은 이해하였습니다)

  • sql
David Lee 댓글 2 좋아요 0 조회수 287

리트코드 서브쿼리 문제 질문

미해결

[백문이불여일타] 데이터 분석을 위한 고급 SQL

안녕하세요 담당자님 문제에서 선생님께서 해주신 풀이가 조금 어려워서 찾아보다가 해당 쿼리로 풀게 되었는데요 SELECT d.name as Department, e.name as Employee, e.salary as Salary FROM employee as e --어디에서 무엇을 구하는 지 우선적으로 나열한다 INNER JOIN department as d ON e.departmentid = d.id --2개의 테이블이 주어졌으므로 INNER JOIN 사용한다 WHERE (e.departmentid, e.salary) IN (SELECT departmentid, MAX(salary) FROM employee GROUP BY departmentid) --WHERE IN 문법을 사용하는데 후술되는 서브쿼리는 e.을 추가할 필요가 없다 오답이 나왔던 부분이 서브쿼리에서 (SELECT e.departmentid, MAX(e.salary) FROM employee as e GROUP BY e.departmentid)로 작성을 하였었는데 where in사이에 것과 구별할 뿐만 아니라 서브쿼리 내에서는 하나의 테이블만 단독으로 사용되므로 굳이 약어를 써서 구분할 필요가 없는게 맞을까요?? WHERE (e.departmentid, e.salary) IN (SELECT departmentid, MAX(salary) FROM employee GROUP BY departmentid)

  • sql
David Lee 댓글 1 좋아요 0 조회수 436

코틀린에서 builder 패턴은 사용하지 않나요?

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

강사 님께서는 객체를 인스턴스화 하실 때, 생성자를 사용하거나, 정적 팩토리 메서드를 사용하는 방식 2가지를 이용하셨는데 혹시 코틀린에서 builder 패턴을 사용하는건 어떻게 생각하시나요?? defalut 파라미터를 이용하고 naming을 통해 builder패턴 처럼 사용할 수 는 있겠지만 java에서 builder패턴을 통해 객체를 만들었던 것에 비하면 불편하다는 생각이듭니다. 조언 해주시면 감사하겠습니다.

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
백엔드 주니어 개발자 댓글 2 좋아요 2 조회수 2379

레디스에서 락이 필요한 상황에 대하여

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

안녕하세요, 강의를 보고 공부를하다 궁금한 점이 생겨 질문드립니다. 제가 예측한 강의 내용으로는, "경쟁 상태 예시(재고 수량)에 대하여 레디스 를 활용한다." 라고 예측 했습니다. 이에 대하여, "레디스는 싱글 스레드 기반이니깐, 락킹 없이 해당 작업이 가능할 것" 이라고 추측하였는데요, 그러나 제가 생각지 못한 레디스 lock 과 관련된 내용을 접하게 되어 신기하면서도 또 궁금한 부분이 생겨 질문드립니다. 레디스 락 전략이 사용되는 이유와 예시를 조금더 들어볼 수 있을까요? 혹은 이와 관련하여 추가적으로 공부해볼 수 있는 자료를추천해주시면 감사하겠습니다.

  • java
  • spring
  • 동시성
성연 댓글 1 좋아요 0 조회수 500

강의 9:32분에 orders 레벨의 집합이라는 용어에 대해서 질문있습니다.

미해결

데이터 분석 SQL Fundamentals

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님 섹션 1 7강 / 1시간 21분 조인(Join) - 조인 기반 메커니즘 에서 join 실습 3의 9:32부분에서 질문있습니다. select c.*,o.order_id ,o.order_date ,o.ship_name from nw.customers c join nw.orders o on c.customer_id = o.customer_id join nw.employees e on e.employee_id = o.employee_id join nw.shippers s on o.ship_via = s.shipper_id where c.city = 'Berlin'; 이러한 sql문에서 nw.orders가 나머지 테이블이랑 비교했을때 unique한 부분이므로 1:m관계에서 1의역할 즉 uniq한 index인건 알겠습니다. 강사님 말씀중에 order level의 집합이라는 말씀이 정확히 무슨 의미인지 궁금합니다. 일단은 1:M의 관계에서는 테이블이 M을 기준으로 배열되는걸로 알고있는데 여기서 order 레벨의 집합이라는건 어떤 의미로 해석이 되는지 궁금합니다.

  • sql
  • postgresql
  • dbms/rdbms
메론사탕 댓글 1 좋아요 0 조회수 231

직원 급여이력에서 가장 최근의 급여이력 쿼리

미해결

데이터 분석 SQL Fundamentals

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 상관 서브 쿼리와 단순 비교 연산자 강의에서 직원 급여 이력에서 가장 최근 급여 이력을 호출해라 문제를 봤습니다. 강사님께서는 설명해주실 때 select * from hr.emp_salary_hist a where todate = (select max(todate) from hr.emp_salary_hist x where x.empno= a.empno) 쿼리로 설명해주셨습니다. 그런데, 그냥 select max(todate) from emp_salary_hist; 로 최근 날짜 직원 급여 이력을 뽑으면 안되는걸까요?? 왜 서브쿼리로 셀프 조인을 하는 건지 궁금합니다.

  • sql
  • postgresql
  • dbms/rdbms
gomadafter 댓글 1 좋아요 0 조회수 253

조인 실습 - 02 to_date

미해결

데이터 분석 SQL Fundamentals

안녕하세요. 1983년 이전 데이터를 무시할 때 year(c.fromdate) >= 1983 을 쓰면 에러가 나는데 왜 그러는걸까요..? 꼭 to_date를 써야하는 이유가 있나요?

  • sql
  • postgresql
  • dbms/rdbms
Eunju Kim 댓글 2 좋아요 0 조회수 278

PageableExecutionUtils.getPage 의 최적화 로직만 따로 뺀 count 메소드입니다.

해결됨

실전! Querydsl

갱신된 강의자료에도 나와 있듯이, fetchResult, fetchCount 등의 메소드는 deprecated 예정입니다. 또한 해당 메소드는 Page 타입을 반환하기 때문에 Page 타입을 직접적으로 조작해야 한다는 제약이 있습니다. 이걸 잘 쓰면 되는데, Page 의 시작번호 등 제약도 있어서 저는 회사에서 Page 를 따로 만들어서 사용하거든요. 그래서 search 메소드와 count 메소드는 항상 분리하고 있습니다. 2. 그런 점에서 count 만 최적화하는 로직만 베껴서 만든 최적화 메소드입니다. 실제로 count 구문을 실행하기 위한 메소드입니다. 필요에 따라서 public 으로 만들어도 될 것 같네요. // count 실행 메소드 private Long countByCond(MemberSearchCond cond) { return query .select(member.countDistinct()) .from(member) .where( usernameEq(cond.getUsername()), teamNameEq(cond.getTeamName()), ageGoe(cond.getAgeGoe()), ageLoe(cond.getAgeLoe()) ) .fetchOne(); } 최적화 로직을 베낀 메소드입니다. 스프링 데이터 JPA 는 아래 코드와 같이 page, size 값이 null 이 아니고, 적절한 범위에 있는지를 판단하여 isPaged 라는 분기를 만듭니다. 참고로 코드를 분석하면서 내린 뇌피셜이니 혹시 틀리다면 말씀해주세요. page 가 0 이 아니라 1 부터 시작하는 건 제 취향입니다. 회사에서 그렇게 쓰고 있거든요. 필요에 따라 0 부터 시작하도록 바꾸는 건 어렵지 않을 것 같습니다. public Long countByCondOptimization(List<?> content, MemberSearchCond cond, Long page, Long size) { boolean isPaged = page != null && size != null && page > 0 && size > 0; long offset = isPaged ? (page - 1) * size : 0L; long contentSize = content.size(); if (!isPaged || offset == 0) { if (!isPaged || size > contentSize) { return contentSize; } return this.countByCond(cond); } if (contentSize != 0 && size > contentSize) { return offset + contentSize; } return this.countByCond(cond); } 이렇게 하여 count 쿼리를 리스트 조회 쿼리와 분리하여 재사용성을 높이면서, 성능도 최적화할 수 있습니다. 감사합니다.

  • java
  • jpa
psam1017 댓글 1 좋아요 3 조회수 807

동적으로 Order 절 만드는 코드 공유합니다

해결됨

실전! Querydsl

강의에서는 Query DSL 4.x 버전이어서 제네릭 없는 예제 코드인 것 같은데, 제가 올리는 버전은 5.0 버전이어서 차이가 있음을 감안해주세요. 정렬 조건을 하나만 추가하는 코드입니다. 정렬 조건을 여러 개 추가하려면 반복문을 돌면서 JPAQuery 를 동적으로 확장해나가면 됩니다. // 페이징하는 메소드에서 사용 private Expression<? extends Comparable<?>> specifyMemberProperty(String prop) { prop = prop == null ? "" : prop.toLowerCase(); if (prop.equals("username")) { return member.username; } if (prop.equals("age")) { return member.age; } return member.id; } // 페이징하는 메소드 // ... .orderBy(new OrderSpecifier<>("desc".equalsIgnoreCase(dir) ? Order.DESC : Order.ASC, specifyMemberProperty(prop))) .fetch(); -- 저는 일단 이렇게 만들어봤는데, 다른 분께서 더 나은 코드, 더 빠른 코드가 있다면 저한테도 알려주세요. 감사합니다.

  • java
  • jpa
psam1017 댓글 0 좋아요 2 조회수 362

@ManyToOne Category parent 질문 있습니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

@ManyToOne @JoinColumn(name = "parent_id") private Category parent; @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); 안녕하세요. 위 코드에서 부모 쪽에 다대일 매핑 한 이유를 알고 싶습니다. 아니면 DB 테이블 안에서 부모 셀프 외래 키를 만들어서 조회할 때 이 외래 키를 참조하여 자식 카테고리들까지 같이 조회하게 만들었기 때문에 테이블에서 다는 parent_id니까 jpa에도 parent에 다를 준 건 가 싶기도 해서요 필드 명에 부모 자식이 있어서 부모는 하나고 자식은 여러 개인데 부모 쪽에 다로 돼있어서 헷갈리네요..

  • java
  • jpa
hoonseung 댓글 2 좋아요 0 조회수 569

예제 프로젝트 상에서의 Kafka 사용시 궁금한점

미해결

실습으로 배우는 선착순 이벤트 시스템

강의 잘 듣고 있습니다. 질문사항이 두개 있습니다. 1. 4강의 [문제점] 영상에서 쿠폰생성 10000개 요청으로 인해 mysql이 1분에 100개의 insert가 가능하다고 가정할 시 '주문생성/회원가입요청이 타임아웃 또는 10분뒤에 실행' 된다고 하셨는데요. 예제로 사용하신 Kafka 사용 예제에서는 Consumer 프로젝트도 어차피 API프로젝트와 같은 DB 를 바라보고 있으므로, 어차피 Kafka를 사용하여도 '주문생성/회원가입요청이 타임아웃 또는 10분뒤에 실행'되지 않나요? 왜 여쭤보냐면, 강의 내에서 Kafka 미사용시 주문생성/회원가입요청의 타임아웃 및 10분뒤 실행에 대한 해결책을 Kafka로 사용하셔서 문의드립니다. 2. 5강의 [Consumer 사용하기] 영상을 보면 API 프로젝트 Consumer 프로젝트가 별개로 존재합니다. 그러므로 API프로젝트의 테스트 케이스가 종료되어도 Consumer 프로젝트는 이미 Kafka로 100개의 데이터가 스트림으로 들어오는 상태이므로, 테스트케이스가 종료 되어도(즉, API프로젝트가 종료되어도) Cunsumer 프로젝트는 종료가 되지 않은 상태 이므로 100개의 쿠폰이 DB에 생성 이 되어야 하는게 아닌지요? 왜 여쭤보냐면, 강의 내에서는 API프로젝트가 종료되면 Consumer 프로젝트도 작업이 멈추는 현상이 있어서 문의드립니다.

  • java
  • docker
  • spring-boot
  • kafka
  • redis
김동건 댓글 2 좋아요 1 조회수 881

sql 사용이 편한 컴퓨터 환경은 멀까요?

미해결

[백문이불여일타] 데이터 분석을 위한 기초 SQL

윈도우랑 맥 중에서 어떤 환경이 sql 설치하고 실습하기 편할까요? 의견 부탁드립니다!!

  • sql
dbrpswl_ 댓글 1 좋아요 0 조회수 413

자바 인터페이스의 객체

해결됨

인터페이스는 일단 객체를 못만든다고 알고 있어요 근데 익명이너클래스를 이용해서 만드는 방법이 있던데 interface A{ abstract void abc(); } 이거를 A a = new A(){ public void abc(){.....} }; 이렇게 할 수 있던데 익명이너클래스에 인터페이스를 상속해서 abstract메서드를 오버라이딩 했기때문에 가능하다는 건 알겠는데 그러면 객체는 익명이너클래스의 객체 아닌가요...? 익명객체가 인터페이스A를 상속받았기때문에 다형적인 표현으로 A a 이렇게 표현이 가능한건가요? 저런 표현이 가능한가요? 참조변수 a는 인터페이스A 타입인 객체를 가리킨다는 뜻 아닌가요..? 근데 인터페이스는 객체를 못만든다고 배웠는데.. ㅠㅠㅠ 정말 이 부분이 이해가 안 갑니다 ㅠㅠㅠ 왜 객체를 인터페이스 타입으로 지칭하는지 ㅠㅠ

  • java
댓글 1 좋아요 0 조회수 315

커스텀 필터 등록 시, ApplicationFilterChain 에 등록

미해결

스프링 시큐리티

안녕하세요 강의 잘 듣고 있습니다! SecurityConfig에서 커스텀 필터 등록 시 @Bean 형식으로 필터객체를 생성하여 등록하면 ApplicationFilterChain에 등록되는게 맞는걸까요? Bean 만 선언한다면 ApplicationFilterChain 에 등록되고 addFilter(customFilter) 를 추가해주면 ApplicationFilterChain 리스트에도 등록되고 SecurityFilterChain 에도 등록이 됩니다. 문제는 제가 만든 커스텀 필터는, 특정 URL 에서는 동작 안하게끔 구현하고 싶은데 @Bean으로 등록했기 때문에 ApplicationFilterChain에 등록되어 어떤 요청이 들어오든 동작하는 게 문제입니다. @Bean 방식이 아닌 addFilter(New CustomFilter()) 로 하면 SecurityFilterChain에만 등록되긴 하는데 CustomFilter 는 스프링 컨테이너에 등록이 안되기 때문에 다른 Resource 객체들을 주입받지 못하는 상황입니다. 결론은 ApplicationFilterChain에는 추가 안하고 SecurityFilterChain에만 커스텀 필터를 추가하고 싶은데 New 방식 말고는 없는 것인지가 궁금합니다!

  • java
  • spring-boot
  • spring-security
mindecco 댓글 1 좋아요 0 조회수 794

PHP+MYSQL 게시판 만들기 실습 에

미해결

[리뉴얼] SQL 베이스캠프

처음에 sudo apt-get install php7.3-mysql 입력 후 다음과 같은 에러가 나옵니다. Err:1 http://ppa.launchpad.net/ondrej/php/ubuntu bionic/main amd64 php7.3-mysql amd64 7.3.9-1+ubuntu18.04.1+ deb.sury.org +1 404 Not Found [IP: 185.125.190.52 80] E: Failed to fetch http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php7.3/php7.3-mysql_7.3.9-1+ubuntu18.04.1+deb.sury.org+1_amd64.deb 404 Not Found [IP: 185.125.190.52 80] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 그 후 모든 과정을 거쳐 새로고침을 하면 다음과 같은 화면과 함께 아래와 같이 오류가 나타납니다. 172.17.0.1:51430 [500]: /?t=1695604917124 - Uncaught Error: Call to undefined function mysqli_connect() in /workspace/tsetsql/index.php:9 Stack trace: #0 {main} thrown in /workspace/tsetsql/index.php on line 9

  • sql
  • dbms/rdbms
tjrry1003 댓글 2 좋아요 0 조회수 756

UNION 해커랭크 문제풀이 질문있습니다!

해결됨

[백문이불여일타] 데이터 분석을 위한 중급 SQL

좋은 강의 만들어주셔서 진심으로 감사드립니다! :) 마지막 세션 강의 들으면서 질문이 하나 있어서 글 남기게 되었습니다! UNION을 활용하여 쿼리를 짜주셨는데, 혹시 UNION을 활용하지 않고 짤 수 있는 쿼리는 없을까요? (GPT에 물어봤는데 제 지식이 짧아서인지 제대로 된 답변을 받지 못했습니다ㅠㅠ) 만약 있다면, 언제 UNION을 활용해서 쿼리를 짜는 것이 좋은지 언제 UNION을 활용하지 않고 쿼리를 짜는 것이 좋은지에 대한 판단은 어떻게 할 수 있을까요~? 문제를 풀어보면서 UNION 없이 쿼리를 짜는 방법을 모르다보니 이 부분에 대한 판단이 안됐었는데요! 결과물을 보니 UNION 없이 쿼리를 작성하면 복잡해질 것 같다는 생각이 들긴 하지만, 실제 비슷한 상황에서는 UNION을 활용하기 보다 한 번에 쿼리를 짜내려고 할 것 같아서 문의드려용!

  • sql
즐거운 늑대 댓글 1 좋아요 1 조회수 449

강의 오류 1

미해결

데이터 분석가, IT 엔지니어에게 필요한 MySQL 마스터 코스!

섹션 9 태블로 강의 두번째도 강의 안나옵니다

  • sql
  • 빅데이터
  • mysql
  • tableau
  • nosql
scp0000 댓글 2 좋아요 1 조회수 536

강의 오류

미해결

데이터 분석가, IT 엔지니어에게 필요한 MySQL 마스터 코스!

섹션5 상호 조인 내용이 없어요. 외부 조인 내용만 반복됩니다

  • sql
  • 빅데이터
  • mysql
  • tableau
  • nosql
scp0000 댓글 2 좋아요 1 조회수 333

인기 태그

인프런 TOP Writers

주간 인기글