inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

강의 언급 기술 도입 기준

해결됨

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

조금 애매한 질문일 수 있는데요... 강의에서 언급되는 분산DB, Redis, Kafka, CQRS 등의 기술들을 도입하실때, 나름대로 고려하시는 판단 기준이 있다면 알고 싶습니다.

  • kafka
  • redis
bson700 댓글 2 좋아요 0 조회수 90

레디스 서버 구성

해결됨

개발자라면 알아야 할 redis 기본

안녕하세요 강사님 수업 잘 듣고 있습니다. 강의 범위에서 조금 벗어난 것 같긴 하지만.. 레디스 서버 구성에 대해 궁금한 점이 있어서 질문 드립니다. 강의에서는 여러 대의 웹서버에서 레디스 서버 한 대로 요청을 보내는 구성에 대해서 설명하시는데, 레디스 서버는 이중화/다중화를 고려하지 않는 건지 궁금해서요. 웹서버가 수십 대로 구성되어 있더라도 레디스 서버는 보통 한 대로 운영하는 것인지 궁금합니다.

  • redis
  • nosql
  • database
  • devops
r11s 댓글 2 좋아요 0 조회수 149

도커 설치

해결됨

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

윈도우 버전 이슈로 로컬에 도커를 설치 못하는 상황인데요 (예전에도 설치 이슈있어서 해결하려다가 실패) 혹시 해결 방법 알고 계실까요? 해결이 어려우면 깃허브 코드스페이스에서도 실습이 가능한 내용일까요

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
Dev Jeon 댓글 1 좋아요 0 조회수 66

pdm 패키지를 사용하지 못할경우

미해결

FastAPI 실전편: JWT와 Redis로 완성하는 인증 시스템

uv사용해도 괜찮나요? Poetry 로 JWT 강의 해보다가 막혀서 mac에서 진행했는데 윈도우에서도 하고 싶어서 질문드립니다.

  • jwt
  • redis
  • FastAPI
  • python3
진영화 댓글 1 좋아요 0 조회수 102

*가 아니가 article_id로 count를 뽑아줘야 할까요?

해결됨

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

@Query( value ="select count(t.article_id) from ( " + " select article_id from article where board_id = :boardId " + "limit :limit " + ") t", nativeQuery = true ) Long count(@Param("boardId") Long boardId, @Param("limit") Long limit); 위와 같이 count(*) 가 아니라 count(t.article_id) 처럼 alias도 붙여야 하고, 모든 걸 뽑는 게 아니라 딱 서브쿼리 안에서 추출한 article_id만 count로 뽑아줘야 테스트가 통과되더라고요. 이유가 있을까요...?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
Bruce Han 댓글 3 좋아요 0 조회수 139

클러스터 설정 오류

해결됨

15일간의 빅데이터 파일럿 프로젝트

안녕하세요 선생님 클러스터 설정 시 오류가 발생하여 질문 드립니다. ㅜㅜ 다른 질문 글들을 참고하여 Cluster 1 삭제 후 재설치도 해보았고, putty로 접속하여 rm -rf /dfs/nn 명령어로 디렉토리 삭제 후 cluster 재설치도 해보았는데 계속 오류가 발생합니다. 원인과 해결 방법이 있을지 문의 드립니다.. * stderr로그 일부 Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp. Name node is in safe mode. The reported blocks 0 has reached the threshold 0.9990 of total blocks 0. The number of live datanodes 0 needs an additional 1 live datanodes to reach the minimum number 1. Safe mode will be turned off automatically once the thresholds have been reached. NamenodeHostName:server01.hadoop.com at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.newSafemodeException(FSNamesystem.java:1448) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkNameNodeSafeMode(FSNamesystem.java:1435) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirs(FSNamesystem.java:3100) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.mkdirs(NameNodeRpcServer.java:1123) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.mkdirs(ClientNamenodeProtocolServerSideTranslatorPB.java:696) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:523) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:991) at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:869) at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:815) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1875) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2675) at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1499) at org.apache.hadoop.ipc.Client.call(Client.java:1445) at org.apache.hadoop.ipc.Client.call(Client.java:1355) at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:228) at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:116) at com.sun.proxy.$Proxy9.mkdirs(Unknown Source) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.mkdirs(ClientNamenodeProtocolTranslatorPB.java:640) at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:422) at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:165) at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:157) at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:95) at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:359) at com.sun.proxy.$Proxy10.mkdirs(Unknown Source) at org.apache.hadoop.hdfs.DFSClient.primitiveMkdir(DFSClient.java:2339) ... 18 more

  • 빅데이터
  • hadoop
  • kafka
  • zookeeper
  • redis
  • flume
  • impala
  • 데이터-엔지니어링
  • 카카오공채-개발
현지원 댓글 2 좋아요 0 조회수 178

13분쯤 테스트하다가 안 된다면?

해결됨

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

저도 13분쯤에 create 테스트를 하다가 안 되어서 삽질했는데, 드디어 됐습니다. 원인은 createdAt, updatedAt에 값을 설정하지 않고 넣으려다 보니, null로 들어가서 에러가 발생했던 것이었습니다. 그리고 mysql에 접속했을 때는 use article; 로 DB에 접근해야 합니다. 저는 use database; 로 접근하고 있었네요. 이 과정에서 GPT의 도움을 많이 받았습니다. 13분쯤 진행다가 나오던 그 500 에러 로그는 애플리케이션을 확인해 봐야 하고요. 테스트 코드의 create 메서드에는 IDE의 설명도 같이 참고했습니다. 왜 오류가 떴는지 알려주더군요.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
Bruce Han 댓글 2 좋아요 0 조회수 117

JDK 선택할 때 궁금점!!

해결됨

은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스

음 강의 내용은 Oracle OpenJDK 17 버전을 사용하셨는데 특별한 이유가 있으신건지 아니면 다른 회사의 동일한 버전 SDK를 사용해도 되는건지 예를 들면 Azul zulu 에서 나온 sdk 라던가.. 자바 계열 언어를 다룰 때 어떤 회사(?)의 sdk를 선택해야하는건지 항상 막막하네요.. 혹시 이런 부분에 대해 공부하셨던게 있으실지 궁금합니다. 아니면 선택할 때 어떤 부분들을 고려해서 하는지?

  • kotlin
  • mysql
  • mongodb
  • kafka
  • redis
현자타임 댓글 3 좋아요 0 조회수 178

혹시 어플리케이션을 실행할 수 있게 readme 같은건 따로 없나요?

해결됨

은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스

음.. 어플리케이션을 실행해보고 코드들을 뜯어보고 싶은데 실행 방법에 대한 readme 같은 건 안보여서요! 혹시 docker-compose 실행 후에 앱 키면 될까요?

  • kotlin
  • mysql
  • mongodb
  • kafka
  • redis
현자타임 댓글 1 좋아요 0 조회수 128

27강(댓글 무한 depth - CUD API 구현 & 테스트 데이터 삽입 Comment Response 관련 질문)

해결됨

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

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님! 강의 정말 잘 수강하고 있습니다. 선생님 덕분에 기본기가 탄탄해지는 것 같아서 감사드립니다. 27강(댓글 무한 depth - CUD API 구현 & 테스트 데이터 삽입 Comment Response 관련 질문) - 24분 가량에서 Comment V2 생성을 위한 정적 팩토리 메소드의 경우 CommentResponse 책임으로 넣으셨는데, 굳이 책임을 CommentResponseV2로 넣을 정도로 큰 부분이 아니기에 하나로 넣으신건지, 아니면 프로젝트 규모적으로 보았을때 굳이 V2 Response를 생성할 정도의 규모가 아니기에 따로 만드시지 않고 하나의 Response 객체로 사용하신 것인지 궁금합니다. 나중에 프로젝트 아키텍칭을 할 때 해당 내용을 기억하기위해 질문드리고자 합니다. 감사합니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
Hyo Kyun Lee 댓글 2 좋아요 0 조회수 126

“외부 API” 호출이 실패한 경우 “내 서비스” DB 데이터의 정합성은 어떻게 되나요?

해결됨

백엔드 6주 실전 미션과 1:1 피드백으로 완성하는 합격 포트폴리오

안녕하세요 딩코딩코님! 수업 감사히 듣고있습니다! 아래 코드에서 트랜잭션 범위를 최소화하기 위해 1. 기존 서비스로 이벤트 참가 처리 메서드에만 @Transactional이 붙여져 있습니다. 이미 커밋이 된 상태이기 때문에, 2. 외부 API 호출이 실패해서 RuntimeException 예외를 던져도 “내 서비스”의 DB에는 “참가자 수 증가”와 “참가자 정보 저장”이 된 상태일 것으로 생각되는데, 이 경우, 아래 두가지 옵션 중 선택하는 것이 좋은 방법인지 트랜잭션 범위를 2. 까지 늘린다. 외부 API 호출 실패 시 “참가자 수 감소”, “참가자 정보 삭제” 로직을 추가한다. 아니면, 더 좋은 옵션이 있는지 궁금하여 질문드리게 됐습니다! public class ImprovedEventJoinWithExternalApiUpdateFacade { private static final String TEST_PHONE_NUMBER = "01012341234"; private final EventExternalUpdateService eventJoinService; private final ExternalEventApi externalEventApi; private final ApplicationEventPublisher eventPublisher; public void joinEvent(Long eventId, Long memberId) { // 1. 기존 서비스로 이벤트 참가 처리 EventWithLockParticipant participant = eventJoinService.joinEventWithTransaction(eventId, memberId); // 2. 외부 API 호출 ExternalEventResponse response = externalEventApi.registerParticipant( eventId, memberId, participant.getEvent().getName() ); if (!response.isSuccess()) { throw new RuntimeException("외부 API 호출 실패: " + response.getErrorMessage()); } // 3. 외부 API 응답으로 참가자 정보 업데이트 eventJoinService.updateExternalId(participant, response.getExternalId()); // 4. 이벤트 발행 (트랜잭션 커밋 후 실행됨) eventPublisher.publishEvent(new EventJoinCompletedEvent( eventId, participant.getEvent().getName(), TEST_PHONE_NUMBER )); } }

  • java
  • spring
  • mysql
  • redis
  • 이력서
이길훈 댓글 2 좋아요 0 조회수 241

컨슈머 이벤트 중복 처리

해결됨

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

안녕하세요! 자주 질문드리는데 정성껏 답변해주셔서 감사합니다! 동일한 이벤트가 중복 전송될 가능성이 있기 때문에 article-read 서비스에 이벤트 id를 통한 중복 처리 로직을 추가 하려고합니다. article-read 는 redis를 사용하고 있기 때문에 redis에 이벤트 id를 저장해 해결하려고했습니다. 예를 들어 article-read가 이벤트를 받았을때 redis 에서 이벤트 id 확인 동일한 이벤트 id가 저장돼 있으면 추가 처리 안하고 message ack redis 에서 이벤트 id 확인 동일한 이벤트 저장된게 없으면 서비스 로직 수행 서비스 로직 결과 redis 업데이트 처리 완료한 이벤트 id redis 저장 이런식으로 진행하려 했으나 만약 어떠한 문제로 인해 서비스 로직 결과 redis 업데이트 ( 성공 ) 처리 완료한 이벤트 id redis 저장 ( 실패 ) 하게되면 이벤트 처리는 성공했지만 처리된 이벤트 저장에는 실패해 추후에 중복 처리가 발생할 가능성이 생길 것 같습니다. 이러한 문제 해결을 위해 서비스 로직 결과 redis 업데이트 처리 완료한 이벤트 id redis 저장 두 작업을 하나의 트랜잭션으로 묶어 처리하려고했지만 rdb 와 동작이 다르기 때문에 (롤백 기능 제공 안함 등) 적절한 방법인지 판단이 안서는 상태네요 혹시 article-read에 이벤트 중복 처리를 한다고 하면 어떻게 구현이 가능할지 여쭤보고싶습니다

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

4-9 낙관적 락, 비관적 락

해결됨

백엔드 6주 실전 미션과 1:1 피드백으로 완성하는 합격 포트폴리오

해당 강의 수강 중 Facade 패턴에 대해 알게 되었습니다 그런데 테스트 코드에만 Facade가 적용되어 있고 Controller에는 바로 서비스 코드를 호출하게 되어 있는데요. 학습용 예시 코드여서 이런 것인지 다른 의도가 있는것인지 궁금합니다!

  • java
  • spring
  • mysql
  • redis
  • 이력서
goldrex123 댓글 2 좋아요 0 조회수 101

messagerelayconfig클래스에서

해결됨

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

bootstrapServers의 value값은 어디에 가져오는건가요? yml이나 properties파일은 없는 거 같은데..

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
leettletree 댓글 1 좋아요 0 조회수 65

SSD가 메모리인가요?

해결됨

[개념 & 이론] 대기업 근무하며 경험한 Redis를 야무지게 사용하기

Redis란 무엇인가 강의 3:33초 쯤 Redis가 SSD 같은 메모리를 사용한다고 하셨는데 SSD가 메모리인가요?

  • 아키텍처
  • redis
  • cache
누피 댓글 2 좋아요 0 조회수 118

UNDO LOG와 롤백에 관해 질문드립니다.

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

1. 현재 학습 진도 4-5 수강중 트랜잭션 내 isolation level에 따른 데이터 consistency 보장을 위해, WAL(Write-Ahead Logging)시 내부적으로 사용하는 UNDO LOG와 REDO LOG를 활용한다. 2. 어려움을 겪는 부분 그러면 트랜잭션 내에서 rollback을 수행하면, UNDO LOG를 기반으로 디스크 내용을 트랜잭션 수행 이전 상태로 되돌린다고 이해했습니다. 맞게 이해한걸까요? 만약 이게 맞다면, WAL로 인해 트랜잭션 내 작업들은 커밋되기 전에 디스크에 반영되지 않으므로, rollback된다면 UNDO LOG를 활용하지 않더라도 디스크 내 데이터가 이전 내용임이 보장되지 않나요? 롤백 시 UNDO LOG가 어떤 부분에서 활용되어야 하는지 이해하지 못했습니다.

  • java
  • spring
  • mysql
  • redis
  • 이력서
  • 카카오공채-채용
댓글 2 좋아요 1 조회수 121

이력서 첨삭

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

안녕하세요 딩코님 제가 완강을 하여 이력서를 작성해봤는데 보완·추가 할만한 부분을 알려주실수 있을까요 https://earthy-chalk-721.notion.site/Lee-Jeongwon-1aa176858bf380cca9cce9625a5ad1e4?pvs=73 강의중 살짝 봤는데 포공 졸업하셨나요,,, 역시 너무 잘배웠습니다

  • java
  • spring
  • mysql
  • redis
  • 이력서
큐펀치 댓글 1 좋아요 0 조회수 185

레디스 활용에 대해서 질문드립니다!

해결됨

[개념 & 이론] 대기업 근무하며 경험한 Redis를 야무지게 사용하기

안녕하세요! 알고 있는 Redis 지식을 복습하고, 또 어떤 새로운 이론이 있나 학습할 겸 강의 수강하고, 완강까지 했습니다. 강의를 들으며 궁금했던 점이 있습니다. 보통 redis-cli 환경에서 명령어를 치는 일이 많이 있는지 궁금합니다. Springboot 백엔드 개발 중 Redis를 도입해서 사용한다고 하면, 애플리케이션 단에서만 활용하고, cli환경에서 사용하는 일도 많이 있을까요!?

  • 아키텍처
  • redis
  • cache
dt10002 댓글 2 좋아요 0 조회수 123

오타 발견 제보

해결됨

백엔드 6주 실전 미션과 1:1 피드백으로 완성하는 합격 포트폴리오

3주차 수업 자료(notion) category 안에 Training 이 없습니다. 글 내용 흐름에 따라 Training 대신 Fiction 으로 수정하면 될 것 같습니다 🙂 아래 GROUP BY 를 통해서도 없다는 것을 다시 한 번 확인할 수 있습니다. GROUP BY 조회 결과

  • java
  • spring
  • mysql
  • redis
  • 이력서
optional94 댓글 2 좋아요 0 조회수 93

흐름정리 제가 이해한게 맞나요?

미해결

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

쿠폰 100개를 발급해야하고 이 개수는 100을 넘어가면 안됨 -> java synchronized락의 경우 쿠폰 발급을 담당하는 서버가 여러개라면 db에 쿠폰 저장(개수 업데이트) 요청이 동시에 올수 있으므로 race condition 발생 -> redis의 경우 여러 서버가 쿠폰 발급 요청을 보내도 싱글 스레드이므로 쿠폰 발급 수를 정확히 100개로 맞출 수 있음. 하지만 예제의 경우 threadpool을 사용하여 각 스레드별로 쿠폰 발급이 가능하면 바로 db에 쿠폰 저장하는 로직이라서 db 부하가 심함 -> kafka를 도입하여 스레드들이 쿠폰 발급 메세지만 카프카로 보내고 카프카 컨슈머가 이 메세지를 처리하여 db에 쿠폰을 저장함. 컨슈머 그룹에 속한 컨슈머는 현재 하나이므로 메세지 1개씩을 처리함 따라서 db에 부하가 심하지 않음.

  • java
  • docker
  • spring-boot
  • kafka
  • redis
예비군갈나이 댓글 2 좋아요 0 조회수 132

인기 태그

인프런 TOP Writers

주간 인기글