안녕하세요. 좋아요가 없는 경우 팩토리 메소드로 좋아요 객체를 생성하고 영속시키는 부분은 이해가 되었습니다. 그런데 비관적 락의 select for update 를 할 때 데이터가 없으면 row 도 없으니까 락이 안잡히지 않나요? row가 존재해야만 락이 생성되는게 아닌지 궁금합니다. 그리고 이 경우 신규 데이터를 생성할때 0으로 초기화 하고 1을 증가시켜 저장할 때 여러 요청이 있게 되면 다시 경쟁 상태에 놓이게 되는게 아닌가요?
안녕하세요 강사님, 강의 정말 잘 듣고 있습니다! 기존에는 항상 커버링 인덱스를 활용하셨었는데, comment_v2 인피니트 스크롤에서는 서브쿼리를 빼고 바로 전체 데이터를 조회하시더라구요. 혹시 특별한 이유가 있을까요? 커버링 인덱스를 일부러 포기한 구조인지, 아니면 path 기반 설계에서는 서브쿼리 자체가 필요 없어졌기 때문인지 궁금합니다.
강의 00:30 경에 List<Child> childList 가 나오는데요, 이거는 엔티티라고 하시고 이후에 값 타입 컬렉션을 코드를 보면 Set<String> favoriteFoods , List<Address> addressHistory 는 값 타입 컬렉션이라고 하시죠. 그런데 아무리봐도 엔티티와 값타입의 차이점이 뭔지 모르겠습니다. 값 타입 컬렉션의 테이블 구조가 위와 같은데 일반 1:N 엔티티 구조에서도 위와 비슷할 것같구요.. 강의 2분 55분 정도부터 언급하시는데 별도의 id 를 넣으면 엔티티라고 하시는데, 그렇다면 엔티티와 값타입의 차이점은 단지 별도의 id 유무인가요? 클래스 관점에서나 테이블 관점에서 둘의 차이점이 궁금합니다. 엔티티는 별도의 pk(id)가 존재하고, 값 타입은 엔티티처럼 별도의 하나의 pk는 존재하지는 않고 그저 여러 필드?컬럼?값들을 묶어서 pk로 구성하는 건가요? 이것이 맞다면 id차이 하나로 엔티티 따로 값 타입 컬렉션 따로 개념이 나뉘고 값 타입 컬렉션에는 별도의 어노태이션을 사용하고 삽입, 삭제, 변경의 방법도 다를 정도인건가요? id차이로 이렇게까지 나눌 이유가 있는건가요?
선생님 안녕하세요 무료강의 들으면서 말도 안 되는 구성에 말도 안 되는 가격으로 또 처음 출시시 할인까지 해주셔서 너무 감사합니다. 이전 풀스텍 강의 바로 결제했고, 다른거 하면서 무료강의부터 듣고 학습중인데 이번에 나온 리액트 강의도 당연 구매해서 학습할 예정인데, 이 전에강의는 수강기간이 무제한으로 나와있던데 지금 리액트 포함 강의는 36개월만 들을수 있는건가요? 물론 몇회독을 할수있는 시간이긴한데, 전에 강의랑 비교해서 이 강의는 수강기간이 무제한이 아니라 문의글 남겨봅니다. 항상 감사합니다.
5번째 계단으로 오는 방법의 수가 8인 이유가 제가 이해한 게 맞는지 궁급합니다. i - 2번째 계단에서는 두 칸 점프 즉 +2가 붙는 경우를 고려한거고 i - 1번째 계단에서는 한 칸 점프 즉 +1이 붙는 경우를 고려한건가요? 5번째 계단을 구할 때 3번째 계단까지 오는 경우의 수는 3이고 이 3개의 경우에 전부 +2가 붙어서 5가 되고 4번째 계단까지 오는 경우의 수는 5인데 이 5개의 경우 전부 +1씩해서 5가 되어서 3 + 5 = 8이 되는 로직이 맞는지 질문드립니다.
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static int cnt = 0; public static void dfs(int sum, int n) { int[] arr = {1, 2}; for (int i = 0; i < arr.length; i++) { sum += arr[i]; if (sum == n) { cnt++; sum -= arr[i]; } else { if (sum < n) dfs(sum, n); sum -= arr[i]; } } } public static void main(String[] args) throws Exception { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(bufferedReader.readLine()); dfs(0, n); System.out.println(cnt); } } dp를 잘 몰라서 자력으로 dfs 방식으로 풀었는데 그닥 좋지 않은 접근일까요...?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 회원, 부서 테이블을 생성하다 고민이 생겨 해당 강의를 다시 복습해봐도 어떻게 하는게 좋을지 모르겠어 질문하게 되었습니다. 먼저 회원테이블은 회원 ID (PK) 부서 ID (FK, 부서테이블PK) , NULL 부서 테이블은 부서 ID (PK) 부서생성자 ID(FK, 회원테이블PK), NOT NULL 로 구성되어 있는 상황입니다. 필드의 개수를 최대한 간략히 나타내었는데, 이러한 상황에서 1. 중간테이블을 만드는게 나을지 ( 이 경우 유저ID, 부서ID, type{소속 or 생성}), 2. 회원테이블의 부서ID와 부서테이블의 회원ID에 각각 ManyToOne을 걸어주는게 나을지 더 좋은 방법을 찾기가 어려워 질문드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] libs폴더로 이동 후 java -jar SpringRecture-0.0.1-SNAPSHOT.jar 실행했을 때 발생하는 오류인데 뭐가 문제인가요?
로그인 성 공시 defaultSuccessUrl 에서는 "/todos" 로 설정하고 successHandler의 CustomLoginSuccessHandler 에서는 "/" 로 되어 있을때 어디로 리다이렉트 되어야하나요? 설명에는 defaultSuccessUrl 가 우선순위라고 하셨는데, 실행해보면 / 로 갑니다.
안녕하세요 강사님 IDE 작업화면을 최대로 해도 글자가 잘 안 보일 수 있는데 작업화면을 화면의 일부로 사용하고 오른쪽에 글을 보여주시면 노트북으로 강의를 보는 입장에서 글자가 작아서 잘 안 보입니다. 다음 강의에는 노트북으로 학습하는 학습자의 입장도 고려 부탁드립니다. 강의는 너무 좋은 내용입니다 ! 쵝오 😀 감사합니다.
태현님! 안녕하세요, 먼저 이런 좋은 강의를 만들어 주셔서 감사드립니다 🙂 다만, 듣다가 또 하나의 질문이 있어서 말씀드리고 싶습니다! 바로 널 아님 단언 관련입니다! 예제 코드에서는 아래와 같이 작성을 해주셨는데요! fun startsWith(str: String?): Boolean { return str!!.startsWith("A") } 이런 경우 str 파라미터가 null이 들어올 가능성이 있지만 해당 코드를 실행할때 null이 절대 아니야라고 명시적으로 표현하기 위하여 !!를 붙여준다고 이해했습니다! 다만, 이런 경우는 굳이 널 아님 단언을 사용하는게 아니라 파라미터의 String?타입을 String으로 두면 어떨까 싶은 생각이 들어서요! 이렇게 된다면 굳이 널 아님 단언을 사용할 필요가 없어 보이는데 다른 곳에서 사용하는 예시가 따로 있는지 궁금하여 질문을 드리게 되었습니다!