묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ResponseBody의 역할
안녕하세요 영한님! @ResponseBody를 사용할 때 메서드의 리턴타입이 객체 타입인 경우에만 JSON 객체로 변환해서 반환되고 int, String과 같은 기본 타입이 리턴타입인 경우에는 해당 타입이 그대로 반환이 되는건가요??
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
Context Switching은 언제 발생하나요?
강의 잘 듣고 있습니다!! 궁금한 점이 하나 생겨 여쭤봅니다! 프로세스 간 context switching과 스레드 간 context switching이 비용도 다르고 조금 다르게 동작하는 것 같은데요. 각각 어느 경우에 발생하는 건지가 궁금합니다! 프로세스 스레드 구분없이 CPU 배분 시간?이 끝나면 발생하게 되는건가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
더 나은 선택은 뭔가요?
@RequestMapping("/request-param") public String requestParam( @RequestParam(DefaultValue="") String id, @RequestParam(DefaultValue="-1") int x, @RequestParam(DefaultValue="-1") int y) { if(StringUtils.isEmpty(id){ id=x+y; } if(id.equals("-1-1")){ throws new IllegalArgumentException("id 또는 x,y 값이 존재하지 않습니다."); } somthingService.businessLogic(id); return "okay"; } request-param 요청을 하였을 경우, 0) id가 있으면 id를 사용하여 비즈니스 로직을 진행하고, 1) id가 없으면 x, y를 합하여 id로 대체할 수 있도록 하고, 2) x, y 마저도 없으면 id가 반드시 존재해야하는 형태로 파라미터를 전달받게끔 처리하고싶습니다. 이번 강의에서 알려주신 DefaultValue를 활용하고, 추가로, DefaultValue에 해당하는 값이 넘어왔을 경우, 분기에 따라 id를 받게끔 처리하고싶습니다. 다양한 방법이 있을 것 같은데, 혹시 Spring에서 제공하는 애너테이션으로 이를 보다 쉽게 처리할 수 있는 방법이 있을 까요? 생각했던 것 보다 실제로 구현해보니 너무 지저분해지는 것 같아 너무 답답합니다...
-
해결됨실전! Querydsl
삭제 벌크 연산 flush() 호출
영한님 안녕하세요. 벌크 연산 후, flush(), clear() 처리를 해줘야 DB와 영속성 컨텍스트 에 있는 엔티티 상태가 같게 유지 된다고 하셨는데요. 삭제 벌크 연산 같은 경우에는 flush(), clear() 처리를 별도로 해주지 않더라도 데이터 조회해보면 삭제되어서 조회가 안되더라구요.. 그렇게 되면 삭제 연산 시에는 굳이 flush, clear 처리를 안해줘도 되는게 아닌가요?? 강의 삭제 테스트 코드에서도 확인해보니 flush 호출을 안했는데도 조회 시 데이터가 삭제되어 있습니다. ㅠㅠ @Test public void bulkDelete() { List<Member> result = queryFactory .selectFrom(member) .fetch(); // 104명 for (Member member1 : result) { System.out.println("member1 = " + member1); } long count = queryFactory .delete(member) .where(member.age.gt(18)) .execute(); System.out.println("delete count="+count); // 84 List<Member> result1 = queryFactory .selectFrom(member) .fetch(); // 20명 for (Member member1 : result1) { System.out.println("member1 = " + member1); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 순서 질문드립니다.
빠른 성장을 위해서는 야생형이 좋다고 하셨는데, 프로젝트 경험이 없는 사람에게도 야생형을 추천하시는지 궁금합니다. 그리고 웹 프로젝트 경험이 없는 사람은 어떤 순서로 강의를 들으면 좋을지 여쭤보고 싶습니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
wsl 종료는 어떻게 해야하나요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 부끄러운 질문입니다만 종료할 때 어떻게 꺼야할지 모르겠네요, 그냥 창 종료나 EXIT 클릭하면 이렇게 뜨고 인터넷 검색해본대로 셧다운 입력하면 이렇게 뜨네요... 혹시 이상태로 그냥 창의X키나 EXIT써서 꺼도 괜찮나요?? 아니면 다른방법을 써야하나요?? 검색해본뒤에 https://otrodevym.tistory.com/entry/WSL-Docker-system-has-not-been-booted-with-systemd-as-init-system-pid-1-cant-operate 이 방법대로 따라해봤는데 그대로더라구요
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
df["시도"].unique()
안녕하세요 선생님! 신규 데이터로 강의를 수강하고 있는데 전처리해야 할 부분이 많더라구요! 특히, df["시도"].unique 값이 아래와 같이 많이 있습니다. array(['대구광역시', '경상남도', '부산광역시', '충청남도', '경기도', '경상북도', '전라북도', '전라남도', '광주광역시', '인천광역시', '서울특별시', '울산광역시', '대전광역시', '충청북도', '-', '강원도', '제주특별자치도', '세종특별자치시', '경남', '덕릉로', '화랑로51나길', '누원로', '덕릉로112길', '서울', '동일로184길', '노원로1길', '화랑로', '석계로8가길', '석계로', '월계로45길', '중계로', '한글비석로19길', '동일로242길', '동일로242라길', '덕릉로71길', '노원로26길', '상계로10길', '노원로', '한글비석로24다길', '상계2동', '한글비석로31가길', '섬밭로', '우이천로2길', '우이천로', '중계로12길', '중계로14라길', '한글비석로39길', '한글비석로46가길', '동일로204길', '동일로239나길', '공릉로34길', '화랑로51길', '상계로37라길', '초안산로2라길', '월계로42길', '공릉로', '동일로', '한글비석로', '한글', '중계로6길', '노해로', '동일로191가길', '한글비석로36길', '광운로19길', '초안산로5길', '월계로45가길', '동일로245길', '동일로250길', '덕릉로118길', '상계'], dtype=object) 전처리해야 할 양이 많아 함수를 사용해보고자 하였으나, 도저히 좋은 방법이 떠오르지 않아 질문드립니다. 간단하게 표현해 볼 수 있는 방안이 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
유니티에서 클라이언트 빌드후 실행하면 맵 로드가 안됩니다.
안녕하세요, 이번 강의에 올라온 코드로 유니티에서 빌드해서 실행을 했더니 맵등이 로드되지 않습니다. 빌드하려면 별도의 설정등이 필요한건가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
스프링 로드맵을 보면서 따라가고있는 수강생입니다.
스프링 핵심원리 기본편까지 보고 네트워크를 본 후 다음 강의를 뭘할지 고민중입니다. JPA도 들을 생각인데 네트워크를 본 후 바로 JPA활용편으로 가서 JPA로드맵 수강 후 스프링 MVC에 들어가야할지, 아니면 스프링 MVC 수강 이후 JPA강의를 봐야할지 고민이 됩니다... 강의 수강 순서 추천 부탁드립니다.
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
generator 생성
강의에서 제네레이터는 comprehending list 형태에서 중괄호를 소괄호로 바꾸면 된다는 설명을 하셨는데 인터넷이나 책을 보니 generator는 yield 함수와 써야한다는 글들이 많았습니다. 강의처럼 생성하는 것과 yield함수를 써서 생성하는 것의 차이가 무엇인가요?
-
미해결파이썬 무료 강의 (활용편4) - 업무자동화 (RPA)
이미지 프린트 時 box 정보 안뜸
알려주신대로 구문을 작성하고, 실행하였음에도 불구하고 다음과 같이 에레메세지가 뜹니다. (None) PS D:\Visual Studio\RPA\rpa_basic> & D:/Profiles/35132141/AppData/Local/Programs/Python/Python310/python.exe "d:/Visual Studio/RPA/rpa_basic/2_desktop/6_image_recognition.py" None 이런경우 어떻게 해결할 수 있을까요?
-
해결됨PowerApps, 우리회사에 필요한 모바일 앱 만들기
lists 관련 질문
안녕하세요. Lists 을 활용해서 조직도 리스트를 만들어 Power Apps로 연결하였습니다. Power Apps에서 신규 내용을 추가하면 내림차순이나 오름차순으로 정렬되어 보여지잖아요. 혹시 추가된 항목을 Lists 에서 제가 원하는 행 위치로 이동이 가능한가요? 신규 추가한 팀원이 중간 관리자일 경우 Power Apps에서는 내림차순이나 오름차순의 기준이 있지만, Lists에서는 순차 생성된 기준으로 보여지는 거 같아서요. 행과 행 사이에 제가 원하는 행을 이동시킬수 있나 해서요. 교육 내용과 관련 없는 질문일 수도 있지만 조언 가능하시면 부탁드려요.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
다른 풀이 방식(set을 이용한 중복제거)
선생님 항상 수고가 많으십니다 다름이 아니라 Set을 이용하여 중복제거하고 마지막에 정답학생의 i에 +1해서 답을 반환했는데요 IDE에서 할때는 답이 잘나오는데 코딩채점에 입력하면 오답으로 나옵니다. 코드 한 번 봐주실 수 있을까요? import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static int Solution(int n, int[][] arr) { Set<Integer> set = new HashSet<>(); int max = 0; int answer = 0; for(int i = 0 ; i < n ; i++) { for(int j = 0 ; j < 5 ; j++) { for(int k = 0 ; k < n ; k++) { if(i!=k) { if(arr[i][j] == arr[k][j]) { set.add(k); } } } } System.out.println(set); if(max < set.size()) { max = set.size(); answer = i+1; } set.clear(); } return answer; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] arr = new int[n][5]; for(int i = 0 ; i < n ; i++) { for(int j = 0 ; j < 5 ; j++) { arr[i][j] = sc.nextInt(); } } System.out.println(Solution(n,arr)); } }
-
해결됨Flutter 앱 개발 기초
안드로이드 설치과정
안드로이드 스튜디오 최종설치 단계에서'flutter doctor' 입력하면 'flutter'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.이렇게 뜹니당. 경로지정 설명에 맞게 똑같이 했습니당
-
미해결프론트엔드 개발자를 위한 웹팩
webpack-dev-server 실행시 index.html 안쓰는 법
안녕하세요 강사님! 웹팩 강의 너무 잘 보고 있습니다!! 드리고 싶은 질문은, 제가 webpack-dev-server실행 시 index.html을 안불러오고 main.js를 통해 App.vue를 실행시키고 싶은데, 옵션을 어떻게 설정해야 할까요? 참고하고 있던 소스가 vue-cli를 사용하고 있어서 vue.config.js 옵션 설정과는 조금 다른지 헷갈리네요..!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
ls -arlth 가 무엇을 뜻하는 명령어 인가요??
2분 20초대에 실행하신 ls -arlth 명령어가 무엇을 뜻하는 명령어 인가요??
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
JDK 오류, java 파일 빨간불
안녕하세요. 저는 야생형 코스를 따라 강의를 듣고있습니다. jap 활용 1을 모두 듣고 jap 기본편을 학습하려는데 갑자기 project jdk is not defined 가 뜨면서 자바 파일에 모두 빨간불이 뜨며 run 버튼도 비활성화 됐습니다. 이전부터 쓰던 java파일을 통해 jdk를 설정해주어도 여전합니다. 최근에 자바를 새로 설치한 적도 없고 이전부터 java 11버젼을 계속 써왔던터라 당황스럽습니다. 이전 프로젝트에서도, 새 프로젝트를 만들어도 같은 상황입니다. 어떻게 해야 하나요? 사진1) java 파일 옆 빨간 표시 사진2) run 비활성화 3) java 11 설정
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
express session 설정 질문드립니다
강사님 안녕하세요 질문드리기 전에, http 쿠키와 세션 강의를 먼저 복습했습니다 아래처럼 정리했습니다 서버측에서 클라이언트를 구분하기 위해 보내는 게 쿠키 쿠키의 중요한 정보를 클라이언트의 브라우저로 보내면 보안위험이 있고 그래서 쿠키의 중요한 정보는 서버에서 갖고, 클라이언트에게 안보내서, 브라우저에서는 중요정보는 못알아내도록 서버에서 관리하는 게 세션 예를 들면 4장의 session.js에서는 쿠키의 name 대신, 현재 시간을 보낸다 라고 복습하고 http 세션 코드도 복습했습니다 그리고나서 cookie2.js를 익스프레스 코드로 변환시킨 코드를이번에는 session을 이용한 코드로 변경해보려고 했습니다 const express = require('express'); const path = require('path'); const { nextTick, rawListeners } = require('process'); const morgan = require('morgan'); const cookieParser = require('cookie-parser'); const bodyParser = require('body-parser'); const session = require('express-session'); const { connect } = require('http2'); const app = express(); app.set('port', process.env.PORT || 3000); //'port' 라는 속성에 포트번호 3000번을 설정합니다. //서버의 포트를 3000번으로 지정합니다. app.use(morgan('dev')); //app.use(morgan('dev')); //쿠키를 객체화 시킵니다. app.use(cookieParser('zerochopassword')); //cookieparser를 사용하기 위해 //app.use('/',express.static(__dirname, 'kkk')) app.use(express.static(path.join(__dirname, 'kkk'))) app.use(express.json()); app.use(express.urlencoded({extended: true})); //post요청에 의한 req.body를 사용하기 위해서 console.log(path.join(__dirname, 'kkk')) //login 경로의 경우입니다. app.get('/login', (req, res, next) => { req.cookies // 쿠키 객체화 const expires = new Date(); expires.setMinutes(expires.getMinutes() + 5); res.cookie('name', encodeURIComponent(req.query.name),{ expires: expires, httpOnly: true, path: '/', }) // app.use(session({ // name: 'connect.sid', // resave: false, // saveUninitialized: false, // secret: 'zerochopassword', // cookie:{ // expires: expires, // httpOnly: true, // path: '/', // }, // })); // req.session.id = req.query.name; res.redirect('/'); }); app.get('/', (req,res)=>{ console.log("req.url "+req.url); if(req.cookies.name)//name이라는 쿠키가 있는 경우입니다. { //res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' }); res.send(`${req.cookies.name}님 안녕하세요`);//쿠키에 넣은 이름이 웹페이지에 출력됩니다 } else{ //로그인도 아니고, 쿠키도 없는 경우입니다. //next(createError(404)); try { // console.log("진입"); //res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' }); //익스프레스에서는 writeHead를 쓰면 안된다 에러가 생긴다 //res.send( ) 할 때 이미 자동으로 res.status().send() 이런 식으로 헤더를 설정해준다 //res.sendFile(path.join(__dirname, '/cookie2.html'));//cookie2.html 파일을 클라이언트에게 보내준다 //console.log(err.status) console.log("진입"); res.setHeader('Content-Type', 'text/html'); //익스프레스에서는 writeHead를 쓰면 에러가 생긴다 그러므로 setHeader를 써라 res.sendFile(path.join(__dirname, 'cookie2.html')); //cookie2.html 파일을 클라이언트에게 보내준다 } catch (err) { // res.writeHead(500, { 'Content-Type': 'text/plain; charset=utf-8' }); // res.end(err.message); next(err); //콜백함수에 err 라는 인자가 있는 app.use로 이동한다 } } }); // app.get('/:id',(req,res)=>{ // console.log("req.url "+req.url); // console.log("req.params.id "+req.params.id); // res.send(`Hello ${req.params.id}`); // }) //아래는 에러처리입니다. app.use((req,res,next)=>{ // 찾는 경로가 없으면 get을 다 지나서 use로 온다 console.log("req.url "+req.url); next(createError(404)); //찾는 경로가 없으면 404처리 }) app.use((err,req,res,next)=>{ // /favicon.ico도 여기로 간다 에러도 여기로 간다 console.log("req.url "+req.url); console.log(res.locals.message); res.locals.message = err.message; res.locals.error = req.app.get(`env`) === `development` ? err:{}; console.log(err.status) res.status(err.status ||500).send(err.message); }); app.listen(3000, () => { console.log(app.get('port'), '번 포트에서 서버 대기 중입니다!'); }); 저는 아래처럼 변경해봤습니다 공식문서도 참고했습니다 프로덕션 환경의 Express를 위한 보안 우수 사례 (expressjs.com) 그런데 로그인을 하면 세션이 안생겨서 혹시 제가 잘못 알고있는 부분을 가르쳐주시면 감사하겠습니다 + 그리고 63행과 66행에서 req.cookies.name을 req.session.id로 변경해도 에러가 해결이 안되더라구요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
${#fields.Error()}
안녕하세요 선생님. 구글링을 해도 정보를 찾을수 없어 질문드립니다. 제가 하고싶은건 bindingResult를 통해 등록한 에러 메세지를 자바 스크립트에서 쓰고싶습니다. 아래와 같이 코드를 작성해봤고 여러가지 시도를 해보았으나 작동하지않습니다. controller (등록) bindingResult.reject("loginFail","아이디 또는 비밀번호가 맞지 않습니다."); html (작동하지 않는 코드) <script th:inline="javascript"> alert([[${#fields.errors('*')}]]);</script> 다음과 같은 경우는 잘 작동합니다. controller model.addAttribute("loginFail","아이디 또는 비밀번호가 맞지 않습니다."); html <script th:inline="javascript"> alert([[${loginFail}]]);</script> alert 정상출력. --------------- ${#fields.grobalErrors()} 관련 변수는 자바 스크립트에서 사용이 불가능한가요? 사실 model을 통하여 등록하면 된다지만 코드한줄 줄이고싶은 욕심에 몇시간 알아보다가 해결하지 못하여 이렇게 질문드립니다 ㅠㅠ..
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
쿼리 업데이트시 데이터 병합 오류가 뜨는데 원인을 알수 있을까요 ?
한 폴더에서 매출데이터를 통합하는 쿼리를 만들고 있는데요, 모든 raw데이터 양식을 동일하게 만들었음에도 불구하고 아래와 같은 에러메세지가 뜨는데, 이유와 해결방법을 알수 있을까요 ?? [DataFormat.Error] Date 값에 제공된 입력을 구문 분석할 수 없습니다.