묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 1편
instanceof 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요! 질문이 있어서 글 남깁니다.자바 기본편에서는 만약에 parent instanceof Child 라고 하면 Child child = new Parent() 이기 때문에 자식은 부모를 담을 수 없어 컴파일 오류가 발생했는데, 5분 06초 부분에서는 왜 obj instanceof Dog 는 dog.sound가 가능한 건가요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
vscode postgresql extension이 실행되지 않습니다.
강사님께서 설명해주신대로 입력해서 vscode extension 설치 후에 진행하려고 하는데 role "postgres" does not exist 라는 오류와 함께 extentsion 진행이 되지 않습니다. 혹시 무엇이 문제인지 알 수 있을까요?
-
미해결[7일완성]생각하는 데이터베이스모델링
마프1탄은 언제개강예정인가요?
스프2탄에이어 스프링부트 프로젝트 강의를 작년부터 개강한다고 말씀하셨지만 아직 개강이안되서 여쭈어봅니다. 갠적으로 기대를 많이하고있는 강의라 빨리만나봤으면 하는바램이에요;;;;;; next.js같은 다양한 기능구현 프로젝트 강의들은 즐비한데 유독 스프링부트를 이용한 다양한 기능구현 프로젝트 강의는 없더라구요 그래서 마프1탄이 굉장히 기대하고있습니다. 언제쯤 개강될지 알려주실수있는지요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
PathVariable 앞에 커스텀 애노테이션을 붙이면 동작이 안 됩니다.
안녕하세요!@PathVariable 앞에 제가 만든 커스텀 애노테이션을 붙인 후 ArgumentResolver가 동작 되길 기대 했으나, supportsParameter나 resolveArgument에 어떠한 log가 찍히지 않는 것을 확인 했습니다.그런데 이유는 모르겠지만 @ModelAttribute 앞에 커스텀 애노테이션을 붙였을 때에는 동작 하더라고요. 왜 PathVariable 앞에 커스텀 애노테이션을 붙였을 경우에는 동작이 안 되는 지 모르겠습니다.구글링이나 GPT를 통해서도 열심히 찾아 봤으나 그 이유를 찾지 못했는데요. 문제점이 무엇인지 알려주시면 감사 드리겠습니다..!// 커스텀 애노테이션 @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface Month { } // 컨트롤러 public Class 클래스 { ...... public 리턴타입 메서드(@Month @PathVariable Integer month) {} } // ArgumentResolver @Slf4j public class MonthArgumentResolver implements HandlerMethodArgumentResolver { @Override public boolean supportsParameter(MethodParameter parameter) { log.info("MonthArgumentResolver supportsParameter={}", parameter); return parameter.hasParameterAnnotation(Month.class); } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { HttpServletRequest httpServletRequest = (HttpServletRequest) webRequest.getNativeRequest(); log.info("MonthArgumentResolver resolveArgument={}", httpServletRequest); return 1; // 임시로 1로 반한 함 } } // config @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) { resolvers.add(new MonthArgumentResolver()); } }
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
영한님 TransactionTemplate 설명 관련 질문이 있습니다!
안녕하세요! 강의 잘 보고 있는 학생입니다. '트랜잭션 문제 해결 - 트랜잭션 템플릿' 강의 10분 30초를 보면영한님께서 트랜잭션 템플릿의 기본 동작이 "체크 예외가 발생하면 트랜잭션을 롤백하지 않고 커밋한다"라고 말씀하셔서package org.springframework.transaction.support;위 패키지에 있는 TransactionTemplate의 execute코드를 확인하게 되었는데요 예외의 최상위 계층인 Throwable이 catch되면 rollback되는 구조인데, 이렇게 되면 체크 예외여도 롤백이 되는 것 아닌가요??확인한 버전은 SpringBoot 3.x 버전입니다. 현재는 바뀐것인지 아니면, 제가 잘못된 부분을 찾고 있는 것인지 답변 부탁드립니다 감사합니다!
-
해결됨Airflow 마스터 클래스
제목과 영상이 다른것 같아요~
Task 실패시 email 발송하기sla 로 task 수행현황 감시하고 email 발송하기 이 두개의 영상이 바뀐것 같아 보입니다 확인 해봐주세요~
-
해결됨장애 없는 서비스를 만들기 위한 Resilience4j - CircuitBreaker
강의 자료 문의
안녕하세요. 강의에서 사용한 ppt 자료 어디서 받을 수 있는지 궁금합니다. 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-J 질문
안녕하세요 강사님 해당 문제를 강사님과 동일한 방법으로 푸는데 배열 a가 [100][100]이면 틀렸다고 나오더라구요입력은 s를 통해 받고 저장은 a에다 해서 버퍼 문제가 없을거 같은데 왜 틀리는건가요….?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
쿼리 테이블 별칭
선생님꼐서 쓰는 쿼리를 보면 select m from Member m 이런식으로 m별칭주시는데 m.*이런식이나 테이블이 하나라면 별칭 없이 가는것과 무슨 차이가 있을까요?? 그냥 단순히 개발자 스타일일까요??
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
Exercise 22. 문자열 다루기 (strip) 문의
code = ' 000660\n abc'print (code)print (code.strip(' \n')) 결과 000660 abc 000660 abc로 \n 이 제거가 되지 않고 줄 바꿈 되었습니다.잘못 코딩한 부분이 어디인지 문의 드립니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
리포지토리를 다른것으로 변경시 어노테이션만 다른곳으로 옮기면 되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]의존관계 자동 주입을 위해 @Repository를 사용하였는데 메모리멤버맃포지토리가 아닌 데이타베이스멤버리포지토리를 사용하려면 메모리멤버리포지토리에 있는 @Repository어노테이션을 지우고 실제 사용할 데이타베이스멤버리포지토리에 @Repository어노테이션을 사용하면 되나요?
-
미해결생활코딩 - React
20.3 update에서 state변경이 안되는지 변경이 안됩니다
app.js import './App.css'; import { Component } from 'react'; import TOC from "./Components/TOC"; import ReadContent from "./Components/ReadContent"; import CreateContent from "./Components/CreateContent"; import UpdateContent from "./Components/UpdateContent"; import Subject from "./Components/Subject"; import Control from "./Components/Control"; class App extends Component { constructor(props){ super(props); this.max_content_id = 3; this.state = { mode: 'create', selected_content_id: 2, Subject: {title: "WEB", sub: "world wide web~~ hyun"}, welcome: {title: "Welcome", desc: "Hello, React~~"}, contents: [ {id:1, title:'HTML', desc:'HTML is for information'}, {id:2, title:'CSS', desc:'CSS is for Design'}, {id:3, title:'JavaScript', desc:'JavaScript is for interactive'} ] } } getReadContent() { var i = 0; while(i < this.state.contents.length){ var data = this.state.contents[i]; if(data.id === this.state.selected_content_id){ return data; break; } i = i + 1; } } getContent(){ var _title, _desc, _article = null; if(this.state.mode === 'welcome'){ _title = this.state.welcome.title; _desc = this.state.welcome.desc; _article = <ReadContent title={_title} desc={_desc}></ReadContent> }else if(this.state.mode === 'read'){ var _content = this.getReadContent(); _article = <ReadContent title={_content.title} desc={_content.desc}></ReadContent> }else if(this.state.mode === 'create') { _article = <CreateContent onSubmit = {function(_title, _desc){ // add content to this.state.contents this.max_content_id = this.max_content_id + 1; // this.state.contents.push ( // {id:this.max_content_id, title:_title, desc:_desc} // ); var _contents = this.state.contents.concat( {id:this.max_content_id, title:_title, desc:_desc} ) // var newContents = Array.from(this.state.contents); // newContents.push({id:this.max_content_id, // title:_title, desc:_desc}); this.setState ({ //contents:this.state.contents contents: _contents }); console.log(_title, _desc); }.bind(this)}></CreateContent> } else if(this.state.mode === 'update') { _content = this.getReadContent(); _article = <UpdateContent data={_content} onSubmit = { function(_id, _title, _desc){ // add content to this.state.contents // 14 line에 this.max_content_id = 3; 는 create에 사용된 것이므로 아래내용주석처리 // this.max_content_id = this.max_content_id + 1; //복제기능 수행 : 원본을 복사한 새로운 배열 생성 var _contents = Array.from(this.state.contents); //수정하고자하는 원소값과 같은 것을 찾는다. var i = 0; while(i < _contents.length){ //_contents[i].id갑과 입력한 id값이 같다면 if(_contents[i].id === _id){ _contents[i] = {id:_id, title:_title, desc:_desc}; break; } i = i + 1; } this.setState ({ //contents:this.state.contents //contents: newContents contents:_contents }); console.log(_id, _title, _desc); }.bind(this)}></UpdateContent> } return _article; } render() { console.log('App render'); return ( <div className="App"> <Subject title= {this.state.Subject.title} sub= {this.state.Subject.sub} onChangePage = { function () { this.setState({ mode:'welcome'}); }.bind(this)} > </Subject> <TOC onChangePage = { function (id) { this.setState({ mode:'read', selected_content_id:Number(id) }); }.bind(this)} data={this.state.contents}></TOC> <Control onChangeMode={function(_mode) { this.setState ({ mode:_mode }); }.bind(this)}></Control> {this.getContent()} </div> ); } } export default App; UpdateContent.js import { Component } from 'react'; class UpdateContent extends Component { constructor(props){ super(props); this.state = { id:this.props.id, title:this.props.data.title, desc:this.props.data.desc } this.inputFormHandler = this.inputFormHandler.bind(this); } inputFormHandler(e) { this.setState({[e.target.name]:e.target.value}); } render() { //this.props.title = 'hi; console.log(this.props.data); console.log('UpdateContent render'); return ( <article> <h2>Update</h2> <form action='/create_process' method='post' onSubmit={function(e){ e.preventDefault(); this.props.onSubmit( // state의 동기화 this.state.id, //e.target.title.value, // _title this.state.title, //e.target.desc.value // _desc this.state.desc ); }.bind(this)} > <input type="hidden" name="id" value={this.state.id}></input> <p> <input type="text" name="title" placeholder='title' value={this.state.title} //onChange = {this.inputFormHandler.bind(this)} onChange = {this.inputFormHandler} ></input> </p> <p> <textarea // onChange = {this.inputFormHandler.bind(this)} onChange = {this.inputFormHandler} name="desc" placeholder='description' value={this.state.desc}></textarea> </p> <p> <input type="submit" ></input> </p> </form> </article> ); } } export default UpdateContent;
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
jenkins 설치 후, 플러그인 설치 시 오류
echo '======== [4] OpenJDK 설치 ========' # yum list --showduplicates java-17-openjdk yum install -y java-17-openjdk echo '======== [5] Gradle 설치 ========' yum -y install wget unzip wget https://services.gradle.org/distributions/gradle-7.6.1-bin.zip -P ~/ unzip -d /opt/gradle ~/gradle-*.zip cat <<EOF |tee /etc/profile.d/gradle.sh export GRADLE_HOME=/opt/gradle/gradle-7.6.1 export PATH=/opt/gradle/gradle-7.6.1/bin:${PATH} EOF chmod +x /etc/profile.d/gradle.sh source /etc/profile.d/gradle.sh echo '======== [6] Git 설치 ========' yum install -y git-2.39.3-1.el8_8 echo '======== [7] Jenkins 설치 ========' wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key yum install -y java-11-openjdk jenkins-2.414.2-1.1 systemctl enable jenkins systemctl start jenkins위 설치 스크립트를 바탕으로 jenkins를 설치 후에, 플러그인을 설치하고 있었는데 위와 같이 몇몇 플러그인이 설치가 되지 않았습니다 ㅠ제가 이 강의하면서 jenkins를 거의 처음 써봐서 이런 경우 어떻게 대처해야할지 잘 모르겠습니다...!추상적으로 여쭤봐 죄송하지만, 혹시 어떤 대처를 하면 될지 알려주시면 감사드리겠습니다.혹시 자바 설치 버젼도 필요하실까봐 올려드립니다ls /usr/lib/jvm/ java-11-openjdk-11.0.18.0.9-0.3.ea.el8.x86_64 jre-11-openjdk-11.0.18.0.9-0.3.ea.el8.x86_64 java-17-openjdk-17.0.6.0.9-0.3.ea.el8.x86_64 jre-17 jre jre-17-openjdk jre-11 jre-17-openjdk-17.0.6.0.9-0.3.ea.el8.x86_64 jre-11-openjdk jre-openjdk ## java --version openjdk 17.0.6-ea 2023-01-17 LTS OpenJDK Runtime Environment (Red_Hat-17.0.6.0.9-0.3.ea.el8) (build 17.0.6-ea+9-LTS) OpenJDK 64-Bit Server VM (Red_Hat-17.0.6.0.9-0.3.ea.el8) (build 17.0.6-ea+9-LTS, mixed mode, sharing) 젠킨스 로그인 후 dependency 오류 내용Some plugins could not be loaded due to unsatisfied dependencies. Fix these issues and restart Jenkins to re-enable these plugins. Dependency errors: Timestamper (1.26) Plugin is missing: antisamy-markup-formatter (159.v25b_c67cd35fb_) Pipeline: Declarative Extension Points API (2.2150.v4cfd8916915c) Plugin is missing: workflow-cps (3791.va_c0338ea_b_59c) Pipeline Graph Analysis Plugin (216.vfd8b_ece330ca_) Plugin is missing: workflow-cps (3659.v582dc37621d8) Pipeline (596.v8c21c963d92d) Plugin is missing: workflow-cps (2660.vb_c0412dc4e6d) Plugin is missing: pipeline-groovy-lib (593.va_a_fc25d520e9) Pipeline: GitHub Groovy Libraries (42.v0739460cda_c4) Plugin is missing: pipeline-groovy-lib (629.vb_5627b_ee2104) Checks API plugin (2.0.2) Plugin is missing: plugin-util-api (3.3.0) Pipeline: Multibranch (770.v1a_d0708dd1f6) Plugin is missing: workflow-cps (3691.v28b_14c465a_b_b_) Gradle Plugin (2.10) Plugin is missing: workflow-cps (2660.vb_c0412dc4e6d) Bootstrap 5 API Plugin (5.3.2-3) Plugin is missing: font-awesome-api (6.4.2-1) Folders Plugin (6.858.v898218f3609d) Plugin is missing: ionicons-api (56.v1b_1c8c49374e) Some of the above failures also result in additional indirectly dependent plugins not being able to load. Indirectly dependent plugins: JUnit Plugin (1265.v65b_14fa_f12f0) Failed to load: Bootstrap 5 API Plugin (bootstrap5-api 5.3.2-3) Pipeline (596.v8c21c963d92d) Failed to load: Pipeline: Multibranch (workflow-multibranch 770.v1a_d0708dd1f6) Matrix Project Plugin (822.824.v14451b_c0fd42) Failed to load: JUnit Plugin (junit 1265.v65b_14fa_f12f0) Pipeline: REST API Plugin (2.34) Failed to load: Pipeline Graph Analysis Plugin (pipeline-graph-analysis 216.vfd8b_ece330ca_) Workspace Cleanup Plugin (0.45) Failed to load: Matrix Project Plugin (matrix-project 822.824.v14451b_c0fd42)
-
미해결
java scanner 오류
txt파일에는 아래와 같이 저장되어 있습니다. 점수가 가장 높은 학생의 이름을 출력해야하고 점수가 동일할 경우 모두 출력하는 프로그램입니다.김일번 64김이번 83김삼번 26김사번 36김오번 78김육번 54김칠번 60김팔번 85김구번 45김십번 85프로그램을 실행했을 때Exception in thread "main" java.util.InputMismatchExceptionat java.base/java.util.Scanner.throwFor(Scanner.java:947)at java.base/java.util.Scanner.next(Scanner.java:1602)at java.base/java.util.Scanner.nextInt(Scanner.java:2267)at java.base/java.util.Scanner.nextInt(Scanner.java:2221)이렇게 오류가 발생합니다. 해결방법 아시는 분 가르쳐주세요!!ㅜㅜpackage kh; import java.io.*; import java.util.Scanner; class Student { //int id; String name; int grade; Student(String name, int grade) { //this.id=id; this.name=name; this.grade=grade; } } class StudentTable{ Student[] st; StudentTable(int size) { st=new Student[size]; } void maxStudent() { int maxGrade=0; for(Student student : st) { if(student.grade > maxGrade) { maxGrade = student.grade; } } System.out.println("최고 점수를 가진 학생:"); for(Student student : st) { if(student.grade == maxGrade) { System.out.println(" " + student.name + " " + student.grade); } } } } public class homework05{ public static void main(String[] args) { StudentTable stable; try { FileInputStream fin=new FileInputStream("C:\\Users\\user\\Desktop\\student_score.txt"); Scanner scanner = new Scanner(fin); int size=scanner.nextInt(); stable=new StudentTable(size); for(int i=0; i<stable.st.length; i++) { //int id=scanner.nextInt(); String name=scanner.next(); int grade=scanner.nextInt(); stable.st[i]=new Student(name,grade); System.out.println(" "+name+" "+grade); } scanner.close(); stable.maxStudent(); } catch(FileNotFoundException e) { System.out.println("file not exist"); } } }
-
미해결
크롤링 질문입니다
웹사이트에서 크롤링한 데이터? 코드를 파이어베이스 안에 저장하여 불러올 수 있나요?
-
미해결
원본에서 가져오기 bs4를 확인할 수 없습니다.
import requests from bs4 import BeautifulSoup # naver 서버에 대화를 시도 response = requests.get("http://www.naver.com/ ") # 네이버 에서 html 줌 html = response.text # 네이버 에서 html 줌 soup = BeautifulSoup(html, 'html.parser') #id 값이 ~~인 것 한개를 찾아냄 word=soup.select_one('#_blank') #텍스트 요소만 출력함 print(word)이거 하는데 제목과 같이 막혀서 못 하고 있습니다. 어떻게 해결해야 할까요?
-
해결됨김영한의 실전 자바 - 기본편
오타있어요.
caw -> cow로 바꿔야할 것 같습니다. 교재랑 예제 파일 다 caw로 되어있어요.
-
미해결
안녕하세요.. 로지심 회로 질문 해도 될까요?
공부 시작해보려는 새싹입니다..!덧셈기 만들어보는데 뭐가 잘못된건지 잘 모르겠어요그리고 4비트 데이터를 2개의 7-segment 에 표현하려는데 덧셈기 없이 만드는 게 맞겠죠..?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Thymeleaf 3.1에서의 thymeleaf-extras-java8time 관련 업데이트 사항
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의에선 인텔리제이 우측 Gradle의 Dependencies에서 thymeleaf-extras-java8time 라이브러리를 찾을 수 있었는데, 제 인텔리제이에선 찾을 수 없더라고요. 검색해 보니 아래 링크에서https://www.thymeleaf.org/doc/articles/thymeleaf31whatsnew.html 1.4. Core support for the java.time package 항목에 The thymeleaf-extras-java8time extras module has been integrated into the Thymeleaf core: the #temporals expression utility object is now always available. 이렇게 나와 있습니다.타임리프 3.1부터는 스프링 부트가 자동으로 라이브러리를 추가해 줄 필요도 없이, 바로 사용할 수 있는 거로 변경된 거라고 보면 될까요? +)https://www.thymeleaf.org/doc/tutorials/3.1/usingthymeleaf.html#appendix-b-expression-utility-objects 타임리프 3.1 공식 문서 튜토리얼에 Temporals(java.time) 관련 내용이 추가되었습니다.1. 타임리프 - 기본 기능.pdf(v20240224)에 있는 공식 문서는 3.0이라서 링크 첨부드립니다.
-
미해결오라클 성능 분석과 인스턴스 튜닝 핵심 가이드
swingbench 2.6 다운이 안받아져요
swingbench 2.6 설치하려고 아래 사이트 갔는데 not found 뜨네요...다른곳에서 다운받을 수 없을까요?ㅜ https://www.dominicgiles.com/downloads.html