안녕하세요 ! 강의 잘 듣고있습니다. 말씀하신것처럼 Steps 은 작업을 수행하는 가장 작은 단위라고 하셨잖아요 그리고 하나의 Steps 에 모든 로직이 들어가도 되고 아니면 나눠서 넣어도 된다고하셨는데요 하나의 Step 에 모든 로직이 들어가도 된다고 하면 굳이 나눠야 하는 이유가 있을까요 ?
현재 2주간 해결이 되지 않아 시작조차 못하고 있어 질문드립니다ㅠㅠ 에러명 : "Emulator: Pixel 2 API 30 - Emulator terminated with exit code -1073741515" 아래는 제가 이때까지 시도했던 조치 방안들 입니다.. 조치 방안 Path 설정 (사용자명은 블러처리 되어있으나 영문입니다.) - Sdk, avd, flutter Path 설정 - 변수 3가지 추가(구글링 중 해당 내용이 있어 추가해보았습니다..) SDK Tools 설치 - CPU가 AMD Ryzen 5 7500F로 SDK Tools에서 "Android Emulator Hypervisor Driver for AMD Processors (installer)"를 찾아봤으나 없음 Hypervisor 체크박스 - BIOS에서 SVM 모드 활성화(Enabled) - 아래 Windows 기능 켜기/끄기 → Windows 하이퍼바이저 플랫폼, 가상머신 플랫폼(구글링 시, 체크박스 on/off에 대한 말이 달라 체크박스 on/off 둘다 시도 해봄) 이 외에도 Android Studio 재설치, Flutter doctor 확인 후 필요 프로그램 재설치, 환경변수 Path 재설정.. 심지어 포맷까지 하고 모든 파일을 재설치 해보았음에도 해결되지 않고 있습니다.. 혹시 해결방법을 알고 계시다면 조언 부탁드리겠습니다ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 아래의 메서드는 결국 if(closed) 를 검증하기 위한 코드인데 synchronized가 아닌 volatile 키워드로 가시성만 보장해도 동시성 처리를 막을 수 있을 것 같다는 생각에 질문 드립니다! 아직까지 해당 부분이 미흡해서 다시 공부해보겠습니다! public synchronized void close() { if (closed) { return; } closeAll(socket, input, output); // shutdown closed = true; log("연결 종료: " + socket); }
- 학습 관련 질문을 남겨주세요. 질문을 상세히 작성하면 더 좋습니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. section10의 code4/Code10-4에서 보면 코드가 아래와 같이 되는데 package section10.code4 import kotlinx.coroutines.* fun main() = runBlocking<Unit> { val startTime = System.currentTimeMillis() repeat(10) { repeatTime -> launch { Thread.sleep(1000L) // 1초 동안 스레드 블로킹(코루틴의 스레드 점유 유지) println("[${Thread.currentThread().name}] 작업 실행 ") println("[${getElapsedTime(startTime)}] 코루틴${repeatTime} 실행 완료") } } } fun getElapsedTime(startTime: Long): String = "지난 시간: ${System.currentTimeMillis() - startTime}ms" 보통 이런 코드는 이렇게 멀티스레드로 처리하지 않나요..? import java.util.concurrent.Callable import java.util.concurrent.Executors fun main() { val startTime = System.currentTimeMillis() val es = Executors.newFixedThreadPool(10) val callTasks = mutableListOf<Callable<Int>>() repeat(10) { repeatTime -> val callTask = Callable { println("[${Thread.currentThread().name}] 작업 실행 ") return@Callable repeatTime } callTasks.add(callTask) } val results = es.invokeAll(callTasks) // 결과 출력 results.forEach { future -> println("Result: ${future.get()}") } println("[${getElapsedTime(startTime)}] 실행 완료") es.close() } fun getElapsedTime(startTime: Long): String = "지난 시간: ${System.currentTimeMillis() - startTime}ms" 음.. 그리고 스레드 1개를 만들어서 run을 시키면 1MB정도의 메모리 비용이 발생하고 context switch도 일어나지만, 코루틴은 훨씬 더 값싸다고 알고있습니다 추가로 아직 r2dbc처럼 비동기 트랜잭션 처리 등.. 이게 지원이 좀 미약하다고 알고있습니다. 서버의 작업은 대체로 CPU를 사용하는 부분이 그렇게 많이 없고 DB에 쓰고 값을 가져오는 동기화 코드, 순차처리 작업이 많은걸로 알고 있습니다. 그럼 언제 멀티스레드를 사용하는게 좋고, 언제 코루틴을 사용하는게 좋을까요?
안녕하세요. 최근에 배우고 있는 수강생 입니다. 오류에 관한 질문이 있습니다. 강사님의 배우는 대로 코드를 작성했는데 NullReferenceException라는 오류 문자가 나왔습니다. 다시 코드를 작성 했는데 오류문자가 사라지지 않습니다. 어디가 문제인지 모르겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강사님의 강의를 들으며 코드를 작성하던 도중 해결되지 않는 의문이 생겨 질문게시판에 글을 남깁니다. 강의를 보며 샘플데이터 추가를 위한 코드를 작성하고 나서 QuerydslApplication을 실행하면 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'initMember': Invocation of init method failed 이라는 오류코드가 뜨면서 QuerydslApplication실행이 종료 됩니다. 그런데 김영한 강사님이 올려주신 자료의 코드를 넣어서 실행해 보면 QuerydslApplication 실행이 잘 됩니다. 분명 똑같이 만들었는데 왜 이런 차이가 나는걸까요? 코드도 다른점이 없어보이는데 이러한 차이가 생기는 이유가 궁금합니다. 아래는 제가 작성한 코드(수정 전 샘플데이터)와 김영한 강사님의 코드(수정후 샘플데이터)입니다. package study.querydsl; import jakarta.annotation.PostConstruct; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import study.querydsl.entity.Member; import study.querydsl.entity.Team; //샘플데이터 추가 /*수정 전 샘플데이터*/ /*@Profile("local") @Component @RequiredArgsConstructor public class InitMember { private final InitMemberService initMemberService; @PostConstruct public void init() { initMemberService.init(); } @Component static class InitMemberService { @PersistenceContext private EntityManager em; @Transactional private void init() { Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); for (int i = 0; i < 100; i++) { Team selectedTeam = i % 2 == 0 ? teamA :teamB; em.persist(new Member("member" + i, i, selectedTeam)); } } } }*/ /*수정후 샘플데이터*/ @Profile("local") @Component @RequiredArgsConstructor public class InitMember { private final InitMemberService initMemberService; @PostConstruct public void init() { initMemberService.init(); } @Component static class InitMemberService { @PersistenceContext EntityManager em; @Transactional public void init() { Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); for (int i = 0; i < 100; i++) { Team selectedTeam = i % 2 == 0 ? teamA : teamB; em.persist(new Member("member" + i, i, selectedTeam)); } } } }
[질문 내용] @Configuration과 바이트코드 조작의 마법 강의영상에서 8분 19분쯤에 김영한 강사님께서 부모타입으로 조회하면 모든 자식이 끌려 나온다 했는데, 부모타입으로 된 변수명에 자식 인스턴스를 초기화할 때 기능을 호출하면 부모 타입에 없을 때 자식타입에서 못가져오는 것으로 알고있습니다. 상속 관계는 부모 방향으로 찾아 올라갈 수는 있지만 자식 방향으로 찾아 내려갈 수는 없기 때문이죠. 그래서 강사님께서 말한 "부모 타입으로 조회하면 자식들이 다 끌려 나온다"라는 말은 틀린 말 아닌가요?
이전 문제가 해결되지않아 도커 삭제 후 재설치 했는데 이후 도커 앱에서 enable kubernetes 설정이 정상 동작하지 않는 것 같습니다. 401 권한관련 이슈 같습니다. 컨텍스트관련 부분은 삭제 이전에 있던 내용이 남아있는 것 같습니다. --> 해결 방법이 있을까요?
[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
(해결된 문제로 혹시나... 이력을 위해 등록합니다) 저는 몽고db 8.0을 설치하였고 강의 영상과 다르게 arm관련 메시지가 없어서 쭉쭉 설치 모두 진행하고 마지막 실행 시에 에러 메시지가 노출된 경우입니다. Error: Permission denied @ rb_sysopen - /Users/user/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist 요런식으로 권한 문제 메시지였고 관련해서 찾아본 결과 https://parker-park.tistory.com/18 요 블로그?를 참고하여 해결할 수 있었습니다. 저는 유저명이 user 라서 아래와 같이... sudo chown user /Users/ user /Library/LaunchAgents
kubectl cluster-info dump 명령어를 윈도우 도커앱의 터미널에서 입력했을때 아래와 같은 에러가 발생합니다 Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it. --> 해결방법이 있을까요?