inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

인터셉터

미해결

스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!

스프링 시큐리티를 적용하고 나서 modify가 계속 /member/signin으로 리다이렉트 되는 현상이 발견되었는데, 원인을 파악해보니 인터셉터 클래스 문제였습니다. (기존 인터셉터 클래스에선 session을 기반으로 로그인 상태여부를 확인하는데, Spring Security를 사용하고 나선, session이 아닌 SecurityContext에 로그인 정보를 보관하니 서로 충돌을 일으켜 계쏙 signin으로 리다이렉트 되는거 같습니다.) 혹시 이 부분이 맞는지 확인 부탁드리며, 제가 쓴 내용이 맞다면, 강의 내용중에 이부분을 짚어주셨으면 합니다.

  • rest-api
  • spring-boot
  • jpa
  • spring-security
  • mybatis
jsshin 댓글 2 좋아요 0 조회수 112

강의자료

미해결

[1.5탄] 옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트

안녕하세요! 혹시 강의자료 첨부는 따로 없을까요 ?-?

  • java
  • spring
  • rest-api
  • spring-boot
최연우 댓글 2 좋아요 1 조회수 110

Ubuntu 설치 관련

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

제 노트북이 램이 8G인데 Ubuntu 설치해서 이용가능할까요?

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
도식 댓글 1 좋아요 0 조회수 81

DTO 관련

해결됨

스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!

강의 열심히 듣고 있습니다. 다름이 아니라, DTO 관련 의구심이 들어서 질문 올립니다. 선생님께선 modifyConfirm 일때 dto의 pw 값을 encode된 값으로 변경하셔서 entity로 넣으셨는데, String encodedPW = passwordEncoder.encode(memberDTO.getPw()); memberDTO.setPw(encodedPW) findedMemberEntity.setMemPw(memberDTO.getPw()); 위의 방법대로 하면, dto값이 변경이 되어 "단순 전달 객체"를 위배할 수 있으며, 간결성과 가독성이 떨어지는게 아닌가 싶어서요 아래와 같이 리펙토링 하면 조금 더 간결하게 되지 않을까요? if (optionalMember.isPresent()) { MemberEntity findedMemberEntity = optionalMember.get(); findedMemberEntity.setMemPw(passwordEncoder.encode(memberDTO.getPw())); ~~ return MODIFY_SUCCESS; }

  • rest-api
  • spring-boot
  • jpa
  • spring-security
  • mybatis
jsshin 댓글 2 좋아요 0 조회수 123

스프링 기동 하는 부분에서 계속 에러가 나와서 질문 드립니다.

해결됨

Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기

안녕하세요. 스프링 기동 부분에서 에러가 나와서, 자바 버전도 바꾸어 보고, 인텔리제이도 최신 버전으로 업데이트 하고 , 여러 가지 시도를 해보는데, 문제가 해결이 안되고 있습니다. 여기 에러 로그를 남겨 봅니다. 참고로 그래이들 빌드시엔 에러가 안 나오지만, 소스의 메인 메서드를 실행하면 에러가 나옵니다. Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2025-06-25T19:32:28.071+09:00 ERROR 10688 --- [prac] [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active). > Task :restapi.prac.PracApplication.main() FAILED Execution failed for task ':restapi.prac.PracApplication.main()'. > Process 'command 'C:\Users\jjhgw\.jdks\openjdk-24.0.1\bin\java.exe'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org . BUILD FAILED in 14s 3 actionable tasks: 2 executed, 1 up-to-date

  • mysql
  • rest-api
  • spring-boot
  • jpa
  • react.js
Jang Jaehoon 댓글 4 좋아요 0 조회수 198

build 폴더 생성 관련 문의

미해결

옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트

폴더 똑같이 생성하고, build.gradle 파일로 프로젝트 오픈 후 build successful 되었는데도 build 폴더만 생성되지 않았습니다. 이 경우 그냥 진행해도 될까요?

  • java
  • spring
  • rest-api
  • spring-boot
  • dbms/rdbms
댓글 1 좋아요 2 조회수 86

node_modules 폴더가 생기지 않아요

해결됨

한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지

npm init -y해서 package.json은 생겼는데 npm install express했을때 package-lock.json은 생겼는데 node_modules 폴더가 생기지 않네요 ㅠ

  • javascript
  • rest-api
  • spa
  • dom
아리 댓글 3 좋아요 1 조회수 207

Console.WriteLine

미해결

ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0

백엔드에서 Console.WriteLine 찍은건 어디서 볼 수 있나요 ?

  • C#
  • mvc
  • rest-api
  • 아키텍처
  • mssql
  • ef-core
  • asp.net-core
OFF 댓글 1 좋아요 0 조회수 78

추가 강의 해주실수 있나요?

미해결

스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!

강의 맘에 듭니다 아직 뒤에는 못봤지만 스웨거와 querydsl를 이용한 강의도 오픈 해주셨으면 해요

  • rest-api
  • spring-boot
  • jpa
  • spring-security
  • mybatis
culwonder.company 댓글 1 좋아요 0 조회수 135

데이터베이스 테이블이 중복 생성 되는 오류

미해결

스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!

영상 52분에서 로그인이 성공되는 반면 저는 로그인이 계속 실패나와서 무엇이 문제인지 확인하는데 데이터베이스 테이블이 두 개가 생성된 것을 확인했습니다. 기존에 있던 테이블은 USER_MEMBER 인데, Entity 객체를 만들고 나서 user_member 테이블이 생성되었고 애플리케이션 실행 후 다시 가입을 하면 user_member 데이터베이스에 저장되며 기존 기능들은 에러 없이 정상 작동이 됩니다.. 궁금한 것은 데이터베이스 테이블이 저렇게 두 개 생성된건데 제가 무엇을 잘못해서 만들어졌는지 또 이대로 사용하는데 문제는 없는지 궁금합니다.. 코드는 선생님 코드랑 다른 부분이 없습니다 ㅠ

  • rest-api
  • spring-boot
  • jpa
  • spring-security
  • mybatis
huihui 댓글 3 좋아요 0 조회수 152

출력방법 변환

해결됨

실전! Django 입문 [최신 5.2 버전]

그대로 한것 같은데 한글이 안 나오는 이유가 있을까요? (출력 방식이 안 바뀌는)

  • python
  • django
  • aws
  • rest-api
  • drf
Young Sang Hwang 댓글 1 좋아요 0 조회수 102

향후 강의 일정에 대해 문의드립니다!

미해결

옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트

안녕하세요! 미리 1탄부터 1.5탄 구매했고요, 2탄도 구매해서 수강예정입니다, 강의가 넘 재밌고 이해가 쉽습니다! 강사님이 웃으실 때 저도 덩달아 따라 웃게되네요 ^___^;; 앞으로 MSA 기반 Spring Cloud와 MSA 인프라 구현을 위한 도커 및 쿠버네티스도 강의 신청 드려도 되는 지 문의드립니다! 현재 강사님의 현업 업무 경험으로 MSA 와 Spring Cloud가 백엔드 취업에 어떠한 도움이 되는 지 궁금합니다! 그리고 JPA vs MyBatis 중에 현재 백엔드 취업 시장에서 강사님의 Pick이 어떠한 지 궁금합니다! 모든 기술을 통합하고 융합한 백엔드 취업용 초보 신입 개발자 포트폴리오용 프로젝트 강의를 언제쯤 출시해주시는 지 문의드립니다!

  • java
  • spring
  • rest-api
  • spring-boot
  • dbms/rdbms
  • msa
  • springcloud
  • mybatis
안연수 댓글 2 좋아요 1 조회수 128

강의 자료 어디서 다운받나요? 없는데요..

미해결

[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]

- 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.) - 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~ - 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.

  • python
  • rest-api
  • flask
김창현 댓글 1 좋아요 0 조회수 183

강의 자료 어디서 받을 수 있나요?

해결됨

강의 하나로 끝내는 백엔드 모든 지식!

강의 자료 어디서 받을 수 있나요?

  • docker
  • rest-api
  • dbms/rdbms
  • backend
  • infrastructure
홍기석 댓글 1 좋아요 1 조회수 238

최종프로젝트 상세페이지 출력 오류 문의드립니다!

해결됨

한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지

세션 9. 최종 프로젝트 cityDetail 개발-2 에서 https://trip-wiki-api.vercel.app/ 강사님이 알려주셨던 링크에는 상세페이지 이미지와 받는 정보가 없습니다! 어떻게 상세페이지를 출력할 수 있나요? Japan을 검색창에서 검색하고 상세페이지를 눌렀지만 아무런 정보가 출력되지 않고 있습니다! import Header from "./components/Header.js"; import RegionList from "./components/RegionList.js"; import CityList from "./components/CityList.js"; import CityDetail from "./components/CityDetail.js"; import { request, requestCityDetail } from "./components/api.js"; export default function App($app) { const getSortBy = () => { if (window.location.search) { return window.location.search.split("sort=")[1].split("&")[0]; } return "total"; }; const getSearchWord = () => { if (window.location.search && window.location.search.includes("search=")) { return window.location.search.split("search=")[1]; } return ""; }; this.state = { startIdx: 0, sortBy: getSortBy(), region: window.location.pathname.replace("/", ""), searchWord: getSearchWord(), cities: "", currentPage: window.location.pathname, }; const renderHeader = () => { new Header({ $app, initialState: { currentPage: this.state.currentPage, sortBy: this.state.sortBy, searchWord: this.state.searchWord, }, handleSortChange: async (sortBy) => { const pageUrl = `/${this.state.region}?sort=${sortBy}`; history.pushState( null, null, this.state.searchWord ? pageUrl + `&search=${this.state.searchWord}` : pageUrl ); const cities = await request( 0, this.state.region, sortBy, this.state.searchWord ); this.setState({ ...this.state, startIdx: 0, sortBy: sortBy, cities: cities, }); }, handleSearch: async (searchWord) => { history.pushState( null, null, `/${this.state.region}?sort=${this.state.sortBy}&search=${searchWord}` ); const cities = await request( 0, this.state.region, this.state.sortBy, searchWord ); this.setState({ ...this.state, startIdx: 0, cities: cities, searchWord: searchWord, }); }, }); }; const renderRegionList = () => { new RegionList({ $app, initialState: this.state.region, handleRegion: async (region) => { history.pushState(null, null, `/${region}?sort=total`); const cities = await request(0, region, "total"); this.setState({ ...this.state, startIdx: 0, sortBy: "total", region: region, cities: cities, searchWord: "", currentPage: `/${region}`, }); }, }); }; const renderCityList = () => { new CityList({ $app, initialState: this.state.cities, handleItemClick: async (id) => { history.pushState(null, null, `/city/${id}`); this.setState({ ...this.state, currentPage: `/city/${id}`, }); }, handleLoadMore: async () => { const newStartIdx = this.state.startIdx + 40; const newCities = await request( newStartIdx, this.state.region, this.state.sortBy ); this.setState({ ...this.state, startIdx: newStartIdx, cities: { ...this.state.cities, cities: [...this.state.cities.cities, ...newCities.cities], isEnd: newCities.isEnd, }, }); }, }); }; const renderCityDetail = async (cityId) => { try { const cityDetailData = await requestCityDetail(cityId); new CityDetail({ $app, initialState: cityDetailData }); } catch (err) { console.log(err); } }; const render = async () => { const path = this.state.currentPage; $app.innerHTML = ""; // 상세 페이지로 이동 if (path.startsWith("/city/")) { const cityId = path.split("/city/")[1]; renderHeader(); renderCityDetail(cityId); } else { renderHeader(); renderRegionList(); renderCityList(); } }; this.setState = (newState) => { this.state = newState; render(); }; const init = async () => { const path = this.state.currentPage; // 메인 페이지 if (!path.startsWith("/city")) { const cities = await request( this.state.startIdx, this.state.region, this.state.sortBy, this.state.searchWord ); this.setState({ ...this.state, cities: cities, }); } // 상세페이지 else { render(); } }; window.addEventListener("popstate", async () => { const urlPath = window.location.pathname; const prevRegion = urlPath.replace("/", ""); const prevPage = urlPath; const prevSortBy = getSortBy(); const prevSearchWord = getSearchWord(); const prevStartIdx = 0; const prevCities = await request( prevStartIdx, prevRegion, prevSortBy, prevSearchWord ); this.setState({ ...this.state, startIdx: prevStartIdx, sortBy: prevSortBy, region: prevRegion, currentPage: prevPage, searchWord: prevSearchWord, cities: prevCities, }); }); init(); } //API.js 코드입니다! export default function CityDetail({ $app, initialState }) { this.state = initialState; this.$target = document.createElement("div"); this.$target.className = "city-detail"; $app.appendChild(this.$target); const getScoreColor = (score) => { // let scoreNumber = parseInt(score); if (score >= 4) return "green"; if (score >= 3) return "yellow"; return "red"; }; this.template = () => { let cityData = this.state.CityDetail; let temp = ``; if (cityData) { temp = `<div class="image-banner"> <img src="${cityData.image}"/> <div class="city-name"> <div class="city">${cityData.city}</div> <div class="country">${cityData.region} / ${cityData.country}</div> </div> </div> <div class="progress-container"> <div class="info-item"> <div class="label">⭐ Total Score</div> <div class="progress-bar" score-color="${getScoreColor( cityData.total )}" style="--score:${cityData.total * 20}%"></div> </div> <div class="info-item"> <div class="label">💵 Cost</div> <div class="progress-bar" score-color="${getScoreColor( cityData.info.cost )}" style="--score:${cityData.info.cost * 20}%"></div> </div> <div class="info-item"> <div class="label">😆 Fun</div> <div class="progress-bar" score-color="${getScoreColor( cityData.info.fun )}" style="--score:${cityData.info.fun * 20}%"></div> </div> <div class="info-item"> <div class="label">🚓 Safety</div> <div class="progress-bar" score-color="${getScoreColor( cityData.info.safety )}" style="--score:${cityData.info.safety * 20}%"></div> </div> <div class="info-item"> <div class="label">🌐 Internet</div> <div class="progress-bar" score-color="${getScoreColor( cityData.info.internet )}" style="--score:${cityData.info.internet * 20}%"></div> </div> <div class="info-item"> <div class="label">💨 Air Condition</div> <div class="progress-bar" score-color="${getScoreColor( cityData.info.air )}" style="--score: ${cityData.info.air * 20}%"></div> </div> <div class="info-item"> <div class="label">🍜 Food</div> <div class="progress-bar" score-color="${getScoreColor( cityData.info.food )}" style="--score: ${cityData.info.food * 20}%"></div> </div> </div> `; } return temp; }; this.render = () => { this.$target.innerHTML = this.template(); }; /* this.setState = (newState) => { this.state = newState; this.render(); }; */ this.render(); } //cityDetail.js 상세페이지 코드입니다!

  • javascript
  • rest-api
  • spa
  • dom
안연수 댓글 2 좋아요 0 조회수 124

mysql 설치파일

미해결

스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!

저는 맥북을 사용하고 있는데요 맥북 사용자들을 위한 거는 전혀 없는데 그런것도 고려해서 해주셔야 할거 같은데요 지금 mysql 설치 할려고 하는데 이거 맥북에 설치 가능한거에요?

  • rest-api
  • spring-boot
  • jpa
  • spring-security
  • mybatis
culwonder.company 댓글 2 좋아요 0 조회수 97

가상환경 확인

해결됨

실전! Django 입문 [최신 5.2 버전]

가상환경을 맞추는 작업(확인)을 하지 않으면 어떤 문제가 생기는지요?

  • python
  • django
  • aws
  • rest-api
  • drf
Young Sang Hwang 댓글 3 좋아요 0 조회수 130

수업 자료는 어디에 있나요?

해결됨

옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트

안녕하세요, 수업자료 pdf는 어디에 있나요?

  • java
  • spring
  • rest-api
  • spring-boot
  • dbms/rdbms
박정아 댓글 3 좋아요 1 조회수 144

CityList.js에서 api.js 파일의 API_URL이 렌더링이 안되는 오류가 있습니다!

해결됨

한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지

세션 9. 여행지정보 최종프로젝트 작성 중... CityList 개발 13:25분에서 CityList.js를 작성한 후 localhost:3000을 새로고침해도 전혀 변화없이 빈 화면만 출력이 됩니다! api.js에서 API_URL로 전달받을 https://trip-wiki-api.vercel.app/ 에서 도시 정보 40개 정보가 없더라고요, 그래서 웹 화면에 아무것도 출력되지 않아서 문의드립니다! server.js 파일도 /*splat 로 변경해서 "start server" 노드 명령어로 터미널에서 출력되도록 수정 완료했지만, 홈페이지 이미지가 출력되지 않고 있습니다! const express = require("express"); const path = require("path"); const app = express(); const PORT = 3000; app.use(express.static(path.join(__dirname, ".."))); app.get("/*splat", (req, res) => { res.sendFile(path.join(__dirname, "..", "index.html")); }); app.listen(PORT, () => { console.log("START SEVER"); }); export default function CityList({ $app, initialState }) { this.state = initialState; this.$target = document.createElement("div"); this.$target.className = "city-list"; $app.appendChild(this.$target); this.template = () => { let temp = `<div class="city-items-container">`; if (this.state) { this.state.cities.forEach((elm) => { temp += ` <div class="city-item" id=${elm.id}> <img src=${elm.image}></img> <div class="city-item-info">${elm.city}, ${elm.country}</div> <div class="city-item-score">⭐ ${elm.total}</div> </div> `; }); temp += `</div>`; } return temp; }; this.render = () => { this.$target.innerHTML = this.template(); }; this.setState = (newState) => { this.state = newState; this.render(); }; this.render(); }

  • javascript
  • rest-api
  • spa
  • dom
안연수 댓글 1 좋아요 0 조회수 148

인기 태그

인프런 TOP Writers

주간 인기글