intelliJ에서 프로젝트가 무한로딩됩니다. 그리고 generated폴더도 src/main/하위에 계속 생성이 되네요. 이전에는 없던 현상이었습니다. 맥을 완전 초기화하고 java 다시 깔고 인텔리제이도 새로 깐 건데도 그래요. 코드도 이 코드 저 코드 다 똑같습니다. 예전에 잘 되던 코드도 마찬가지로 무한로딩하네요. ㅠㅠ 아래 방법들을 시도해봤습니다. jdk 버전과 인텔리제이 버전 맞추기 (Temurin 21) 커맨드 + 쉬프트 + a 누른 후 registry로 검색 -> awt.file.dialog.enable.filter 체크 해제 후 리붓 Settings -> Build, Exe... -> Build and run using을 Gradle이 아닌 IntelliJ 로 바꿔보기. 반대로도 바꿔보기. Run tests using도 마찬가지. Gradle JVM 버전 맞춰주기 (Temurin 21) Repair IDE, Invalidate Caches 다 해봤는데 여전히 무한로딩합니다. ㅠㅠ 어떻게 하면 좋을까요 ㅠㅠ
1. 무엇을 하고 싶으신가요? 강좌 bind mount에서 로컬과 도커 컨테이너간의 파일 또는 경로를 공유 (/usr/local/apache2/htdocs/) 를 하고자 하는데 계속 연결이 되지 않습니다. 2. 언제, 어떤 오류가 발생하시나요? [doyoung@dockers-m:/test]$ sudo docker run --rm --name httpd -p 8080:80 \ > -v "$(pwd)"/index.html:/usr/local/apache2/htdocs/index.html:rw \ > -d httpd:2.4 a6223fce61285c77f71be99f448e28b4cdba768662030e240db12c6c3d827b55 docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/test/index.html" to rootfs at "/usr/local/apache2/htdocs/index.html": mount /test/index.html:/usr/local/apache2/htdocs/index.html (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type. [doyoung@dockers-m:/test]$ 3. 어떤 시도를 해보셨나요? 로컬 index.html의 권한 변경 chmod 777 index.html 파일 경로 변경 /home/doyoung/~~~/~ --> /test/ 4. 작성한 코드를 공유해주세요. sudo docker run --rm --name httpd -p 8080:80 \ -v "$(pwd)"/index.html:/usr/local/apache2/htdocs/index.html:rw \ -d httpd:2.4
m1 pro 사용 중이고 docker desktop 설치되어 있습니다. 찾아보니 docker desktop 설치 시 docker compose 도 같이 설치된다고 하던데.. 커맨드 자체가 없는거보니 뭔가 바뀐것 같네요. 아래처럼 수동으로 설치도 잘 안돼서 진행을 못하고 있습니다..
안녕하세요 강사님 강의 모두 결제해서 듣고 있는 13년차 직장인 겸 학생입니다. MAC OS 아나콘다 환경에서 현재 4.4.5가 기본으로 깔리는데 처음문제는 early_stopping_rounds=50 였습니다. 그래서 3.3.2로 버전을 맞춰서 import lightgbm 하는데 문제가 생겨서 몇시간동안 헤매대가 결국 해결책을 찾아서 공유합니다. 1. . MacOS에서 OpenMP를 설치하고 LightGBM이 이를 참조할 수 있도록 설정해야 합니다. 1. Homebrew 설치 먼저 Homebrew가 설치되어 있는지 확인하세요. Homebrew는 Mac에서 패키지를 관리하는 도구입니다. Homebrew가 설치되지 않았다면, 아래 명령어로 설치할 수 있습니다 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh )" 2. libomp 설치 libomp 는 OpenMP 라이브러리입니다. Homebrew를 통해 쉽게 설치할 수 있습니다. brew install libomp 이 명령어는 libomp 를 설치하여, LightGBM이 OpenMP에 접근할 수 있게 만듭니다. 3. Anaconda 환경에서 환경 변수 설정 설치된 libomp 경로를 Anaconda 환경에서 참조하도록 설정해야 합니다. ~/.bash_profile 또는 ~/.zshrc 파일에 다음을 추가하세요. export PATH="/usr/local/opt/libomp/bin:$PATH" export LDFLAGS="-L/usr/local/opt/libomp/lib" export CPPFLAGS="-I/usr/local/opt/libomp/include" **팁Homebrew를 통해 설치된 libomp 의 경로를 확인하려면 다음 명령어를 터미널에 입력하세요: brew --prefix libomp 그 후 터미널에서 다음 명령어를 실행해 환경 변수를 적용하세요: source ~/.bash_profile # 또는 ~/.zshrc 4. LightGBM 재설치 pip uninstall lightgbm pip install lightgbm==3.3.2 ~ 끝 ~ 강사님 항상 업데이트 잘해주셔서 저도 도움이 되고자 올립니다.
제가 기존에 개발해둔 아이템 시스템을 연동시키면서 아이템의 스텟을 정할때 Resources/Stat폴더를 참조하고 그걸 기반으로 Enum으로 해당 스텟들이 있는 스크립트 파일을 만든 다음에 아래에 있는 버튼을 눌러서 일일히 Enum 파일을 동기화시켰는데 너무 번거로운것 같습니다. 생성, 삭제, 수정할때마다 동기화시키면 작업할때마다 딜레이가 너무 커지는데 다른 방법이 있을까요 if (dataType == typeof(Stat)) { GUI.color = Color.yellow; // Data를 이름 순으로 정렬하는 Button을 그림 if (GUILayout.Button($"Press it after you finish editing")) { StatEnumSynchronizer.SyncStatEnum(); EditorUtility.SetDirty(database); AssetDatabase.SaveAssets(); } } 아래는 해당 enum파일을 만드는 스크립트입니다. using System; using System.IO; using System.Linq; using UnityEditor; using UnityEngine; public static class StatEnumSynchronizer { private const string StatFolderPath = "Assets/Resources/Stat"; [MenuItem("Tools/Sync Stat Enum")] public static void SyncStatEnum() { if (!Directory.Exists(StatFolderPath)) { Debug.LogError($"Directory does not exist: {StatFolderPath}"); return; } var statFiles = Directory.GetFiles(StatFolderPath, "*.asset", SearchOption.TopDirectoryOnly); var statCodeNames = statFiles .Select(file => AssetDatabase.LoadAssetAtPath<Stat>(file)) .Where(stat => stat != null) .Select(stat => stat.CodeName) .Distinct() .OrderBy(name => name) .ToList(); string enumPath = "Assets/Scripts/Enum/ItemStatusAttribute.cs"; using (var writer = new StreamWriter(enumPath, false)) { writer.WriteLine("public enum ItemStatusAttribute"); writer.WriteLine("{"); writer.WriteLine(" Default,"); foreach (var codeName in statCodeNames) { string enumName = SanitizeEnumName(codeName); writer.WriteLine($" {enumName},"); } writer.WriteLine("}"); } AssetDatabase.Refresh(); Debug.Log("Stat Enum synchronized."); } private static string SanitizeEnumName(string name) { return new string(name .Where(c => !char.IsWhiteSpace(c) && (char.IsLetterOrDigit(c) || c == '_')) .ToArray()) .Replace(" ", "_") .Replace("-", "_") .ToUpper(); } }
메서드 프레임은 메서드 영역에 있는 메서드 코드를 기반으로 생성되나요? 객체 생성과 메서드 호출에 대한 메모리 관점 흐름을 정리 해봤는데 맞게 정리한건지 궁금합니다. "객체 생성시 힙 영역에 객체 저장 -> 메서드 호출시 메서드 영역에 있는 호출한 메서드 코드를 찾음 -> 찾은 메서드 코드로 스택 영역에 메서드 프레임을 생성함" 힙 영역에서 메서드 영역에 있는 본인의 메서드 코드를 어떻게 찾는지 궁금합니다.
▲ Next.js 14.2.8 - Local: http://localhost:3000 - Environments: .env ✓ Starting... ✓ Ready in 4.2s ○ Compiling / ... ✓ Compiled / in 3.5s (1022 modules) GET / 200 in 4384ms GET / 200 in 81ms ✓ Compiled /api/auth/[...nextauth] in 364ms (493 modules) GET /api/auth/session 200 in 2386ms ○ Compiling /login ... ✓ Compiled /login in 1020ms (1035 modules) GET /api/auth/session 200 in 1561ms GET /login?_rsc=1pqm1 200 in 126ms ○ Compiling /(.)i/flow/login ... ✓ Compiled /(.)i/flow/login in 731ms (1050 modules) GET /api/auth/providers 200 in 44ms GET /api/auth/csrf 200 in 19ms [auth][error] CallbackRouteError: Read more at https://errors.authjs.dev#callbackrouteerror [auth][cause]: TypeError: Failed to parse URL from undefined/api/login at node:internal/deps/undici/undici:13178:13 [auth][details]: { "code": "ERR_INVALID_URL", "input": "undefined/api/login", "provider": "credentials" } POST /api/auth/callback/credentials? 200 in 40ms GET /api/auth/session 200 in 26ms 윈도우 인데 memurai설치가 도저히 안 되어서 그냥 redis 설치했습니다. 백엔드 코드 실행시키면 redis connected라고도 뜨고, service에도 실행중도 뜨고, hello world도 잘 뜹니다. REDIS_URL=redis://127.0.0.1:6379 //백엔드 env NEXT_PUBLIC_BASE_URL=http://localhost:3000 //z-com 에 있는 .env 이거로도 고쳐봤습니다. localhost:3000/login 여기로 넘어는 가는데 로그인이 안 됩니다. 깃허브에서 코드 잘 가져왔고, 회원가입도 잘 되는데 로그인만 안 됩니다. 뭐가 문제일까요 ㅠㅠ
객체를 생성하는 순간 힙 영역에 객체가 저장(필드값)된다고 알고 있습니다. 메서드를 호출하기 위해서는 우선 객체를 생성한 후에 메서드를 호출해야 한다고 생각합니다. 궁금한 부분은 언제 메서드 프레임의 this에 값이 저장 되는지 궁금합니다. 메서드 호출 할때 힙 영역에 저장되어 있는 객체의 주소값이 this로 저장이 되는건가요?
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다) 영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다) 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com) 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요! cafe: https://cafe.naver.com/kubeops ((해결했습니다)) 안녕하세요. 강의 열심히 듣고 있습니다. ArgoCD와 docker hub를 연동하는 부분이 잘 진행되지않아 질문드립니다. 현재 2232 실습을 따라하고 있는데요 argo cd와 docker hub 연동하는 부분이 잘 진행되지않는데 원인을 정확히 모르겠어서 질문드립니다. 우선 git repository를 api-tester 소스 부분을 제외하고 모두 제 git으로 fork해서 진행하였습니다. 현재 docker image가 push되는 것 까지는 확인했는데요, argoCD가 변경을 감지하고 받아오는 부분이 안되는 것 같습니다. 제가 이해한바로는 argocd와 docker hub가 연동될 때 필요한 인증 정보는 아래 설정에서 주입되는 것으로 알고 있습니다. 해당 부분은 아래 설정으로 인해 jenkins credential에서 주입받는 것으로 이해하였구요.. jenkins에서 파이프라인을 돌렸을 때, 이미지 push가 정상적으로 진행됐다는 의미니깐 jenkins의 credential에는 문제가 없다고 판단됩니다. 결론적으로 argocd가 감지를 못하는 것 같다는 생각이 듭니다. argocd와 dockerhub 연동 관련해서 제가 직접 설정한 부분은 annotation을 제 docker hub 이름으로 바꾼 것 밖에 없는데요.. 혹시 제가 놓친 것이 있을까요?
Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
안녕하세요 강사님. 오늘 Backpressure Example 코드 강의 수강 후 Backpressure Drop 전략 에 대해 궁금했던 부분은 다른 분의 질문을 통해서 해결을 할 수 있었습니다. ( 질문 글 Link ) 해당 글에서 강사님의 답변을 보면 Drop 전략의 경우, 버퍼 안의 데이터가 Subscriber에게 한개 전달되면, 버퍼 공간이 한개 비니까 한개의 데이터가 채워지는것이 아니라 전체 버퍼 중에 70-80 퍼센트 정도(정확한 비율은 나중에 확인 후 말씀드릴게요)가 한번에 비워진다고 보시면 될것 같습니다. 즉, 데이터 한개가 버퍼에서 비워지는 것이 아니라 버퍼가 가득찬 상태에서 Downstream이 데이터를 처리할 수 있는 상태가 될 때까지 Upstream에서 emit된 데이터는 Drop이 된다고 생각하시면 될것 같습니다. 이런 부분이 있는데 혹시 어떤 파일의 어떤 메서드를 보면 해당 내용을 알 수 있을까요 ? ※제가 혼자서 디버그를 통해서 찾아보려고 했는데 잘 찾아지지가 않아서 여쭤봅니다. 😢
자바 실행 시 main 스레드가 생성되고 실행이 되다가 중간에 아래와 같이 스레드를 하나 생성한다고 하겠습니다. MyRunnable runnable = new MyRunnable(); Thread thread = new Thread(runnable); thread.start(); 이럴 경우 생성한 스레드가 종료 상태가 될때 까지 main 스레드가 기다리는지 아니면 main 스레드는 생성한 스레드의 상태와 아무 관련없이 종료 상태가 되는지 궁금합니다.
그 전 강의에서 헤더파일을 중복으로 불러오면 에러가 난다고 배웠습니다. 하지만 이번 강의대로 분할 컴파일 하게 되면 헤더파일 stock.h와 main 함수에서 <iostream>을 두 번 포함하게 되는데 <iostream>은 사용자가 만든 헤더파일이 아니라서 중복으로 include해도 상관이 없는 것일까요?
"enum, keyof, typeof" 강의 2분 20초경 enum이 javascript로 transpiling될 때 사라진다하셨는데요. 이렇게 된다면 enum 사용한 코드들은 런타임에서 모두 에러가 발생해야하는것 아닌가요? enum의 경우 자바스크립트 코드로 transpiling 될 때 객체로 변환되는게 아닌가해서 질문드립니다.
it('최소 가격 또는 최대 가격을 수정하면 setMinPrice과 setMaxPrice 액션이 호출된다.', async () => { const { user } = await render(<ProductFilter />); const minPriceInput = screen.getByPlaceholderText('최소 금액'); const maxPriceInput = screen.getByPlaceholderText('최대 금액'); await user.type(minPriceInput, '10'); await user.type(maxPriceInput, '10000'); expect(setMinPriceFn).toHaveBeenCalledWith('10'); expect(setMaxPriceFn).toHaveBeenCalledWith('10000'); }); 전 이런식으로 작성했습니다. 단위 테스트에서 알려주신 AAA패턴을 해당 통합테스트에서도 적용하면 깔끔할 것 같아서 이렇게 작성했어요. 어차피 검증할건 setMaxPriceFn & setMinPriceFn이 호출됐는지 여부라 최소금액 및 최대금액 인풋을 연속적으로 조작하게 했습니다. 혹시 이렇게 하면 문제가 있는지 궁금합니다
15:25 예시 세번째 질문입니다. 문자열의 길이 계산에서 length는 0으로 선언되었는데 str[length]는 위에있는 Hello, World! 문자의 길이에 맞춰서 length 값을 1씩 증가하되 시작점이 0이라는 걸까요? 널값을 어떻게 만난다는건지 잘 이해가 안가서요. 문자열 길이계산부분만 다시 설명 부탁드립니다.