어노테이션을 사용한 Listener 를 정의할 때 @Component 어노테이션으로 빈으로 등록시켜줬는데, 실제로 Listener 클래스를 지정할때는 new ServerRackControlListener() 로 직접 생성해주고있네? 빈으로 등록한것과, 직접 생성한 것이 서로 연관되지 않는것 같은데 빈으로 주입받아서 넣어주는게 좋을까 아님 Listener 클래스를 빈으로 등록하지 않고 직접 생성해서 사용하는게 좋을까? 배운대로 Listener 클래스에서 JobExecution 이나 StepExecution 을 사용하는데, Job 실행이나 Step 마다 Execution 이 다를 수 있으니까 빈으로 등록하지 않아도 될 것 같은데 어떻게 생각해?
안녕하세요. 강의 잘들었습니다. 강의를 듣고나서 궁금한 점이 있어서요. WebFlux의 스케줄을 통해서 스레드를 분리해서 JPA를 사용한다고 봤고, 그리고 신뢰성이 떨어져도 괜찮은 데이터는 R2DBC를 사용한다고 보았습니다. 그렇다면, 스케쥴의 스레드를 최대한 사용하지 않고 WebFlux에서 지원해 주는 컴포넌트를 사용하는게 최적이라고 생각되는데 맞을까요? 제 짧은 생각으로는 JDBC를 사용하면 결국에는 스레드 풀을 사용할 것이고, 사용자가 많아지면 많아질수록 스레드는 부족할 것이라고 생각이 돼서요. 이렇게 되면 WebFlux를 사용하는 이유가 점점 퇴색될 것 같다는 생각이 듭니다. 그렇다면 제가 생각하기로는 WebFlux를 사용하면서 지원하는 컴포넌트(Netty가 지원해 주는 컴포넌트)를 잘 알고, 적절한 Stream 함수를 알고 사용하는 게 제일 중요하다고 생각되는데, 이게 맞는지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 자바 고급편 수준이 저한테 높아서, 느린 배속으로 반복해서 내용을 겨우 이해는 했는데 강의 내용이 자기 것으로 되었다는 느낌이 없고 교안이나 영상 없이는 이론 설명이나 예제 코드 작성이 잘 안 됩니다. 강의 내용을 자기 것으로 체화하신 분들은 어떻게 복습하셨나요?
예시만 봤을 때는 continue와 pass의 차이점이 명확히 구분되지 않는 것 같아 질문드립니다. 1. continue: if문에 해당하여 continue를 만나면 (print가 있다는 가정하에) 출력하지 않고 다음 반복으로 넘어감 pass: if문에 해당하여 pass를 만나면 그 부분만 지나가고 (print가 있다는 가정하에) 밑에 출력은 실행함 저는 이렇게 이해하고 있는데 오류가 있을까요? 2. pass 예제2번에 else 없이 print(i)만 있었더라면 3도 출력이 되는건가요?
강의 내에서 dependencies 하고 있는 spring-security-oauth2-authorization-server 랑 아래 org.springframework.boot:spring-boot-starter-oauth2-authorization-server 과는 다른 라이브러리인가요? 프로젝트 생성하면서 oauth2 authorization 서버를 선택 후에 build.gradle를 확인했는데 강의에서 나온 것과 상이하여 질문드립니다.
@Version만 붙여도 자동으로 낙관적 락을 적용 시켜주는 걸로 알고 있습니다. 근데 강의에서는 @Lock(LockModeType.OPTIMISTIC) 을 이용해서 조회 시점부터 락을 거는 이유가 있을까요? @Lock(LockModeType.OPTIMISTIC) 를 제거하고 동시성 테스트 했을 떄도 정상적으로 돌아가긴 합니다. 어떤 차이가 있을까요
안녕하세요 토비님! 애그리거트를 사용할 때 질문 사항이 있습니다. 예) A도메인 B도메인이 있다 A는 애그리거트 루트이고 B는 A의 부속 엔티티이다.A와 B는 일대다, 다대일의 양방향 의존성을 가진다.B는 A를 통해서만 조작될 수 있다.이 때 B를 생성하거나 업데이트 할 때 B의 repository는 어디에 존재해야 하는가? @Entity public class A { @OneToMany(mappedBy = "media", cascade = CascadeType.ALL, orphanRemoval = true) private List<B> bs = new ArrayList<>(); public void updateNumber(long n){ this.bs.stream().forEach(b -> b.update(n); } } @Entity public class B { @ManyToOne(fetch = FetchType.LAZY) private A a; private long number; public void update(long n){ this.number = n; } } 이렇게 되어 있다고 할 때 변경 가능성을 생각할 때(물론 엔티티에서 이미 jpa에 기술을 사용하고 있긴하지만) B의 repository를 따로 가지는게 맞나요? 만약 따로 가진다면 B의 repository가 A repository에서 의존하여 처리 되어야 하나요? jpa에 완전 종속적으로 사용하면 B가 따로 repository를 가질 필요 없는데 순수함을 유지하지 하려 하니 이 부분에서 고민이 되네요. 아니면 이런 고민 자체가 잘못된걸까요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요 예 [질문 내용] 안녕하세요 자바 래퍼클래스 강의를 듣다가 궁금해서 질문 남깁니다. 래퍼클래스 생성 (=박싱)하고나서 변수를 출력을 해보면 생성자에 주었던 값이 출력되게 되는데요. 래퍼 클래스는 기본형을 객체화 시킨것이라고 알고 있고, 그렇기 때문에 변수에는 객체기 때문에 참조값이 들어가야한다고 알고있는데 왜 참조값이 아닌, 객체에 들어있는 멤머 변수 값이 출력이될까요?ㅠ
19분 21초 null나온 이유가 msg에 값이 초기화 되기 전에 호출해서 null이라고 하셨는데 초기화 여부를 아는 방법이 생성자? 문장이 끝나야 초기화 되는 건가요? 초기화 하려고 하는 구문이 끝나지 않은 상태이면 초기화 되지 않은 상태이다 이렇케 이해해도 되는 부분인가요?
ElectricCar() 이 자식이라 부모를 불러와야한다는건 알겠는데 불러오는 부모가 class Car 을 불러오는건가요, 아님 public Car() 을 불러오는건가요? public Car() 를 불러오는거라 "Car created" 만 출력하는거고 그 밑에 있는 startEngine() 은 부르지않는게 맞는건지 궁금해요
시험 20일전에 수강신청해서 10일만에 이론강의 다듣고 기출문제 풀이 보다가 정말 풀수 있는 문제가 하나도 없어서 다시 이론쪽 보고있습니다.. 이론강의 볼땐 1배속으로 모르는부분은 다시 보면서 이해는 다 됐다고 생각했는데 기출에 응용을 아예 못하고 있습니다.. 2일정도는 pdf암기한다고 가정하면 코드 공부기간은 일주일 남은 시점인데 다시 이론부분을 봐야할꺼요? 이해가 안가도 기출을 봐야할까요?
class Car { String model; int year; Car() { System.out.println("Car constructor"); } void start() { System.out.println(model + " start"); } void stop() { System.out.println(model + " stop"); } } class ElectricCar extends Car { ElectricCar() { System.out.println("ElectricCar constructor"); } void stop() { System.out.println(model + " stop and power down"); } void checkBattery() { System.out.println(model + " check battery"); } } public class Main { public static void main(String[] args) { ElectricCar eCar = new ElectricCar(); eCar.model = "Tesla Model 3"; eCar.year = 2021; eCar.start(); eCar.stop(); eCar.checkBattery(); } } 위 예제는 다른 예제인데요. checkBattery() { System.out.println(model + " check battery"); } } 이 부분은 부모 클래스에 함께 가지고 있지 않은데 이건 다른건가요? 제가 의심하는걸로는 업캐스팅 문제 예시 8번에 나와있는건 public void고, 저 문제에서는 그냥 void인데 pubilc 유무와 관련이 있을까요?