묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] 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으로 내렸더니 정상적으로 참조되는데 혹시 왜 그런지 알 수 있을까요? ㅠ
-
미해결초보를 위한 쿠버네티스 안내서
운영을 목적으로 쿠버네티스 설치 관련 문의
- 학습을 위한 설치는 잘 따라하며 실습해보고 있습니다. - 리눅스 서버 6대를 준비하고 장차 운영을 목적으로 설치하려고 합니다. 배운데로 실습도 해보고 추가적으로 컨테이너도 확장해보고자 합니다. - 현재 리눅스 서버가 6대가 있습니다. 그 중 2대는 테스트용으로각각 웹서버와 디비서버로 사용중입니다. 테스트용이긴 하지만 작은 웹어플이 돌아가고 있는 상태라 여전히 기존에 돌아가던 웹어플은 유지하고 싶습니다. 나머지 4대는 리눅스 CentOS만 설치된 노는(?) 서버( PC급, i7/32Gb/1T * 4대)입니다. - 위와같은 환경에서 설치를 하려는데 참고할만한 가이드 부탁드립니다.
-
미해결C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)
이해할수없는 애러가 발생하였습니다.
이건 SpawnManager의 코드고 이건 ItemManager 그리고 이건 Points 클래스 입니다 분명 영상을 따라한 것 같은데... 이런 애러가 떠요 제가 뭘 잘못한 걸까요 ㅜㅜ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
CSR, SSR 관련 질문있습니다!
안녕하십니까, 좋은 강의 매번 잘 듣고 있습니다! 이번 강의는 제가 궁금했던 사항을 다뤄주셔서 더 주의 깊게 시청하였습니다. 운이 좋게도 친구가 프론트(react, vue)를 공부하는 상황이라 함께 프로젝트를 진행하고자 계획하고 있는데요, 모두 처음이라 난관에 봉착하고있는 상황입니다..ㅠ 이에 몇가지 질문을 드리고 싶어 글을 남기게 되었습니다. 기초적인 질문일 수 있겠지만 답변 주시면 감사드리겠습니다! 1. 프론트와 백의 협업 과정에서 먼저 진행해야 하는 것은 프론트에서 페이지를 구성하는 것인가요? 만일 그렇다면 커뮤니케이션을 할 때 백엔드 개발자가 API 문서를 미리 작성하여 그것을 기반으로 URL 등을 공유하며 협업을 진행하는 것인가요? 협업 과정의 프로세스와 협업 시 중요사항이 궁금합니다! 2. 리액트를 이용하여 백엔드(Spring)와 협업하였을 때 완성한 웹 페이지를 안드로이드 앱 처럼 전환도 할 수 있는 것으로 알고 있는데, 이 영역은 프론트의 영역인가요 백의 영역인가요? 3. 타임리프는 백엔드의 영역이라고 강의를 통해 배웠습니다. 그런데 많은 작업이 백 개발자와 프론트 개발자의 구분으로 이루어져 있는 것으로 알고 있습니다. 그렇다면 react나 vue가 많이 사용되고, 사용 타임리프는 현업에서 많이 사용되지 않는 것인가요? 제가 지식이 부족해 질문사항이 많아 죄송합니다 ㅠㅠ 시간 되신다면 답변 부탁드리겠습니다!!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
textrpg 두번째버전을 계속 실패합니다
using System; using System.Collections.Generic; using System.Text; namespace trpg22 { public enum GameMode { None, Lobby, Town, Field } class Game { private GameMode mode = GameMode.Lobby; private Player player = null; private Monster monster = null; private Random rand = new Random(); public void Process() { switch (mode) { case GameMode.Lobby: ProcessLobby(); break; case GameMode.Town: ProcessTown(); break; case GameMode.Field: ProcessField(); break; } } public void ProcessLobby() { Console.WriteLine("직업을 선택하세요"); Console.WriteLine("[1] 기사"); Console.WriteLine("[2] 궁수"); Console.WriteLine("[3] 법사"); string input = Console.ReadLine(); switch (input) { case "1": player = new Knight(); mode = GameMode.Town; break; case "2": player = new Archer(); mode = GameMode.Town; break; case "3": player = new Mage(); mode = GameMode.Town; break; } } public void ProcessTown() { Console.WriteLine("마을에 입장했습니다!"); Console.WriteLine("[1] 필드로 가기"); Console.WriteLine("[2] 로비로 돌아가기"); string input = Console.ReadLine(); switch (input) { case "1": mode = GameMode.Field; break; case "2": mode = GameMode.Lobby; break; } } public void ProcessField() { Console.WriteLine("필드에 입장했습니다!"); Console.WriteLine("[1] 싸우기"); Console.WriteLine("[2] 일정 확률로 마을 돌아가기"); CreatRandomMonster(); string input = Console.ReadLine(); switch (input) { case "1": ProcessFight(); break; case "2": TryEscape(); break; } } private void TryEscape() { int randvalue = rand.Next(0, 101); if (randvalue < 33) { mode = GameMode.Town; } else { ProcessFight(); } } private void ProcessFight() { while (true) { int damage = player.GetAttack(); monster.OnDamaged(damage); if (monster.IsDead()) { Console.WriteLine("승리했습니다"); Console.WriteLine($"남은체력{player.GetHp()}"); break; } damage = monster.GetAttack(); player.OnDamaged(damage); if (player.IsDead()) { Console.WriteLine("패배했습니다"); break; } } } private void CreatRandomMonster() { int randValue = rand.Next(0, 3); switch (randValue) { case 0: monster = new Slime(); Console.WriteLine("슬라임이 생성되었습니다"); break; case 1: monster = new Orc(); Console.WriteLine("오크가 생성되었습니다"); break; case 2: monster = new Skeleton(); Console.WriteLine("해골이 생성되었습니다"); break; } } } } - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 3번째 강의까지는 문제 없이 되는데 마무리 단계를 따라하고 나면 문제가 발생합니다. 거꾸로 영상을 다시보기도 하고 처음부터 다시만들어 봤는데 이번엔 또 같은곳에서 다른 이유로 안되네요...ㅠㅠ 맨처음 만들었던건 nullreferenceexception이라는 오류가 떴고 지금 코드를 첨부한 두번째 시도는 이렇게 나오는데 혼자 며칠 고민해봐도 강의를 반복해서 봐도 어디서 실수를 했는지 도저히 찾지를 못하겠어서 도움을 요청드립니다
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
AWS 리액트는 자동배포 성공했습니다.
강사님~, 방금 12월 28일 올린 소스라고 되있는거 보고 아래 처럼 수정하여 AWS에 리액트 뜨는건 확인했습니다. 하지만 아래와 같은 500 에러가 나네요. 플라스크나 디비가 제대로 네트워크가 연결이 안됐든 설치가 안됐든 했나봅니다. 시간될때 더 확인해보고 댓글이나 게시글 남기겠습니다. 혹시 힌트 있으시면 주셔도 매우 감사할거 같습니다. POST http://dockermultiapp-env.eba-qurqfhda.ap-northeast-2.elasticbeanstalk.com/api/value 500 (Internal Server Error) createError.js:16 Uncaught (in promise) Error: Request failed with status code 500 at e.exports (createError.js:16) at e.exports (settle.js:17) at XMLHttpRequest.p.onreadystatechange (xhr.js:61) < 리액트 => AWS 배포 성공 변경점 > - 플라스크 배포/네트웍연결이랑 AWS RDS 설정은 저의 확인이 더 필요함. frontend/Dockerfile.dev 랑 frontend/Dockerfile를 아래 처럼 수정하였습니다. (변경 전)FROM node:alpine as builder => (변경 후) FROM node:16-alpine as builder 그리고 추가로 frontend/package.json 을 로컬 개발 환경에서 빌드인가 실행시 permission 에러나서 --openssl-legacy-provider 넣었습니다. 이거 다시 없앴습니다. 개발 버전에서는 아직 테스트 못해봤는데 또 permission 에러나면 "start": "react-scripts --openssl-legacy-provider start", 이부분 다시 넣어야 할거 같습니다. < 강사님이 혹시나 제 질문때문에 뭔가 고생하실까봐랑 정보가 이리 저리 분산되는걸 방지하기위해 이글은 곧 지우겠습니다. 혹시 댓글 주실거 있으면 원래 글에 댓글 주시면 매우 감사하겟습니다.원래 글에 이글과 동일한 글을 댓글로 남겼습니다. >
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
연결 거부
local에서 npm run start:prod하면 잘되는데, lightsail에서 하면 연결이 안된다고 나옵니다 ㅠ -pm2 list - deny - lightsail ACL
-
미해결빠르게 git - 핵심만 골라 배우는 Git/Github
git fetch 정말 필요할까요?
local에서 push한 후에 remote에서 수정해서 커밋을 했습니다. 그리고 fetch를 하려고했는데, fetch하기 전에 한번 git checkout origin/main 을 해보았습니다 fetch를 하지 않아서 원격에서 커밋한 내용이 안보일 줄 알았는데 잘 보이더라구요.. fetch 안해도 잘 보이던데 꼭 해야되나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문생성 파라미터 질문
질문 1 생성 메서드에서 가격을 직접 파라미터로 받는데 가격은 상품마다 정해져있는데 보통 저렇게 가격을 파라마터로 받나요 ?? 질문2 주문 생성에 43Line 질문입니다 여기서 orderItem 이라는 전달인자를 하나를 넘겨줍니다. 그런데 생성 매서드를 보시면 59라인 orderItems를 여러개 받을수 있게 설계가 되어있습니다. 어차피 하나밖에 안넘겨주는데 저렇게 여러게 받을수 있게 해주신 이유가 있을까요 ??(OrderItem... orderItems)