묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트하기 어려운 영역 분리에서 질문이 있습니다.
public class GenerateUUIDAndTimestp { public static UUIDAndTimestpDto generateTidAndTimestp() { String uuid = UUID.randomUUID().toString(); // 하이픈 제거 String uuid2 = uuid.replace("-", ""); String epochTime = String.valueOf(System.currentTimeMillis() / 1000); return new UUIDAndTimestpDto(uuid2, epochTime); } } 안녕하세요. 학습 후 테스트를 적용해볼려고 하고 있는데요. 이런 식으로 UUID와 epochTime을 쉽게 사용할려고 유틸리티 클래스와 스태틱 메서드를 만들었습니다. 테스트를 위해 테스트 하기 어려운 부분을 분리하라고 하셨는데요. 해당 부분을 어떻게 테스트 해야할 지 모르겠습니다 ㅜㅜUUID야 인자로 뺄 수 있지만 System은 정적 클래스인데 인자로 빼기 어려운 부분과 쉽고 간편하게 사용할려고 만든 메서드인데 UUID나 System을 계속 인자로 넣어야 하나 하는 부분이 고민이 들게 만듭니다. 강의 잘 듣고 있습니다 감사합니다.
-
미해결ElasticSearch Essential
xlsx 파일 색인 중 CircuitBreakingException 발생
안녕하세요. Elasticsearch Essential 강의 수강 후 실무에서 Elasticsearch를 사용하는 중 질문이 생겨 문의드립니다.Java 17 기반 G1GC 사용 중(Elasticsearch 7.10 버전), Apache Tika를 이용해 각종 확장자 파일에서 텍스트를 추출하여 indexing 합니다.그런데 doc, txt, pdf, ppt, xlsx 파일 중 유독 xlsx 파일 색인(text 타입, fielddata=false)할 때만 CircuitBreakingException이 발생합니다. Full GC 를 강제로 발생시켜도 Heap이 비워지지 않고 하한값을 높이다가 Circuit Breaker 임계치까지 도달합니다.xlsx의 시트 내에 숫자 cell이 많은데 edgengram (min_gram = 1) 토큰화 결과, 너무 많은 역색인 트리 구조가 발생한 것이 원인일까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
랜더링된 HTML 에 대한 질문입니다
안녕하세요! NextJS 에 대한 Flow 설명중 질문이 있습니다 9:01 Timeline유저의 접속요청시 해당 페이지에 대한 내용만 랜더링하여 HTML 을 반환하는 걸까요? 그게 아니고 설명하신 모든 컴포넌트에 대한 렌더링이 이루어지는 것이라면 CSR 방식과 마찬가지로 HTML 반환이 늦어지지 않나 싶습니다또한 사전 렌더링이 NextJS 서버가 부팅시 이루어지는 행위인지 궁금합니다! (서버 부팅시 랜더링된 HTML 이 생성되는지)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 번외편: AWS로 시작하는 서버 운영
파트7의 게임서버를 AWS에 올리는 법 문의 드립니다.
루키스님 안녕하세요?이 강의 활용해서 파트7의 서버를 AWS에 올리는 연습을 해보려고 하는데 잘 안돼서 문의 드립니다. 일단 환경은 아래와 같이 만들었습니다로컬 컴퓨터에서 52.1.1.1로 핑까지는 잘 뚫리는데,게임 서버의 아래 코드가 private IP를 들고 있는 상태로 서버가 구동이 되는 것을 확인하였습니다.// 서버 Program.cs string host = Dns.GetHostName(); IPHostEntry ipHost = Dns.GetHostEntry(host); // ipHost.AddressList는 총 두개의 IP를 가지고 있음 // 1번은 Ipv6 16진수 Ip // 2번은 Ipv4 172.1.1.1 IPAddress ipAddr = ipHost.AddressList[0]; IPEndPoint endPoint = new IPEndPoint(ipAddr, 7777); 첫 번째 시도는 ipHost.AddressList[1];로 바꿔보았는데 클라이언트 접속이 안됐습니다.// private IPv4인 172.1.1.1로 리스닝.. => 클라이언트가 못 찾음 IPAddress ipAddr = ipHost.AddressList[1]; 두 번째 시도는 ipAddr를 public IP로 하드코딩 하는거였는데 없는 Ip라면서 크래쉬 나는 것을 확인했습니다.// 서버가 52.1.1.1 못 찾겠다고 크래쉬 string ipAddressString = "52.1.1.1"; IPAddress ipAddress = IPAddress.Parse(ipAddressString); IPEndPoint endPoint = new IPEndPoint(ipAddress, 7777); 그래서 좀 찾아보니까 아래처럼 하니까 이건 또 접속이 되는 것을 확인했습니다.// 서버<--> 클라이언트 접속 성공 // 0.0.0.0으로 리스닝 되고 크래쉬도 안남 IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, port); 그러면 드리고 싶은 질문이제가 성공했던 IPAddress.Any 방식으로 리스닝 해도 괜찮을까요?(AWS로 뭔가 서비스하는 수준으로 하고 싶다고 하면)IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, port); 강의에서 쓰셨던 아래 코드 방식을 유지할 할 수 있는 방식이 있을까요?제가 public IP/private IP 사용 간에 놓친 부분이 있는지 궁금합니다. IPAddress ipAddr = ipHost.AddressList[0]; // 또는 IPAddress ipAddr = ipHost.AddressList[1]; // 또는 string ipAddressString = "52.1.1.1"; IPEndPoint endPoint = new IPEndPoint(ipAddr, 7777);
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
useState
TypeError: Cannot read properties of null (reading 'useState') 현재 27강 듣고있는데 저런에러가 나오네요.. 어떤게 문제인가요ㅜㅜ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring sync connection reset
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) Spring 환경설정 질문 입니다.2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네, 기존 Q&A에 없는 것 같습니다.3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]안녕하세요. 초보 spring 입문자 입니다.강의 1. 프로젝트 환경설정 단계 질문입니다.강사님께서 말씀하신 스프링부트 스타터 사이트로 부터 해당 hello-spring 프로젝트 생성을 했습니다.이후 Intellij에서 project로 열면 spring library를 받아와야 할텐데 받질 못하고 있습니다. load Gradle project 를 누르면 hello-project:failed > Connection reset 알람이 뜨네요. 참고로 회사 사무실 PC 환경에서 발생하는 이슈이고,자택에서 사용시에는 잘 됩니다. 회사 방화벽 문제 일까요 ? 감사합니다.
-
미해결비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)
파라미터에 있는 값이 아닌 외부에 있는 값을 캐시 key에 넣을 수 있나요?
파라미터에 있는 값이 아닌 외부에 있는 값을 캐시 key에 넣을 수 있나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Spring boot로만 강의를 진행 하나요, 혹은 Spring 으로도 진행 하는걸까요?
안녕하세요~ 갑자기 궁금함이 생겨 질문 드립니다~영한님이 진행 해주시는 강의는 대부분 Spring boot로 진행 되는것으로 아는데, Spring으로 진행 하는 강의 가있나요?답변부탁드립니다.감사합니다.
-
미해결디지털포렌식전문가 2급 필기 핵심 요약집[전자책]
요약집 구입
오늘자 구매했습니다. 질문이 있어서요. 밑에 읽어보니 요약집 새로 수정해서 최신판(갱신) 올려주시나요??혹시 실기도 가르치시나요..?아울러 실기 무료 기초 강의도 듣겠습니다 감사합니다
-
미해결
intelliJ에서 프로젝트를 무한로딩하는 문제 (+generated 폴더 자동 생성)
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다 해봤는데 여전히 무한로딩합니다. ㅠㅠ어떻게 하면 좋을까요 ㅠㅠ
-
미해결처음 시작하는 도커와 컨테이너
Bind Mount에서 마운트가 되지 않습니다. (파일/경로 동일)
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.4a6223fce61285c77f71be99f448e28b4cdba768662030e240db12c6c3d827b55docker: 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
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker-compose 가 Docker Desktop 에서 빠진건가요? command not found 라고 뜨네요
m1 pro 사용 중이고 docker desktop 설치되어 있습니다. 찾아보니 docker desktop 설치 시 docker compose 도 같이 설치된다고 하던데.. 커맨드 자체가 없는거보니 뭔가 바뀐것 같네요. 아래처럼 수동으로 설치도 잘 안돼서 진행을 못하고 있습니다..
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
anconda 에서 LightGBM 3.3.2 이 Setup 후 OpenMP 라이브러리에 의존하는데, 해당 라이브러리가 MacOS에 설치되지 않았기 때문에 발생하는 문제
안녕하세요 강사님 강의 모두 결제해서 듣고 있는 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 lightgbmpip 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 + React Query로 SNS 서비스 만들기
로그인이 안 됩니다.
▲ 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 여기로 넘어는 가는데 로그인이 안 됩니다.깃허브에서 코드 잘 가져왔고, 회원가입도 잘 되는데 로그인만 안 됩니다. 뭐가 문제일까요 ㅠㅠ
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
this에 대해 질문 있습니다.
객체를 생성하는 순간 힙 영역에 객체가 저장(필드값)된다고 알고 있습니다. 메서드를 호출하기 위해서는 우선 객체를 생성한 후에 메서드를 호출해야 한다고 생각합니다. 궁금한 부분은 언제 메서드 프레임의 this에 값이 저장 되는지 궁금합니다. 메서드 호출 할때 힙 영역에 저장되어 있는 객체의 주소값이 this로 저장이 되는건가요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
브루트 포스 BOJ 1182번에 관한 질문이 있습니다!
풀이 1번 (기본)에서 대부분의 코드를 이해했습니다.그런데# 인덱스가 lev인 원소 선택 Xsearch(lev + 1)에서 잘 이해가 되지 않습니다.혹시 lev이 0일 경우인가요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
ArgoCD와 docker hub 연동에 관해서 질문 있습니다.
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (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 이름으로 바꾼 것 밖에 없는데요.. 혹시 제가 놓친 것이 있을까요?
-
해결됨Flutter 앱 개발 실전
late final 속성
part 'theme_color.dart'; part 'theme_deco.dart'; part 'theme_typo.dart'; abstract class ThemeCore{ late final Brightness theme; late final ThemeColor color; late final ThemeDeco deco; late final ThemeTypo typo; }코드를 복사해서 클래스 이름만 바꿔서 붙여 넣었습니다import 'package:custom_house/theme/foundation/theme_core.dart'; import 'package:custom_house/theme/res/base_typo.dart'; import 'package:custom_house/theme/res/palette.dart'; import 'package:flutter/material.dart'; class LightTheme implements ThemeCore { @override Brightness brightness = Brightness.light; @override ThemeColor color = ThemeColor( surface: Palette.grey100, background: Palette.black.withOpacity(0.55), text: Palette.black, subtext: Palette.grey700, toastContainer: Palette.black.withOpacity(0.85), onToastContainer: Palette.grey100, hint: Palette.grey300, hintContainer: Palette.grey150, onHintContainer: Palette.grey500, inactive: Palette.grey400, inactiveContainer: Palette.grey250, onInactiveContainer: Palette.white, primary: Palette.green, onPrimary: Palette.white, secondary: Palette.red, onSecondary: Palette.white, tertiary: Palette.yellow, onTertiary: Palette.white, ); @override late ThemeTypo typo = ThemeTypo( typo: const NotoSans(), fontColor: color.text, ); @override ThemeDeco deco = ThemeDeco( shadow: [ BoxShadow( color: Palette.black.withOpacity(0.1), blurRadius: 35, ), ], ); }이렇구요 기존 아래와 같은 코드에서 @override Brightness brightness = Brightness.light;다음과 같이 바꿔봤는데 @override late final Brightness brightness = Brightness.light;에러가 나는데 이해가 되지 않습니다. 어차피 나중에 초기화를 해도 되니까 late를 붙인거고 , 밝다라는 속성은 바꾸지 않을 거니까 final 키워드까지 썼는데 에러가 나는 이유를 모르겠습니다. implements로 구현하니까 이런 현상이 생기네요..