묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[기초] 처음부터 설치하며 배우는 앤서블(Ansible)
게이트웨이로 핑이 안나가네요
가상머신 ip를 192.168.1.100/24로 잡고 호스트pc(192.168.1.18)에서 ping -t로 해서 계속 보내고 있는 중에 가상머신을 켜면 ping은 가더라구요. 근데 가상머신은 게이트웨이나 호스트pc로 ping이 나가질 않아요. 어떤 설정이 잘못된건지 모르겠어요
-
미해결Flutter 중급 1편 - 클린 아키텍처
sqflite Test 코드 작성
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 오준석님. 24강에서 Sqflite Test 코드를 작성하는 부분에서 질문이 생겨서 질문 남깁니다. /di/provider_setup.dart 부분에서 openDatabase를 실행하셨는데, 이 부분이 singleton으로 하신걸까요..? 저는 오준석님이 강의하신것을 바탕으로 제 스타일로 한번 변형 해보고 있는데요, 저는 sqfLiteDatabase를 클래스로 따로 빼서 singleton으로 만들어 보고 있는데 테스트 코드에서 final db = await databaseFactoryFfi.openDatabase(inMemoryDatabasePath); 이 부분을 어떻게 적용해야 될지 감이 잘 안와서 질문 남깁니다. 오준석님이 lib/di/provider_setup.dart에서 하신 부분이 singleton으로 구현하신게 맞으신가요? -> 이게 가장 궁금하고, 아니라면 singleton으로 하지 않으신 이유도 궁금합니다! 아래 코드는 제가 singleton으로 구현한 SqfLiteDatabase 클래스 인데, 테스트코드 작성시 final db = await databaseFactoryFfi.openDatabase(inMemoryDatabasePath); 이 코드를 어떻게 작성하면 좋을지 조언 주시면 감사하겠습니다! 감사합니다. 오늘 하루도 좋은 하루 되세요 :) import 'package:flutter_architecture/data/data_source/note_db_helper.dart'; import 'package:sqflite/sqflite.dart'; class SqfLiteDatabase { static const tableName = 'note'; static const databaseName = 'notes_db'; static final SqfLiteDatabase _singleton = SqfLiteDatabase._internal(); factory SqfLiteDatabase() { return _singleton; } SqfLiteDatabase._internal(); Future<Database> database = initializeDatabase(); static Future<Database> initializeDatabase() async { Database database = await openDatabase( databaseName, version: 1, onCreate: (db, version) async { await db .execute('CREATE TABLE $tableName (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, content TEXT, color INTEGER, timeStamp INTEGER)'); }, ); return database; // NoteDBHelper(database); } }
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
db.js에서 host가 왜 'mysql' 인가요?
보통 host에 ip를 입력하는데 mysql 이라고 입력한 이유가 무엇인가요? mysql 이라고 명시된 무언가와 매핑이 되는건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 홀수 판별 질문있습니다.
홀수 판별을 i % 2 == 1으로 안 하고 & 연산자를 사용하는 이유가 따로 있을까요? 속도면으로 더 빠르다던가..
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
Usercreationform과 model 관계
선생님 안녕하세요 SignupForm 클래스에 UserCreationForm을 상속받고 메타 클래스 필드에 username, email, first_name, last_name을 추가해줬는데요, 모델에도 해당 필드를 추가해줘야 하지 않나요? 해당 필드를 추가하고 정보를 입력해도 admin USER에 추가가 안되어 질문 드립니다! forms.py models.py 정보 추가 admin ** 참고로 def __init__(self, *args, **kwargs)초기값도 적용이 안됩니다.. 항상 감사드립니다!
-
미해결[김왼손의 왼손코딩] 파이썬 예제 뽀개기: 파이썬 초중급자를 위한 파이썬 30제
오류가 자꾸 뜨는데 이게 맞는건가요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요.
-
해결됨스프링 핵심 원리 - 기본편
Member 객체에 변수를 넣었을 때,
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 아주 기본적인 질문인데, 도움 주시면 감사하겠습니다ㅠㅠ Member findMember = memberService.findOne(saveId).get(); 만약에 Member 객체의 findMember에 findOne 메소드를 사용하는 경우에, public Optional<Member> findOne(Long memberId){ return memberRepository.findById(memberId);} public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id));} Optinal<Member> 객체에 id를 담아서 가져오는 것으로 이해했는데, 그렇다면 Member 객체가 생기면서 id라는 변수(클래스 변수...? 키..?)와 값을 가져와서 findMember 인스턴스에 그 부분만 할당을 하는 것인가요? 이해를 잘 못해서 질문도 조금 난해한 것 같은데 조언 부탁드리겠습니다ㅠ 그리고, Optianl<Member>와 <Member>는 서로 다른 객체인데 Optinal<Member>에 담겨진 값을 <Member> 객체에 대입할 수 있나요..? <Member> 객체가 더 큰 타입이라 자동 형변환이 되는 것인지도 궁금합니다..! 좋은 강의와 도움 주시는 서포터 분들 항상 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HTML에서의 URL에 관한 질문
안녕하세요. 아래의 코드는 loginForm.html 인데요. 이 화면에서 ID와 비밀번호를 작성한 후 POST 방식으로 /login URL로 데이터를 전송해야 하지요. 그런데 th:onclick="|location.href='@{/}'|" 이렇게 기술되어 있는데, 어떻게 /login으로 데이터가 전송되는 것일까요? <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <link th:href="@{/css/bootstrap.min.css}" href="../css/bootstrap.min.css" rel="stylesheet"> <style> .container { max-width: 560px; } .field-error { border-color: #dc3545; color: #dc3545; } </style> </head> <body> <div class="container"> <div class="py-5 text-center"> <h2>로그인</h2> </div> <form action="item.html" th:action th:object="${loginForm}" method="post"> <div th:if="${#fields.hasGlobalErrors()}"> <p class="field-error" th:each="err : ${#fields.globalErrors()}" th:text="${err}">전체 오류 메시지</p> </div> <div> <label for="loginId">로그인 ID</label> <input type="text" id="loginId" th:field="*{loginId}" class="form-control" th:errorclass="field-error"> <div class="field-error" th:errors="*{loginId}" /> </div> <div> <label for="password">비밀번호</label> <input type="password" id="password" th:field="*{password}" class="form-control" th:errorclass="field-error"> <div class="field-error" th:errors="*{password}" /> </div> <hr class="my-4"> <div class="row"> <div class="col"> <button class="w-100 btn btn-primary btn-lg" type="submit">로그인</button> </div> <div class="col"> <button class="w-100 btn btn-secondary btn-lg" onclick="location.href='items.html'" th:onclick="|location.href='@{/}'|" type="button">취소</button> </div> </div> </form> </div> <!-- /container --> </body> </html>
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
미들웨어 관련 질문입니다.
조현영님 강좌를 보던 중 express와 미들웨어 관련된 강좌를 보고 express를 사용해 서버를 만들던 도중에 막히는 부분이 있어서 질문해봅니다. (단순 에러 해결 질문은 아닙니다.) const axios = require("axios"); const express = require("express"); const path = require("path"); const morgan = require("morgan"); const app = express(); const hostName = "127.0.0.1"; const port = process.env.PORT || 5147; require("./productServer1"); app.use(morgan("dev")); function getInfoWithAxios(key) { if (key === "1") { res.sendFile(path.join(__dirname, "./productOne.html")); } else if (key === "2") { res.sendFile(path.join(__dirname, "./productTwo.html")); } else { res.sendFile(path.join(__dirname, "./productThree.html")); } } app.set("func", getInfoWithAxios()); app.get("/", (req, res) => { res.sendFile(path.join(__dirname, "./expressAPI.html")); }); app.use("/product/:addr", (req, res, next) => { console.log(`you connect on ${req.params.addr}}`); next(); }); app.get("/product", (req, res) => { res.write("<h1>Here is product information</h1>"); res.send(); }); app.get("/product/product1", async (req, res) => { try { const result = await axios.get("http://127.0.0.1:3257"); const productID = String(result.data[0].id); app.get("func"); console.log("Request Type:", req.method); } catch (err) { console.error(err); } }); app.get("/product/product2", async (req, res) => { try { const result = await axios.get("http://127.0.0.1:3257"); const productID = String(result.data[1].id); app.get("func"); console.log("Request Type:", req.method); } catch (err) { console.error(err); } }); app.get("/product/product3", async (req, res) => { try { const result = await axios.get("http://127.0.0.1:3257"); const productID = String(result.data[2].id); app.get("func"); console.log("Request Type:", req.method); } catch (err) { console.error(err); } }); app.use((err, req, res, next) => { console.error(err); res.status(401).send(err.message); }); app.listen(port, () => { console.log(`server is running at http://${hostName}:${port}`); }); 위에 코드를 실행시키면 우선 코드 본문의 내용이 실행됨과 동시에 require()로 productServer1이라는 express를 사용한 상품 데이터 서버가 실행됩니다. (localhost를 사용하고 상품 데이터 서버 포트는 3257)입니다. /product/product(1~3)으로 get메서드를 보내면 같이 실행되는 상품 데이터 서버에서 id값을 받아오고 id값을 getInfoWithAxios(key)함수에 넣어서 html페이지를 id값에 맞게 상품별로 분기하게 됩니다. 이떄 문제는 getInfoWithAxios()함수에 res객체가 없어서 id에 맞게 html페이지를 분기 할 수가 없다는 것입니다. 미들웨어로 처리를 하고 싶지만 방법을 모르겠어서 질문해봅니다. 그리고 app.get() 함수에 있는 각각의 productID를 어떻게 하면 매개변수로 대입 할 수 있는지도 궁금합니다. 요약하자면 함수를 미들웨어로 만들려면 어떻게 작성해야 하고 만든 함수를 접근할때 매개변수는 어떻게 대입할수 있을까요? 조현영님의 이해를 돕기 위해서 전체 프로젝트에 대한 깃 주소를 남겨드리겠습니다. https://github.com/shere1765/node_server/tree/main/small_project 전체 프로젝트에 있는 expressAPI는 문제없이 잘 실행될겁니다. 하지만 제가 원하는 코드는 아닙니다. 그 밖에 문제점이 있다면 피드백 부탁드립니다.
-
미해결[기초-응용] 다양한 환경을 앤서블(Ansible)로 관리하기 with 베이그런트(Vagrant)
cfg.vm.provision 질문이 있습니다
안녕하세요, 강의 잘 듣고 있습니다. cfg.vm.provision 을 살펴보던 중 아래와 같은 문서를 봤는데요. https://www.vagrantup.com/docs/provisioning/ansible_intro cfg.vm.provision "ansible" 이나 "ansible_local" 로도 ansible 설정이 가능한 것으로 보이는데, 수동으로 설치를 하신 이유가 궁금합니다.
-
미해결Vue.js + TypeScript 완벽 가이드
vue 질문입니다..ㅠ !css 파일 import
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 판교님 안녕하세요 ㅠㅠ 강의 듣고 혼자 토이프로젝트 하다가 막히는 부분이 있는데 혹시 판교님께서 .. 아시는 부분이 있나 해서 질문 남깁니다.!vue-color-kit 이라는 라이브러리를 사용하고 있는데 로컬에서 css import 이후 serve 하게되면 정상적으로 잘 적용이 되는데 build 후 build 파일을 돌리게 되면 저 vue-color-kit.css 파일 적용이 안됩니다 .ㅠ public/index 에 link 도 해 봤지만 적용이 안되네요 혹시 환경설정이나 다른 작업이 필요한걸까요..? ㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
Member 객체가 언제 생성될까요 ?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 안녕하세요. 강의 활용해서 제가 따로 프로젝트를 만들어서 따라해보고 있는데 궁금증이 생겨 질문 드립니다. Controller -> MemberService -> MemberRepository 순으로 진행되는 코드에서 혹시 생성자는 언제 생성이 되는 건가요? signup 인스턴스(HTML에서 변수를 받아오는 방식으로 사용 중입니다)를 Member 객체로 받아올 때 생성이 되는건가요? 객체가 생성되지 않으면 signup이라는 인스턴스를 join 메소드의 파라미터로 못 넣을텐데... ++ 입문 강의에서 김영한 선생님께서는 컨트롤러에서도 Member 객체를 new 연산자로 생성은 하셨었는데, 코드 한 줄 줄일 수 있을까 싶어 바로 singup 인스턴스로 파라미터를 넣으니까 돼서, 어떤 차이가 있을지도 궁금합니다. 원래 HTML의 form 태그에서 submit으로 Controller에서 받아오는 시점에서 객체가 생성되는 건지(new 연산자 없이), 만약 그렇다면 받아오면서 객체가 생성되고 설정한 생성자도 작동하게 되는건가요? 항상 좋은 강의와, 서포터 분들의 정성 어린 답변 감사드립니다. @PostMapping("/members/new")public String create(Member signup){ memberService.join(signup); return "redirect:/";}
-
미해결모든 개발자의 실무를 위한 올인원 기본기 클래스
amend commit 질문
amend commit 실행하고 insert로 바꿨는데 수정모드 끄는건 어떻게하는건가요 나와지질않네요 insert랑 replace 상태여서 :wq를 입력못하고있습니다 ㅠ insert에서 못벗어나서 종료하고 reset하고 다시 했는데 아예 amend commit이 안되네요.. E325: ATTENTION Found a swap file by the name "C:/Users/user/PycharmProjects/git-tes/.git/.COMMIT_EDITMSG.swp" owned by: user dated: Thu Dec 30 09:41:32 2021 file name: ~user/PycharmProjects/git-tes/.git/COMMIT_EDITMSG modified: YES user name: user host name: DESKTOP-C2BR6PG process ID: 1916 While opening file "C:/Users/user/PycharmProjects/git-tes/.git/COMMIT_EDITMSG" dated: Thu Dec 30 10:00:55 2021 -- More --
-
미해결스프링 시큐리티
클라이언트에서 csrf 토큰은 어디 저장된다고 봐야하나요?
세션아이디의 경우 클라이언트의 쿠키에 저장되는 반면 csrf토큰은 어디에 저장된다고 봐야 할까요 .?
-
미해결모든 개발자의 실무를 위한 올인원 기본기 클래스
revert 오류
이런 상태에서 git revert하면 아래처럼 오류가뜹니다. $ git revert 7a6a52c error: Your local changes to the following files would be overwritten by merge: a Please commit your changes or stash them before you merge. Aborting fatal: revert failed a가 merge가 되있어서 revert가 안된다는뜻인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
수강평 매번 남길래도 어디서 남겨야되는지 안보여요ㅠㅠ
도와주세요ㅠ
-
해결됨그림으로 쉽게 배우는 운영체제
빌드라는 용어
test.c 에서 test.exe로 변환하는 전과정을 통틀어 빌드라고 부르는 것으로 알고 있습니다. 이게 맞을까요? 아니면 컴파일부분만 빌드라고 하나요
-
미해결Slack 클론 코딩[실시간 채팅 with React]
npm i 명령어로 package.json파일의 dependencies와 devdependencies의 목록 설치하기
다른사람이 만들어둔 package.json파일을 내 로컬로 복사해와서 npm i명령어로 설치할때, dependencies와 devdependencies의 목록의 모든 파일이 설치되는지 궁금합니다. 예를 들어 package.json 파일안에 아래처럼 두 라이브러리가 각각 dependencies와 devdependencies의 목록에 기재돼어 있으면 npm i 로 설치시 aaa/a와 bbb/b라이브러리 둘다 설치되는건가요? "dependencies": { "@aaa/a": "^11.1.2" } "devDependencies": { "@bbb/b": "^7.12.10" }
-
미해결빠르게 git - 핵심만 골라 배우는 Git/Github
원격저장소 push 원리
안녕하세요 강의 잘보고있습니다 ------------- 로컬/원격 양쪽다 3개의 커밋이 있는 상태에서 원격저장소에서 파일을 삭제해 버렸습니다. 파일을 실수로 올린거라 삭제한거였는데 github에서 커밋을 따로 봤더니 파일을 삭제한 작업이 4번째 커밋으로 올라가 있었습니다 불필요한 커밋이라는 생각이 들어 첫번째 init 커밋으로 돌아가고싶었는데 github에는 커밋을 삭제하는 기능이 없더라구요 (커밋을 되돌리는 기능을 찾았어야 했을까요?) 그래서 일단은 원격상태를 로컬에 pull로 땡기고 로컬에서 1번째 커밋으로 reset한 뒤에 강제로 push 했습니다 ------------- 저는 이때 원격 커밋은 첫번째로 돌아가는게 아니라 5번째 커밋이 생길줄 알았는데 로컬 커밋을 그대로 받더라구요 그러면 원격저장소는 사실 로컬처럼 따로 있는게 아닌 그저 로컬저장소의 커밋 그 자체를 받는건가요?
-
미해결Kotlin으로 개발하는 Spring Boot Web MVC
scope function 사용 불가
안녕하세요. 스프링 강의인데 코틀린 언어에 대한 질문이 조금 적절하지 않을 수 있을것같아요. 하지만 다른 분들도 겪을 가능성이 있을것같아서 염치 불구하고 여쭤봅니다.. PUT 강의를 진행하다가 kotlin scope function(apply)를 사용하는 부분이 나와서 따라하려는데 변수.apply / let ... 등을 reference 하지 못하고 빨간줄이 나오더라구요. 그래서 확인해보니 build.gradle.kts에 다음과 같이 1.6.10 코틀린 버전을 사용하도록 되어있었습니다 이는 최신 intellij를 사용하면 최신 코틀린버전이 이것이라 이렇게 넣어주는것 같네요 kotlin("jvm") version "1.6.10"kotlin("plugin.spring") version "1.6.10" 그런데 안드로이드 스튜디오에서는 scope function을 정상적으로 사용했어서, 버전을 확인해보니 1.6.0을 사용하고 있었습니다. 이를 참고하여 위 버전을 1.6.0으로 내렸더니 정상적으로 참조되는데 혹시 왜 그런지 알 수 있을까요? ㅠ