묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
멀티스레드 상황인데 currentParticipants 가 AtomicInteger가 아닌 이유?
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?4-6. 트랜잭션 실습 - 쿠폰 동시성 문제 해결 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분똑같이 멀티스레드 환경인데 successCount 는 AtomicInteger로 세팅되어 있고, currentParticipants 는 AtomicInteger가 아닌 이유가 궁금합니다. 이렇게 되면 Java단에서부터 currentParticipants++할 때 동시성 문제가 발생하지 않을까요?3. 시도해보신 내용 GPT에 물어보니 AttributeConverter 사용하면 JPA에서도 AtomicInteger를 쓸 수 있다고 합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
커서 기반 페이지네이션 과 무한 스크롤링
안녕하세요 강사님강의를 수강하는 학생입니다. 무한 스크롤링은 두 번째부터 보통 끝쪽 id 에 데이터를 기반으로 데이터를 불러오는 방식이보통 커서 기반 페이지네이션과 큰 차이가 없는 건가요? (claude 나 ) 블로그 보면서 이것도 비슷한 개념인 거 같아서 질문 드립니다. @Entity@Table(name = "post",indexes = {@Index(name = "idx_post_board_created_id",columnList = "board_id, created_at DESC, post_id DESC"),@Index(name = "idx_post_created_id",columnList = "created_at DESC, post_id DESC")})@Getter@NoArgsConstructorpublic class Post {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "post_id")private Long id;@ManyToOne(fetch = FetchType.LAZY)}이렇게 엔티티에 인덱스를 만들어서 사용하는지 궁금합니다. 강의에서 처럼 SnowFlake도 보통 저렇게 인덱스를 만들어서 활용하는지도 궁금합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 캐시 전략
섹션3에 22번째 강의에서 에러발생합니다..
환경은 windows 11 64비트이구요,자바 21, redis는 물론 docker 8.2.1 실행 중이엇구요 하지만SplitShardedBloomFilterRedisHandlerTest 클래스에 mightContain 테스트 함수 실행 하면 첨부한 이미지 처럼 에러가 출력 됩니다. 아래는 docker 버전 정보입니다.
-
해결됨개발자라면 알아야 할 redis 기본
실무에서 Redis에서 0번 이외의 DB를 사용하나요?
안녕하세요 강사님 redis 를 잘 몰라서 공부중인데,인터넷에 검색해보니(각종 gpt, claude)등도 실무에서 클러스터링 이슈 등으로 0번 이외의 DB는 사용하지 않는다는 설명이 있는 있는데, 0 DB 외에 1~16DB도 실무에서 쓰이나요?https://redis.io/docs/latest/operate/oss_and_stack/reference/cluster-spec/에서도 0 DB만 multiple databases를 지원한다고 나와있고string 자료구조 강의에서 0 : 인증, 1: 캐싱, 3: 상품목록 등을 관리한다는 언급이 있어서 질문드립니다.
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
강의_34] 공통 모듈 관련 질문입니다.
아직 MSA 경험이 없다보니 질문을 드려봅니다.메시지에 관련된 Entity를 공통 모듈로 뺀다고 하셨는데용Lecture_1 라는 프로젝트, Lecture_2 라는 프로젝트가 있다고 가정을 했을 때'공통 모듈' 이라는걸 별도의 프로젝트로 구성한다는 말씀이실까요?아니면 아래와 같이 프로젝트 root외에 모듈을 별도로 잡아서 한다는 말씀이실까영?rootProject.name = 'Lecture_2' include 'common' <-- 공통 모듈?rootProject.name = 'Lecture_2' include 'common' <-- 공통 모듈?아, 그리고 최근에는 MSA에 대한 단점이 명확해지고 있어서 Modular Monolithic 아키텍처도 생겨나고 있는데 강사님께서는 이 부분에 대해서 어떻게 생각하시는지도 궁금합니다!
-
미해결6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
클라우드 환경 배포시 부하 테스트 방식에 대하여
안녕하세요 딩코님, 클라우드 환경에서 비용이 발생하지 않는 올바른 테스트 방법에 대해 여쭙고자 질문 남깁니다. 제 스스로 느끼기에, 제가 프리티어로 사용하고 있는 EC2 인스턴스 내부에서 k6 스크립트를 실행하게 되면 EC2 과부화는 물론 RDS 에도 몇백만건의 데이터가 삽입이 되니 비용적, 컴퓨팅 자원적 문제가 발생할 것 으로 생각이 됩니다. 그래서 혹시 다음과 같은 방법으로 클라우드 환경 테스트를 진행하면 될지 여쭤보고 싶습니다.테라포밍을 통해 AWS EC2 + RDS 조합으로 서버 배포배포된 해당 주소로 제가 가지고 있는 노트북(EC2 아니고 제 로컬 PC) 터미널에서 k6 스크립트 실행이때도 비용문제가 발생하는지? -> 아니라면 저비용으로 테스트하는 국룰 방법을 좀 소개해 주시면 감사드리겠습니다 ! 강의 너무 재밌습니다 ㅋㅋㅋ 감사합니다 !
-
미해결백엔드 6주 실전 미션과 1:1 피드백으로 완성하는 합격 포트폴리오 - 2기
이력서 관련 궁금한 사항이 있습니다.
안녕하세요 딩코딩코 선생님. 다름이 아니라 궁금한 점이 있어 Q&A에다가 글을 올립니다.6주차 까지 진행을 하며 현재 실제 업무를 하며 해결한 내역들에 대해 다시 한번 정리 해 보는 시간을 가지려고 합니다. 이러한 과정을 수행했을 때 혹시 피드백을 해 주실 수 있는지 궁금합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기
게시글 생성 로직에서 만약 오류 발생시에 db는 롤백이 되는데 만약 redis에 저장된 게시글수가 이미 증가됐다면 감소를 시켜야 하는데 어떻게 처리하는게 좋을까요
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 캐시 전략
http://localhost:8080/cache-strategy/{{cacheStrategy}}/items 호출 시 NPE 에러 문의
------------------------------ 해결 방안-------------------------------저와 비슷한 이슈가 있으신분은 이렇게 처리 부탁드립니다! 인텔리제이 설정에서 Preferences > Build, Execution, Deployment > Build Tools > Gradle에서Build and run using : GradleRun tests using : Gradle 이렇게 수정 하고 다시 시도 부탁드립니다!!! 쿠케님 감사합니다 :) 안녕하세요 우선 좋은 강의 만들어주셔서 정말 감사드립니다.GET - http://localhost:8080/cache-strategy/NONE/items/{{itemId}} 해당 API 를 호출 하게 되면ItemController -> KukeCacheAspect -> KukeCacheKeyGenerator -> ItemNoneCacheService 대충 이런 흐름으로 가게 되는데요.KukeCacheKeyGenerator 객체에서 for (int i = 0; i<args.length; i++) { context.setVariable(parameterNames[i], args[i]); } parameterNames 객체에 NPE 에러가 발생 되고 있습니다.코드는 강의 자료실 통해 제공해주신 코드로 실행 해보았습니다. 이 부분 어떻게 수정을 해야 할까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
멀티 모듈이 아닌 MSA 환경에서 common
지금은 멀티 모듈로 프로젝트를 설정해서 common이라는 공통 모듈로 분리해도 문제가 없을 것 같은데, 정말 개발 환경이 달라지면 어떻게 진행이 되나요?예를 들어, board는 java, comment는 python으로 개발이 된다고 하면, board와 comment에 사용될 common을 팀끼리 약속을 해두고 각각 서버에 구현을 해서 사용하게 되나요?
-
미해결FastAPI 실전편: JWT와 Redis로 완성하는 인증 시스템
게시글 삭제 API 구현 시 누락된 부분에 대한 질문
강의에서 게시글 삭제 API를 배웠는데, 강의 화면이 잘려서 완전한 코드를 확인하지 못했습니다. @app.delete("/posts/{post_id}", response_model=dict) def delete_post(post_id: int, db: Session = Depends(get_db)): query = select(Post).where(Post.id == post_id) post = db.execute(query).scalar_one_or_none() if post is None: raise HTTPException(status_code=404, detail="게시글을 찾을 수 없습니다.") db.delete(post) # ← 여기서 화면이 짤림깃허브 확인해서 코드를 완성하긴 했는데, 다른 수강생들을 위해서 강의 수강자료 또는 강의 업데이트 부탁드립니다.
-
미해결FastAPI 실전편: JWT와 Redis로 완성하는 인증 시스템
게시글 목록 조회 시 불필요한 예외 처리에 대한 질문
강의에서 배운 게시글 목록 조회 코드에서 궁금한 점이 있습니다. @app.get("/posts", response_model=list[PostResponse]) def get_posts(db: Session = Depends(get_db)): query = select(Post).order_by(Post.created_at.desc()) posts = db.execute(query).scalars().all() if posts is None: raise HTTPException(status_code=404, detail="게시글이 존재하지 않습니다.") return postsSQLAlchemy 2.0의 .all() 메서드는 데이터가 없을 때 None을 반환하는 게 아니라 빈 리스트 []를 반환한다고 알고있습니다.결과적으로 if 문을 탈 수가 없는데, 필요 없는 코드가 아닌가 해서요.그냥 빈 리스트를 반환하면 되지 않나요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
2Depth 강의 도중 궁금한 점 있어요!!
CommonService 클래스 부분에서이 코드 테스트를 하며 생각을 해봤는데요EX)루트 댓글 A(논리삭제) ㄴ 댓글 B ㄴ 대댓글 C상황인 경우에서 B를 삭제했을 경우에 논리 삭제 되어있던 루트 댓글A도 삭제가 되면서루트 댓글 A(물리삭제) ㄴ 댓글 B(물리삭제) ㄴ 대댓글 C이런 상황으로 된다면 대댓글 C는 물리삭제 된 루트 댓글A를 parent로 가지는 고아 댓글이 되어버리는 것은 아닌가 궁금해서요!! 깔끔하게 딥한 강의 너무 잘 듣고 있어요!! 감사합니다 :)
-
미해결대기업 근무하며 경험한 Redis를 야무지게 사용하는 방법 [이론편]
설명과 화면이 맞지 않습니다.
전 질문에 같은 내용이 있긴 한데요.. 설명과 화면이 맞지 않아 좀 당황했습니다.반드시 수정이 필요해 보입니다.. 솔직히 환불하고 싶지만 한 번만 참겠습니다.
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
k6 dashboad 안나오는 상
1. 현재 학습 진도2-9 2. 어려움을 겪는 부분window 11 에서 k6 1.3.0 버전을 사용 중 이고set K6_WEB_DASHBOARD=truek6 run k6-scripts/k6-test.js로 명령어를 쳐도 테스트 자체는 실행이 되지만 대쉬보드가 나오지 않습니다 3. 시도해보신 내용처음엔 버전 문젠가 해서 최신 버전으로 수정 했고 5665 포트도 사용 중 은 아닌 것 을 확인 이 외에 체크를 해야 할 것이 있는지 모르겠습니다.
-
미해결6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
2-4 도커 빌드 에러가 계속 납니다.
1. 현재 학습 진도2챕터 4강 2. 어려움을 겪는 부분docker compose -d --build 를 터미널에 입력하면이렇게 => ERROR [internal] load metadata for docker.io/library/openjdk:17-jdk-slim 해당 에러가 계속 발생합니다.(docker compose -d 는 정상 실행 됩니다.)3. 시도해보신 내용찾아보니 docker 설정 파일을 삭제하고 하라던지 jdk 이미지를 삭제하고 하라던지 해서 rm ~/.docker/config.json 라던지 등을 해봤습니다만 계속 문제가 생깁니다.현재 해당 도커 이미지가 사용 중지된거같아서Dockerfile 에 FROM eclipse-temurin:17-jdk-jammy 로 수정했는데 이래도 괜찮을까요 ?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
샤딩에 대해서 궁금점있습니다.
저의 짧은 지식으로는 샤딩은 수평분할에 기반한 방식이라 수직은 존재하지 않는 것으로 알고 있습니다. 혹시, 이부분에 대해서 설명을 해주실 수 있으신가요?
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
성능 측정시
이력서에 넣을 성능을 측정할 때단순한 쿼리 실행 속도나 API 응답 속도까지로컬이 아니라 aws에 띄워서 비교하는 게 좋을까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
댓글 테이블 설계
안녕하십니까 선생님,댓글 테이블의 parent_comment_id 컬럼에 외래키 제약조건을 걸지 않고 설계를 하셨는데 이러한 선택의 구체적인 이유가 있을까요?? 저는 무결성 보장을 위해 셀프 조인 + FK제약조건을 생각했었습니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
샤딩의 기준
안녕하세요 쿠케님 강의 잘 보고 있습니다!강의를 보다가 갑자기 궁금한 점이 생겨서 질문 드립니다. 샤딩의 기준이 현재는 article_id로 되어 있는데, 특정 샤드에 댓글 데이터가 엄청 생성되어서 불균형하게 저장이 되는 경우도 있을까요?? 있다면 샤딩의 기준을 다시 정의하는 일도 있는지 궁금합니다.항상 잘 보고 있습니다. 감사합니다.