묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[비전공자 대환영] 캐글 데이터를 활용한 Optuna with MLFlow - 캐글다지기
jupyter nbextension enable --py widgetsnbextension 에러발생
vscode 터미널에서 jupyter nbextension enable --py widgetsnbextension 실행시 아래와 같은 에러가 발생합니다.Jupyter command jupyter-nbextension not found.해결방법이 어떻게 될까요??
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
피그마 에듀케이션 계정 신청 관련
안녕하세요, 강의 자료에서 알려주신 피그마 에듀케이션 계정 신청이 이제는 안되는 것인지 궁금합니다. 알려주신 가이드 대로 했는데요, 학생 이메일이 아니라서 그런지 신청 버튼을 누르면 계속 초기화돼서 신청이 안 됩니다 ㅠㅠ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
매개변수 이해가 잘 안됩니다.
안녕하세요, 수업 잘 듣고 있습니다. 79번째 줄 weatherSearch라는 function에 postion이 매개변수로 들어가는 이유가 잘 이해가 안 됩니다.만약, postion 대신 87번째 줄의 positionObj가 매개변수로 들어 가면 어떻게 되나요? 아직 매개변수 자체의 개념이 약한 것 같은데 좀 더 이해할 수 있게 도와주시면 감사하겠습니다!
-
미해결
Discover the Magic | Organic Essential Oils for a Healthier You
Come along on a journey into the fantastic world of organic essential oils – they're like nature's own special potions that can make you feel better. This article is like your map to understanding what these oils are, what good things they can do for you, and ways to use them. We'll chat about how these oils are taken out of plants, meet some popular ones like peppermint and tea tree, and learn how to pick the perfect oils. Let's discover how these oils can be nice and helpful and find out how they're made in a way that's kind to our planet. Ready to add a touch of nature to your everyday life? Definition and BasicsOrganic essential oils are like nature's potent elixirs, distilled from plants to capture their essence. These oils are pure, chemical-free, and carry the therapeutic properties of the plants they come from. From lavender's calming aroma to the refreshing scent of peppermint, each oil is a gift from nature.Benefits of Choosing OrganicChoosing organic essential oils is a conscious step towards a healthier lifestyle. These oils, free from synthetic additives and pesticides, offer holistic well-being. By opting for organic, you embrace the purest form of nature, ensuring that what you inhale or apply to your skin is as close to the plant as possible.The Extraction ProcessUnderstanding DistillationThe process of distillation is like a time-honoured dance between nature and science. It involves heating plant material to release its aromatic compounds, capturing them, and then cooling them back into liquid form. This careful process ensures that the essential oil retains its purity and therapeutic properties.Cold Pressing MethodCold pressing is a method used primarily for citrus oils. It involves mechanically pressing the essential oil from the rind of the fruit. This gentle method ensures that the oil retains its fragrance and doesn't undergo heat-related degradation, making it a preferred choice for preserving the goodness of the plant.Popular Types of Organic Essential OilsPeppermint OilPeppermint oil is like a burst of freshness. It's renowned for its refreshing scent, offering relief from headaches, boosting energy levels, and aiding digestion. Adding a few drops of peppermint oil to your diffuser can transform your space into a revitalizing haven.Tea Tree OilTea tree oil is nature's remedy for various skin concerns. With its antimicrobial properties, it's often used to soothe skin irritations, treat acne, and promote overall skin health. A few drops diluted with a carrier oil can work wonders for your skin.Eucalyptus OilEucalyptus oil is a respiratory hero. Its fresh and camphoraceous aroma helps clear congestion and supports respiratory health. Inhaling the vapours of eucalyptus oil can provide relief during cold and flu seasons.Benefits and UsesAromatherapyAromatherapy is like a fragrant hug for your mind and body. By inhaling the aroma of essential oils, you can positively influence your mood, reduce stress, and promote relaxation. Lavender oil, for example, is celebrated for its calming properties, making it a go-to choice for peace.SkincareOrganic essential oils are your allies in achieving radiant skin. From the hydrating properties of rose oil to the soothing effects of chamomile, these oils can be incorporated into your skincare routine to address various skin concerns. Mix a drop or two with your moisturizer and let your skin soak in the natural goodness.Home CleaningBid farewell to harsh chemicals and embrace the power of essential oils in your cleaning routine. Lemon oil, with its antibacterial properties, can be mixed with vinegar to create a compelling and pleasant-smelling all-purpose cleaner. A few drops go a long way in keeping your home naturally clean.How to Identify Quality Organic OilsCertification StandardsNavigating the world of certifications ensures that you're choosing oils of the highest quality. Look for labels like "USDA Organic" or "Certified Organic" to guarantee that your essential oils meet stringent organic standards. These certifications are a reliable mark of purity.Reading LabelsDecoding the labels on essential oil bottles might seem like a small science, but it's a crucial skill. Ingredients should be simple, indicating that the oil is pure and free from additives. Check for the plant's botanical name to ensure you're getting what you expect.Storage and Shelf LifeBest PracticesTo keep your essential oils potent, store them in a cool, dark place. Amber glass bottles are ideal for protecting oils from light exposure. By keeping them away from direct sunlight and heat, you ensure that the magic within each bottle remains intact.Avoiding SpoilageEssential oils are precious, but they can lose their magic over time. To avoid Spoilage, make sure to cap the bottles tightly after use. If stored correctly, most essential oils have a shelf life of one to two years, ensuring their effectiveness for an extended period.DIY Recipes with Organic Essential OilsRelaxing Diffuser BlendsCreating your oasis of calm is easier than you think. Mix lavender and chamomile oils in your diffuser for a relaxing blend that helps you unwind after a long day. Experiment with different combinations to find your perfect aroma.Natural Cleaning SolutionsSay goodbye to harsh chemicals with natural cleaning solutions. Combine tea tree oil, lemon oil, and white vinegar for an antibacterial and refreshing cleanser. Your home will thank you for the chemical-free makeover.Homemade Skincare TreatmentsTreat your skin to a spa day with DIY skincare treatments. Combine a drop of frankincense oil with your favourite carrier oil for a luxurious facial serum. The natural ingredients work together to nourish and rejuvenate your skin.Cautions and ConsiderationsAllergies and SensitivitiesWhile organic essential oils offer numerous benefits, it's necessary to be aware of potential allergies or skin sensitivities. Perform a patch test before widespread use, especially if you have sensitive skin or known allergies to certain plants.Safe Usage GuidelinesEssential oils are potent, and a little goes a long way. Dilute them with a carrier oil before applying them to the skin, and always follow recommended usage guidelines. If you're pregnant, nursing, or have specific health concerns, consult with a healthcare professional before incorporating essential oils into your routine.ConclusionIn our journey through the magic of organic essential oils, we've unveiled their pure origins, therapeutic benefits, and versatile applications. From the soothing powers of lavender to the invigorating freshness of peppermint, these oils bring nature's goodness to your daily life. As we conclude, consider integrating organic essential oils into your daily routine. Whether you seek relaxation, skincare, or a natural home environment, these oils offer a holistic approach to well-being. Embrace the magic of nature and experience a healthier, more vibrant you.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@OneToMany 를 쓰는 이유??
생각해보니 양방향 연관관계를 써야 하는 근본적인 이유가 무엇이었나요? 예를 들면 member 와 team 이 다대일 이라면 ,team 에 @OneToMany 가 있을 텐데지금까지 강의에서 보았을떄는 그냥 주 Entity에서 @OneToMany 써서 연관관계 편의 메서드 만들어서 데이터 넣는 느낌? 이 다인 것같은데 근본적인 이유가 뭘까요. 이전 JPA 강의에서는 @OneToMany를 쓸때는 조회하는 것만 사용하라고 했었던 기억이 나는데 강의에서는 @OneToMany를 사용해서 조회해서 APi로 반환한다거나 그런 내용이 없었던 걸로 기억해요 . . .
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
스크립트 실행 결과 미표시
텔레그램봇으로 알림이 안뜨는건 nginx의 용량이 안차서 그런것 같은데 혹시 고의적으로 용량을 늘릴 수 있는 방법 있을까요?
-
해결됨그림으로 쉽게 배우는 운영체제
SJF 알고리즘
SJF 알고리즘은 그럼 이론적으로만 존재하는 거고 현실에서는 전혀 쓰이지 않는다고 보면 될까요?Burst Time이 짧은 프로세스를 먼저 실행한다고 하는데제가 생각해도 강의에서 말씀하신 대로 '어떤 프로세스가 얼마나 실행될지'는 사용자 마음인 건데 어떻게 알고 짧은 프로세스를 먼저 배치하지? 라는 생각이 들어서요
-
해결됨김영한의 실전 자바 - 기본편
2. 기본형과 참조형 - 메서드편에서, pdf 14페이지 수정해야하는 것이 아닌가요?
해당 pdf에는 int dataX = dataA라고 되어있는데, Data dataX = dataA라고 수정을 해야하지 않을 까 싶어서 올리게 되었습니다.파라미터로 dataA의 참조값을 dataX에 복사하는 것이고, 실제로 System.out.println(dataA)와 System.out.println(dataX)를 찍어보면, ref 패키지의 Data클래스로부터 만들어진 인스턴스의 참조값이 찍혀서 나오니, 이건 int형이 아닌 것 같아서요.dataX = x001 참조값, dataA = x001 참조값을 가진다고 하고, 해당 참조값을 통해, Data인스턴스의 멤버변수인 value에 접근해서 dataX.value = 20이라 변경했으니, dataA.value = 20으로 변경이 되는 것이고 만약 이를 의도하고 작성한 것이라면 int dataA.value = dataX.value 라고 적어야 하지 않을까요?
-
해결됨프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
chapter06_02 reportMissingimports
안녕하세요 vscode에서test_module를 import해서 쓰는 거는 문제 없이 되는데밑에 노란줄이 끄이면서 reportMissingimports가 뜨는데 pylance와 jedi의 차이로 인해서 이런 문제가 발생하기도 할까요?settings json에 python.languageServer를 보니까 defalut로 pylance를 쓰던데 jedi로 수정해보려 하니 읽기전용 모드라서 수정이 불가하다고 뜨네요 혹시 어떤 문제가 있을까요? 버전은 문제 없는 것 같습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
저는 왜 강의랑 다르게 될까요?
각 연결선에 has exit time도 모두 체크되어있는데 RUN의 Transitions 순서에는 WAIT으로 애니메이션이 실행되어야하는데 왜 저는 JUMP가 실행될까요?
-
미해결자바 코딩테스트 - it 대기업 유제
이렇게 풀어도 되는지 궁금합니다.
import java.util.*; class Node implements Comparable<Node>{ int time; char state; public Node(int time, char state){ this.time = time; this.state = state; } @Override public int compareTo(Node o){ if(this.time == o.time)return this.state - o.state; return this.time - o.time; } } class Solution { public int solution(int[] laser, String[] enter){ int answer = 0; ArrayList<Node> arr = new ArrayList<>(); for(String s:enter){ String t = s.split(" ")[0]; String l = s.split(" ")[1]; int start = Integer.parseInt(t.split(":")[0])*60 + Integer.parseInt(t.split(":")[1]); int end = start + laser[Integer.parseInt(l)]; arr.add(new Node(start, 's')); arr.add(new Node(end, 'e')); } Collections.sort(arr); int cnt = 0; for(Node x:arr){ if(x.state == 's')cnt++; else{ cnt--; answer = Math.max(answer, cnt); } } return answer; } public static void main(String[] args){ Solution T = new Solution(); System.out.println(T.solution(new int[]{30, 20, 25, 15}, new String[]{"10:23 0", "10:40 3", "10:42 2", "10:52 3", "11:10 2"})); System.out.println(T.solution(new int[]{30, 20, 25, 15}, new String[]{"10:23 0", "10:40 3", "10:42 2", "10:52 3", "15:10 0", "15:20 3", "15:22 1", "15:23 0", "15:25 0"})); System.out.println(T.solution(new int[]{30, 20, 25, 15}, new String[]{"10:20 1", "10:40 1", "11:00 1", "11:20 1", "11:40 1"})); System.out.println(T.solution(new int[]{30, 20, 25, 15}, new String[]{"10:20 1", "10:20 1", "10:20 1", "10:20 1", "10:20 1"})); } } 입문강의 결혼식과 비슷한 문제로 생각해 이렇게 짰는데 답은 맞게 나왔습니다. 혹시 반례가 있을까요? 아니면 이 방법도 맞는 방법일까요?
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
전처리 관련해서 질문 있습니다.
Detection 모델 같은 경우에는 라벨에 좌표가 들어 있습니다.Transform을 통해서 crop이나 rotate 같은 행위를 했을때 좌표도 변경이 되어야 하는데요 이런경우에 대한 해결책도 torch가 제공을 해주나요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
웹뷰에서 사이트로 넘어갈 때 오류가 납니다.
package com.example.mango_content import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView class MainActivity : AppCompatActivity() { //데이터 넣을 리스트 변수 생성 private val items = mutableListOf<ContentsModel>() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 리스트 데이터 // 데이터 클래스이기 때문에 차례대로 넣을 값만 넣어주면 된다 items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/Quiver/shopPhotoList", "https://image.toast.com/aaaaaqx/rv/s4XU7ZHko4NjDEkULtFHbAA/231108173855775(0).jpeg", "퀴버(Quiver)" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/bistrogama/shopPhotoList?pickup-date=231207&pickup-time=0342", "https://image.toast.com/aaaaaqx/catchtable/shopinfo/s23522/23522_2221020170729696.jpg?detail750", "비스트로 가마" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/cucciolo_seoul/shopPhotoList?type=VISIT_RESERVATION&pickup-date=231207&pickup-time=0346", "https://ugc-images.catchtable.co.kr/rv/s7YDg2g4TxcuMPb-Eds2nKQ/4179dd6517aa48e1900c08e8c9c769a5", "쿠촐로 서울" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/schedule_seongsu/shopPhotoList?type=VISIT_RESERVATION&pickup-date=231207&pickup-time=0352", "https://ugc-images.catchtable.co.kr/rv/sXGZ4Ldt3lvBgj3V-4rxIsQ/e6ce38eef9ee412ca63da36dacabc57a", "스케줄 성수" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/Quiver/shopPhotoList", "https://image.toast.com/aaaaaqx/rv/s4XU7ZHko4NjDEkULtFHbAA/231108173855775(0).jpeg", "퀴버(Quiver)" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/bistrogama/shopPhotoList?pickup-date=231207&pickup-time=0342", "https://image.toast.com/aaaaaqx/catchtable/shopinfo/s23522/23522_2221020170729696.jpg?detail750", "비스트로 가마" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/cucciolo_seoul/shopPhotoList?type=VISIT_RESERVATION&pickup-date=231207&pickup-time=0346", "https://ugc-images.catchtable.co.kr/rv/s7YDg2g4TxcuMPb-Eds2nKQ/4179dd6517aa48e1900c08e8c9c769a5", "쿠촐로 서울" ) ) items.add( ContentsModel( "https://app.catchtable.co.kr/ct/shop/schedule_seongsu/shopPhotoList?type=VISIT_RESERVATION&pickup-date=231207&pickup-time=0352", "https://ugc-images.catchtable.co.kr/rv/sXGZ4Ldt3lvBgj3V-4rxIsQ/e6ce38eef9ee412ca63da36dacabc57a", "스케줄 성수" ) ) val recyclerview = findViewById<RecyclerView>(R.id.rv) val rvAdapter = RVAdapter(baseContext,items) recyclerview.adapter = rvAdapter // 아이템 클릭 처리 rvAdapter.itemClick = object : RVAdapter.ItemClick { override fun onClick(view: View, position: Int) { val intent = Intent(baseContext, ViewActivity::class.java) intent.putExtra("url", items[position].url ) startActivity(intent) } } recyclerview.layoutManager = GridLayoutManager(this,2) } }MainActivity.kt package com.example.mango_content import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView import androidx.appcompat.view.menu.MenuView.ItemView import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.bumptech.glide.Glide //viewmodel을 받을 것임 class RVAdapter(val context: Context, val List: MutableList<ContentsModel>) : RecyclerView.Adapter<RVAdapter.ViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RVAdapter.ViewHolder { val v = LayoutInflater.from(parent.context).inflate(R.layout.rv_item, parent, false) return ViewHolder(v) } // 웹뷰 클릭 이벤트 생성 interface ItemClick { fun onClick(view : View, position: Int) } var itemClick : ItemClick? = null override fun onBindViewHolder(holder: RVAdapter.ViewHolder, position: Int) { if (itemClick != null) { holder.itemView.setOnClickListener { v -> itemClick!!.onClick(v, position) } } holder.bindItems(List[position]) } override fun getItemCount(): Int { return List.size } inner class ViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView) { fun bindItems(item : ContentsModel) { val rv_img = itemView.findViewById<ImageView>(R.id.rvImageArea) val rv_text = itemView.findViewById<TextView>(R.id.rvTextArea) rv_text.text = item.titleText Glide.with(context) .load(item.imageUrl) .into(rv_img) } } } RVAdapter.kt package com.example.mango_content import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.webkit.WebView class ViewActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_view) val webView = findViewById<WebView>(R.id.webView) webView.loadUrl(intent.getStringExtra("url").toString()) } }ViewActivity.kt<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Mango_content" android:usesCleartextTraffic="true" tools:targetApi="31"> <activity android:name=".ViewActivity" android:exported="false" /> <activity android:name=".SplashActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:exported="true"></activity> </application> </manifest>manifest.xml실행 했을 시, 다음과 같은 오류가 일어납니다.망고플레이트가 서버 종료되어서 저는 캐치테이블 사이트를 이용하였습니다.오류 구글링하여 매니패스트에android:usesCleartextTraffic="true" 도 추가 하였는데 그대로 오류나서 질문 드립니다. ㅠㅠ
-
해결됨파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)
mouse listener 관련해서 질문 드립니다.
안녕하세요,wsl2 ubuntu 환경에서 스크롤 녹화하는 실습 코드를 실행하는데 클릭하거나 스크롤을 해도 출력이 안되고 파일에 저장이 안되고 있습니다. 혹시 pynput라이브러리 리눅스 환경에서 사용하려면 추가로 설정 해야 하는 부분이 있을까요?
-
미해결모바일 웹 퍼블리싱 포트폴리오 with Figma
상품 상세페이지 아코디언 부분
/* Goods Accordion */ $('.goods-accordion .detail').eq(0).show() $('.goods-accordion .title').click(function(){ $(this).toggleClass('active') $(this).next().toggle() $(this).siblings('.goods-accordion .title').removeClass('active') })상품문의에 클레스가 들어가서 상품후기에 있는 엑티브가 빠졌는데상품문의 밑에 디테일은 안접혀졌어요 (영상강의캡쳐)이렇게 적을경우에 .title부분은 class가 빠져서 시블링이 되는데 .detail 부분은 접었다 펴는 토글이라서 계속클릭하면 .title +,- 와 .detail의 이미지가 안맞는데 이런경우에는 어떻게 하나요 ㅠ?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
강의 소스코드 에러
지금 강의 소스 코드가 제대로 다운로드 되지 않습니다 문제 해결해주시면 감사하겠습니다
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
트랜잭션 동작 원리 정리
트랜잭션의 동작 원리에 대해서 정리해봤습니다.제대로 이해했는지 확인 부탁드립니다! 혹시 잘못 이해하고 있는 부분이 있다면 말씀 부탁드립니다. 서비스 클래스의 메소드에 @Transactional 이 있으면 스프링은 해당 비즈니스 로직을 상속한 AOP 프록시 객체를 생성한 후, 이를 스프링 빈에 등록한다.클라이언트가 해당 프록시를 호출한다. (비즈니스 로직 자체를 호출하지 않는다)스프링은 스프링 컨테이너에 등록된 트랜잭션 매니저를 획득한다.트랜잭션 매니저의 transactionManager.getTransaction()을 호출하여 트랜잭션을 시작한다.트랜잭션 매니저는 스프링 컨테이너에 등록된 데이터 소스를 이용하여 커넥션을 생성한다.커넥션의 con.setAutoCommit(false) 호출로 수동 커밋 모드로 변환한다.생성하고 설정을 끝낸 커넥션을 트랜잭션 동기화 매니저에 보관한다.실제 서비스를 호출하면, 서비스의 비즈니스 로직과 리포지토리의 데이터 접근 로직이 수행된다.리포지토리의 데이터 접근 로직은 트랜잭션 동기화 매니저에 보관된 커넥션을 획득한 후 DB에 접근하여 SQL을 수행한다.비즈니스 로직이 끝나면서 AOP 프록시에서 커밋 또는 롤백을 통해 트랜잭션을 종료한다.트랜잭션을 종료함으로써 커넥션은 커넥션 풀에 반납된다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
프록시 객체 생성은 @Transactional 메소드 단위인가요?
프록시에 대해서 잘 모르는 상태로 질문드립니다.앞으로 다른 강의에서 나올 수 있는 내용이지만, 일단 큰 그림을 잡을 수 있게 간단하게 질문드립니다. 이번 강의에서 메소드에 @Transactional을 붙이면 프록시 객체가 만들어진다고 배웠습니다.그렇다면 @Transactional가 붙어있는 메소드 단위로 프록시 객체가 만들어지는 건지, 아니면 Service 클래스 단위로 프록시 객체가 만들어지는 건지 궁금합니다.예를 들어, Service 클래스에 3개의 메소드가 있다고 가정했을 때, @Transactional 메소드가 2개, 일반 메소드가 1개 있다면, 프록시 객체는 2개가 만들어지는 건가요? 아니면 한 개의 프록시 객체에 두 개의 메소드가 등록되는 건가요?
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
스탯 구조체 리플리케이션의 컨디션 설정
실습에선 BaseStat 과 ModifierStat은 각 입력 권한이 있는 클라이언트( 원격 Autonomous)에만 전달 되도록 Condition지정하는 의도로 COND_OwnerOnly를 하였는데요. condition을 COND_AutonomousProxy으로 하는건 또 달라 지는 건가요?? 설명으로는이렇게 나와 있는데, 이 "소유권을 가지고 있다" 라는 정의가 또 좀 헷갈리기 시작한 것 같습니다..... 서버에서 로컬 룰 Authority / 원격 AutonomousProxy 인 액터가 COND_OwnerOnly에 해당한다면 COND_AutonomousOnly에 해당하는 액터는 어떤 경우인가요??
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
컨트롤러가 뷰어인 경우가 어떤 상태인 건가요??
한번 다시 훑어보는 중에 액터의 상태가 "플레이어 컨트롤러가 뷰어인 경우"의 의미가 조금 헷갈리는 것 같습니다.액터의 최종 Owner가 플레이어 컨트롤러인 경우 라는 뜻인가요? 아니면 말그대로 플레이어 컨트롤러 = Viewer 라는 뜻인가요?플레이어 컨트롤러가 뷰어가 아닌 경우도 있는 건가요??