inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Redis 활용하기 문제점 해결하기 부분이 이해가 잘 안됩니다...

미해결

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

위 도표를 보여주시면서 설명을 해주실때, 10시 정각에 스레드 1이 쿠폰 발급 로직을 시작 10시 2분에 완료가 된다면, 스레드 2는 스레드 1의 작업이 모두 종료될때까지 기다렸다림. 스레드 2는 10시 2분에 작업을 시작 이렇게 설명해주셨는데, 이게 잘 이해가 안됩니다... 제 생각에는 아래와 같이 10시에 동시에 처리되는 흐름이 되어야 할 것 같은데요... 즉, 스레드2는 쿠폰 생성 로직이 끝날 때까지 기다리지 않고, 스레드 1이 쿠폰 발급 로직을 수행 중이라도 스레드 2는 곧바로 Redis 값을 받고 독립적으로 로직을 수행 할 수 있을 것 같은데 아닌가요?? 레디스 자체는 싱슬스레드이니 레디스를 찌를때는 무조건 하나씩만 들어가겠지만 스레드 1은 레디스에 찌르고 값을 받아온 후 본인의 비즈니스 로직 수행할때 스레드2가 레디스 서버에 찌를 수는 없는건가요? 제가 이렇게 이해한 부분이 잘못된 것인지, 아니면 제가 강의 설명을 오해한 것인지 혼란스러워 질문을 드리게 되었습니다.

  • java
  • docker
  • spring-boot
  • kafka
  • redis
차니 댓글 1 좋아요 0 조회수 236

Thread Config Max 패널 설정 변경 질문

미해결

스프링 부트 - 핵심 원리와 활용

tomcat_threads_config_max_threads로 설정을 했는데 왜 200이 안뜨고 계속 N/A 로 되어있는지 의문입니다. 서버, 프로메테우스도 다 켜져있는데 뭐가 문제일까요?

  • spring
  • spring-boot
  • prometheus
  • grafana
523won600 댓글 1 좋아요 0 조회수 151

스프링 액츄에이터 shutdown 엔드포인트 활성화가 안됩니다.

미해결

스프링 부트 - 핵심 원리와 활용

yml 파일에서 이렇게 shutdown 기능을 활성화 시켰는데 Deprecated configuration property 'management.endpoint.shutdown.enabled' 이렇게 나오는데 'Deprecated' 된 건지 아니면 제가 잘못 설정을 한 건지 궁금합니다. 기능은 정상적으로 작동하는데 저 경고는 무시해도 되는 건가요? management: endpoint: shutdown: enabled : true

  • spring
  • spring-boot
  • prometheus
  • grafana
523won600 댓글 1 좋아요 0 조회수 133

혹시 강의 기간은 무제한으로 해주실수 있나요?

미해결

어쩌다보니 스프링부트

가끔 기본이 기억안날때 보러오고 싶은 강의인데 기간이 제한되어있어서 아쉬운거 같아요. 기간을 무제한으로 그게 무리라면 기간을 좀 길게 만들어 주실수 있을까여?

  • java
  • spring
  • spring-boot
  • 객체지향
  • servlet
서준호 댓글 1 좋아요 0 조회수 148

스프링 sql오류

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

insert부분이랑 select부분에 저렇게 네모로 표시가 되고 오류가 떠서 웹에 사용자를 등록하면 서버 오류라고 뜨네용 ㅠㅠ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
성장하자 댓글 4 좋아요 1 조회수 177

강의 인덱스 접근 관련 문의드립니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요! 강사님 늘 강의 잘 듣고 있습니다. 다름이 아니고 아래 사항에 대해 궁금한 부분이 있는데요. (아래 강의 20:16 시점입니다) https://inf.run/1668e secondary index -> clustered index로 limit 개수만큼 접근해주신다고 설명해주셨는데요 ! where board_id = 1만 조건이 있어서 이미 어떤 row인지 세컨더리 인덱스에서 판단이 가능할 것 같은데, 클러스터 인덱스로 접근하게 되는 이유가 어떻게 되는걸까요? 만약 where board_id = 1 AND writer_id = 1 이 있다면 writer도 검증이 필요하기 때문에, 클러스터 인덱스 까지 가는 부분은 이해되기는 합니다만 board_id만 조건이 걸린 상태에서 클러스터 인덱스도 간다는 부분을 보고 이해가 잘 안되어서 문의드립니다 .. !

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
자기개발하고싶어요 댓글 2 좋아요 0 조회수 192

24시간 이내의 최신글 API 설계 관련 질문

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

쿠케님 안녕하세요! 그간 안녕하셨는지요. 몇 주 놀다가 다시 반성하고 각성 모드로 강의 시청 하고 있습니다. Redis에 24시간 이내의 최신글을 저장하는거 까지는 이해했습니다! 그렇다면 레디스에 저장한 최신글은 프론트에서 어떻게 활용할수 있는 걸까요? 제가 생각한 아래 흐름이 맞는지 검토 부탁드립니다! 서버 게시판 종류마다 24시간 이내의 최신글을 레디스에 저장 게시판 종류와 데이터 개수를 request로 받는 최신글 API를 별도로 만듬 프론트 사이트의 메인 페이지 일부 화면에 특정 게시판의 최신글을 뿌려주는 요구사항이 존재 서버의 최신글 API를 호출하여 각 게시판 종류마다 최신글을 뿌려줌 감사합니다~!

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
soap 댓글 2 좋아요 0 조회수 158

테이블 설계관련 문의

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요. 예전부터 목록 조회 관련 궁금한게 있었는데 어떻게 설계하는게 좋은지 몰라서 문의드립니다. 강의의 예제처럼 하나의 테이블에 대해서 게시글 목록을 보여주는 기능들은 어떻게 해야하는지 잘 이해가 됩니다. 근데 보통 개발을 하다 보면 리스트를 보여주는 경우가 많잖아요. 그런 ux들을 보면 3~4개 이상의 테이블을 join하고, 여러 테이블에 대한 필터링도 하고, 여러 테이블의 여러 컬럼에 대해서도 정렬까지 하고, 페이지네이션까지 해야 하는 경우가 많았던 것 같습니다. 거기에 N:M구조를 join하는 경우가 있다면... 이런 기능들을 구현하려면 아무리 머리를 굴려도 full scan이 발생할 수 밖에 없을 거 같은데요. 필터링이나 정렬이 각각 다른 테이블 기준으로 선택이 된다면 속도가 나올 수 없어 보입니다. 대책을 생각해보면 그냥 원래 느리니까 db 성능을 믿고 그냥 join해서 보여줄수도 있고, 아니면 전체를 join 한 새로운 테이블을 만들기도 하는건지 궁금하네요. 근데 만약 새로운 테이블을 만들었더라도 N:M구조가 있었다면 또 1:N 구조가 여전히 남아있을테니 또 성능이 좋지 않을것이기에 생각이 많아지네요.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
굿데이 댓글 2 좋아요 0 조회수 150

@KafkaListener에 대해서

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요 강의 잘보고 있습니다. 알아보니까 @KafkaListener가 비동기로 실행되는 줄 알았는데 동기로 실행이 되네요 강의를 보면서 느낀점이 카프카로부터 구독할 때 비동기로 실행되어야 하지 않나싶은데 어떤지 알려주시면 감사합니다

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
DongA Shin 댓글 2 좋아요 0 조회수 109

7강 관련 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

7강에서 유저 생성 APi를 만들때 user클래스를 따로 또 만드는데 전에 덧셈이나 곱셈 api에서는 객체를 dto에서 바로 만들어서 가져왔는데 여기서는 domain-user처럼 따로 또 클래스를 만들어서 객체를 호출하는 이유가 있을까요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
성장하자 댓글 2 좋아요 1 조회수 99

중복_회원_예외 에서 예외가 안터지는 문제 + 터미널에서 해보세요

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 선생님 질문이 있는데요 중복 회원 예외에서 예외가 안터지고 그냥 테스트를 성공해버립니다 뭐가 문제일까요? 아래 구글 드라이브 링크 걸어뒀습니다. @Test public void 중복_회원_예외() throws Exception { //given Member member1 = new Member(); member1.setName("kim"); Member member2 = new Member(); member2.setName("kim"); //when memberService.join(member1); memberService.join(member2); //then fail("예외가 발생해야 한다."); } 예외가 발생하지 않습니다. 코드 압축해서 드라이브에 올렸습니다. https://inf.run/CFDK6

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
문주영 댓글 3 좋아요 0 조회수 190

DatabaseCleanup 코드입니당 필요한 분들 쓰세요

미해결

실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD

package com.clarity.productorderservice; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import javax.persistence.Entity; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Table; import javax.persistence.metamodel.EntityType; import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import com.google.common.base.CaseFormat; @Component public class DatabaseCleanup implements InitializingBean { @PersistenceContext private EntityManager entityManager; private List<String> tableNames; @Override public void afterPropertiesSet() { final Set<EntityType<?>> entities = entityManager.getMetamodel().getEntities(); tableNames = entities.stream() .filter(e->isEntity(e)&&hasTableAnnotation(e)) .map(e->e.getJavaType().getAnnotation(Table.class).name()) .collect(Collectors.toList()); final List<String> entityNames = entities.stream() .filter(e -> isEntity(e) && !hasTableAnnotation(e)) .map(e -> CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, e.getName())) .toList(); } private boolean isEntity(EntityType<?> e) { return null != e.getJavaType().getAnnotation(Entity.class); } private boolean hasTableAnnotation(EntityType<?> e) { return null != e.getJavaType().getAnnotation(Table.class); } @Transactional public void execute() { entityManager.flush(); entityManager.createNativeQuery("SET REFERENTIAL_INTEGRITY FALSE").executeUpdate(); for (final String tableName : tableNames) { entityManager.createNativeQuery("TRUNCATE TABLE " + tableName).executeUpdate(); entityManager.createNativeQuery("ALTER TABLE " + tableName + " ALTER COLUMN ID RESTART WITH 1").executeUpdate(); } entityManager.createNativeQuery("SET REFERENTIAL_INTEGRITY TRUE").executeUpdate(); } }

  • tdd
  • spring-boot
  • pojo
  • 소프트웨어-테스트
  • api
유정현 댓글 1 좋아요 0 조회수 164

해결은 못했습니다만...

미해결

코드로 배우는 React 19 with 스프링부트 API서버

거듭된 질문에 한결같이 답변을 해주셔서 감사합니다. 교재 9장까지는 문제없이 잘 진행되어서, 10장 부터 새로 작성한, 엔티티, DTO, Repository 싹 다 지우니, 앞서 작성한 테스트는 그나마 제대로 실행이 되는군요. 다시 엔티티부터 하나씩 깔면서, 동시에 테스트를 다시 진행해봐야 겠습니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
hee woong Yoo 댓글 1 좋아요 0 조회수 67

testInsertByProduct() 와 관련된 에노테이션은 교재하고 똑같이 했고, log.info만 남기고 나머지 코드는 다 지웠는데도, 여전히 Test Failed가 뜨고, testInsertProduct() 메소드로 진입조차 안되는 군요.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

testInsertByProduct() 와 관련된 에노테이션은 교재하고 똑같이 했고, log.info 만 남기고 나머지 코드는 다 지웠는데도, 여전히 Test Failed가 뜨고, testInsertProduct() 메소드로 진입조차 안되는 군요.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
hee woong Yoo 댓글 1 좋아요 0 조회수 54

testInsertByProduct()에 아예 들어가지를 못하네요...

미해결

코드로 배우는 React 19 with 스프링부트 API서버

교재 9장까지 잘 따라왔습니다. 10장 장바구니 api 만들기에 들어와서 CartRepository 만들고 CartItemRepository를 만들고 CartRepositoryTests를 만들었습니다. 그리고, testInsertByProduct()를 테스트 하는데, Tests failed 가 나왔습니다. 코드 몇 군데에서 로그를 확인해봤는데, configuration 부분은 잘 통과했는데, testInsertByProduct() 메소드로는 진입조차 못하고 있습니다. 실습환경은 "인텔리제이" 입니다. 아래 캡쳐는, 에러가 시작되는 경계로 생각되는 부분입니다. 질문 내용이, 답변 주시기에 좀 부족하다면, 더 필요한 코드 부분이나, 에러로그를 보충해서 다시 질문에 올리도록 하겠습니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
hee woong Yoo 댓글 1 좋아요 0 조회수 71

Transactional Outbox 모듈 적용에서 빈이 실습과 다릅니다

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요 다름이 아니라 application.yaml에서 설정값 모두 맞추고, gralde 빌드도 되었습니다 그런데 ArticleApplication 실행하는 부분부터 강의와 다르게 정상실행이 되고, ArticleService에서 OutboxEventPublisher 빈을 못 찾고 있습니다 outbox-message-relay 패키지 내 설정값 혹은 어노테이션 살펴봐도 감이 잘 오지 않습니다 지식공유자님의 코드와 샅샅이 차이점을 찾으려 했으나, 차이는 메세지릴레이 부분 뿐이었습니다 위 빈 문제를 해결하기 위해서 어느 부분을 확인하면 될 지 여쭤보려 합니다

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
woo 댓글 2 좋아요 0 조회수 170

강의 버전 정보

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

프로그램 버전 정보가 없는데 어디서 찾아요?

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
오니온 댓글 1 좋아요 0 조회수 146

MySQLConfig 관련 질문있습니다.

해결됨

Spring Boot를 활용하여 채팅 플랫폼 만들어보기

선생님께서 말씀을 조금 두루뭉술하게 해주셔서인지 ㅠㅠ 다들 궁금해 하시는거같은데 저또한 궁금한 부분들이 있습니다. JPA에서 처음부터 트랜잭션 매니저 구현체로 JpaTransactionManager 를 사용하지 않고 auth쪽은 DataSourceTransactionManager 를 사용한건 왜 그런건가요? AuthService#createUser() 부분에서는 일반 JDBC 기반의 DataSourceTransactionManager 를 사용하셨더라구요. 이러한 경우 영속성 컨텍스트에서 Entity들의 생명주기까지는 관리가 안되는걸로 알고 있습니다. Lazy Loading이나 Dirty Check 등.. 채팅관련 트랜잭션 설정할때에는 구체적으로 어떤 메커니즘에 의해 어떤 문제가 발생할 수 있는지 명확히 알려주실 수 있을까요? 제가 몇 번 돌려서 듣긴 했는데 느낌이 STOMP 통신 특성상 발생되는 이슈라고 이해는 한 것 같은데 그게 구체적으로 어떠 어떠한 이유로 오류가 발생한다?혹은 할수도 있다? 는것인지 이해를 못했습니다. 확실히 무조건 오류가 발생을 한다는걸까요? 그리고 그 원인은 무엇일까요? 단순히 JPA를 이용한 비즈니스 로직을 작성할때는 JpaTransactionManager 가 관리하는 트랜잭션 내에서 작성하자. 그리고 그러기 위해서 createChatTransacationMansger 를 사용하자. 라고 이해해도 될까요? JpaRepository 구현체인 SimpleJpaRepository 에는 기본적으로 save() 에는 트랜잭션이 걸려 있지만 저장 이후에 Entity 조작하는 로직이 있다면 동작하지 않게 되니까요.. 혹시 일반적인 JPA 환경과 별개로 STOMP를 통한 웹소켓 통신 환경에서의 JPA 트랜잭션 처리에 대해 특이사항이 있었던거라면 자세히 설명좀 부탁드려도 될까요? 예를 들어 일반 MVC 프레임웍의 http 통신 환경일때는 스레드 또한 톰캣의 스레드를 사용하지만 STOMP는 환경이 달라서 뭔가 신경써야 할게 있다든지..? 감사합니다.

  • mysql
  • spring-boot
  • jpa
  • jwt
  • websocket
dlsrksrhk 댓글 2 좋아요 0 조회수 185

JOOQ 환경설정 중에 db 패스워드 관련 질문입니다.

해결됨

실전 jOOQ! Type Safe SQL with Java

강의에서도 그렇고 실제로 실습을 해봤을 때도 그렇고(저는 db를 로컬로 실행했습니다!) gradle 파일에 db root패스워드를 그대로 입력해야 하는 것 같은데.. :) 이 부분에 대해선 이후에 크게 문제가 없는걸까요 ㅠ ㅠ?!

  • java
  • sql
  • spring-boot
  • jooq
  • dsl
임준용(wamba) 댓글 1 좋아요 1 조회수 194

인기 태그

인프런 TOP Writers

주간 인기글