안녕하세요, 강의를 보던 중 문득 궁금한 점이 생겨 문의드립니다. Spring Batch에서 Job 설정 클래스를 구성할 때, 아래와 같이 두 가지 스타일이 혼용되는 것을 자주 보게 되는데요. 🥔 PotatoJobConfiguration (생성자 주입 방식) @RequiredArgsConstructor public class PotatoJobConfiguration { private final JobRepository jobRepository; private final PlatformTransactionManager transactionManager; @Bean public Job potatoJob() { return new JobBuilder("potatoJob", jobRepository) .start(potatoStep()) .build(); } @Bean public Step potatoStep() { return new StepBuilder("potatoStep", jobRepository) .tasklet((contribution, chunkContext) -> RepeatStatus.FINISHED, transactionManager) .build(); } } 🥬 KimchiJobConfiguration (메서드 파라미터 주입 방식) @RequiredArgsConstructor public class KimchiJobConfiguration { @Bean public Job kimchiJob( final JobRepository jobRepository, final Step kimchiStep ) { return new JobBuilder("kimchiJob", jobRepository) .start(kimchiStep) .build(); } @Bean public Step kimchiStep( final JobRepository jobRepository, final PlatformTransactionManager transactionManager ) { return new StepBuilder("kimchiStep", jobRepository) .tasklet((contribution, chunkContext) -> RepeatStatus.FINISHED, transactionManager) .build(); } } 강의를 보다 보면 예시마다 사용되는 경우가 다르던데, 어떤 기준에 따라 생성자 주입 방식과 메서드 파라미터 주입 방식을 구분해서 사용하시는지 궁금합니다. 실무에서도 보통 이 둘을 혼용하는 편인지, 아니면 상황에 따라 선호되는 방식이 명확히 나뉘는지 조언 부탁드립니다. 감사합니다.
공부 중 질문 있어서 올립니다. 1번 문제 4분 45초 쯤에 this.display로 자신의 display를 호출하여 10을 출력하는데 전에 강사님 말씀 중에 부모에는 없는데 자식에만 있는 메서드를 호출하면 무조건 오류가 난다고 하신 적이 있습니다.(34강 17분 5초 경) 이 문제에서도 display가 자식에만 있는데 왜 10이 호출되는 건가요? 이 차이가 업캐스팅이 되고 안되고의 차이인가요? 아니면 this. 으로 출력했기 때문인가요?
정적 중첩 클래스의 경우, 외부 클래스의 정적 변수에는 접근이 가능하지만 인스턴스 변수에는 접근할 수 없다는 것은 알고 있습니다. 정적 중첩 클래스와 인스턴스 변수가 생성됐을 때, 생성영역이 다르기 때문이라고 한다면 정적 중첩 클래스가 외부 클래스의 public 인스턴스 메서드에도 접근할 수 없는 것이 맞는 건가요? 아래와 같이 코드를 작성해보니 static context에서 non-static method를 참조할 수 없다는 오류가 뜹니다. public class NestedOuter { private static int outClassValue = 3; private int outInstanceValue = 2; // 인스턴스 영역에 생성되는 변수 (heap 영역) public void outerPrint() { System.out.println("Can Nested class access this method?"); } // 정적 중첩 클래스 // static은 클래스 수준(static)으로 존재 static class Nested { private int nestedInstanceValue = 1; public void print() { // 자신의 멤버 접근 System.out.println(nestedInstanceValue); // 바깥 클래스 인스턴스 멤버에는 접근할 수 없다. // nested static class는 outer class의 인스턴스와 독립적으로 존재하기 때문에, 인스턴스 변수에는 접근할 수 없다 // System.out.println(outInstanceValue); // 바깥 클래스의 클래스 멤버에는 접근 가능. private이어도 Nested 클래스가 NestedOuter 클래스 내부에 존재하기 때문에 접근 가능. // System.out.println(NestedOuter.outClassValue); // 가능 System.out.println(outClassValue); System.out.println(outerPrint()); } } } 정답은 C, D 두 가지인 것으로 생각하면 될까요?
생성자 호출 순서 관련 질문입니다. 자식 기본 생성자 내부에 this("apple")이 있을 경우 super()전에 ChildY(String s)가 먼저 실행되고 ChildY(String s) 내부에서 암시적으로 super()을 호출 하는거 아닌가요? gpt한테 물어봤는데 이게 맞다고 해서 헷갈리네요..
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] main에서 K3Car 인스턴스를 생성하고 그걸 driver의 멤버변수에 할당하는 식으로 하면 Driver에서 K3car를 private으로 선언한 의미가 없어지는 거 아닌가요? main에서도 k3Car에 바로 접근이 가능하니까요
치치직...1장 작전 3에서, 키보드는 꽉 잘 잡았는데 궁금한게 발생했다. jobExecutionContext 에 접근/수정할 때 chunkContext 를 통해서 접근하는 방법과 contribution 을 통해서 접근하는 방법 두가지를 알게 되었다. 일부러 두가지 침투 방식 을 알려준 것 같으나 두 방식의 차이가 있는지, 무엇이 더 선호되는지 아니면 취향의 문제인지 궁금하다.
안녕하세요. 강의 잘 보고 있습니다. 헥사고날 아키텍처 구조에서 궁금한 점이 있습니다. 동일 프로젝트에 회원, 부서 도메인이 있고, 회원 서비스가 부서 서비스를 의존하고 있을 경우 이 경우에는 포트+어댑터 패턴을 유지하는게 좋을까요? 아니면 부서 패키지 내에 존재하는 서비스 인터페이스로 주입받아도 괜찮을까요? 포트 + 어댑터 구조로 할 경우 어댑터가 단순히 부서 서비스를 의존받아 호출만 하는 용도로만 사용하는거 같아 장점을 잘 모르겠습니다. (회원, 부서 도메인이 별도 프로젝트로 분리될 가능성은 희박하다는 전제입니다.)
안녕하세요 강의 기출문제 부분 시작하려고 합니다. 지금까지 제공해주신 자료 PDF파일로 아이패드에서 무리없이 잘 학습해왔습니다. 기출문제 파일들 대부분이 아이패드로 옮기니 화질이 저하되고, PDF 앱 자체가 팅겨버리네요... 혹시 일부 자료파일을 준비해주실 때 다른 자료파일과 차이점이 있다면 .. 참고하겠습니다. (폰트, 압축률.. 용량...등등 ) 버전 파일은 잘 열리지않거나 버벅임이 있는 것 같습니다 가능하다면 버전 변경방법 혹은, 재 변환 해서 공유주실 수 있는지 문의드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 인자로 전달한 참조형이 아닌 기본형 변수의 값이 변경되도록 하는 방법은 값을 반환받는 방법밖에 없나요? 예를들어 int형 1개짜리 변수를 참조형으로 인수로 넘겨서 메서드 내에서 값을 바뀌게 할 순 없나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] '자바는 변수의 값을 복사해서 대입한다' 라는 대원칙은 이해했고 강의에 나오는 코드나 설명은 이해가 되었습니다. 근데 만약에 배열변수를 인자로 넘기게 되면 그 변수 안에는 자신이 카리키는 배열이 저장된 메모리의 주소가 전달될텐데.. 그럼 매개변수인 배열변수가 그걸 받아서 만약에 메서드 내에서 그 배열 요소의 값을 바꾸면 메모리 안의 값 자체가 바뀌니까 메서드가 종료되면 인자로 넘겨준 배열변수가 가리키는 배열은 뭔가 수정이 된 상태가 되는건가요? 아니면 함수 내에서의 작업은 나오면 의미가 없어지는 건가요?
안녕하세요? 강의 정말로 잘듣고 있습니다. 인프런에서 여러 강의를 수강했지만, 정말 질 좋은 강의라고 생각합니다 ㅎㅎ.. 인기글 설계에 대해 궁금한 부분이 있습니다. 1)저는 레디스의 sorted_set을 사용한다고 하셨을 때, 처음 떠올린 구조는 모든 게시글에 대한 점수를 기록하면서 자연스럽게 sorted_set에 의해 정렬되는 형태를 생각했었습니다. 예를 들어 20250713에 게시글이 십만개가 생성되었다고 하면, 20250713 sorted_set에 십만개의 게시글에 대한 점수가 들어있고, 필요할 떄 상위 10개의 데이터를 추출하여 인기글로 선정하는 형태입니다. 이렇게 하면 게시글과 연관된 데이터의 개수를 적재할 필요도 없다고 생각했고, sorted_set을 자연스럽게 활용하는 형태라고 생각했습니다. 이벤트를 수신하고나면, 적절하게 점수만 올려주면 된다고 생각하구요. 이렇게 하면 게시글과 관련된 데이터를 적재할 필요도 없을 것 같아서 나쁘지 않은 방법 같은데, 이 방법에 대해서 어떻게 생각하시는지 궁금합니다 2) 비슷한 맥락으로, 강의에서 보여주신 방향을 선택하신 이유도 좀 궁금합니다. 1)에서 제가 말씀드린 방안보다 선생님이 강의에서 말씀해주신 방향이 어떤 장점이 있는걸까요? 3) 마지막으로.. 강의가 너무 좋아서 다음강의가 기대가 되는데요, 혹시 비슷한 사이즈에 비슷한 볼륨일까요? 또 이미 강의를 제작중이실 것 같은데, 캐싱과 관련된 부분이라고는 알고 있지만 조금 더 상세한 커리큘럼이나 개강일자가 궁금합니다 ㅎㅎ 좋은 강의 감사합니다
안녕하세요, 아래에서 Add 0이 출력되는 부분 관련 여쭙습니다. 아래 부모 코드 블록에서 n이 0인 경우에는, 0을 return하는데 class Sum { int sum(int n) { // 5 if (n <= 0) { return 0; } else { return n + sum(n - 1); } } } n = 1 일 때, 1 + sum(0)에서 sum(0)이 재정의된 자식의 메서드를 호출하여, "Add 0"이 출력되는 것인지, 왜 부모의 sum(0)의 값인 0을 return하는지, 헷갈려서 질문을 드립니다...!