묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Validation 과 exception
Validation 과 exception의 차이는 뭔가요..?? 둘이 헷갈려요...
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그아웃시 세션이 유지 됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.수업에 있는 내용을 따라서 프로젝트를 구성했는데 로그아웃시 세션이 유지가 됩니다.로그아웃하고 상품목록 주소를 바로 입력했을 경우 상품목록페이지가 조회됩니다.참고로 저는 login-start를 기준으로 하지 않고 form을 기준으로 시작하였습니다.제가 작성한 프로젝트 전체를 압축해서 공유드립니다.https://drive.google.com/file/d/1QXAgDBbo8In1lIXeLE7nUox8HeQaRm1d/view?usp=share_link 제가 작성한 프로젝트를 기준으로 무엇이 문제인지와 그에 대한 해결책을 알고 싶습니다.그럼 부탁드립니다.감사합니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
알 수 없는 오류가 자꾸 뜹니다.
실행은 잘 되고, 빨간색으로 오류는 없는데, 저장 누르면, 수업과 같이 [Schedule(id~~~000)] 이런 내용에 대한 메시지들이 아닌, 아래와 같은 메시지들이 뜹니다.널첵과 같은 이슈같은데 모든 것을 점검해 봤을때 수업 내용과 다른 부분이 없었습니다. 어떻게 해결해야 할까요?E/flutter (27313): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Null check operator used on a null valueE/flutter (27313): #0 ScheduleBottomSheetState.onSavePressed (package:ui/component/schedule_bottom_sheet.dart:116:33)E/flutter (27313): #1 InkResponseState.handleTap (package:flutter/src/material/inkwell.dart:1096:21)E/flutter (27313): #2 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:253:24)E/flutter (27313): #3 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:627:11)E/flutter (27313): #4 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:306:5)E/flutter (27313): #5 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:276:7)E/flutter (27313): #6 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:163:27)E/flutter (27313): #7 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:464:20)E/flutter (27313): #8 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:440:22)E/flutter (27313): #9 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:336:11)E/flutter (27313): #10 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:395:7)E/flutter (27313): #11 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:357:5)E/flutter (27313): #12 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:314:7)E/flutter (27313): #13 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:295:7)E/flutter (27313): #14 _invoke1 (dart:ui/hooks.dart:164:13)E/flutter (27313): #15 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:361:7)E/flutter (27313): #16 _dispatchPointerDataPacket (dart:ui/hooks.dart:91:31)E/flutter (27313):
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Sort 연습문제 질문이 있어요
// 값 순서대로 정렬하기 static void Sort(int[] scores) { for (int i =0; i < scores.Length; i++) { //제일 작은 수 찾기 -> 제일 작은 숫자가 있는 index 찾기 int minIndex = i; for (int j= i; j <scores.Length; j++) { if (scores[j] < scores[minIndex]) minIndex = j; } // 자리바꾸기 (swap) int temp = scores[i]; // 값을 덮어씌우면 날라가기 떄문에 임시로 저장 해둔다 scores[i] = scores[minIndex]; scores[minIndex] = temp; // 임시로 저장해둔 값을 다시 minIndex에 옮긴다 } } 여기서 특히 이부분이 이해가 안되고 있어요 for (int j= i; j <scores.Length; j++) { if (scores[j] < scores[minIndex]) minIndex = j; }첫번째 루프때 int i = 0이 되고 for 문에서 j=i라고 해서 j도 0이 됩니다 그런다음에 if (scores[j] < scores[minIndex]) 여기에 따라서 scores[0] < scores[0] 이렇게 되는거 아닌가요?? 둘다 첫번째 루프고 minIndex도 i의 값을 따르니깐요... minIndex = j 로 넘어 갈수 없다고 생각하고 있습니다..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
lock 에 대해서 질문드립니다
Session 의 Send에서 lock 을 걸고RegisterSend 로 진입 -> SendAsync 의 pending 이 false라면 바로 같은 스레드에서 OnSendCompleted 진입그런데 OnSendCompleted 도 처음에 lock 을 걸어야하는데 위 같은 경우 Send 에서 걸었던 lock 이 아직 풀리기 전에 호출스택이 OnSendCompleted 까지 쌓이는데OnSendCompleted 에서 lock 안으로 진입할수 있는 이유는 같은 쓰레드 여서 인가요?
-
해결됨RPA로 자동화 천재되기 (UiPath 응용편)
Studio X 의 액티비티 화면이 달라요
제 StudioX 의 액티비티 화면은 강의 내용에 보여지는 것 하고는 다릅니다. 저도 강의 내용에 보여지는 레이아웃으로 쓰고 싶은데 (큰아이콘?) 어떻게 해야 할까요? 방법을 못 찾겠어서 문의 드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
타임리프 문법에서 궁금한게 있습니다. (# 샵과 관련)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]안녕하세요 강사님 강의를 듣다가 명확하게 정리가 안돼서 헷갈리는 부분이 생겨 질문드립니다${} 나 *{}같은 문법은 잘 이해 했는데요#{xxx}와 {#xxx}부분이 헷갈립니다.타임리프에서 #은 어떤 것에 붙여 사용하는 건지 정리할 수 있을까요?
-
해결됨
타임리프 얼마나 중요하나요?
현재 백엔드를 공부하고 있는 학생입니다.저는 원래 프론트를 공부하다가 백엔드로 전향해서 프론트에 대한 지식은 어느정도 있는 편입니다. 그런데, 백엔드 강의를 듣다가 타입 리프에 관한 강의를 들을 때마다. 타임 리프를 깊이 공부해야 하나? 라는 생각이 들고 있습니다.타임 리프를 사용하지 않아도 백엔드 통신을 통해 클라이언트 구현을 할 수 있는데 타임 리프를 꼭 공부해야 할까요?
-
해결됨ARM Cortex-M 프로세서 프로그래밍
파이프라인 동작 관련 질문 드립니다.
강사님. 안녕하세요. 강의 잘 보고 있습니다.파이프라인에 대해 갑자기 궁금증이 생겼는데요.1. thumb/thumb2와 관계없이 프로그램 카운터의 위치는 항상 PC = 현재 명령어 위치 + 4라 설명하신 것 같은데요. thumb의 경우 2바이트 명령어니 이해가 갑니다만 thumb2는 4바이트라 PC = 현재 명령어 위치 + 8이 되는게 아닌가요? 왜 항상 PC = 현재 명령어 위치 + 4 인지 궁금합니다.명령어를 페치하는 기본 단위는 32비트라 되어있습니다.2. 명령어 페치시 만약 thumb 코드라면 2개의 명령어를 페치한다는 것 같은데, 만약 A 명령어와 B 명령어(둘 다 thumb)를 페치한다면 이 두 명령어의 파이프라인 동작이 어떻게 되나요?A 명령어 먼저 F-D-E되고 그 후에 B 명령어가 F-D-E가 파이프라인으로 동작하게 되는건가요?3. 그렇다면 만약 thumb명령어와 thumb2명령어가 페치될 경우에 어떻게되나요?A 명령어(thumb라 가정), B 명령어(thumb2라 가정)일 때, 32비트 페치시 A 명령어와 B1(B 명령어의 2바이트)가 페치될 것으로 예상이 됩니다만, 그 후의 동작이 이해가 되지 않습니다. 항상 질문에 친절하게 답변해주셔서 감사합니다.
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
귀신이 곡할 노릇입입니다ㅠㅠ , 셀렉터를 맞게 한거 같은데 안되네요 ㅠㅠ
블랙핑크 검색시 셀렉터손흥민 검색시 셀렉터즉 선생님 수업때와 다르게셀렉터가 둘다 똑같이 변경 되었습니다. import requests from bs4 import BeautifulSoup base_url = "https://search.naver.com/search.naver?where=view&sm=tab_jum&query=" keyword = input("검색어를 입력하세요 :") url = base_url + keyword # url = "https://search.naver.com/search.naver?where=view&sm=tab_jum&query=손흥민" headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"} req = requests.get(url, headers=headers) soup = BeautifulSoup(req.text, 'html.parser') results = soup.select(".timeline_area") print(results) for res in results: # print(res.select_one('.sub_txt.sub_name').text) # print(res.select_one('.api_txt_lines.total_tit').text) # print(res.select_one('.api_txt_lines.total_tit').get('href')) print()그래서 위와같이 select 해서크롤링을 하면정말 너무 희안하게도"블랙핑크" : 크롤링 가능"손흥민" : 크롤링 불가능print(results) 해보면, 리스트가 비어있습니다. 그래서 제가 아래 이미지 처럼개발자 도구에서 select copy 를 이용해서도 해봤는데 크롤링이 안됩니다.도저히 제가 이해할수가 없고, 해결할수 없어서 질문 드립니다.도와주신다면 감사하겠습니다. ㅠㅠ
-
미해결웹 게임을 만들며 배우는 React에 TypeScript 적용하기
babel-loader질문입니다! 왜쓰는지 궁금합니다!
react-typescript강좌 끝말잇기 부분에서 미래에서 온 제로초님께서webpack.config.ts파일에 추가하라고 하신 babel-loader에 관해서 질문이 있습니다.module설정하는 부분에 babel-loader를 추가해주었는데 버전이 업데이트 되면서 왜 이 로더를 추가해야될까요?? 그리고 에러를 해결하는 과정에서 질문이있습니다. module.rules 부분에 순서는 상관없다고 생각해서 ts-loader설정을 먼저 적고 babel-loader를 적어주었습니다. 그러나 아래와 같이 오류가 떳습니다그러나 설정 순서를 바꿔주었더니 해결이 되었는데 어떤 처리과정이 있길래 이 순서를 바꿔주어서 해결을 할 수 있게됬는지 의문입니다.아래는 해결되서 적어놓은 webpack.config.ts파일입니다!import path from 'node:path'; import ReactRefreshPlugin from '@pmmmwh/react-refresh-webpack-plugin'; import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; import { Configuration as WebpackConfiguration } from "webpack"; import { Configuration as WebpackDevServerConfiguration } from "webpack-dev-server"; interface Configuration extends WebpackConfiguration { devServer?: WebpackDevServerConfiguration; } const config: Configuration = { name: 'word-relay-dev', mode: 'development', //after production devtool: 'eval', resolve: { extensions: ['.jsx', '.js', '.tsx', '.ts'], }, entry: { app: './client' }, module: { rules: [ { loader: 'babel-loader', options: { plugins: ['react-refresh/babel'] }, }, { test: /\.tsx?$/, loader: 'ts-loader', exclude: path.join(__dirname, 'node_modules'), },] }, plugins: [ new ReactRefreshPlugin(), new ForkTsCheckerWebpackPlugin() ], output: { filename: '[name].js', path: path.join(__dirname, 'dist'), publicPath: '/dist/', }, devServer: { devMiddleware: { publicPath: '/dist' }, static: { directory: path.resolve(__dirname) }, hot: true } } export default config;
-
해결됨스프링 핵심 원리 - 기본편
lombok 설치 시 에러
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]롬복 설치 과정에서 수업 자료에 있는 코드에서 자바 버전이나 스프링 버전 부분만 제외하고 복붙을 했는데 알수없는 에러가 발생하네요 ㅠㅠ 코드 전체plugins { java id("org.springframework.boot") version "2.7.10" id("io.spring.dependency-management") version "1.0.15.RELEASE" } group = "hello" version = "0.0.1-SNAPSHOT" java.sourceCompatibility = JavaVersion.VERSION_11 //lombok 설정 추가 시작 configurations { compileOnly { extendsFrom annotationProcessor } } //lombok 설정 추가 끝 repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' //lombok 라이브러리 추가 시작 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' //lombok 라이브러리 추가 끝 testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } } test { useJUnitPlatform() } 에러메시지C:\Users\USER\OneDrive\���� ȭ��\������\2. ������ �ٽ� ���� - �⺻��\core\build.gradle.kts:14:34: Expecting an element
-
미해결홍정모의 따라하며 배우는 C++
강의에 대한 질문검색 / 연습문제 답안 검색 방법 등 질문
특정회차의 강의에 대한 질문들을 모아서 보고 싶은데 그런기능이 있나요? 예컨대 3.9 강의에 대한 질문만 보는 방법 있나요?가끔씩 연습문제를 주시는데 답을 따로 올려주시나요?수강생에게 제공되는 강의자료가 따로 있나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
CQS 커멘드와 쿼리 분리에 대한 설명
public Long save(Member member) { em.persist(member); return member.getId(); }리포지토리에 이 코드가 Member를 반환하지 않는 이유를 설명하면서 커멘드 메서드와 쿼리의 분리를 언급하셨습니다. 그래서 코드가 아무 값도 반환을 하지 않는 코드를 작성하실 줄 알았는데, 또 다음 설명에서 Id를 가져와 반환한 이유를 설명해주셨습니다. 그럼 Member 반환하는 코드는 CQS에 위배되지만, Id를 가져와 반환하는 것 까지는 CQS에 부합하는 코드라는 설명으로 이해해야하는 것인지 혼동됩니다. 제가 이해하기론 설명하고 반대되는 코드라고 생각되어 질문을 남깁니다. CQS에 대한 설명은 하셨지만, Id 정도는 의도가 있으니 Query해도 된다. 정도로 이해하면되는걸까요? 제가 이해못한 부분이 있다면 설명 부탁드리겠습니다. 감사합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
SessionManager를 제네릭 클래스로 사용해도 될까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 수업을 듣다가 getSession() 메서드가 Member를 반환한다면 형변환도 필요 없고 좋지 않을까 하는 생각이 들어서 위와 같이 바꿔 봤습니다.일단 실행은 되는데 아직 배우는 단계이다 보니 전체적인 시야가 부족해 어떤 문제점이 있을 수 있는지 궁금합니다. 덧붙여 실무에서도 제네릭을 많이 사용하는지도 궁금합니다.
-
미해결데이터 분석 SQL Fundamentals
max(lpad(....)) 사용시의 오류 가능성
실습코드 'first_value_last_value_Analytic_실습'의 마지막"-- 연속된 데이터 흐름에서 값이 Null일 경우 바로 값이 있는 바로 위의 데이터를 가져 오기." 와 관련된 질문입니다(아마도 실습코드는 있는데 본 강의에서는 다루지 않으신 듯합니다). (예제코드)temp_04 as (select *, max(lpad(rnum::text, 6, '0')||daily_sum) over (order by ord_date rows between unbounded preceding and current row) as temp_strfrom temp_03 order by ord_date)dayily_sum자체를 일정한 자리수로 padding을 해주고 난 뒤 처리해도 되지 않을까 생각해봤습니다.temp_04 as (select *, max(lpad(rnum::text, 6, '0')||lpad((daily_sum)::text,6, '0' )) over (order by ord_date rows between unbounded preceding and current row) as temp_strfrom temp_03 order by ord_date) 이렇게 해서 처리해도 될까요?
-
해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
'multi process와 multi thread'를 비교 설명 강의 질문
안녕하세요! 개발남노씨님 전공 면접 스터디 하면서 해당 강의 잘 듣고있습니다 :)다름이 아니라 제목에서 언급한 강의에서 질문이 있는데, 이 그림 설명해주실때 "스택영역과 코드 영역을 공유한다"라고 말씀해주셨는데 이전 강의에서는 스택 영역만 각자 독립적이고 나머지만 공유한다고 말씀해주셨고 구글링해서 찾아봐도 스택 영역만 공유하는게 맞는것같은데 이부분이 그럼 잘못된 설명일까요..?https://inflearn.com/questions/638047해당 글도 참고를 했는데 '코드 영역은 독립적으로 실행하는 부분도 있고 공유하는 영역도 있다' 라고 답변해주셨는데 조금 헷갈립니다..ㅜㅜ
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
기본객체들 - @Controller , @Component
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]기본객체들 3분 58초에 나오는 내용인데 문득 궁금증이 생겼어요..@Controller @RequestMapping("/basic") public class BasicController { @GetMapping("text-basic") public String textBasic(Model model){ model.addAttribute("data","Hello <b>Spring!</b>"); return "basic/text-basic"; } @GetMapping("text-unescaped") public String textUnescaped(Model model){ model.addAttribute("data","Hello <b>Spring!</b>"); return "basic/text-unescaped"; } @GetMapping("/variable") public String variable(Model model){ User userA = new User("userA", 10); User userB = new User("userB", 20); List<User> list = new ArrayList<>(); list.add(userA); list.add(userB); Map<String,User> map = new HashMap<>(); map.put("userA",userA); map.put("userB",userB); model.addAttribute("user",userA); model.addAttribute("users",list); model.addAttribute("userMap",map); return "basic/variable"; } @GetMapping("/basic-objects") public String basicObjects(HttpSession session ){ session.setAttribute("sessionData","Hello Session"); return "basic/basic-objects"; } @Component("helloBean") static class HelloBean { public String hello(String data){ return "Hello "+data; } }여기서 컨트롤로 클래스에 @Controller가 붙어있으면 (@Controller 내부에 @Component를 포함하고있으므로 ) 컨트롤로 클래스 안에 내부 클래스를 빈등록시 @Component("helloBean") static class HelloBean { public String hello(String data){ return "Hello "+data; }질문:별도의 빈을 만들때 @Component("helloBean")를 빼줘도 되는거 아닌가요?? 너무 궁금합니다...실행해보면 @Component("helloBean")를 써줘야만 제대로 실행되네요..
-
미해결
1064 오류 원인을 못 찾겠어요
위 이미지에서 출력 된 문자 : '('abcd1234'), mb_name = '이름', mb_nick =' 글쓴이가 생각하는 아마도 오류라고 생각되는 부분 : ('$admin_pass'), mb_name = '$admin_name', mb_nick = 이것저것 건드려봤지만 잘 모르겠네요;;
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
쿠키공유 질문드립니다.
도메인까지 연결 성공했고 쿠키 공유만 해결하면 되는데 뭐 때문인지 감이 안잡힙니다....