29:27 삼항 연산자 한 줄로 되어있는 부분 해석해주실 때, if level % 2 != 0: 위 부분이 이해가 안됩니다. if node else 0 이 부분은 "if 부분이 참이면 return을 하고"라고 해석을 해주셨는데요 왜 if level % 2 != 0: 이 부분 해석해주실 때에는 != 같지 않다라고 해석을 해주시는지 궁금합니다.
안녕하세요! 강의 잘 듣고 있습니다. 좋은 강의 감사합니다. 실습하다가 오류가 생겨 문의 드립니다. void like(Long articleId, Long userId, String lockType) { restClient.post() .uri("/v1/article-likes/articles/{articleId}/users/{userId}/" + lockType, articleId, userId) .retrieve(); } @Test void likePerformanceTest() throws InterruptedException { ExecutorService executorService = Executors.newFixedThreadPool(100); // 100개의 스레드 풀 생성 // 각 lock type별로 테스트 likePerformanceTest(executorService, 1111L, "pessimistic-lock-1"); likePerformanceTest(executorService, 2222L, "pessimistic-lock-2"); likePerformanceTest(executorService, 3333L, "optimistic-lock"); } void likePerformanceTest(ExecutorService executorService, Long articleId, String lockType) throws InterruptedException { CountDownLatch latch = new CountDownLatch(3000); System.out.println(lockType = " start"); like(articleId, 1L, lockType); long start = System.nanoTime(); for (int i = 0; i < 3000; i++) { long userId = i + 2; // String finalLockType = lockType; executorService.submit(() -> { like(articleId, userId, lockType); latch.countDown(); }); } latch.await(); long end = System.nanoTime(); System.out.println("lockType = " + lockType + ", time = " + (end - start) / 1_000_000 + " ms"); System.out.println(lockType + " end"); Long count = restClient.get() .uri("/v1/article-likes/articles/{articleId}/count", articleId) .retrieve() .body(Long.class); System.out.println("count = " + count); } 여기서 '람다 식에 사용되는 변수는 final 또는 유사 final이어야 합니다' 라는 오류가 뜨더라고요. // String finalLockType = lockType; 부분 주석 해제하고 람다 내부에 like(articleId, userId, finalLockType); 으로 하면 start lockType = start, time = 914 ms start end count = 0 start lockType = start, time = 589 ms start end count = 0 start lockType = start, time = 567 ms start end count = 0 으로 출력도 잘 안 나옵니다. 애플리케이션 콘솔에는 아래 로고만 찍히고 나머지는 안 나옵니다. Hibernate: select alc1_0.article_id,alc1_ 0.like _count,alc1_0.version from article_like_count alc1_0 where alc1_0.article_id=? Hibernate: select alc1_0.article_id,alc1_ 0.like _count,alc1_0.version from article_like_count alc1_0 where alc1_0.article_id=? Hibernate: select alc1_0.article_id,alc1_ 0.like _count,alc1_0.version from article_like_count alc1_0 where alc1_0.article_id=? 어느 부분이 문제일까요? ArticleLikeController에서 count 경로는 테스트처럼 뒤에 /count 추가했습니다.
arr+1의 값이 22가 나오는 이유가 arr의 배열은 4번까지 진행됐을때 {21, 31, 40, 50, 60}이고, 1번, 3번, 4번까지는 ptr의 포인터 변수의 값을 물어보는 의미이기 때문에 5번의 *arr+1은 arr배열의 초기값인 21에서 1을 더한것을 출력하기 때문에 22가 맞는건가요?
반복문과 range 강의 챕터 4:51 for i in range(3): j=0 while j<3: print("*", end=" ") j+=1 print() 위 구문에 대해서 range 의미를 잘 모르겠습니다. range(3)이니까 0~2까지 해서 3개가 된다는 것은 이해가 됐고, 개행이 2번 되어 행이 3개가 된다는 것은 이해가 됐습니다. 하지만 왜 각 행마다 개수가 range의 어떤 역할 때문에 *이 3개씩 있는지 이해가 되지 않습니다.
안녕하세요. 직전 강의인 구조체 강의에서 구조체 선언 방법에 대해 알려주셨는데, 거기서는 typedef 없이도 구조체 선언, 멤버 선언, 구조체 변수 선언을 한번에 다 할 수 있다고 하셨습니다.(구조체 강의 약 1:20) 예1: struct{ int year; float price; }Bag1; 그런데 이번 강의에서는 typedef 없이 struct만 쓰는 경우에는 타입으로 사용할 수 없다고 설명해 주셨습니다. 이 부분이 잘 이해되지 않는데요. 예2: typedef struct Bag{ int year; float price; }Bag1; 위에 예1과 예2의 차이점이 뭔가요? 예2는 struct Bag 자료형(타입)의 변수인 Bag1을 선언하는 것이라고 확실하게 이해했는데, 예시1번도 동일한가요?
안녕하세요. 동시성 검증 코드 관련하여 궁금한 점이 있어 문의드립니다. 강의에서 ExecutorService 를 사용하여 동시성 검증을 수행하신 것으로 보았는데, 이 방식만으로 실제 동시성 문제를 충분히 검증할 수 있을지 궁금합니다. 컨텍스트 스위칭 타이밍에 따라 경합이 발생하지 않을 가능성도 있을 것 같습니다. 예전에 면접에서 비슷한 질문을 받았는데, ExecutorService 기반 테스트만으로는 실제 운영 환경(수십만 건의 요청)에서 발생할 수 있는 동시성 이슈를 완전히 검증하기 어렵다는 지적을 받은 적이 있습니다. 혹시 이러한 한계를 보완할 수 있는 다른 검증 방법이나 접근 방식이 있을까요?
안녕하세요. 이번에 처음으로 3회차 11월 8일 시험을 준비하는 비전공자 학생입니다. 현재 지금 파이썬까지 섹션 5 강의까지 수강을 진행 완료한 상황입니다. 2주도 안남은 빠듯한 기간에 [한주는 4시간 공부, 막주는 계속 공부 전념] 합격을 최선을 다해서 해야하는 상황인데 아직 이론 공부도 시작을 못한 상황이여서 남은 기간안에 남은 섹션들의 강의를 수강해서 기출문제를 풀어야 하는지가 궁금한 상황입니다. 각각 남은 기간에 실기 준비와 이론 준비를 어떻게 준비를 하면 좋을지를 조언을 주시면 정말 감사하겠습니다.
강의 잘 보고 있습니다! 좋은 강의 만들어 주셔서 감사해요 강의 보다가 그냥 좀 어색한 부분이 있는거 같아서 공유드립니다~ 65. Supabase로 공지사항 다이얼로그 띄우기 (2) 수업중 아래 파일의 코드에서 하나 확인 부탁드립니다. lib/widget/announcement_dialog.dart 3번의 prefs.setStringList 가 2번의 if 문 안으로 들어가는게 맞을거 같아요. static Future<void> _setViewed(int announcementId) async { final prefs = await SharedPreferences.getInstance(); // 1. 기존의 공지사항 아이디를 가져온다. final viewedIds = prefs.getStringList(_viewedAnnouncementsKey) ?? []; // 2. 가져온 아이디에 포함여부 확인. if (!viewedIds.contains(announcementId.toString())) { viewedIds.add(announcementId.toString()); } // 3. 포함되어 있지 않다면 새로 추가한다. await prefs.setStringList(_viewedAnnouncementsKey, viewedIds); }
안녕하세요. char myString[]="Hello, World!"; 인 경우 printf("문자열\"%s\"의 길이는 %d입니다.\n", myString, strLen(myString)); 의 출력 결과 관련하여 문의드립니다. (strLen(myString) 값은 13임) 출력 결과값을 문자열 "Hello, World!"의 길이는 13입니다. 로 적어주셨는데, 명령어 내의 \" \" 이건 왜 생략되나요? 문자열 \"Hello, World!\"의 길이는 13입니다. 이렇게 출력돼야 하는거 아닌가요?
페이지 이동 뿐만 아니라 데이터 주고받는거랑 스크롤 이벤트 감지하는거, 스택, 스낵바 등등 현업에서 필요한 유용한 내용 많이 알려주셔서 정말 도움 되는 강의였습니다! 따라하면서 듣느라 1시간짜리 강의를 거의 4시간 넘게 들었네요 ㅎㅎㅎ 그만큼 알차고 유익했습니다!! 진짜 바이브 코딩 말고 이렇게 공식문서 보면서 제대로 이해하고 코딩하고 싶었는데 정말 도움됐습니다!! GPT 도움받았던 코드 다 갈아엎으러 가야겠습니다 ㅎㅎ 감사합니다!!
업캐스팅(부묘 형태, 자식 생성자) 강의 챕터 업캐스팅 관련하여 단순히 출력 부분만 본다면 부모 형태 = new 자식(업캐스팅 O) 자식 형태 = new 자식(업캐스팅 X) 출력 구하는 부분에 있어서는 1번 이든 2번 이든 둘 다 new 자식에 해당하는 클래스로 이동해서 출력 값을 구하는게 아닌가 싶은데 1, 2번 차이가 저렇게 저는 인식하고 있어서 해당 내용이 맞는지와 뭐가 다른지 문의드립니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
null 연산자 표기에 관해 의문사항이 생겼습니다. U&I 에서는 iconButton에 정의에 아래와 같이 적혀 있어 VoidCallback 뒤에 null 연산자를 표기하는 것으로 이해했습니다. required void Function()? onPressed, ElevatedButton 역시 위와 같이 정의되어 있지만 이번 강의에서는 표기가 안되있어서 기존에 작성했던 U&I 코드로 가 null 연산자를 제거해보니 정상적으로 동작하는 것을 확인했습니다. null 연산자 관련 에러 로그가 없다면 표시를 생략해도 되는 것인지, 아니면 이와 상관없이 위젯 정의에 명시된대로 표기하는것이 권장사항인지 의문이 들어 질문드립니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Section19 String 스플릿하기 중 강의 중간에 작성하신 (6분 23~26초 경) .toList()가 코드 포메터에 의해 사라진 것처럼 보입니다. 해당 toList()가 사라진 것은 iterable에도 map을 사용할 수 있어서 굳이 toList()로 바꿔줄 필요가 없기 때문일까요? 아니면 다른 이유가 있을까요?
Java: 상속을 정리하는 문제 10개 22:59 자식 기본 생성자에 대한 출력을 하여야 하는 경우에, 부모 기본 생성자 출력 값을 먼저 출력하고 난 뒤에 자식 기본 생성자 출력을 하는 것으로 알고 있는데 맞나요? 맞다면 자식 기본 생성자는 있고 부모 기본 생성자는 없고 파라미터를 가진 생성자가 있는 상황에서 자식 기본 생성자를 호출하여야 하는 경우면 무조건 이 상황에서는 에러인가요?
Java: 상속을 정리하는 문제 10개 21:38 자식 클래스에는 자식 기본 생성자가 있지만 부모 클래스에는 부모 기본 생성자가 없을 경우, 부모 클래스에 있는 super(매개변수)로 표현하면 정상 실행이 된다고 하는데 자식 클래스에 기본 생성자가 있으면 부모 클래스에도 기본 생성자가 있어야만 정상 실행이 되는게 아닌건가 싶어서요
안녕하세요 🙂 실무에서 만약 Spring과 Kotlin으로 프로젝트를 진행 했을 때 Spock로 테스트 코드를 짜도 상관이 없을까요? 이번에 Kotlin으로 프로젝트를 진행해야하는 일이 생겼는데, 저 또한 강의에서 사용하신 Spock가 익숙해서 사용을 하려고 했는데, 보통 Kotest를 많이 사용하는 것 같아서요. 실무 관점에서 Java 대신 Kotlin을 사용한다면, 어떤 테스트 프레임워크를 선택하는것이 좋을지 궁금해서 질문드립니다. 감사합니다.