강의 23:03분에서 setMember(Member member) 라는 setter 메서드를 작성하는데요. 제가 기억하기로는 @Setter를 설정하면 자동으로 필드 이름을 딴 setXXX() 인 setter가 만들어지는 것으로 알고 있습니다. 그러니까 현재 Member 필드가 있으니까 롬복인 @Setter 에 의해 setMember(Member member) 가 자동으로 생성되지 않을까 생각하는데요. 제가 생각한게 맞다면 이때 강의에서 만든 setMember(Member member)와 충돌? 이런 문제는 없나요? 시그니처까지 똑같은 것 아닌가요? 아니면 이런경우 사용자가 직접 만든 것이 더 우선시 되는건가요?
안녕하세요. 1.7) 복합대입 연산자 관련 질문입니다. 예제) num7 -= 20; 부분입니다. 바로 위에 있는 num7 += 20;은 num7에 할당 되어 있는 값에 20만큼 더해서 console result 값은 30이 반환이 될 것이었고, 반환이 되었습니다. 그런 논리라면 num7 -= 20; 이면 단순 수식으로 생각을 하였을 때, 10 -20 = -10이 되어야 하는게 아닌가 싶습니다. num7 -= 20; 에서 20; 이 부분이 앞에 오게 되는 이유가 있을까요? 기본 연산자에서는 정수만 취급하기 때문에 앞뒤의 순서가 바뀐 것일까요? 단순 JS의 구조적인 문제일까요? 이에, 설명하셨던 부분과 약간 상이 한 내용인 거 같아서 질문 남겨드립니다.
,로분리된 csv파일로 하고 public FlatFileItemReader<SystemFailure> systemFailureItemReader( @Value("#{jobParameters['inputFile']}") String inputFile) { return new FlatFileItemReaderBuilder<SystemFailure>() .name("systemFailureItemReader") .resource(new FileSystemResource(inputFile)) .delimited() .delimiter(",") .names("errorId", "errorDateTime", "severity", "processId", "errorMessage") .targetType(SystemFailure.class) .linesToSkip(1) .strict(true) .build(); } ---------- 실행하면, 오류가 발생합니다. PS D:\Test\springboot\kill-batch-system> ./gradlew bootRun --args='-- spring.batch.job.name =systemFailureJob inputFile=d:/Test/springboot/kill-batch-system/system-failures.csv' ..... Caused by: org.springframework.batch.item.file.transform.IncorrectTokenCountException: Incorrect number of tokens found in record: expected 5 actual 1 ..... PS D:\Test\springboot\kill-batch-system> 그런데, \t으로 구분하고, .delimiter("\t") 로 하면 정상작동합니다. 이유가 뭘까요? 윈도우 환경입니다. 그리고, 실행시 파일의 위치를 절대경로로 주어야 하나요? 상대경로일경우, 파일의 위치를 어디에 두어야 하나요?
[VOD] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
cursor rules 설명중에 user rules , project rules 관련 설명은 해주셨는데 .cursorrules에 대해서 설명이 없어서 문의 드립니다. user rules , project rules, .cursorrules 모두 사용을 한다면 우선 순위 적용은 어떻게 되는 건지 알고 싶습니다.
안녕하세요! 이번 강의 수강 중 서비스 인터페이스에 대해 궁금하여 글을 남기게 되었습니다. 흔히 스프링 프로젝트에서 보통 Service 인터페이스와 ServiceImpl 구현체로 나누어 개발하며 제가 참여하게 된 프로젝트 또한 이러한 구조였습니다. 이미 이전 개발자 분께서 Service 인터페이스와 ServiceImpl 구현체로 나눠놓은 상태였고, 제가 A 기능의 AServiceImpl 안에 특정 서비스 로직이 비대해짐에 따라 해당 코드가 명확하지 않다고 생각되어 메서드로 분리하게 되었습니다. A 엔티티의 상태, 계산 등의 로직으로 private 메서드를 두었습니다. 여기서 동료와 의견이 갈렸습니다: 동료 입장: 1. ServiceImpl 안의 모든 메서드는 반드시 인터페이스에 있어야 한다. 2. 인터페이스는 외부·내부 구분이 아니라, 구현체가 제공하는 기능을 보장하는 것이므로 전부 담아야 한다. 3. 내부 메서드를 둘 거라면 굳이 인터페이스로 추상화할 필요가 없고 그냥 클래스로 쓰면 된다. 제 입장: 1. 인터페이스에는 “외부 계약(=공개 API)”만 있어야 한다. 2. 구현체 내부에서만 쓰이는 로직은 private으로 감추는 게 맞고, 외부에서 호출할 필요가 전혀 없다. 3. 인터페이스를 구현체 내부 헬퍼까지 다 포함하면, 오히려 계약이 불필요하게 비대해지고 역할이 모호해진다. 핵심 쟁점 저는 public 메서드는 모두 인터페이스에 있어야 한다는 데에는 동의합니다. 또한, 단순 public, private 만 있다면, 인터페이스의 역할이 모호하다는 것또한 이해하지만, 이전 코드와의 일관성과 운영 중인 시스템에 대한 변경이 필요할정도의 중대사항이라고 생각하지 않습니다. 궁금한 점은 private/내부 헬퍼 메서드까지 인터페이스에 강제로 올리는 게 맞는지, 인터페이스를 사용하는 의의가 궁금합니다. 긴글 읽어주셔서 감사합니다.
// 2. 콜백함수의 활용 function repeat(count, callback){ for(idx=0; idx<count; idx++){ callback(idx); } } repeat(4, function callback(){ console.log(idx * 2)}); repeat(4,(idx)=>{ console.log(idx * 4); }) repeat(5,()=>{ console.log(idx * 5); }) repeat()으로 호출할 때 콜백함수까지 같이 불러오는 부분에 대해 궁금증이 생겼습니다. repeat(인수, 콜백함수)=> 이 부분에서 콜백함수에 매개변수로 idx를 안 넣어도 콘솔창에 결과가 잘 나옵니다. 그런데도 콜백함수 인수를 작성할 때 idx를 꼭 적어줘야 하나요? repeat(4, (idx) // idx를 넣고 메인 함수 콜백 호출 부분인 callback(idx); 에서 idx를 뺏더니 출력결과가 Nan이 나옵니다. repeat(4, () => 이렇게 idx가 없는 호출문? 에서는 정상적으로 값이 잘 나오는데 저 부분은 왜 안나오는지 궁금합니다.
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! article-read service에서 ArticleIdListRepository는 createdEvent를 받았을 때만 추가되는데 만약 redis가 종료돼 데이터가 유실된다면 createdEvent로만 추가되기 때문에 당장 캐시 db로서 역할을 못 할 것 같습니다 이 부분은 redis에 데이터가 유실되지 않는다고 가정하신 뒤 코드를 작성한 것이 맞을까요??
안녕하세요 강사님 질문을 자주올리는것같아 죄송하고 답변달아주셔서 감사합니다. pdf에 나온것처럼 프로듀서가 보내는 메시지량은 120 하나의 쓰레드가 처리하는 메세지량 0.3 을기준으로 토픽의 파티션을 400개로 생성했을때 어플리케이션 서비스의 max 스레드가 기본값 200이라 가정하에 파티션 400개를 처리하려면 스레드가 200개가 더 필요하니 대부분 실무에서는 200 스레드 기준으로 2개의 컨슈머 서비스를 구동시키나요? 추가로 부하테스트 강의에도 지금 강의에 설명되는 파트가 ( 카프카 파티션구하기 관련? ) 따로 있는지도 궁금합니다
안녕하세요 강사님 지금은 샘플 프로젝트라 하나의 컨슈머 서버에서 파티션3개를 처리하고있는데 만약 email.send topic기준으로 파티션을 5개 생성했을때 컨슈머 서버도 5개를 띄우는게 일반적인가요? 실무기준으로 궁금합니다 추가로 하나의 컨슈머에서 지금은 email.send 토픽만 구독하고있는데 만약 토픽이 slack.send , telegram.send 등 여러가지가 있을경우 컨슈머 어플리케이션에서 카프카리스너를 다중으로 등록하는게 일반적인가요 아니면 각 토픽마다 서비스를 띄우는게 일반적인가요? 만약 각 토픽마다 서비스를 띄운다가정했을때 email.send topic 파티션 5개 => 서비스 5개 구동 필요 slack.send topic 파티션 3개 => 서비스 3개 구동 필요 총 8개가 띄워지는게 일반적인건지 .. 실무기준으로 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] fail을 썻는데 전 빨간 밑줄이 떠요 gpt한테 무르니까 import 써야 한다는데 import쓰고 실행 돌리니까 또 틀렸다고 하고..
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하십니까 선생님, 115번 강의 내용 중 질문이 있습니다. 각각 작업의 크기를 1100, 1200, 1201번 경우로 나눠서 테스트를 하였는데 작업 처리 속도가 더 빨라서 max 스레드 개수까지 안 늘어날 수도 있지 않을까 하는 생각이 들었습니다. 즉, 작업 처리 속도가 빨라서 큐에 적재되는 작업이 줄어들어 큐에 담긴 작업이 1000개 되지 않아 스레드 긴급 투입이 발생하지 않을 수도 있지 않은가요?
// 함수선언 함수를 생성하는 것 function greeting(){ console.log("안녕하세요"); } greeting(); let area1 = getArea(20, 30); console.log(area1); getArea(40, 200000); // 함수 호이스팅 // -> 끌어올리다 라는 뜻. //함수가 선언되는 순서는 중요하지 않다! function getArea(width, height){ function another(){ //증첩함수 console.log('another'); } another(); let area = width*height; // console.log(area); return area; <------------------------- 여기 return이 반환값이라고 하셨잖아요. getArea(40, 200000) = area 와 같다고 생각하면 되는거죠? 그리고 그걸 화면에 출력하기 위해서는 꼭 변수에 담아야 하는거죠? 그건 알겠는데 왜 변수에 담아야 나오는 건지 궁금합니다!! }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. Index.html 설정 후 localhost:8080 하여도 welcome page가 뜨지 않습니다. 1:36 확인 부탁드립니다. 감사합니다.
안녕하세요. 로컬 k8s 구축에 대한 궁금증이 생겨서 질문남깁니다. 개발환경을 구축해야하는 상황이 생겨 강사님의 개발환경 구축 편을 보았는데, 도커를 사용해서 이미지를 띄우는 작업 까지만 하셨더라구요. 저는 로컬 k8s 환경을 구축한 뒤 소스코드 변경시 로컬 k8s 환경에서 확인하는 작업까지라고 생각했었습니다. 여기서 궁금한게 로컬에서 개발시 구축환경은 어디까지인가? 라는 점입니다. 감사합니다.