묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
Texture 샘플링 관련해서 질문이 있습니다
PixelShader 구간에서 Texture를 Sampling 해주는 과정에서 질문이 있습니다.예를들어 Quad(사각형)을 렌더링하는 경우 Quad의 각 정점4개에 Texture의 양 끝 UV좌표들 (0, 0), (1, 0), (0, 1), (1, 1)을 대응시켜 Shader에 넣어준다고 치면, 저는 이 Quad를 이루고 있는 Vertex의 수만큼 VetexShader, PixelShader들을 통해서 렌더링이 된다고 알고 있었습니다.하지만 처음에 넣어준 정점 4개의 부분 말고도 그 4개의 정점 사이사이들(ex)(0, 0.3) or (0.4, 0.8))에 있는 VertexBuffer에 넣어주지 않은 정점도 다 Texture의 UV와 일치하게 렌더링 되더군요.파이프라인에서 VertexBuffer에 넣어주지 않은 정점까지 Shader 작업을 하진 않을거 같아서 원래 알고 있던대로 정점의 개수만큼 파이프라인이 돌아간다면 이걸 제가 알고있던 개념에 적용시켜 생각해봤을때 Vertex의 개수에 맞게 Shader렌더링이 4회 되지만 그 내부의 PixelShader 부분에서 정점의 UV좌표들 사이사이를 매꿔주는 부분이 존재하고 이로인해 각 정점들뿐만 아니라 그 사이사이의 빈 곳들도 알맞게 렌더링이 됬다 라고 생각이 되는데 이게 맞을까요?만약 제 생각이 잘못됬다면 어떻게 넣어준 4개의 UV좌표만을 가지고 Texture를 전부 Sampling하나요?
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
css peaker
css peaker 기능 중 해당 태그에서 alt + F11 누르면 해당 css가 아래에 뜨는 게 안되네요ㅠㅠ ctrl 누르고 클릭하면 해당 css파일에 해당 태그 스타일로 넘어가는건 정상 작동합니다. ■ 질문 남기실 때 꼭! 참고해주세요.- 먼저 유사한 질문이 있었는지 검색해주세요.- 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다.- HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요.- 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
리사이클러 뷰 안보임
안녕하세요 개발자님! 왕초보편 수강하고있는 대학생입니다. 다름이아니라 개발자님의 앱 개발 왕초보편 강의 중 트로트 가수 앱 만들기를 조금 변형시켜서, 프래그먼트에서 객체 데이터를 전달받고 보여주는 리사이 클러 뷰를 만들어 보려고 했습니다.근데 실행시켜 보니 딱히 오류는 뜨지 않지만, 리사이클러 뷰가 보이지 않는 현상을 겪고 있어서 질문드립니다!도와주시면 감사하겠습니다! 구글 드라이브 : https://drive.google.com/file/d/1hiygqt0gl78embhelzkivfPbgyDGb3WV/view?usp=drive_linkadapterpackage com.wosong.musiclist import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView class RVAdapter(val context: MutableList<RVdata>) : RecyclerView.Adapter<RVAdapter.ViewHolder>(){ var data = mutableListOf<RVdata>() override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RVAdapter.ViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.rv_item,parent,false) return ViewHolder(view) } override fun onBindViewHolder(holder: RVAdapter.ViewHolder, position: Int) { holder.bindItems(data[position]) } override fun getItemCount(): Int { return data.size } inner class ViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView){ fun bindItems(item : RVdata){ val rv_text = itemView.findViewById<TextView>(R.id.rvTextId) rv_text.text = item.text val image = itemView.findViewById<ImageView>(R.id.itemimage) image.setImageResource(item.img) } } } data classpackage com.wosong.musiclist data class RVdata( val text : String, val img : Int ) item_xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="50dp"> <ImageView android:layout_width="50dp" android:layout_height="match_parent" android:src="@drawable/zino" android:id="@+id/itemimage" /> <TextView android:layout_margin="10dp" android:textStyle="bold" android:text="List of songs" android:id="@+id/rvTextId" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> fragmentpackage com.wosong.musiclist import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView class sing1Fragment : Fragment() { // TODO: Rename and change types of parameters override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment val view = inflater.inflate(R.layout.fragment_sing1, container, false) val items : MutableList<RVdata> = mutableListOf() items.add(RVdata(img = R.drawable.jazzyfact,text = "A tribe called jazzyfact")) items.add(RVdata(img = R.drawable.jazzyfact,text = "A tribe called jazzyfact")) items.add(RVdata(img = R.drawable.jazzyfact,text = "A tribe called jazzyfact")) val rv = view.findViewById<RecyclerView>(R.id.JazzyFactView) val rvAdapter = RVAdapter(items) rv.adapter = rvAdapter rv.layoutManager = LinearLayoutManager(context) view.findViewById<ImageView>(R.id.image2).setOnClickListener{ it.findNavController().navigate(R.id.action_sing1Fragment_to_sing2Fragment) } view.findViewById<ImageView>(R.id.image3).setOnClickListener{ it.findNavController().navigate(R.id.action_sing1Fragment_to_sing3Fragment) } return view } }
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
[map, key prop]백엔드로부터 데이터를 받아올 시, id 처리
const DiaryList = ({ diaryData }) => { console.log(diaryData); return ( <div className="DiaryList"> <h1>일기 리스트</h1> <h4>{diaryData.length}개의 리스트가 있습니다.</h4> <div> {diaryData.map((diary) => ( <div key={diary.id}> <div>작성자 : {diary.author}</div> <div>일기 : {diary.content}</div> <div>감정 : {diary.emotion}</div> <div>날짜 : {diary.created_date}</div> </div> ))} </div> </div> ); };'리액트에서 배열 사용하기1- 리스트 렌더링' 강의 듣다가 궁금증이 생겨 질문 드립니다!만약, 백엔드로부터 사용자가 작성한 다이어리 데이터를 통신을 통해 불러온다고 했을 때,혹시 백엔드 데이터 구조 상에서 각 다이어리 아이템마다 id를 두지 않는 경우가 있을까요?만약, 백엔드 측에서 각 다이어리 아이템마다 id를 설정해두지 않았다면 프론트엔드 측에서 백엔드에게 id 데이터를 다이어리 데이터와 함께 넘겨달라고 요청드릴 부분일까요? 아니면 프론트 단에서 key에 고유의 아이디를 넘겨주기 위해 uuid 등의 라이브러리를 사용해서 알아서 Id를 처리해야 할 부분일까요???
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
.sln 서버 프로젝트 로드가 정상적으로 되지 않습니다.
안녕하세요?2강(환경 설정)의 서버쪽 .sln 파일을 visual studio(2019기준)으로 열 시 다음과 같은 오류가 발생하면서 프로젝트가 로드되지 않습니다.C:\Users\MYCOM\Downloads\MMO_Game 시작\Server\Server\Server.csproj : error : 프로젝트 파일을 열 수 없습니다. .NET SDK를 찾을 수 없습니다. 이 SDK가 설치되어 있고 global.json에 지정된 버전(있는 경우)이 설치된 버전과 일치하는지 확인하세요.C:\Users\MYCOM\Downloads\MMO_Game 시작\Server\ServerCore\ServerCore.csproj : error : 프로젝트 파일을 열 수 없습니다. .NET SDK를 찾을 수 없습니다. 이 SDK가 설치되어 있고 global.json에 지정된 버전(있는 경우)이 설치된 버전과 일치하는지 확인하세요.C:\Users\MYCOM\Downloads\MMO_Game 시작\Server\DummyClient\DummyClient.csproj : error : 프로젝트 파일을 열 수 없습니다. .NET SDK를 찾을 수 없습니다. 이 SDK가 설치되어 있고 global.json에 지정된 버전(있는 경우)이 설치된 버전과 일치하는지 확인하세요.C:\Users\MYCOM\Downloads\MMO_Game 시작\Server\PacketGenerator\PacketGenerator.csproj : error : 프로젝트 파일을 열 수 없습니다. .NET SDK를 찾을 수 없습니다. 이 SDK가 설치되어 있고 global.json에 지정된 버전(있는 경우)이 설치된 버전과 일치하는지 확인하세요. 일단 넘어가고 클라쪽은 잘 따라갔는데, 해당 강의(Protobuf 이식)의 강의자료 Server쪽 .sln파일을 열 때는 또 다른 오류가 추가로 발생합니다.'GenProto.bat'을(를) 여는 동안 '<MiscFiles>'에서 오류가 발생했습니다.'C:\Rookiss\MMO_Game\Common\protoc-3.12.3-win64\bin\GenProto.bat' 경로의 일부를 찾을 수 없습니다. 어떤 절대경로와 SDK 호환? 문제인건 알겠는데, 해결책을 모르겠어서 질문 올립니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
Lettuce를 이용해서 구현해보려고 했는데
안녕하세요, 강사님. 교육 잘 들었습니다!다름이 아니오라, 선착순 이벤트를 Lettuce를 이용해서 만들고, Test를 하는데 계속 실패해서 문의드립니다. 여기에 소스코드 첨부하기에는 다소 협소해서 구글드라이브 공유로 주소 남겨봅니다.https://drive.google.com/file/d/102enQDhbWt1ukvXnBFP_w9VZrKngJRn2/view?usp=drive_link LettuceLockCouponFacadeTest.java에서 Test를 하였습니다. 왜 결과가 계속 0인지 잘모르겠습니다
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
17강 진행중입니다..
강의 순서대로 따라하고 있는데구글 sns 등록하고 시뮬레이터 켜보니 Class 'StatelessElement' has no instance method 'read'.Receiver: Instance of 'StatelessElement'Tried calling: read<AuthenticationCubit>() 란 오류가 뜨네요 ㅠ찾아보니 밑 login_page 중 밑 read 부분인 것 같긴한데 정확히 모르겠습니다 ㅠWidget _appleLoginBtn(BuildContext, context) { return GestureDetector( onTap: context.read<AuthenticationCubit>().appleLogin(), child: Container(
-
해결됨Vue.js 끝장내기 - 실무에 필요한 모든 것
이 에러 때문에 진행이 안되네요 ㅠ
MongoDB connection error: { Error: querySrv ENOTFOUND mongodb.tcp.cluster0-ypgh5.mongodb.net at QueryReqWrap.onresolve [as oncomplete] (dns.js:196:19) errno: 'ENOTFOUND', code: 'ENOTFOUND', syscall: 'querySrv', hostname: '_mongodb._tcp.cluster0-ypgh5.mongodb.net' }(node:21088) UnhandledPromiseRejectionWarning: Error: querySrv ENOTFOUND mongodb.tcp.cluster0-ypgh5.mongodb.net at QueryReqWrap.onresolve [as oncomplete] (dns.js:196:19)(node:21088) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)(node:21088) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
-
해결됨코어 자바스크립트
프로토타입으로 상속할때 브릿지 사용 이유
마지막 강의 뒷쪽에서 프로토타입으로 상속할 경우 브릿지 함수를 만들어서 구현하셨는데,'이름없음'이 왜 뜬다는건지 이해하지 못하여 질문드립니다.화살표를 따라가면 결국 같은 결과인데 왜 브릿지함수를 사용하지 않으면, '이름없음' 뜬다는지 이해하지 못했습니다. 답변해주시면 감사하겠습니다.
-
해결됨QGIS 지도 시각화 A to Z (벡터/기초편)
SHP 파일 지정된 좌표계 설정 관련 문의드립니다.
안녕하세요! 한 지역의 여러 SHP 파일을 한 곳으로 모으기 위해 작업하던 중, 문의 사항이 생겨 질문드립니다!보시는 바와 같이, 두 SHP 파일 모두 같은 지리적 위치를 나타내야 하는데, 지정된 좌표계는 서로 완전히 다른 좌표계로 설정해야 동일한 위치에 겹쳐서 보입니다. 처음에는 원본에서 두 위치가 아예 달라서, 어떤 좌표계로 설정해야 위치가 동일해지는지 하나하나 찾느라 시간도 꽤 걸렸고요. 혹시 이런 경우에는 원본 파일에 문제가 있어서 그런 것이지, 혹은 제가 미처 설정하지 못 한 부분이 따로 있는 건지 질문드립니다!
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
안드로이드 스튜디오와 협업
현재 학부생 3학년으로 안드로이드 앱 개발 팀프로젝트를 진행중입니다.클라이언트 친구가 하는말이"회원고유번호를 카카오에서 프론트에게 주고, 프론트에서 그걸 백으로 전달해준다.백은 그냥 내가 준 고유번호만 가지고 jwt토큰으로 만들어서 반환해달라"라고 말하는데, 그러면 강의대로 섹션9를 다 수행하고나서, 섹션9의 카카오 토큰 발급 구현(1),(2)빼고카카오에서 플랫폼만 웹에서 안드로이드로 변경하면 되는건가요?제가 이해한게 맞다면 프론트(android studio)에서 인증, 인가를 받아 사용자 정보를 받아오고,백엔드(Spring boot)에서는 단순히 /join 을 통해 프론트에서 넘겨준 User 데이터를 password와 함께 저장하는것 같습니다.이 때, JWT 토큰을 발행해서 프론트에 넘겨주는것 같구요.그리고 소셜로그인(6)까지 진행중인데,ERROR 15266 --- [nio-8080-exec-1] c.a.global.error.GlobalExceptionHandler : Exception포스트로 value값을 보내면 위와같은 에러가 뜹니다...그래서 첨부터 다시 쭉 보는데, (5)부분에서 했던 것도 똑같은 에러가 뜨더라고요... 뭐가 문제인지...ㅜ스프링 첨배워가면서 하고있는데, 미치겠습니다..ㅠ
-
미해결실전! Querydsl
JPQL vs QueryDSL
JPQL 보다 QueryDSL 사용하는게 좀더 오류를 빨리 잡을 수 있어서 QueryDSL을 사용하는게 더 좋을 것 같은데, QueryDSL 보다 JPQL이 유용한 경우가 있을까요?
-
미해결모던 안드로이드 - Jetpack Compose 입문
빨간줄 너무많아요 ******
너무 많아서 ㅎ
-
해결됨실전 프로젝트로 배우는 데이터 앱 만들기 with Python & Streamlit
theme 적용이 되지 않습니다.
theme 적용시, 강사님께서 말씀해주신 것처럼작업 폴더에 .streamlit 폴더를 만들고, 그 안에 config.toml 파일을 만들어 테마 적용을 했지만, 아래의 문구가 발생하며, 태마가 적용이 되지 않습니다. The page that you have requested does not seem to exist. Running the app's main page.어떤 이유 인지 알려주세요.
-
해결됨독하게 시작하는 C 프로그래밍
강의 "16진수가 표기가 사용되는 예"에서 8:35
안녕하세요 유투브에서 알게 되어서 강의구매까지 한 전진호입니다.메모리 화면에서 64bit를 설명하시고, 16바이트를 계산하셨는데, 저 바이트 코드가 왜 적힌 것이고, 어떤 의미인지 궁금합니다.
-
미해결
블렌더 렌더링 질문이요
블렌더 애니메이션 렌더링을 진행중인데,,, 렌더링이 카메라 화면을 비추고 있는 것 같지 않아요ㅠㅠ 분명 카메라 애니메이션은이렇게 작업을 해두었는데,렌더링만 시작하면이렇게 이상한 부분으로만 렌더링이 됩니다ㅠㅠ 왜 이런 건지 아무리 찾아봐도 도통 안나와서 질문드립니다,,,
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
POJO 상품 등록 기능 구현하기 강의 질문
안녕하세요.POJO 상품 등록 기능 구현하기 강의의3:58 에서 throw new UnsupportedOperationException("Unsupported addProduct");가 제안으로 바로 뜬 이유를 여쭙니다..!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
스칼라 타입 영속성 컨텍스트
엔티티 프로젝션은 영속성 컨텍스트에서 관리되고, 임베디드 타입 프로젝션은 영속성 컨텍스트에서 관리되지 않는데, 그러면 스칼라 타입은 영속성 컨텍스트에서 관리되는건가요? 관리되지 않는건가요?
-
해결됨친절한 블렌더 - [LV.1] 기초 모델링
화분 Origin과 Plane Origin이 같아요
-8:08, 화분에 가운데에 맞춰 Plane도 정확히 화분 가운데에 위치해서, 모양을 만들 수가 없어요.
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
Spring Validation 의 @field:NotBlank 등으로 Request DTO 필드 검증 시, 필드타입 선언방식( non-null or nullable )
안녕하세요 강사님. 참 좋은 강의 감사드립니다.예제 고도화 과정에 Request DTO nullable 필드 처리에 어떤 방식이 적절할 지 알수 없어 남기게 되었습니다.Kotlin 객체 필드타입을 크게 두 방식으로 선언 할 수 있습니다.nullablenon-null코프링 기반에서 Request DTO 의 경우,객체필드를non-null 타입으로 선언하면 WebMvc 와 spring-validation 을 함께 사용하면, 발생 가능한 가설을 세워보았습니다.문제:서버 요청에 '비 유효값'`[공백문자["", ' '], null 필드값, 공백 JSON( {} )]`이 넘어올 때, Kotlin 언어의 non-null 타입 속성은, sprint-validation 절차를 거치지 못함. 원인:1. 속성 타입을 non-null 타입 선언 후 컴파일 시 Intrinsics.checkNotNullParameter(field, "field"); 함수가 non-null 검증코드로 DTO 생성자 함수 본체에 추가.2. 앞선 checkNotNullParameter 함수는 DTO 생성을 원천 차단.3. 때문에 Kotlin non-null 검증이 spring-validation 검증 이전에 수행됨을 뜻함. 즉, 검증 대상이 생성이 되어야 spring-validation 절차를 거칠텐데, 검증 대상이 없는 상황이 된다.(이 부분은 저의 뇌피셜이 포함되었으므로 검증되지 못한 분석결과 입니다) 이 문제에 대해 다음의 해결 방법을 생각할 수 있습니다.field 타입을 nullable 하게 선언, 기본값 null 설정data class UserCreateRequest( @param:JsonProperty("email") @field:NotBlank @field:Email val email: String? = null, ⬅️`?`및 기본값 설정 ) { fun toCommand() = UserCreate( /* String ❌ String? 미스매치 */ email = email!!, ✅단언 해결 ) }이 방법은 단언 !! 을 사용하여 전적으로 spring-validation 의 검증에 전적으로 의지하는 코드입니다.의문점은 개인적으로 우아하지 못한 단언 !! 을 꼭 사용해야 할까? 인데요, 다른 방법으로는,Backing 필드 생성자 선언 ➡️ 커스텀 getter 로 Backing 필드값 반환이 떠오르는데요, 이것 또한 보일러-플레이트 코드량이 늘어나서 우아하지 않아 보입니다^^;강사님의 경우에는 어떠한 해결방법을 사용하지는지 궁금해서 질문 남겨보았습니다.읽어 주셔서 감사합니다.