- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 함수로 props를 전달하는 부분 (강좌 12:00 ~)에서, 기존에는 받은 값을 int로 바꾸는 작업을 했었는데 함수로 전달하면서 애초에 int값을 주는 것으로 변경했습니다. 이 변화로 인해 기존 코드에서 parseInt 관련 부분을 삭제/수정했습니다. 그런데.. 12:57 부근에서 <PostDetailView id="1"> 을 <PostDetailView :id="1"> 로 변경했습니다. 이 작업이 어떤 의미를 갖나요? v-bind를 추가한 것이 "1"을 string에서 int로 인식하게 하는게 이해가 되지 않습니다. 미리 감사합니다!
정수님 블로그를 보다가 자바 기술 서적으로 자바의정석을 읽으신것같아서 그런데 자바의정석이 입문자로써는 조금 이해하기 힘들수도 있다고 하더라구요 그런데 비전공자인 제가 자바강의만 2개정도 듣고 자바의정석을 독학하려고하는데 혹시 이해하는데 문제없을까요?? 조금 어려우면 이것이 자바다 책을 살려고합니다. 물론 유튜브 강의도 같이 볼예정입니다!! 그리고 자바의정석3판이 나온지 7년이나되었고 내년에 4판이 나온다고 하던데 지금 3판으로 공부하는데 문제가 없을까요?? 버전들도 많이 바꼇을것같아서요 ㅠㅠ
동일하게 코드를 작성했는데, 결과는 맞지 않다고 나오네요. null값이 제외되는거 같은데 어떻게 하면 null값을 나오게 하나요 SELECT firstName, lastName, city, State FROM Person INNER JOIN Address ON Person.personId = Address.personId
안녕하세요. 질문이 두 가지 있습니다. 강의에선 node_modules가 호스트에 없어서 참조에서 제외하고, 나머지 소스코드는 존재하여 전부 참조하는식으로 진행이 되었는데, 그럼 docker build시 COPY ./ ./ 이부분은 아예 필요가없는거 아닌가요? 이미지에 이미 소스가 존재할텐데, 강의처럼 볼륨참조 설정을 넣어주면 컨테이너 생성 시, 이미 존재하는 소스는 호스트에서 가져와서 덮어쓰기된다고 이해하면 될까요?
예제 내용 그대로 수행하였고요. 몇가지 질문드립니다. forms.py 에서의 title 정의와, models.py에서 내린 title 정의가 서로 다를 경우, forms.py 가 우선시 되는 것 같은데요. 속성값(max_length)이 달라도 상관없는 지.. [ froms.py ] class PostForm(forms.Form): title = forms.CharField(label='제목', max_length= 2) [models.py] class PostForm(forms.Form): title = forms.CharField(label='제목', max_length= 2) content = forms.CharField(label='내용', widget = forms.Textarea) ModelForm 을 사용시 model =Post 로 가져오는 것 같은데, 기본적인 models 내용은 참조하게 되는건가요? class PostForm(ModelForm): class Meta : model = Post fields = ['title','content'] labels = { 'title' : _('제목'), 'content': _('내용'), } help_texts={ 'title' : _('제목을 입력해주세요.'), 'content' : _('내용을 입력해주세요. '), } error_messages = { 'name' : { 'max_length': _("제목이 너무 깁니다. 30자 이하로 해주세요.") } } title 입력 폼에서 성공시에는 confirm 으로가고, max 길이 오류시에 create/로 가도록 했었는데요. [views.py] def confirm(request): form = PostForm( request.POST ) if form.is _valid(): return render(request, 'second/confirm.html', {'form': form}) return HttpResponseRedirect('/second/create/') ModelForm 으로 사용시에는 동일한 코드이고 다만 에러가 나면 list화면으로 넘어가도록 되어 있는데, 성공을 해도 list 화면으로 넘어가는 이유를 모르겠습니다. [views.py] def create(request): if request.method =='POST': form = PostForm( request.POST ) if form.is _valid(): new_item = form.save () return HttpResponseRedirect('/second/list/') form = PostForm() return render(request, 'second/create.html', {'form':form})
강좌에서 알려주신대로 페이지의 getServerSideProps로 초기로드를 SSR하는 방식을 제 프로젝트에서도 적용을 했는데요. 모든 페이지에 SSR을 진행하다보니 막상 배포해서 돌려보면 첫페이지 로드를 빨리 보여주는 장점보다, 서버에서 렌더링을 기다려야하는 단점이 눈에 띄게 보였습니다. 사실 모든 페이지에서 SSR을 적용하면 기존의 전통적인 웹과 다를바가 없지않나라는 생각들 들고, SEO vs SPA 둘 중의 하나의 고민으로 오게되는데 제로초님은 이런경우에 어떤 기준으로 판단을 하시나요? getStaticProps() 가 SSG(static site generation)에 해당하고 getServerSideProps() 가 SSR(server side rendering)에 해당하는것이 맞나요?
제가 대학교 동아리로 처음 유니티를 배우고 있는데 다른사람과 같이 만드는 중이어서 제가 만든 메인 화면을 패키지로 압축해 다른 사람들과 같이 만드는 파일 안에 넣었는데 계속 투명하게 오류가 나요 유니티 버전은 똑같은데 컴파일 오류가 난다고 나옵니다. 지웠다 재설치를 했는데도 같은 결과인데 어떻게 해결해야 하나요?
생성자에서 bNotifyTick = true;를 해주고 틱테스크 함수에 디버깅 포인트를 찍고 디버깅을 해봤으나 함수에 들어오지 않는 것 같습니다. 혹시 저 부분 외에 다른 작업도 해주어야 하나요? 그리고 람다를 사용해서 계속 델리게이트를 구독하는 것 같아서 bool값을 통해 초기 한 번만 등록되도록 바꿔봤는데 혹시 문제가 있을까요? 아직 델리게이트를 정확히 이해하지 못해 질문 드립니다.
어떤 경우에는 AddUObject로 등록하고, 어떤 경우에는 AddDynamic로 등록하는데 이 둘의 차이는 무엇인가요? 그리고 만약 맨처음에만 등록하는게 아니라 틱마다 Add함수를 사용해서 등록한다면 등록된 만큼 콜백함수가 호출되나요? 델리게이트가 무엇인지는 이해했지만 정확한 원리를 이해하기가 힘듭니다..ㅠㅠ
앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
안녕하세요 강의 잘 듣고있습니다!! 제가 가위바위보 앱을 강의 보면서 따라만들때는 이 오류가 안떴는데 혼자 복습하면서 만들다보니 viewDidLoad 함수 내부에서 comImageView.image = #imageLiteral( 준비 이미지를 설정하는데 빌드를 하면 오류가 뜹니다. 오류는 : Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value 라고 뜨는데 comImageView.image 에 준비 이미지를 넣어줬는데도 왜 옵셔널이라 뜨는거죠..? 원본 코드랑 비교해도 다른 점이 없고 구글링해도 안나와서 질문드립니다ㅠㅠ 답변해주시면 감사하겠습니다! 아래는 제 ViewController 화면입니다
1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 @Slf4j @RestController @RequiredArgsConstructor public class TemController { private final temRepository temRepository; private final FileStore fileStore; @GetMapping("/tems/kkk") public String kkk(){ return "temtem"; } @GetMapping("/tems/new") public String newItem(@ModelAttribute TemDto dto) { return "item-form"; } @PostMapping("/tems/new") public String saveItem(@ModelAttribute TemDto dto) throws IOException { /*// UploadFile attachFile = fileStore.storeFile(dto.getAttachFile()); UploadFile attachFileee=fileStore.storeFile(attachFile); //데이터베이스에 저장 Tem tem = new Tem(); tem.setTemName(temName); tem.setAttachFile(attachFileee); temRepository.save(tem);*/ UploadFile attachFile = fileStore.storeFile(dto.getAttachFile()); //데이터베이스에 저장 Tem tem = new Tem(); tem.setTemName(dto.getTemName()); tem.setAttachFile(attachFile); temRepository.save(tem); return "ok"; } @ResponseBody @GetMapping("/images/{filename}") public Resource downloadImage(@PathVariable String filename) throws MalformedURLException { return new UrlResource("file:" + fileStore.getFullPath(filename)); } @GetMapping("/attach/{temId}") public ResponseEntity<Resource> downloadAttach(@PathVariable Long temId) throws MalformedURLException { Tem tem = temRepository.findById(temId); String storeFileName = tem.getAttachFile().getStoreFileName(); String uploadFileName = tem.getAttachFile().getUploadFileName(); UrlResource resource = new UrlResource("file:" + fileStore.getFullPath(storeFileName)); log.info("uploadFileName={}", uploadFileName); String encodedUploadFileName = UriUtils.encode(uploadFileName, StandardCharsets.UTF_8); String contentDisposition = "attachment; filename=\"" + encodedUploadFileName + "\""; return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition) .body(resource); } } 교재와 거의 흡사하게 RestController로 짰습니다. 서버에 저장할때는 saveItem을 사용했습니다. 실제로 지정된 경로에 이미지가 저장이 되었습니다. 그런데 postman통해서 이미지를 확인하고 싶어서 responseEntity<Resource>를 사용했는데... 이렇게 이미지가 나오는게 아니라 다 깨져서 나옵니다. 혹시 뭐가 잘못되었는지 아실까요?
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
유튜브 다트 강의, 인프런 플러터 강의, 그리고 코드팩토리의 플러터 프로그래밍 책까지 잘 보고 있습니다. 양질의 컨텐츠와 친절한 답변에 매번 감사드립니다. 현재 챗gpt api를 이용한 간단한 앱을 만들었고 이것을 빌드하려고 합니다. 책 606쪽의 flutter build appbundle이라고 터미널에 치면 아래 에러가 납니다. mac@HanHoseokui-iMac kind_teacher_han % flutter build appbundle 💪 Building with sound null safety 💪 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:mergeReleaseResources'. > Multiple task action failures occurred: > A failure occurred while executing com.android.build .gradle.internal.res.Aapt2CompileRunnable > Android resource compilation failed ERROR:/Users/mac/Documents/codefactory/kind_teacher_han/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: AAPT: error: file failed to compile. > A failure occurred while executing com.android.build .gradle.internal.res.Aapt2CompileRunnable > Android resource compilation failed ERROR:/Users/mac/Documents/codefactory/kind_teacher_han/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: AAPT: error: file failed to compile. > A failure occurred while executing com.android.build .gradle.internal.res.Aapt2CompileRunnable > Android resource compilation failed ERROR:/Users/mac/Documents/codefactory/kind_teacher_han/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: AAPT: error: file failed to compile. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 5s Running Gradle task 'bundleRelease'... 6.2s Gradle task bundleRelease failed with exit code 1 이미지 쪽에 에러가 있는 것 같아 보입니다. 저는 앱 아이콘 만들기 웹 사이트( https://www.appicon.co)에서 제가 만든 아이콘으로 안드로이드용 이미지를 만든 후 /Users/mac/Documents/codefactory/kind_teacher_han/android/app/src/main/res에 폴더 붙여넣기를 했었는데 이게 문제가 되었을까요? 옛날에 앱인벤터라는 교육용 블록코딩 앱 개발 플랫폼으로 했을 때는 앱 출시까지 그렇게 어렵지 않게 했었는데.. 한 달가량 헤메고 있으니 힘드네요ㅠㅠ 도와주세요!^^
... void ThreadManager::Launch(function<void(void)> callback) { LockGuard guard(_lock); _threads.push_back(thread([=]() { InitTLS(); callback(); DestroyTLS(); })); } ... --------------------------------------------- int main() { for (int32 i = 0; i < 5; i++) { GThreadManager->Launch(ThreadMain); } GThreadManager->Join(); } 쓰레드 매니저 예제 코드의 일부인데요, 위 코드에서 다음과 같이 InitTLS(); GThreadManager->Join(); 두 곳에 브레이크 포인트를 걸었는데 신기하게 Join에 먼저 브레이크가 걸리네요. Launch 함수가 순차적으로 실행되고 메인함수의 반복문을 빠져 나온다음에 Join이 걸릴거 같은데요. Launch 함수가 쓰레드 함수라면 그럴 수 있겠지만 ThreadManager 자체는 쓰레드가 아닌데 왜 그런 것인가요?