묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨ARM Cortex-M 프로세서 프로그래밍
유저 mode, xSPR, 어셈블리어 활용, STM32 선정 이유 관련
안녕하세요.강의를 듣는 과정에서 궁금한 사항이 있어서 질문 드립니다.유저 모드 관련특권 모드와 유저 모드가 있는데, 대부분 특권모드에서 동작한다고 알려주셨습니다.인터럽트 핸들러도 특권모드에서 동작을 하고요.유저 모드에서는 특권모드로 이동도 못해서 제약이 상당히 많은 것 같은데,유저 모드는 어떠한 상황에서 사용되는지 궁금합니다.xSPR 관련AR, VR 등을 합쳐서 부르기 위해, XR이라고 부르는 것과 같이xSPR도 ASPR, ESPR 등을 통칭하기 위해 xSPR로 부르는 것인가요?아니면, xSPR은 ASPR, ESPR, ISPR을 모두 합친 프로세서 레지스터라고 봐야 할까요?어셈블리어 활용 관련요즘에는 어셈블리어로 코딩하는 일이 많지 않을 것 같은데,어셈블리어의 지식은 어떤 곳에 활용할 수 있을까요?프로그램에 문제가 생겼을 때 디버깅을 하면서 어셈블리어를 알면 문제 원인을 찾기가 쉬울 것 같은데,혹시 다른 용도로는 어떻게 활용할 수 있는지 궁금합니다.STM32 관련ARM Cortex-M4를 사용하는 MCU를 만드는 제조사는 ST Micronics 외에도 Nordic이나 Microchip등 여러 회사들이 있는 것을 알고 있습니다.그런데, 대부분의 강의를 보면 STM32 Series의 보드를 사용하시더라고요.STM32 Series 보드의 장점이 무엇이기에 대부분 이를 선택하시는지 궁금합니다.또한, STM Cube IDE와 유사하게 nRF Series에서도 segger IDE를 제공하는 것으로 알고있는데, Cube IDE처럼 segger로도 disassemble 등의 기능을 사용할 수 있는지도 궁금합니다.질문 사항이 좀 길어졌네요...강의는 잘 듣고 있습니다!감사합니다.
-
미해결프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)
json파일이 계속 안만들어져요..
상대경로로 해서 다 맞게 했는데 계속해서 해당 파일에 json파일이 안 만들어지네요.. 왜 그런거죠?d = {"group1":[ {'name': 'Park', 'age': '32', 'sex': 'Male'}, {'name': 'Cho', 'age': '44', 'sex': 'Female'}, {'name': 'Kang', 'age': '39', 'sex': 'Female', 'married': 'No'} ], "group2":[ {'name': 'Kim', 'age': '23', 'sex': 'Male', 'married': 'Yes'}, {'name': 'Lee', 'age': '37', 'sex': 'Male', 'married': 'No'} ], "type" : {"a": "employee", "b": "officer", "c": "director", "d": "manager", "e": "service provider"} }with open('../source/32-2.json', "w") as f: json.dump(d, f)
-
미해결유니티와 C#으로 배우는 카타나제로스타일 게임만들기 (기본편)
마우스 방향으로 공격을 하고 싶습니다.
using System.Collections;using System.Collections.Generic;using UnityEngine;public class VPlayer : MonoBehaviour{ #region 변수 모음 public float speed; public float power; public Vector3 direction; Animator pAnimator; Rigidbody2D pRig2D; SpriteRenderer sp; GrapplingHook grappling; // GrapplingHook C# 코드 불러오기 #endregion #region 점프 변수 모음 [Header("Jump System")] [SerializeField] float jumpUp; [SerializeField] float fallMultiplier; [SerializeField] float jumpTime; [SerializeField] float jumpMuitiplier; Vector2 vecGravity; bool isJumping; float JumpCounter; #endregion #region 벽 점프 변수 모음 [Header("Wall Jump System")] public Transform wallChk; public float wallchkDistance; public LayerMask wLayer; bool isWall; public float slidingSpeed; public float wallJumpPower; public bool isWallJump; float isRight = 1; #endregion #region 공격 관련 변수 [Header("Attack System")] public GameObject Vslash; // 공격 모션 #region 마우스 관련 변수 모음 Vector2 MousePos; Vector3 dir; float angle; Vector3 dirNo; #endregion #endregion #region 초기화 void Start() { pAnimator = GetComponent<Animator>(); pRig2D = GetComponent<Rigidbody2D>(); direction = Vector2.zero; sp = GetComponent<SpriteRenderer>(); grappling = GetComponent<GrapplingHook>(); vecGravity = new Vector2(0, -Physics2D.gravity.y); } #endregion void Update() { if (!isWallJump) { KeyInput(); Move(); mousePos(); } #region 점프 키 누름 if (Input.GetKeyDown(KeyCode.W)) { if (pAnimator.GetBool("Jump") == false) { Jump(); isJumping = true; JumpCounter = 0; pAnimator.SetBool("Jump", true); //JumpDust(); } } #endregion #region 점프 후 떨어질 때 가속 if (pRig2D.velocity.y < 0) { pRig2D.velocity -= vecGravity fallMultiplier Time.deltaTime; } #endregion #region 점프 키를 꾹 눌렀을 시 더 높이 점프 if (pRig2D.velocity.y > 0 && isJumping) { JumpCounter += Time.deltaTime; if (JumpCounter > jumpTime) isJumping = false; pRig2D.velocity += vecGravity jumpMuitiplier Time.deltaTime; } if (Input.GetKeyUp(KeyCode.W)) { isJumping = false; } #endregion #region 벽인지 체크 isWall = Physics2D.Raycast(wallChk.position, Vector2.right * isRight, wallchkDistance, wLayer); pAnimator.SetBool("Wall", isWall); #endregion #region 벽타기 if (isWall) { isWallJump = false; pRig2D.velocity = new Vector2(pRig2D.velocity.x, pRig2D.velocity.y * slidingSpeed); #region 벽을 잡고 있는 상태에서 점프 if (Input.GetKeyDown(KeyCode.W)) { isWallJump = true; //벽점프 먼지 //GameObject go = Instantiate(walldust, transform.position + new Vector3(0.6f * isRight, -0.32f, 0), Quaternion.identity); //go.GetComponent<SpriteRenderer>().flipX = sp.flipX; Invoke("FreezeX", 0.3f); pRig2D.velocity = new Vector2(-isRight wallJumpPower, 0.9f wallJumpPower); sp.flipX = sp.flipX == false ? true : false; isRight = -isRight; } #endregion } #endregion } private void FixedUpdate() { #region 바닥 감지 레이저 Debug.DrawRay(pRig2D.position, Vector3.down, new Color(0, 1, 0)); RaycastHit2D rayHit = Physics2D.Raycast(pRig2D.position, Vector3.down, 0.8f, LayerMask.GetMask("Ground")); #endregion #region Ground를 감지할 때 if (pRig2D.velocity.y < 0) { if (rayHit.collider != null) { if (rayHit.distance < 0.6f) { pAnimator.SetBool("Jump", false); } } #region 6-2. 떨어질 때의 감지 방식 else { if (!isWall) { //그냥 떨어지는 중 fall pAnimator.SetBool("Jump", true); } else { //벽타기 pAnimator.SetBool("Wall", true); } } #endregion } #endregion } #region 키 입력 void KeyInput() { direction.x = Input.GetAxisRaw("Horizontal"); #region 왼쪽 if (direction.x < 0) { //left sp.flipX = true; //점프벽잡기 방향 isRight = -1; pAnimator.SetBool("Run", true); } #endregion #region 오른쪽 else if (direction.x > 0) { //right sp.flipX = false; //점프벽잡기 방향 isRight = 1; pAnimator.SetBool("Run", true); } #endregion #region Idle 상태 else if (direction.x == 0) { pAnimator.SetBool("Run", false); } #endregion #region 공격 버튼 if (Input.GetMouseButtonDown(0)) { pAnimator.SetTrigger("Attack"); //Instantiate(hit_lazer, transform.position, Quaternion.identity); } #endregion } #endregion #region 이동 void Move() { if (direction.x != 0) { if (grappling.isAttach) { pRig2D.AddForce(new Vector2(direction.x * speed, 0)); //로프 이동 } else pRig2D.velocity = new Vector2(direction.x * speed, pRig2D.velocity.y); //보통 이동 } } #endregion #region 점프 public void Jump() { pRig2D.velocity = new Vector2(pRig2D.velocity.x, jumpUp); } #endregion #region 마우스 방향 public void mousePos() { Transform tr = GetComponent<Transform>(); MousePos = Input.mousePosition; MousePos = Camera.main.ScreenToWorldPoint(MousePos); Vector3 Pos = new Vector3(MousePos.x, MousePos.y, 0); dir = Pos - tr.position; // 바라보는 각도 구하기 angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg; } #endregion #region 공격 이펙트 public void AttSlash() { pRig2D.AddForce(dir.normalized * power, ForceMode2D.Impulse); GameObject go = Instantiate(Vslash, transform.position, Quaternion.identity); if (dir.x <= 0) { sp.flipX = true; } else { sp.flipX = false; } } #endregion void FreezeX() { isWallJump = false; }} 마우스 방향 값을 이용해 좌클릭을 할 때 마우스 방향으로 공격을 하는 코드를 짜고 있는 데, 이동을 velocity로 해서 그런지 idle 상태 run 상태에서 좌클릭을 누르면 공격 모션만 마우스 방향으로만 가고 플레이어는 마우스 방향으로 앞으로 대쉬하지 않습니다. 이때는 어떻게 처리해야 하는 지 알려주시면 감사하겠습니다. 코루틴도 써봤지만 답이 안나와서 올립니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
사용자가 특정 버튼 클릭 후 크롤링하는 로직 작성하는 방법
안녕하세요 강사님.모든 강의를 수강한 이후에 왜 처음에 beautiful soup로 시작해서 selenium으로 끝이 나는지 절실하게 깨달을 수 있었습니다. 가르쳐 주신 예제를 바탕으로 개인적으로 추가 실습을 진행하면서 크롤링에 대한 이해를 높이려고 하는데 selenium의 경우 특정 버튼을 클릭하여 넘어간 이후에 크롤링이 진행되도록 자동화에 맞추어져 있는 라이브러리임을 알 수 있었습니다.네이버 예제 화면에 있는 메일, 카페, 블로그, 쇼핑, 뉴스, 증권, 부동산, 지도, 웹툰이 모여져 있는 배너에서 사용자가 특정 버튼을 눌렀을 때 이동한 해당 페이지에서 크롤링을 진행할 수 있도록 자동화하는 예제를 스스로 만들어 공부 중인데 이러한 경우에서 if 메일 if 카페 if 블로그 같은 분기를 바탕으로 작성한 로직 대신 동적으로 사용자가 클릭했을 때의 정보를 가져올 수 있도록 하는 방법이 있을까요? 수많은 버튼이 존재하게 된다면 사용자가 어떤 버튼을 누를지 xpath라던가 class를 특정할 수 없는 경우가 생길 수 있을 것 같아서 질문 드립니다..!
-
미해결
어떤거부터 배워야할지 모르겠어요! 도와주세요!
안녕하세요 저는 직장인입니다.사무직을 하고있으며, 현재 회사는 개발부는 C언어, C#언어를 주로 사용합니다.저는 사무직으로써 먼가 성장하기위해 언어를 배워야하는거같은데나름 생각을 한게 엑셀 파일을 많이 만지고있어서 VBA를 배울까했습니다.근데 요즘은 파이썬으로 엑셀 자동화하는게 핵심인거같아 어떤걸 먼저 배워야할지 고민을 하고있습니다.그 후 최종적으로 C언어를 배울까 하는데 무엇부터 시작하는게 좋을까요?VBA > 파이썬 > C언어 로 가는게 좋을까요?파이썬 > VBA > C언어로 가는게 좋을까요?그리고 해당하는 인프런 강의도 추천해주시면 감사하겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
SpringDataJpaMemberRepository 인터페이스를 만들 때 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]솔직히 인터페이스 처음 설정에 대한 내용이 하나도 이해가 가질 않네요.. SpringDataJPA가 JpaRepository를 상속 받은 SpringDataJpaMemberRepository에 대한 구현체를 스프링 빈으로 등록해준다는 건 알겠는데, JpaRepository<Member, Long>에 있는 Member와 Long은 어떤 역할을 하기에 들어가는 것이며, 그 뒤에 함께 상속받는 MemberRespository는 어떤 역할을 하기위해 상속되는 건지 궁금합니다. 기초적인 질문을 드려 죄송합니다만, GPT도 설명을 제대로 안해주기에 정말 모르겠어서 이렇게 질문드립니다.
-
미해결PWA 시작하기 - 웹 기술로 앱을 만들자
깃헙 권한 요청드립니다.
인프런 아이디: jsoh3327@raoncorp.com인프런 이메일: jsoh3327@raoncorp.com깃헙 이메일: orini22@gmail.com깃헙 Username: grace-ori
-
해결됨스프링 핵심 원리 - 기본편
Invalid test class 'hello.core.member.MemberServiceTest': 오류 질문
org.junit.runners.model.InvalidTestClassError: Invalid test class 'hello.core.member.MemberServiceTest': 1. Method join() should be public 영한님 코드랑 동일한데 해당 에러가 발생합니다.에러 메시지처럼 join() 에 public 을 붙여 줬더니 해결이 되었는데, 이유가 뭘까요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
정수 자릿수 출력 질문입니다.
print('%1.2f' % (12.345678))강의에서 배운대로면 이렇게 실행을 했을때 정수부분이 한자리만 나와야 한다고 학습했습니다. 근데 출력값이 계속 12.35 이 뜨는데 왜 정수부분이 1이 아니라 12 둘다 나오는건가요?
-
미해결생활코딩 - PHP 기본 A 부터 Z 까지
WAMP 관련
안녕하세요.WAMP 설치와 관련한 내용 업데이트가 필요한 것 같습니다.
-
미해결Flutter 초입문 왕초보편
52강 키/몸무게 값에 대한 조건을 더 추가해주고 싶으면 어떻게 해야 할까요?
만약에 키나 몸무게 필드에 숫자가 아닌 값을 입력할 경우 '숫자를 입력하세요'라고 출력하고 싶은데 어떻게 하면 좋을까요? 그리고 입력된 숫자가 특정 범위를 넘길 경우 제한 하는 방법도 궁금합니다. 뭔가 아래와 같은 느낌으로 하고싶은데 방법이 궁금합니다.TextFormField( decoration: const InputDecoration( border: OutlineInputBorder(), hintText: '키', ), keyboardType: TextInputType.number, validator: (value){ if(value == null || value.isEmpty){ return '키를 입력하세요'; }else if(value의 타입 != TextInputType.number){ return '숫자를 입력하세요.'; }else if(value > 1000){ return '정상적인 값이 아닙니다.'; } return null; }, ),
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
hello jpa 애플리케이션 개발 오류
자바 17 사용하는데 아래와 같은 오류가 납니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
GetWorld 가 nullptr
무한맵의 제작, 31분 26초 부근에 나오는 GetWorld()가 계속 nullptr가 뜹니다..
-
미해결WPF (.NET Core, C#, 자막제공)
6) Trigger - Property 설정 문의
안녕하세요.6)Trigger강의중 Trigger Property 설정에서 Control.IsMouseCaptured를 사용 할 수가 없습니다.ItemControl로 변환을 유도하는데 정작 ItemControl에는 IsMouseCaputred 구문이 없습니다.Setter 설정 시에도 Control. Foregruund 가 에러가 나서Property="ItemsControl.Foreground" 로 진행하였습니다.추가) 해당 구문을 다시 강제(?)로 입력하여 동작 확인 하였습니다. <Trigger Property="Control.IsMouseCaptured" Value="True"> <Setter Property="Control.Foreground" Value="Blue"> </Setter></Trigger>
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
저의 JpaRepository 인터페이스 내용이 달라요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]8분 20초 쯤에 JpaRepository 인터페이스로 들어가볼 때 강사님의 인터페이스 내용과 제 JpaRepository 인터페이스의 내용이 달라요.저는 findById()도 없고, findAll() 메서드의 리턴타입도 <S extends T> List<S> 이렇게 생겼고, 뭔가 강사님의 화면에서는 보이지 않는 잡다한 것들이 너무 많아요.저의 JpaRepository 인터페이스는 왜 이렇게 뜨는 걸까요ㅠㅠ 사진 첨부합니다. 위 사진이 저의 JpaRepository 전체 입니다.
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
Pawn AI이동 관련
안녕하세요 Rookiss강사님Pawn으로 AI이동하고 있는데 Cube로 하면 이동이 되는데제가 먼가 큐브말고 로봇청소기로 한번 이동하는걸 만들어 보고 싶어서sketchfab에서 fbx로 다운받은 것을 이용해static mesh를 만들고 mesh를 변경해서 로봇 청소기 모양으로 만들었는데 실행하면 이동하지 않습니다.그래서 로봇청소기 mesh는 삭제하고 큐브를 추가해주면 다시 이동이 됩니다.BP_AIController
-
미해결스프링 부트 - 핵심 원리와 활용
빌드에 실패하는데요..
기존에 인텔리제이에서 자바 11버전으로 설정했었습니다.그래서 자바 버전 설정 관련된 부분을 모두 17 버전으로 변경했는데도 빌드에 실패하네요..그래서 build.gradle 파일에서 아래 부분 주석 처리하니깐 빌드에 성공했습니다.왜 그런지 이유를 알 수 있을까요? //sourceCompatibility = '17'
-
미해결스프링 핵심 원리 - 고급편
@Bean vs @Component
빈등록하는 방법에@Bean을 통한 직접등록,@Component를 통해 자동 스캔@Import를 통한 등록 3가지를 말씀해주셨는데요, @Bean과 @Component는 왜 구분지어지는건가요?@Bean은 @Configuration 객체안에서만 사용할 수 있는 규칙이라던지 있는건가요?
-
미해결
Java 클래스 변수 개념 질문이요.
메서드나 함수 안에서 선언해서 사용하는 변수를 지역변수라 칭하는데,마찬가지로 메서드 안에 클래스 인스턴스를 생성해서 사용할 경우 해당 객체는뭐라고 부르나요?(메서드 안에서 클래스를 선언하는 지역클래스 말고요.)예로는void methodA () {int i = 0;ClassA m = new ClassA()m.a = i;}대충 이런 식의 코드일 때 변수 i를 methodA의 지역변수라 하고객체 m은 어떻게 불러야 할까요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Custom Error Page
안녕하세요. 좋은 강의를 감사히 듣고 있는 학생입니다.다름이 아니라 이번에 실무에 가까운 프로젝트를 하면서 Common Error Page (Custom Error Page) 가 필요하다는 얘기를 듣게 되었습니다. 어떤 에러가 발생하는 경우에 기본적인 에러 화면이 아닌 디자인 된 에러 페이지로 항상 가야한다는 요청 사항인데 이건 static 인가요 template 인가요? 어떻게 구현하나요?