[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] V5 주문조회 관련하여 질문드립니다. Order과 OrderItem은 1:N 관계이며, SELECT * FROM order LEFT JOIN orderItem ON order.id = orderItem.id 를 다음 두번의 쿼리 형식을 이용하여 JAVA 단으로 로직을 구현한것이 V5라고 이해하고 있습니다. SELECT * FROM order; SELECT * FROM orderItem WHERE orderItem.id in ( SELECT id FROM order ) 그런데, 다음 쿼리는 위와같이 두번의 쿼리 형식을 사용하여 JAVA 단으로 로직을 구현하기 난해합니다. 이미 서브쿼리의 결과는 aggregate 된 값이기 때문입니다. SELECT * FROM order LEFT JOIN orderItem ON order.id = orderItem.id WHERE order.name = orderItem.itemName // -> 상품명과 주문이름이 같은 경우만 fetch 1. 위와 같은 경우(where절에 양쪽 field가 모두 존재하는 경우)를 JAVA 로직으로 해결 할 방법이 있는지 JAVA 로직으로 해결할 방법이 올려놓으신 강의중에 있다면 대략적인 그 강의명을 알려주시면 찾아보겠습니다. 만약, 이미 올라와 있는 강의중에 해당 내용이 없다면, 평소 사용하시는 방식을 알려주시면 감사하겠습니다. 혹은 위와같은 경우엔 그냥 V6 형식을 평소 사용하시는지 2. 1번에 대한 해결책이 없더라도 혹시 LEFT OUTER JOIN이 아닌 INNER JOIN을 JAVA로 구현할 방법이 있는지 JAVA 로직으로 해결할 방법이 올려놓으신 강의중에 있다면 대략적인 그 강의명을 알려주시면 찾아보겠습니다. 만약, 이미 올라와 있는 강의중에 해당 내용이 없다면, 평소 사용하시는 방식을 알려주시면 감사하겠습니다. 혹은 위와같은 경우엔 그냥 V6 형식을 평소 사용하시는지 질문 드립니당
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 스프링 부트로 몇가지 애플리케이션을 만들어본 경험이 있는데 갑자기 일반 스프링프레임워크를 사용해야될 일이 생겨서 좀 당황스럽습니다. 스프링레거시에 대한 강의가 있는지 궁금합니다.
회원 서비스 개발 강의에서 같은 이름이 있는 중복 회원x부분에서 memberRepository.findByName(member.getName()) .ifPresent(m -> {throw new IllegalStateException("이미 존재하는 회원입니다." ); 이 함수에서 왜 throw new illegalStateException을 쓰는지 모르겠습니다 ㅠ 그냥 System.out.println()을 쓰면 안되나요 ???
api 작성할 때 service 말고 repository를 주입하신 이유가 궁금합니다. orderservice에도 repository에서 위임받은 메서드가 존재하는데 repository를 주입받은 특별한 이유가 있을까요? JPA 활용1편에서는 조회할때 성능 문제가 발생하지 않나요? Order가 Member와 Delivery에 xToOne으로 매핑되있는건 똑같아서 질문드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 수료 후 수료증을 얼마만에 나오나요? 완강 후 자동으로 생성되는줄 알았는데 아직 안나와서요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안드로이드 시스템에 id가 10,11,12,13,14,15 로 되어있는 프로세스를 수행하고자합니다. matrix: os_type: ['ANDROID'] id: ['10', '11', '12', '13', '14', '15'] steps: - name: '테스트 실행' run: |- curl -F '"os_type":"${{ matrix.os_type }}", "id":${{ matrix.id }} > post_result.txt 위 코드로 작성하였을 시 10, 11, 12, ,13, 14, 15 번 순서대로 수행되지않고 15, 12, 10, 13, 14 등 랜덤하게 수행이 되는데요, 다른 언어에서는 리스트를 정의한 순서대로 출력되는데 yml코드로는 랜덤하게 수행이 됩니다. 리스트를 순서대로 수행하고자 하려면 어떻게 해야할까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 현재 게임 프로그래밍 관련 4년제 학교를 다니다 회사에 입사해서 병역특례를 마치고, 3년차에 이직준비를 하고있는 상황입니다. 원래 유니티로 게임을 개발해 출시해보기도 했고, 이를 포트폴리오를 만들어서 긍정적인 평가를 받아 현재 회사에 입사하였으나, 회사 사정으로 인해 언리얼 신규 프로젝트 팀에 배치받아 근무를 하다 늦기 전에 현업에서 유니티를 사용하고싶어 유니티 프로젝트로 이직을 하려합니다. 루키스님의 유니티 서버 연계 강의를 듣던 중 취업 전략 가이드 강의를 찾게되어 강의를 모두 수강하고 질문을 남겨봅니다. 1. 강의를 듣기 전 주변에서 경력자와 신입의 이력서는 다르다는 이야기와 조언을 들었는데, 경력직의 자기소개서에서는 게임 프로그래밍에 관심을 갖게 된 계기는 오히려 방해만 된다고 들었는데, 경력직의 경우 이런 이야기는 빼는게 좋을까요? 2. 입사 후 포부같은 주제를 결론에 달았는데, 꿈에 대한 이야기를 하면서 '나중에 만들고싶은 프로젝트가 있고, 이러한 프로젝트를 완성하기 위해 반드시 유니티 프로젝트에 기여를 할 수 있는 경험이 있어야한다고 판단하여, 귀사의 프로젝트가 ~~해서 기여하고 싶다고 생각해서 지원하게 되었다.' 라는 글을 적었는데, 오히려 이러한 글들이 회사에 기여를 하는 것이 아닌 그저 자기가 하고싶은 프로젝트를 위해 일을 하는 것 같다는 조언을 들었습니다. 루키스님의 조언도 맞는 말 같고, 조언을 주신 분 께서 하신 말씀도 맞는 말 같아서 루키스님께서는 어떻게 생각하시는지 질문드리고 싶습니다. 3. 학부생 시절 간단한 게임 두 개 정도를 유니티로 만들어서 출시해본 경험, 그리고 연구실에서 Kinect V2 SDK를 이용한 키즈카페 미니게임 프로젝트의 컨텐츠를 유니티로 만들어서 기여해 본 경험이 있습니다. 자기소개서나 경력에 위 프로젝트들에 대한 언급을 했었는데, 경력직의 경우 실제 경력을 쌓기 전에 만들었던 이러한 프로젝트들을 기입하는건 특별할 정도로 뛰어난 프로젝트가 아니라면 분량만 차지할 뿐이라는 조언을 듣게되었습니다. 이러한 프로젝트들에 대하여 간단하게라도 기입을 하는 것이 좋을까요? 아니면 조언을 주신 분께서 말씀하신 것처럼 과감하게 제외하고 회사에서 업무를 봤던 일만 적는게 좋을까요? 개발에 참여했던 프로젝트들에 대한 영상을 첨부했습니다. 연구실 프로젝트: https://www.youtube.com/watch?v=JcptvyhVwvY 에픽 슈가 팩토리: https://play.google.com/store/apps/details?id=com.MadPenguinGameStudio.EpicSugarFactory&hl=en&gl=US 4. 아무래도 언리얼 프로젝트에서 유니티 프로젝트로 이직을 하려다보니 겁이 많이 듭니다. 루키스님께서는 언리얼에서 유니티로 이직하는 것이 메리트가 있다고 말씀해주셨지만, 제가 아직 이직에 메리트가 될만큼 언리얼에 대해서 잘 이해하고 있지 않다고 생각하고 있습니다. 이런 경우 경력직보다는 오히려 신입으로 들어가서 연차를 처음부터 다시 쌓는 것이 이직에 유리할지 여쭈어보고 싶습니다. 답변을 주실 수 있는 여유가 없으시더라도 강의를 통해 좋은 정보를 공유해주셔서 감사하다는 말씀을 전해드리고 싶었습니다. 장마가 무더위가 반복되는 여름이지만 무탈하고 시원한 여름을 보내셨으면 좋겠습니다. 긴 글 읽어주셔서 감사합니다.
안녕하세요 🙋‍♂️ 페이지 구현 - 일기 수정 (/edit) 듣고 있습니다. 새 일기쓰기 페이지와 수정하기 페이지가 동일한 DiaryEditor 컴포넌트를 공유하는데 새 일기쓰기는 이미지가 잘 들보이고 수정하기를 눌러서 보이는 페이지는 엑박이 떠서 주소를 어떻게 해주면 될까하는 생각에 앞에 env . PUBLIC_URL 을 다 지우고 assets/emotion~ 이 부분만 남겨봤는데 이 방법도 안되네요 ㅠㅠㅠㅠ const env = process . env ; env . PUBLIC_URL = env . PUBLIC_URL || "" ; 이건 해놨습니다!!! 어떤 해결방법이 있을까요?? 잘 나오는 이미지 URL http://localhost:3000/assets/emotion1.png 엑박뜨는 이미지 URL http://localhost:3000/edit/assets/emotion1.png
강사님 안녕하십니까 Nest Loop 실행 계획에서 이해가 잘 안가서 질문 남깁니다. 위와 같이 실행 되는 이유가 Join을 할 때 내부적으로 for문을 돌아야 하는 상황에서 for문 한번을 쭈욱 돌 때 clustered index가 lookup을 안하기 때문에 한바퀴 돌때 발생하는 연산이 non-clusterd보다 적어서 내부적으로 저렇게 처리하는 건가요??
아래는 코드들입니다. activity_main.xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ListView android:id="@+id/mainlistview" android:layout_width="match_parent" android:layout_height="match_parent"/> MainActivity.kt package com.example.listview import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.ListView import android.widget.Toast class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //val list_item = mutableListOf<String>() //list_item.add("A") //list_item.add("B") //list_item.add("C") val list_item2 = mutableListOf<listviewmodel>() list_item2.add(listviewmodel("a","b")) list_item2.add(listviewmodel("c","d")) //어뎁터와 메인을 연결하는 과정 val listview = findViewById<ListView>(R.id.mainlistview) val listviewadapter = ListViewAdapter(list_item2) listview.adapter = listviewadapter listview.setOnItemClickListener{parent, view, position, id -> Toast.makeText(this, list_item2[position].text1,Toast.LENGTH_LONG).show() } } } ListViewAdapter.kt package com.example.listview import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.BaseAdapter import android.widget.TextView class ListViewAdapter(val List : MutableList<listviewmodel>) : BaseAdapter() { override fun getCount(): Int { return List.size } override fun getItem(p0: Int): Any { return List[p0] } override fun getItemId(p0: Int): Long { return p0.toLong() } override fun getView(position: Int, converView: View?, parent: ViewGroup?): View { var converView = converView if (converView == null) { converView = LayoutInflater.from(parent?.context).inflate(R.layout.listview_item, parent, false) } val title = converView!!.findViewById<TextView>(R.id.listviewitemview1) val title2 = converView!!.findViewById<TextView>(R.id.listviewitemview2) title.text = List[position].text1 title2.text = List[position].text2 return converView!! } } llistview_item.xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ListView android:id="@+id/mainlistview" android:layout_width="match_parent" android:layout_height="match_parent"/> </androidx.constraintlayout.widget.ConstraintLayout> 이렇게 코드를 적고 디버깅을 할 때 07/18 14:45:35: Launching 'app' on leejanghan. Installation did not succeed. The application could not be installed. List of apks: [0] 'C:\Users\User\AndroidStudioProjects\listview\app\build\intermediates\apk\debug\app-debug.apk' Installation failed due to: ''cmd package install-create -r -t --user current --full --dont-kill --skip-verification -S 5146924' returns error 'Unknown failure: Exception occurred while executing 'install-create': android.os.ParcelableException: java.io.IOException: Requested internal only, but not enough space at android.util.ExceptionUtils.wrap(ExceptionUtils.java:34) at com.android.server.pm.PackageInstallerService.createSession(PackageInstallerService.java:595) at com.android.server.pm.PackageManagerShellCommand.doCreateSession(PackageManagerShellCommand.java:3416) at com.android.server.pm.PackageManagerShellCommand.runInstallCreate(PackageManagerShellCommand.java:1561) at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:232) at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97) at android.os.ShellCommand.exec(ShellCommand.java:38) at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:5952) at android.os.Binder.shellCommand(Binder.java:1049) at android.os.Binder.onTransact(Binder.java:877) at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4313) at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:5936) at android.os.Binder.execTransactInternal(Binder.java:1285) at android.os.Binder.execTransact(Binder.java:1244) Caused by: java.io.IOException: Requested internal only, but not enough space at com.android.internal.content.InstallLocationUtils.resolveInstallVolume(InstallLocationUtils.java:241) at com.android.internal.content.InstallLocationUtils.resolveInstallVolume(InstallLocationUtils.java:152) at com.android.internal.content.InstallLocationUtils.resolveInstallVolume(InstallLocationUtils.java:167) at com.android.server.pm.PackageInstallerService.createSessionInternal(PackageInstallerService.java:803) at com.android.server.pm.PackageInstallerService.createSession(PackageInstallerService.java:592) ... 12 more'' Retry Failed to launch an application on all devices 와 같은 오류가 뜹니다 코드의 내용은 잘 적은 것 같은데, 오류가 발생해 그 이유가 무엇인지 궁금합니다. 감사합니다!!
안녕하세요. 강의 듣다가 궁금증이 생겨서 질문 드립니다. 이 Bike Sharing Demand 데이터 실습에서 원핫인코딩을 수행할 때, 인코딩을 먼저 수행 후 train과 test를 분리했는데, 실전을 포함해서 test 데이터가 이미 분리된 상태로 주어진 경우 도 많은 것 같아요. 근데 이럴 때 train과 test 각각 따로 인코딩을 수행하면 특정 칼럼에 대해 서로 없는 범주가 포함될 수 있을 것 같습니다. (예를들어 train에는 개/고양이만 있는데, test에는 개/고양이/원숭이 범주까지 있다던지..) 이 경우에 칼럼 갯수에도 차이가 발생할텐데 이때 모델 학습/예측시에 문제가 발생하지 않나요? 그렇다고 pd.concat 등으로 데이터를 합치고서 인코딩을 수행 후 다시 분리하면 데이터 리키징 문제가 발생한다고 들었습니다. (아니라면 말씀해주세요!) 머신러닝/딥러닝 강의 계속 잘 듣고 있습니다. 감사합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의를 보다가 궁금한 점이 생겨서 질문드려요 generated 경로를 buildDir에 넣는 방법이 있고, 이번 강의처럼 main 아래에 두는 방법이 잇는 것 같은데요 둘 중에 어느 방법이 좀더 좋은 걸까요? 사실 두 방법 개발하는데 큰 문제는 아닌 것 같지만 혹시 의견을 주실 수 있으실까요? jpa, 스프링 완전정복 모두 굉장히 잘 보고 있습니다. 감사합니다!
최근 vue cli가 업데이트 되면서 vue prefetch기능을 활성화하기 위해서는 component: () => import(/* webpackChunkName: "about"*/ /*webpackPrefetch: true*/ '../views/AboutView.vue') 위와 같이 index.js의 컴포넌트 코드에 webpackPrefetch: true코드를 추가해야 하는것으로 알게되어 코드에 추가하였고, 정상 작동되었습니다. 그런데, 강의상에 나와있는 것처럼 위의 index.js코드를 그대로 둔 채로 vue.config.js에 module.exports={ chainWebpack: config=>{ config.plugins.delete('prefetch'); //prefetch 삭제 } }; 를 추가하고 서버를 재기동 했을 때 prefetch옵션이 제거되지 않고 그대로 작동합니다. 혹시 이것도 업데이트 되면서 바뀐 부분인가요?