inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

23년 3회 쿼리문제 질문입니다!

해결됨

(2027 대비!) 일주일만에 합격하는 정보처리기사 실기

12:43에서 나온 쿼리 문제의 답 4, 3, 1을 꼭 세로로 나열해야 되나요?

  • 정보처리기사
  • sql
콜드 댓글 1 좋아요 0 조회수 154

CertificationServiceTest에서 MailSender 인터페이스가 아닌 FakeMailSender를 이용하는 것

미해결

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

현재 CertificationServiceTest를 할 때 MailSender를 주입받는 것이 아닌 FakeMailSender를 주입받아서 테스트를 진행하는데 MailSender를 만든 이유가 의존성을 역전시키기 위해서 만든 것인데 FakeMailSender를 사용하게 되면 의존성 역전 원칙이 적용된 것이 아니지 않나요??? FakeMailSender는 mock으로 사용하고 있지만 구현체이니까 MailSender를 사용해야 되는 것이 아닌가요?? 그냥 테스트 목적으로 필드 값들이 잘 전달되는지 확인하기 위해서 사용하기 때문에 상관이 없는 건지 궁금합니다. MailSender 인터페이스를 이용한다면 검증 부분에서 다운 캐스팅을 해줘야 하기 때문에 사용하지 않은 건가요???

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
햄토리 댓글 1 좋아요 0 조회수 264

안녕하세요 private메소드에 대해서 질문 있습니다.

미해결

Readable Code: 읽기 좋은 코드를 작성하는 사고법

제가 헷갈려서 질문드려요!private 메소드를 만들게 된다면 무언가 책임이 이상하거나 설계가 잘못되었다는 신호로 알고 있는데요 private static void checkIfGameIsOver() { boolean isAllOpened = isAllCellOpened(); if (isAllOpened) { gameStatus = 1; } } 만약 이런 메서드를 테스트 한다고 하면 어떻게 해야하는건가요?! private메소드를 현업에서도 사용하시는지 궁금합니다.그리고 제가 어디를 잘못알고 있는지도 궁금해요!

  • 객체지향
  • 리팩토링
  • 클린코드-기획전
qheogus55 댓글 2 좋아요 0 조회수 205

7-3 python을 위한 도커 강의에서 질문드립니다.

해결됨

실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기

vscode에 select kernel을 누르면 아무 kernel도 뜨지 않습니다. 강의에는 Python Environments... 이 뜹니다.

  • python
  • 딥러닝
  • linux
  • docker
  • azure
  • 가상화
  • mlops
poptato 댓글 2 좋아요 0 조회수 220

이번 피그마 업테이트로 인해 인터페이스가 달라진 듯 합니다.

미해결

[2024 업데이트] UX/UI 시작하기 : Figma 입문 (Inflearn Original)

특히, 컨포넌트 세부 설정 부분이 달라진 것과 상단에 있던 버튼들이 하단으로 나오면서, 바뀐 부분이 있는데요. 이 부분에 대한 업데이트는 언제 진행이 될 지 여쭤봅니다.

  • 프로토타이핑
  • 모바일-디자인
  • figma
  • ux-기획
Youngeun Kim 댓글 1 좋아요 0 조회수 626

세마포어 예제중 형변환에 대한 질문

해결됨

Windows 시스템 프로그래밍 - 기본

ThreadSemaphore의 매개변수는 LPVOID인데 이것은 void*를 의미 한다고 알고 있습니다. 어떻게 int로 변환이 가능한 것인가요?? 추측은 데이터 값이 가지고 있는 비트 그 자체를 형식만 주소로 변경된 데이터 값을 다루는 것 같은데 맞게 이해 했는지 모르겠습니다!

  • c
  • system-programming
  • vc++
김현석 댓글 2 좋아요 0 조회수 210

kaggle gpu images 설치시 Error가 발생합니다.

해결됨

실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기

kaggle gpu images 설치시 Error가 발생합니다. docker login -u username으로 login 후에도 동일하게 안됩니다. Error response from daemon: pull access denied for kaggle-gpu-images, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

  • python
  • 딥러닝
  • linux
  • docker
  • azure
  • 가상화
  • mlops
poptato 댓글 3 좋아요 0 조회수 309

compareAndSet()에 대해 질문 있습니다.

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

private static int incrementAndGet(AtomicInteger atomicInteger) { int getValue; boolean result; do { getValue = atomicInteger.get(); log("getValue: " + getValue); result = atomicInteger.compareAndSet(getValue, getValue + 1); log("result: " + result); } while (!result); return getValue + 1; } getValue = atomicInteger.get(); 에서 조회한 값이 compareAndSet() 연산을 할때 바뀌지 않아야 바꿀려고 한 값으로 바꾸고 true를 반환한다고 이해했습니다. 궁금한 부분은 getValue = atomicInteger.get(); 여기서 값을 조회하거나 중간에 스레드가 바꾼 값을 조회 한다는걸 compareAndSet()에서 구분을 할 수 있나요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
감바스 댓글 2 좋아요 0 조회수 383

1-C 질문있습니다 :)

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님 🙂 펜윅트리로 넘어가기 전에 그동안 풀어봤던 문제들을 전부 새롭게 풀어보고 넘어가는 것이 맞다고 판단하여 풀어보고 있습니다 ㅎㅎ 아래 링크의 25번째 줄의 for (int j = temp1; j <= temp2; j++)가 for (int j = temp1; j < temp2; j++)로 바뀌어야 하는 이유를 잘 모르겠습니다. 도식화해봤는데도 마지막 인덱스가 왜 빠져야 하는지 모르겠네요 ㅠㅠ http://boj.kr/b919bf16cf104e609582bd04735b2f6a

  • c++
  • 코딩-테스트
한유태 댓글 2 좋아요 0 조회수 130

[ PDF 수업 자료 오타 ] 예외 계층2 - 활용 수업자료 오타

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의 : 김영한의 실전 자바 - 중급 1편 목차 : 예외 계층2 - 활용 PDF : 10. 예외 처리2 - 실습.pdf 오타 위치 : 23Page ( 예외 계층2 - 활용 : MainV3 -코드 변경 ) 내용 : throws 되는 예외는 NetworkClientExceptionV2 이 아닌 NetworkClientExceptionV3 으로 제공되어야 합니다.

이상민 댓글 2 좋아요 0 조회수 171

타임라인함수를 이용한 캐릭터 강제이동

미해결

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

텔레포트를 구현할 때 네트워크 동기화 문제 때문에 CharacterMovementComponent를 확장하는 방식으로 구현해야 한다고 했는데 그러면 타임라인 함수를 사용하여 캐릭터를 특정 위치로 서서히 이동 시키는 기능도 CharacterMovementComponent를 확장하는 방식으로 만들어야 할까요?

  • unreal-engine
  • 네트워크
  • 언리얼-c++
강건희 댓글 2 좋아요 0 조회수 187

매개변수로 전달 되는 방식

미해결

김영한의 실전 자바 - 기본편

[질문 내용] soundAnimal , flyAnimal 메서드 같은 경우 bird가 매개변수로 전달될 때 정의된 매개변수 타입에 따라 자동으로 업캐스팅이 된다고 이해하는 것이 맞을까요?

  • java
  • 객체지향
shshjkjk 댓글 1 좋아요 0 조회수 106

제네릭 메서드

미해결

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. package generic.ex4; // 클래스 옆에 <> 넣으면 제네릭 타입 public class GenericMethod { public static Object objMethod(Object obj) { System.out.println("Object print: " + obj); return obj; } // 메서드 안에 <> 넣으면 제네릭 메서드 public static <T> T genericMethod(T t) { System.out.println("Generic print: " + t); return t; } public static <T extends Number> T numberMethod(T t) { System.out.println("bound print: " + t); return t; } } 여기 public static <T> T genericMethod(T t) 코드를 보면 static일 때 사용이 가능한데 강의 자료에서 여기 static일 땐 사용이 불가능하다는 말이 이해가 잘 안 갑니다. 둘의 차이점이 무엇인가요?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
ekgml 댓글 2 좋아요 0 조회수 255

CPU와 스레드간 상호작용에 대해 질문 있습니다.

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

CPU 코어와 메모리가 동작하는 이미지가 자주 나왔는데요 헷갈리는 부분이 있어서 질문 합니다. 스레드, 프로세스, 메모리 등 여러 개념들이 존재하지만 CPU와 직접적으로 통신(?) 하는 주체는 스레드라고 이해를 해도 될까요? 1번이 맞다면 스레드는 본인이 실행한 코드 한줄 한줄을 CPU로 보내고 CPU는 해당 코드 한줄을 해석하고 그에 따라서 프로세스에 할당된 메모리 영역(힙, 데이터, 코드)이나 스레드에 할당된 메모리 영역(스택)에 접근해서 데이터를 읽거나 저장한다 라고 이해를 해도 될까요? Java 의 thread 는 OS의 kernel thread 와 1:1로 mapping 되는걸로 알고 있는데 그러면 CPU는 kernel thread 와 통신 한다고 이해하면 될까요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
감바스 댓글 1 좋아요 0 조회수 232

이게 데이터베이스 강의인걸로아는데

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

자바 고급편끝나고 데이터베이스 강의를 따로 내신다고하셔서요 무슨차이가있나요?

  • spring
  • mvc
  • spring-jdbc
임다정 댓글 2 좋아요 0 조회수 202

문자열 슬라이싱

해결됨

(2027 대비!) 일주일만에 합격하는 정보처리기사 실기

Step 뛰어 넘는다고 알려주셨는데 첫 문자도 출력하나요?

  • python
  • java
  • c
  • 정보처리기사
youngsu616 댓글 3 좋아요 0 조회수 246

Retrieving array size but no array was provided 오류가 발생합니다.

미해결

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

property.arraySize이 문제인것 같은데 private void DrawSkillDatas() { // Skill의 Data가 아무것도 존재하지 않으면 1개를 자동적으로 만들어줌 if (skillDatasProperty.arraySize == 0) { // 배열 길이를 늘려서 새로운 Element를 생성 skillDatasProperty.arraySize++; // 추가한 Data의 Level을 1로 설정 skillDatasProperty.GetArrayElementAtIndex(0).FindPropertyRelative("level").intValue = 1; } if (!DrawFoldoutTitle("Data")) return; EditorGUILayout.PropertyField(isAllowLevelExceedDatasProperty); // Level 상한 제한이 없다면 MaxLevel을 그대로 그려주고, // 상한 제한이 있다면 MaxLevel을 상한으로 고정 시키는 작업을 함 if (isAllowLevelExceedDatasProperty.boolValue) EditorGUILayout.PropertyField(maxLevelProperty); else { // Property를 수정하지 못하게 GUI Enable의 false로 바꿈 GUI.enabled = false; var lastIndex = skillDatasProperty.arraySize - 1; // 마지막 SkillData(= 가장 높은 Level의 Data)를 가져옴 var lastSkillData = skillDatasProperty.GetArrayElementAtIndex(lastIndex); // maxLevel을 마지막 Data의 Level로 고정 maxLevelProperty.intValue = lastSkillData.FindPropertyRelative("level").intValue; // maxLevel Property를 그려줌 EditorGUILayout.PropertyField(maxLevelProperty); GUI.enabled = true; } EditorGUILayout.PropertyField(defaultLevelProperty); for (int i = 0; i < skillDatasProperty.arraySize; i++) { var property = skillDatasProperty.GetArrayElementAtIndex(i); var isUseCastProperty = property.FindPropertyRelative("isUseCast"); var isUseConcentrateProperty = property.FindPropertyRelative("isUseConcentration"); var chargeDurationProperty = property.FindPropertyRelative("chargeDuration"); var chargeTimeProperty = property.FindPropertyRelative("chargeTime"); var needChargeTimeToUseProperty = property.FindPropertyRelative("needLeastChargeTime"); var perfectDamageChargeTimeProperty = property.FindPropertyRelative("perfectDamageChargeTime"); var perfectDamageChargeTimeDetectionProperty = property.FindPropertyRelative("perfectDamageTimeDetection"); EditorGUILayout.BeginVertical("HelpBox"); { // Data의 Level과 Data 삭제를 위한 X Button을 그려주는 Foldout Title을 그려줌 // 단, 첫번째 Data(= index 0) 지우면 안되기 때문에 X Button을 그려주지 않음 // X Button을 눌러서 Data가 지워지면 true를 return함 if (DrawRemovableLevelFoldout(skillDatasProperty, property, i, i != 0)) { // Data가 삭제되었으며 더 이상 GUI를 그리지 않고 바로 빠져나감 // 다음 Frame에 처음부터 다시 그리기 위함 EditorGUILayout.EndVertical(); break; } EditorGUI.indentLevel += 1; if (property.isExpanded) { // SkillData Property 내부로 들어감 -> Property == level field; property.NextVisible(true); DrawAutoSortLevelProperty(skillDatasProperty, property, i, i != 0); // Level Up for (int j = 0; j < 2; j++) { property.NextVisible(false); EditorGUILayout.PropertyField(property); } // PrecedingAction // Toggle Type일 때는 PrecedingAction을 사용하지 않을 것이므로, // Instant Type일 때만 PrecedingAction 변수를 보여줌 property.NextVisible(false); if (useTypeProperty.enumValueIndex == (int)SkillUseType.Instant) EditorGUILayout.PropertyField(property); // Action And Setting for (int j = 0; j < 8; j++) { // 다음 변수의 Property로 이동하면서 그려줌 property.NextVisible(false); EditorGUILayout.PropertyField(property); } // Cast property.NextVisible(false); if (IsDrawPropertyAll && !isUseConcentrateProperty.boolValue) EditorGUILayout.PropertyField(property); else property.boolValue = false; property.NextVisible(false); if (isUseCastProperty.boolValue) EditorGUILayout.PropertyField(property); // Charge property.NextVisible(false); if (IsDrawPropertyAll && !isUseCastProperty.boolValue) EditorGUILayout.PropertyField(property); for (int j = 0; j < 5; j++) { property.NextVisible(false); if (isUseConcentrateProperty.boolValue) EditorGUILayout.PropertyField(property); } // 최대 chargeTime 값을 chargeDuration 값으로 제한 chargeTimeProperty.floatValue = Mathf.Min(chargeTimeProperty.floatValue, chargeDurationProperty.floatValue); // 최대 needChargeTime 값을 chargeTime 값으로 제한 needChargeTimeToUseProperty.floatValue = Mathf.Min(chargeTimeProperty.floatValue, needChargeTimeToUseProperty.floatValue); perfectDamageChargeTimeProperty.floatValue = Mathf.Clamp(perfectDamageChargeTimeProperty.floatValue, needChargeTimeToUseProperty.floatValue, chargeTimeProperty.floatValue); // Effect property.NextVisible(false); EditorGUILayout.PropertyField(property); //// EffectSelector의 level 변수를 effect의 최대 level 제한함 for (int j = 0; j < property.arraySize; j++) { var effectSelectorProperty = property.GetArrayElementAtIndex(j); // Selector의 level Property를 가져옴 var levelProperty = effectSelectorProperty.FindPropertyRelative("level"); // Selector가 가진 effect를 가져옴 var effect = effectSelectorProperty.FindPropertyRelative("effect").objectReferenceValue as Effect; var maxLevel = effect != null ? effect.MaxLevel : 0; var minLevel = maxLevel == 0 ? 0 : 1; levelProperty.intValue = Mathf.Clamp(levelProperty.intValue, minLevel, maxLevel); } } 파란색인 부분에서 계속 걸리는데 무슨 문제인지 모르겠습니다. 파란색 뒷부분은 너무 길어져서 잘랐습니다. skillDatasProperty를 가져오는거라 Skill의 skillDatas가 [SerializeField] private SkillData[] skillDatas;배열인것도 확인을 하였지만 if (property.isArray) { int size = property.arraySize; Debug.Log("사이즈 :" + size); } else { Debug.LogError("이 속성은 배열 또는 리스트가 아닙니다."); }이걸로 확인하니 배열이 아니라고 오는데 어떻게 배열이 아니게 된건지 모르겠습니다.

  • unity
  • modules
고우진 댓글 2 좋아요 0 조회수 256

PDF 자료를 혹시 어디서 받아야 할까요?

해결됨

(2027 대비!) 일주일만에 합격하는 정보처리기사 실기

제가 못 찾는건지 어디에 업로드 되어 있는지 몰라서요.. 대시보드 등 찾아봤는데 잘 모르겠어서요.

  • python
  • java
  • c
  • 정보처리기사
정철 댓글 2 좋아요 0 조회수 165

H2 DB에선 컬럼 순서를 임의로 바꿀 순 없겠죠...?

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

강의 영상에선 깔끔하게 DTYPE 먼저 나오고 ID 순서로 나오는데 실제 실습을 하면 뒤죽박죽이네요...

  • java
  • jpa
댓글 1 좋아요 0 조회수 238

튜플형

해결됨

(2027 대비!) 일주일만에 합격하는 정보처리기사 실기

11분45초 마지막 출력 값이 왜 (1,2,3)인가요

  • python
  • java
  • c
  • 정보처리기사
youngsu616 댓글 2 좋아요 0 조회수 160

인기 태그

인프런 TOP Writers

주간 인기글