묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨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 포트도 사용 중 은 아닌 것 을 확인 이 외에 체크를 해야 할 것이 있는지 모르겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
dispatchType=ERROR가 출력되는 이유
이번 강의에서는 DispatchType을 설정해주지 않았는데 어떻게 dispatchType=ERROR가 나오는 걸까요?8분 28초경에 getDisPatcherType()해서 dispatchType 값을 출력해보는데 ERROR가 출력됩니다. 그런데 다음 강의에서 기본값은 REQUEST 인 것으로 배우는데요 따라서 이번 강의에서는 아무것도 설정을 안해줬으므로 기본 값은 REQEUST이므로 중복 호출이 제거되어 에러 페이지 호출시 필터가 호출되지 않아야 한다고 생각했는데 아닌 것같아서요..WebConfig의 필터에 setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.ERROR) 하여 ERROR 값을 설정하는 것도 다음 강의에서 하는 것으로 알고 있는데 이번 강의에서는 아무 값도 설정 안해 준것 아닌가요? 제가 어떤부분을 잘못 이해하고 있을까요?
-
미해결Spring AI 실전 가이드: RAG 챗봇 만들기
429 에러 발생합니다
https://platform.openai.com/docs/guides/error-codes/api-errors 여기서 할당량 초과 에러 코드라는데, ChatGpt plus 구독중인데 따로 결제를 해야되는건가요?
-
미해결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 로 수정했는데 이래도 괜찮을까요 ?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
루트 쿼리라는것은
강의에서 말씀하신 루트쿼리라는것은 가장 먼저 실행되는 쿼리를 말하는것일까요? 아니면 toOne코드에 대해서 실행하는 쿼리를 말하는것일까요??
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
메서드를 분리하는 기준
강의 내용을 보시면 한 메서드안에서 코드를 작성하시다가 리팩토링을 해서 메서드를 따로 분리하셨는데, 메서드를 분리하는 기준이 따로 있을까요? 한 메서드 안에서, 로직이 너무 길어지면 메서드를 따로 만들어서 분리해야하는것일까요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
데이터베이스 선택 관련 질문.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)강의 수강전 질문2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 스프링 DB를 듣기전에 데이터베이스에 대한 공부를 하고 해당 강의를 수강하라고 하셔서 강사님의 최신 데이터베이스 강의를 수강중입니다. 해당 강의에서는 MySQL을 사용중인데 이 데이터베이스를 사용해서 스프링 DB 강의를 수강할 수 있을까요? 아니면 H2데이터베이스를 별도로 추가 다운로드 해야할까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
Transaction readOnly 성능 개선 (김영한님의 대한 감사인사)
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요 김영한님 해당 강의를 통해 Spring의 Transactional의 동작 원리에 대한 흐름을 공부하였던 것이 엊그제 같은데, 시간이 흘러 내부 소스 코드를 보다가 버그를 발견하여 코드 개선을 하여 후기를 남길겸 감사인사를 드리고자 게시글을 올립니다.Spring의 소스 코드를 분석하다 Transaction의 readOnly 부분에서 버그를 발견하여, 이슈를 발행 후 Jhoeller가 해당 이슈를 채택하여, 코드 개선이 되었습니다.항상 감탄만 해왔던 Spring을 창시한 그 Juergen Hoeller에게 최근 pr과 함께 이번 이슈 또한 깊은 분석을 해주어서 감사하다라는 인사를 받게 되어 뿌듯하네요[Influenced] DataSourceTransactionManager의 readOnly 정책 변경 유도 (Issue #35743)[분석] DataSourceTransactionManager가 defaultReadOnly=true 커넥션 풀을 고려하지 않는 설계 문제를 분석하고 공론화함.[검증] doBegin, doCleanup, resetConnection 3개 핵심 메서드의 상세한 코드 분석과 defaultReadOnly=true 환경에서의 명확한 재현 단계(Steps to Reproduce)를 메인테이너(J. Hoeller)에게 리포트함.[결과] 메인테이너가 '깊은 분석(deep analysis)'이라고 코멘트하며, '의도된 설계'라며 방치되던 기존 정책을 '재고(reconsider)'하도록 이끌어냄.[성과] 해당 이슈는 메인테이너가 직접 '최초 1회만 체크'하는 효율적인 방식으로 코드를 수정하여 Spring 6.2.13 릴리스에 실제 반영됨.https://github.com/spring-projects/spring-framework/issues/35743#event-20661446893
-
미해결견고한 결제 시스템 구축
실습코드 압축해제
안녕하세요 실습코드 압축해제가 안되는데 확인한번 해주실수 있을까요??아니면 프로젝트에 대한 github링크가 있는지 문의드립니다.
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
AWS EC2에 도커 컨테이너가 동작하지 않을 때 확인 해야하는 것
안녕하세요 딩코님. 강의 즐겁게 수강하고 있습니다.딩코님의 테라폼 코드를 토대로, 저의 프로젝트에 도입하는 와중에테라폼 정상 작동 및 AWS 모든 서비스 정상 작동 -> 빌드 -> 커밋 & 푸시 -> CI/CD Actions 통과 까진 성공하나, 막상 EC2에서 docker ps 입력시 아무 컨테이너가 띄워지지 않습니다. 뭔가 ECR에 아무 이미지가 업로드 되지 않고 있나? 라는 합리적 의심이 들긴하는데, 혹시 어느부분부터 점검해야할지 감이 잡히지 않아 도움 부탁드리고자 질문 남깁니다. 추운데 늘 건승하세요. 읽어주셔서 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
[건의] 한글 깨짐 발생 경우 pdf 위쪽에 배치 요망
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ()3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]메시지,국제화.pdf 에서 이 부분이 최상단에 있어도 괜찮을것 같습니다.최초 테스트 message.properties 에서 저는 해당 현상이 있어서 챗지피티 도움을 받아 인코딩 문제임을 인지하였고 해당 properies 파일들을 위의 방식과 비슷하게 UTF-8로 변경 하여 해결 하였습니다. 위쪽에 있으면 따로 시간을 들여 찾을 필요가 없이 바로 인지하고 수정 할수 있을겉 같네요!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
findAllWithMemberDelivery 메서드 질문드립니다.
findAllWithMemberDelivery이 메서드 내부에서, join fetch oi.item i는 안해주셨는데, 안해주는 이유가 무엇일까요?조회하려는 엔티티인 Order기준으로 한 페치조인이 아니고 orderItem기준으로 한 페치조인이기 때문에 그런것일까요?아니면 order가 아니라 orderItem에 있는 item이기때문에 그런것일까요?
-
해결됨3일 완성! 네카라쿠배당토 백엔드 면접 생존 챌린지
다시보기 서비스도 제공하는지 궁금합니다.
다시보기 서비스도 제공하는지 궁금합니다.
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
강의 구매는 했는데
윈도우 유저는 불가능한 강의인가요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
스프링 컨테이너 재시작 반복 현상
Jenkins를 바탕으로 Job들을 PipeLine으로 연결해서 사용중이다. Job들이 순차적으로 실행해야해서 아래처럼 파이프라인을 구성했다.pipeline { agent any stages { stage('Print Parameters') { steps { echo "=========================================" echo "🔧 Job Configuration" echo "=========================================" echo "startDate: ${params.startDate}" echo "endDate: ${params.endDate}" echo "pageNo: ${params.pageNo}" echo "numOfRows: ${params.numOfRows}" echo "=========================================" } } stage('Run abandonedAnimalDataLoadJob') { steps { script { echo "🐾 Starting abandonedAnimalDataLoadJob..." sh """ java -Duser.timezone=Asia/Seoul \\ -Dspring.profiles.active=local \\ -jar /var/jenkins_home/SeeYouAgain-Batch-0.0.1-SNAPSHOT.jar \\ --spring.batch.job.name=abandonedAnimalDataLoadJob \\ startDate=${params.startDate} \\ endDate=${params.endDate} \\ pageNo=${params.pageNo},java.lang.Long \\ numOfRows=${params.numOfRows},java.lang.Long """ echo "✅ abandonedAnimalDataLoadJob Completed!" } } } stage('Run s3ProfileUploadJob') { steps { script { echo "📤 Starting s3ProfileUploadJob..." sh """ java -Duser.timezone=Asia/Seoul \\ -Dspring.profiles.active=local \\ -jar /var/jenkins_home/SeeYouAgain-Batch-0.0.1-SNAPSHOT.jar \\ --spring.batch.job.name=s3ProfileUploadJob \\ startDate=${params.startDate} \\ endDate=${params.endDate} """ echo "✅ s3ProfileUploadJob Completed!" } } } } post { success { echo '=========================================' echo '✅ All Batch Jobs Completed Successfully!' echo '=========================================' } failure { echo '=========================================' echo '❌ Batch Job Failed. Please check the logs.' echo '=========================================' } always { echo "Pipeline execution finished at ${new Date()}" } } }로그를 찍어보니 스프링 컨테이너가 켜지고 첫번째 job이 끝난 후 컨테이너가 종료, 2번째 job을 실행하기 위해 스프링 컨테이너 켜지고 job이 끝난 후 컨테이너가 종료되는 비효율적인 현상을 발견했다. Claude한테 물어보니 job 실행시간이 짧아서 크게 문제없다고는 하지만, 개인적으로 Job이 많거나 추후에 오래 걸리는 Job이 추가될 경우엔 시간도 오래걸리고 리소스 낭비라고 생각한다. 이런 상황에선 어떻게 하는게 좋은가??
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
1장 작전 3 Listener 어노테이션 사용 사례 @Component 질문
어노테이션을 사용한 Listener 를 정의할 때 @Component 어노테이션으로 빈으로 등록시켜줬는데, 실제로 Listener 클래스를 지정할때는 new ServerRackControlListener() 로 직접 생성해주고있네?빈으로 등록한것과, 직접 생성한 것이 서로 연관되지 않는것 같은데 빈으로 주입받아서 넣어주는게 좋을까 아님 Listener 클래스를 빈으로 등록하지 않고 직접 생성해서 사용하는게 좋을까?배운대로 Listener 클래스에서 JobExecution 이나 StepExecution 을 사용하는데, Job 실행이나 Step 마다 Execution 이 다를 수 있으니까 빈으로 등록하지 않아도 될 것 같은데 어떻게 생각해?
-
해결됨프로덕션 레벨 실시간 채팅 서버 구축: 분산 처리부터 성능 최적화까지 (Kotlin & Spring)
웹소켓을 이용한 채팅시스템에서 부하테스트를 어떻게 진행해야할까요?
안녕하세요. 취준하고있는 예비 개발자입니다. 개인프로젝트를 진행하다가 여쭤보고 싶은게 있어 강의까지 구매하게 되었습니다. 가장 궁금한 질문은 '웹소켓을 이용한 채팅시스템에서 부하테스트를 어떻게 진행해야하는가?'입니다. 추가질문 및 부연설명을 위해 조금만 더 읽어주시면 감사하겠습니다. 현재 진행하고 있는 앱 개발 프로젝트 진행 중입니다.기술스택은 서버는 코틀린,스프링이고, 클라이언트는 iOS(swift)와 안드로이드(Kotlin)로 구성했습니다. http요청을 처리하는 서버(스프링 서버)는 단일 서버와 단일 데이터베이스로만 구성한 상황이고, 단일 인스턴스는 aws의 t2.micro를 이용하고 있습니다. 서버에는 nginx / next 서버(홍보용 홈페이지) / 스프링 서버 / github-runner 등의 프로세스가 실행 중에 있습니다. 클라이언트의 무한 재연결 로직의 문제로 인해 인스턴스 내부에서 'ss -s' 명령어를 이용해 소켓상태를 조회해본 결과, 소켓 tcp연결이 폭발적으로 증가하여 400개까지 증가한 상황이 있었습니다. 이 상황에서 소켓을 이용한 채팅뿐만 아니라 사용자 조회와 같은 http요청 모두 느려지는 것을 확인되었습니다. 하지만 재연결 로직을 수정하고 이후 tcp연결이 400(= 클라이언트 - nginx 200개 / nginx - 서버 200개)까지 증가하는 상황을 만들어봐야 또 문제가 발생하는지 확인할 수 있다고 생각했지만 200명의 테스터를 모을 수 없다고 생각했습니다. 또한, 채팅의 API를 하나 파고, ngrinder를 이용해 부하테스트를 요청하는 상황이 적합할까 생각했을 떄, 웹소켓 연결이 되지 않는 상황이라고 생각되어 적합하지 않다고 생각했습니다. 이런 상황에서 어떻게 테스트해볼 수 있을지 고민됩니다. 추가적으로 궁금한 점은앱 개발에서 채팅시스템을 구축하는 상황이고, 대략 500~1000명을 수용해야한다면 어떤 기술을 적용해 채팅시스템을 구축하셨을 것 같나요? 실시간 통신하면 웹소켓정도 밖에 모르는 상황이었기에 웹소켓을 적용했지만서도 타당했는가? 적합했는가에 대한 의문이 여전히 남아있는 상황이라고 생각하기 때문에 질문드렸습니다. t2.micro 서버는 얼만큼의 소켓연결까지 버틸 수 있는지 알고 싶습니다. 현재 서비스의 사전예약자가 80명 정도 되는 상황이라 t2.micro를 이용했을 때 서버가 터질까봐 우려스럽습니다. 그래서 서버 스펙을 확장을 고려하고 있는데, 취준생이기에 비용적인 측면에서 고려하지 않을 수가 없는 상황이라 '정말 확장하는게 맞을까?', '내가 능력이 부족한 게 아닐까?' 라는 생각이 들어 갈피를 못잡고 있는 상황이라 질문드렸습니다.제 질문들이 대부분 인프라 확장의 타당성을 갖추기 위한 질문이라고 생각합니다. 혹시 인프라 확장을 위한 근거로써 어떤 지표가 타당성을 확보할 수 있다고 생각하시는지 궁금합니다. 긴 질문 읽어주셔서 감사합니다.행복한 하루 되세요~
-
미해결Spring WebFlux + LLM 실전 구현
스케줄의 스레드를 최대한 사용하지 않고 WebFlux를 사용해야 되는 게 맞는지 궁금합니다.
안녕하세요. 강의 잘들었습니다.강의를 듣고나서 궁금한 점이 있어서요.WebFlux의 스케줄을 통해서 스레드를 분리해서 JPA를 사용한다고 봤고, 그리고 신뢰성이 떨어져도 괜찮은 데이터는 R2DBC를 사용한다고 보았습니다.그렇다면, 스케쥴의 스레드를 최대한 사용하지 않고 WebFlux에서 지원해 주는 컴포넌트를 사용하는게 최적이라고 생각되는데 맞을까요? 제 짧은 생각으로는 JDBC를 사용하면 결국에는 스레드 풀을 사용할 것이고, 사용자가 많아지면 많아질수록 스레드는 부족할 것이라고 생각이 돼서요. 이렇게 되면 WebFlux를 사용하는 이유가 점점 퇴색될 것 같다는 생각이 듭니다.그렇다면 제가 생각하기로는 WebFlux를 사용하면서 지원하는 컴포넌트(Netty가 지원해 주는 컴포넌트)를 잘 알고, 적절한 Stream 함수를 알고 사용하는 게 제일 중요하다고 생각되는데, 이게 맞는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
ai api 선정하기 관련 질문
안녕하세요!!! 제가 영한쌤의 강의를 토대로 백엔드개발을 배우고 팀원들과 프로젝트를 할려고 합니다.사용자들의 대화(텍스트)를 기반으로 여행계획을 짜주는 서비스를 만들려고합니다.사용자끼리 채팅->채팅내용을 ai api에 전송->여행계획출력순인데어떤 api를 사용하는게 좋을까요?제미나이 클로드 지피티 등 종류가 많아서 고민중입니다.
-
미해결스프링 시큐리티 OAuth2
authorization-server 라이브러리 질문이 있습니다.
강의 내에서 dependencies 하고 있는spring-security-oauth2-authorization-server 랑 아래 org.springframework.boot:spring-boot-starter-oauth2-authorization-server 과는 다른 라이브러리인가요?프로젝트 생성하면서 oauth2 authorization 서버를 선택 후에 build.gradle를 확인했는데강의에서 나온 것과 상이하여 질문드립니다.