묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문자 형식과 String 형식 질문 있습니다!
answer 은 String 형식이고 x는 char 형식인데 answer += (char)(x-32); 이렇게 누적할 수 있는건가요 ?? import java.util.Scanner;public class Main{ public static String solution(String str){ String answer = ""; for(char c : str.toCharArray()){ if(65<=c && c<=90) answer += Character.toString(c+32); else answer += Character.toString(c-32); } return answer; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); System.out.println(solution(str)); }} 저는 그래서 toString 으로 했는데 인텔리제이에서 돌리면 정상적으로 되는데 채점하면 컴파일 오류가 생기네요.... 왜그런걸까요 ???
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
service단이 없는 이유
안녕하세요 강사님. 강의를 보다 의문이 들어서요. 지금 간단한 crud라서 그런지 service단 없이 바로 repsitory로 넘어가는데 spring jpa서는 service단을 사용하지 않는것인가요? 그리고 service단이 들어가면 servleturicomponentsbuilder를 서비스단에서 쓰는 것인가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build.gradle이 없습니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 인텔리제이에 hello-spring > build.gradle을 open하려고 하는데 build.gradle가 없습니다. 어떻게 해야할까요? ㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
thymeleaf 관련 질문입니다
안녕하세요. 에러가 발생하는데 원인을 몰라 질문드립니다. 저장 완료라고 입력하면 에러가 뜨고 영어 save로 하면 제대로 동작하는데 타임리프 설정을 잘못해둬서 그런걸까요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
오프라인 강의
선생님 오프라인 강의 하시는 곳은 없나요? zoom 수업이라도 하시는 곳~있으면 알려주세요!!! 아니면 계획하고 계신 오프라인 강의 일정도요~~~!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
MySQL enum 대소문자
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요~ 실무에서 사용하면서 enum 매핑에 문제가 있는데요. 아직 해결방법을 찾지 못했는데 혹시 동일한 경험이 있으신지 싶어 질문드려봅니다... MySQL에 enum('y', 'n') 이렇게 정의된 컬럼이 있는데요 @Enumerated(EnumType.STRING)@Column(name = "use_yn")private UseType useYn; @Getterpublic enum UseType { Y, N} 이렇게 했을 때 wrong column type encountered in column [use_yn] in table [cmt_admin]; found [enum (Types#CHAR)], but expecting [varchar(255) (Types#VARCHAR)] 이런 에러가 발생해서 @Enumerated(EnumType.STRING)@Column(name = "use_yn", columnDefinition = "ENUM('y', 'n')")private UseType useYn; @Getterpublic enum UseType { y, n} 이렇게 해서 해결이 되었습니다 그런데 MySQL은 대소문자 구분을 하지 않는다고 UseType을 Y,N 대문자로 하고, columnDefinition도 사용할 필요가 없다고 하는데 저는 자꾸 동일한 에러가 발생해서요... 혹시 이런 경험을 해보셨을까요?
-
해결됨코딩으로 학습하는 GoF의 디자인 패턴
빌드 패턴 강의 관련 질문입니다.
빌드 패턴 강의 중 문의 드립니다. 예제 중 아래 코드를 실행해보았습니다. 그랬더니 tourPlan값은 정상적으로 원하는 값이 들어갔지만, tourPlan1은 원치 않는 값까지 입력된 부분을 확인하였습니다. DefaultBuilder을 주입 받기 때문에 생기는 문제라고 판단되는데, DefaultBuilder를 주입받아 상용하도록 구성한 이유가 있을까요?? 그리고 TourDirector를 아래와 같이 수정하여 보았는데, 혹시 이렇게 사용하면 이슈가 있을까요?? public class TourDirector { public TourPlan cancunTrip() { TourPlanBuilder tourPlanBuilder = new DefaultTourBuilder(); return tourPlanBuilder.title("칸쿤 여행") .nightsAndDays(2, 3) .startDate(LocalDate.of(2020, 12, 9)) .whereToStay("리조트") .addPlan(0, "체크인하고 짐 풀기") .addPlan(0, "저녁 식사") .getPlan(); } public TourPlan longBeachTrip() { TourPlanBuilder tourPlanBuilder = new DefaultTourBuilder(); return tourPlanBuilder.title("롱비치") .startDate(LocalDate.of(2021, 7, 15)) .getPlan(); } }
-
미해결반응형 웹사이트 포트폴리오(App Official Landing Website)
스크롤하면 시작되는 애니메이션 wow.js
■ 질문 남기실 때 꼭! 참고해주세요. 스크롤하면 시작되는 애니메이션 wow .js 궁금한게 있는데요 처음에는 애니메이션이되는데 양옆으로 갔다가 오는게 되는데 다시 위로 올리면 애니메이션이 실행이안되요(양옆으로 갔다가 다시 제자리로 오는 애니메이션) 새로고침해서 처음에만 되는데 원래 그런건가요 ?? 실행이 되고 다시 위로 올려서 내리면 실행이 안되는건가요 ? - 먼저 유사한 질문이 있었는지 검색해주세요.- 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다.- HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요.- 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다.
-
미해결홍정모의 따라하며 배우는 C++
13:49 if(!mptr)질문드립니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이미 주소를 가지고 있으면 지우는것이기때문에 if(m_ptr) delete m_ptr ; 이 맞지않나요? if(!m_ptr) delete m_ptr 하면 m_ptr이 nullptr일때 지우는게 아닌가 해서 질문드립니다.
-
미해결운영체제 공룡책 강의
flag, turn 변수의 원자성이 Peterson's problem의 Mutual exclusion을 충족시키는 이유를 모르겠습니다.
좋은 강의 잘 보고 있습니다. 감사드립니다. 이번 강의의 중요한 부분인듯 한데 제가 이해를 잘 못하는 부분이 있어서 이렇게 질문드립니다. flag 변수와 turn 변수의 원자성이 Peterson's problem의 Mutual exclusion 조건을 충족시키는 이유가 구체적으로 무엇인가요? 제가 조사한 바로는 기계어 레벨에서 flag에 true를 할당하는 부분이 while문의 뒤쪽에서 완료될 수 있기 때문이라고 이해를 했거든요. 그럼 양쪽 스레드 모두 상대방의 true를 확인하지 못하고 Critical Section에 접근하는 경우의 수가 생기더라고요. 정보 출처 : https://www.quora.com/Why-is-Petersons-solution-not-guaranteed-to-work-on-modern-computer-architecture-as-mentioned-in-Operating-System-Concepts-by-Silberschatz 반대로 이론적으로 상대 스레드의 접근성을 확인하는 라인(while 문)보다 flag에 true를 할당하는 부분이 위에 있으면 Mutual exclusion이 해결됨을 확인했습니다. 예를 들면 A스레드가 while문으로 B의 접근을 확인한 직후에, B스레드가 자신의 flag B를 True를 바꾸고 Critical Section에 접근한다고 해도, B는 무조건적으로 A가 True임을 확인할 수 있기 때문입니다. (A의 flag가 true가 되는 부분이 A의 while문 위에 있기 때문에) 그래서 강의 후반에 flag와 turn 부분을 원자성이 보장되도록 바꾸셨는데 결과가 0으로 나오는게 이해가 가지 않더라고요. 저는 Critical Section의 특정 부분(예제에서는 count 변수)을 원자성이 보장되는 변수로 바꿀줄 알았거든요. A 스레드에서 count를 1에서 2로 올리는 와중에 context switching이 일어나서 B 스레드에서 1에서 0로 바꿔버리면, 다시 A 스레드에게 주도권이 왔을 때 count는 2가 될 테니까요. 그래서 flag와 turn 변수의 원자성이 어째서 Mutual exclusion을 보장되게 하는지 구체적인 이유를 알고싶습니다.
-
미해결
안녕하세여 swift view Controller에 관해서 질문있습니다.
viewcontroll를 xib로 작성후 present하기 위해 인스턴스화를 시킬 경우 let vc = myViewController() let vc = myViewController(nibName : "myViewController",bundle:nil) self.present(vc, animated: true, completion: nil) 두개가 똑같이 작동합니다. 혹시 그 이유를 알 수 있을까여?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
오류
똑같이 http-exception.filter.ts 파일 만들고 똑같이 긇어다가 붙여넣기 했는데 저는 오류가 엄청 많이생깁니다 ㅜ
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
너무 어렵습니다 ㅜ
exception filter @ pipes 이해가 1도 안되는데요... @param < 파라미터의 개념도 잘몰겟구요 nestjs를 꼭 할줄 알아야 하는데 이해가 안가도 계속 반복해서 들으면 이해되려나요?
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
관계 표현 모델 필드에 관한 질문
1:1관계인데 upload를 통해 값이 바뀌고 수정되는 경우도 1:1 관계로 정의 하면 될까요? 리더보드에서 json파일로 답을 업로드 하고 그에 따라 점수나 순위가 바뀌는데 계속해서 답을 제출할 수 있는 경우입니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
[이유를 모르겠는데 해결되었습니다] [nodemon] Could not shutdown sub process cleanly
[이유는 모르겠지만.. 회사 업무 시스템을 꺼서 그런지 해결되었습니다. 정상적으로 restart 됩니다. 감사합니다] 안녕하세요, 강사님 강의 감사히 잘 듣고있습니다. Nodemon 설치 중에는 전혀 문제가 없었는데, 구글링 해도 나오지 않는 문제가 있어 질문드립니다. 구동까지 잘 되고, 기능상 문제가 없습니다. 그런데, 소스를 수정 후 저장버튼을 누르면 [nodemon] restarting due to changes... [nodemon] Could not shutdown sub process cleanly 이런 메세지가 발생합니다. 별것 다 해본 것 같은데 해결법을 찾지 못했습니다 ㅠㅠ 도와주실 수 있을까요? 아래 터미널과 index.js, package.json 소스 공유드립니다. D:\GitHub\react\boiler-plate>npm run backend > boiler-plate@1.0.0 backend D:\GitHub\react\boiler-plate > nodemon index.js [nodemon] 2.0.14 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js,mjs,json [nodemon] starting `node index.js` Example app listening at http://localhost:5000 MongoDB Connected... [nodemon] restarting due to changes... [nodemon] Could not shutdown sub process cleanly [nodemon] restarting due to changes... [nodemon] Could not shutdown sub process cleanly packages.json 파일은 이것저것 시도해보다 devDependencies에서 dependencies로 옮겨가게 되었습니다. (dev 태그를 빼고 설치해봤습니다..) packages.json { "name": "boiler-plate", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node index.js", "backend": "nodemon index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "injun", "license": "ISC", "dependencies": { "body-parser": "^1.19.0", "express": "^4.17.1", "mongoose": "^6.0.12", "nodemon": "^2.0.14" }, "devDependencies": {} } idnex.js const express = require('express'); const app = express(); const port = 5000; const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({extended: true})); app.use(bodyParser.json()); const {User} = require("./models/User"); const mongoose = require('mongoose'); mongoose.connect('@@@',{ }).then(() => console.log('MongoDB Connected...')) .catch(err => console.log(err)); app.get('/', (req, res) => { res.send('Hello World!2100000'); }); app.post('/register', (req, res) => { // 회원가입할 때 필요한 정보들을 client에서 가져오면 // 그것들을 데이터베이스에 넣어준다. const user = new User(req.body); user.save((err, doc) => { if(err) return res.json({ success: false, err}) return res.status(200).json({ success: true }) }); }); app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) });
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
미들웨어
이번 강의 이해 안되면 express 미들웨어 강의 다시 들어야 되죠?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
no-cache를 사용하지 않으면
no-cache를 사용하지 않으면 캐시가 expire되지 않았을 때 실제 origin 서버에서는 데이터가 수정되었음에도 불구하고 cache를 사용하는 문제가 발생할 수 있는건가요? 혹은 no-cache를 사용하지 않더라도 이런 문제를 해결하기 위해서 origin 서버에서의 업데이트는 proxy 서버나 클라이언트 브라우저 캐시에 알려주는 식으로 될까요? 제 생각에 후자는 절대 아닐 것 같습니다만.. 그러면 실무에서는 no-cache의 사용이 거의 필수적이라고 생각해도 무방할까요?
-
미해결Vue.js - Django 연동 웹 프로그래밍 (실전편)
빌드 에러
안녕하세요. 뷰 폴더 복사하기 영상을 따라하며 빌드를 하던 중 에러가 발생하여 질문 드립니다. npm run build를 실행하면 영상의 코드를 정확히 따라 했음에도 불고하고 아래와 같은 에러가 발생합니다. (폴더 이름 제외) Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file. 구글링 결과 vue.config,js에 lintOnSave: false 를 넣어 eslint 설정을 끄면 해결 된다고 하여 이것도 따라했습니다. 그러면 위의 에러는 발생하지 않지만 main_home.js, main_post_list.js, main_post_detail.js에서 에러가 발생하는데 @vue/cli-plugin-babel/preset 모듈을 찾을 수 없다고 합니다. 강의를 따라했는데 왜 이런 에러가 나는지 궁금합니다.
-
미해결UIKit - iOS14 실무 가이드 <iOS앱 진짜 개발자 되기>
안녕하세여 질문있습니다.
let vc = MyIDViewController() let midVC = MyIDViewController(nibName: "MyIDViewController", bundle: nil) self.present(vc,animated: true,completion: nil) 안녕하세여 강의를 듣고 코드를 다시 보니 xib파일로 view Controller를 만들어 불러오는 코드에서 저렇게 init매개변수로 아무것도 주지 않고 생성하고 코드를 생성해도 똑같이 작동했습니다. 굳이 MyIDViewController객체로 생성하는데 init에 파라미터로 xib파일이름을 주는 이유가 있을까여?
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
numOne을 음수로 시작하기
numOne을 음수로 설정하기 위해서 아래와 같이 else if문을 추가해 보았습니다. 추가한 위치와 방법이 옳바른지 알고싶습니다. const onClickOperator = (op) => () => { ... if (numOne) { operator = op; $operator.value = op; } else if (!numOne && op === '-') { operator = op; $operator.value = op; } else { alert('숫자를 먼저 입력해주세요.'); } };