묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
html 복사
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]혹시.. 해당 코드들 복사해서 넣는데 자꾸 이쁘게 복사가 안되고 몇몇부분이 빠져서 복사되고 그렇습니다. 양이 되게 많은데 혹시 팁이 있을까요? 다 제가 수기로 작성해야할까요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
별도의 쓰레드를 만드는 원리
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요!!최근 병행해서 공부하고 있는 멀티 쓰레딩 개념을 도입해서 정리한 게 맞나 확인하고 싶어서 이렇게 남겨봅니다.별도의 쓰레드를 만드는 이유: 커넥션 풀에 채우는 작업 자체가 CPU 점유 시간(cpu time)이 커서별도의 쓰레드가 생긴 이유: HikariCP 라이브러리를 만든 개발자가 코드를 그렇게 작성 쓰레드 관리: 자바의 쓰레드 풀에 있는 쓰레드는 유저 레벨 쓰레드이고 os레벨의 쓰레드와 매핑되어서 사용하는데 이 멀티 쓰레딩 자체는 결국 cpu가 cpu 스케줄링을 통해서관리(= 컨텍스트 스위칭)항상 감사합니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
test 코드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]test 코드 돌렸을떄 이거 안뜨는법없나요?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
개인프로젝트에서 Datasource dataSource 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]리포지토리인 Dto 클래스에 private final DataSource dataSource시 Could not autowire. No beans of 'DataSource' type found.라는 오류가 뜨면서 빌드가 안 됩니다! 서비스에서 트랜잭션을 쓰지는 않지만 DataSource를 적용해보고 싶었는데 안 되네요 ㅠㅠ package com.spring.dto; import com.spring.dao.member.Member; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import javax.sql.DataSource; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.NoSuchElementException; import java.util.Optional; @Repository @RequiredArgsConstructor public class JDBCMemberDto implements MemberDto{ private final DataSource dataSource; // 테이블 열 private static final String TABLE_NAME = "USERS"; private static final String ID_COLUMN = "ID"; private static final String USERID_COLUMN = "USERID"; private static final String PASSWORD_COLUMN = "PASSWORD"; private static final String NAME_COLUMN = "NAME"; @Override public Member save(Member member) { String query = "INSERT INTO " + TABLE_NAME + " (" + ID_COLUMN + ", " + USERID_COLUMN + ", " + PASSWORD_COLUMN + ", " + NAME_COLUMN + ") VALUES (SEQ_USER.NEXTVAL, ?, ?, ?)"; try (Connection conn = getConnection(); PreparedStatement pstmt = conn.prepareStatement(query)){ pstmt.setString(1, member.getUserId()); pstmt.setString(2, member.getPassword()); pstmt.setString(3, member.getName()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return findByUserId(member.getUserId()).get(); } @Override public Member findById(Long id) { Member member = new Member(); String query = "SELECT * FROM USERS WHERE id = ?"; try (Connection conn = getConnection(); PreparedStatement pstmt = conn.prepareStatement(query)){ pstmt.setLong(1, id); ResultSet rs = pstmt.executeQuery(); if(rs.next()) { member.setId(rs.getLong(ID_COLUMN)); member.setUserId(rs.getString(USERID_COLUMN)); member.setPassword(rs.getString(PASSWORD_COLUMN)); member.setName(rs.getString(NAME_COLUMN)); } else { throw new NoSuchElementException("유저를 찾을 수 없습니다. memberId=" + id); } } catch (SQLException e) { e.printStackTrace(); } return member; } @Override public Optional<Member> findByUserId(String userid) { return findAll().stream() .filter(member -> member.getUserId().equals(userid)) .findFirst(); } @Override public List<Member> findAll() { List<Member> list = new ArrayList<>(); String query = "SELECT * FROM USERS"; try (Connection conn = getConnection(); PreparedStatement pstmt = conn.prepareStatement(query)){ pstmt.executeUpdate(); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { Member member = new Member(); member.setId(rs.getLong(ID_COLUMN)); member.setUserId(rs.getString(USERID_COLUMN)); member.setPassword(rs.getString(PASSWORD_COLUMN)); member.setName(rs.getString(NAME_COLUMN)); list.add(member); } } catch (SQLException e) { e.printStackTrace(); } return list; } private Connection getConnection() throws SQLException { Connection connection = dataSource.getConnection(); return connection; } }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
인프런 강의 재생이 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]시작 전 검은화면에서 재생이 멈춰서 재생이 안됩니다, 쿠키, 세션 모두 삭제 해봤는데 재생이 안되네요 ㅜㅜ 보니까 다른 강의들은 모두 재생이 됩니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
단순 용어 질문드립니다.
DBConnectionUtil을 통해 커넥션을 획득하는 과정에서의 용어 질문입니다. 커넥션을 획득한다커넥션을 연결한다 이 둘의 의미가 여기서는 획득한다(얻다)가 더 알맞는 표현인건가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
리다이렉트 가 안되고 서버 오류라고 하는데 뭐가 문제 일까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 오류 내용은 이러한데2024-06-10T18:33:11.875+09:00 ERROR 12636 --- [nio-8081-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either.] with root causejava.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either.느낌은 파라미터 오류 같은데일단은 강의 내용대로 했는데.. 500오류 라고 뜨네여뭐가 문제인지... 잘 선배님들 도와 주세여혹시 모르니 구글 드라이브에도 남겼습니다.https://drive.google.com/file/d/1_u0G8TeUUVAxLRege6WdbTzNBOuvlZvJ/view?usp=sharing
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 여부에 따라 다른 UI는 어떻게 개발해야 하나요?
안녕하세요 로그인 과정 학습하다가 궁금한 점이 생겨 질문을 올려봅니다.보통의 웹사이트는 로그인 여부에 따라 화면 또는 로직이 다릅니다.예를 들어, 어떠한 게시판에 접속했을 때, 로그인이 된 경우: 닉네임 칸에 자동으로 회원의 닉네임이 입력되어있음로그인이 안된 경우: 닉네임 칸이 빈칸임의 경우에 html에서 조건문으로 처리를 하나요?아니면 각각의 경우에 따라 파일을 만들어서 처리하나요? (ex.boardloggedin.html, boardnotloggedin.html)
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
동작 순서 질문
안녕하세요 공부를 하던 중 동작순서가 헷갈려서 질문 남깁니다.회원가입을 예로 들어 질문하면회원가입 버튼을 눌렀을 때, GetMapping의 url로 화면을 보여주고 사용자가 내용을 작성하면, 작성한 데이터를 th:action으로 인해 PostMapping url로 다시 돌아가 데이터가 ModelAttribute에 있는 객체에담겨 @Validated로 검증 후 오류가 있으면 bindingresult로 담아 다시 addform으로 보내 오류 메세지를 화면에 출력하고 오류가 없으면 홈화면으로 보내는 것 맞을까요 ??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 실행 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 회원가입 실행 오류가 있어서 확인해 본결과 Member.java 수정@GeneratedValue(strategy = GenerationType.SEQUENCE) 을 하면 돌아가는데 왜 강의 코드 에서는 에러가 생기나요 ??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradle build 에러
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]IDE 에서 정상적으로 작동하는데 git bash에서 빌드할때 버전오류가 납니다 자바 22 사용하고 있습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
jsp에서 object validation하는 방법?!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]따로 jsp 프로젝트를 하고 있는데, jsp에서는 에러를 jsp에서 어떻게 받는지 궁금합니다. public String login(@ModelAttribute("user") Member member, BindingResult bindingResult) { Member loginMember = loginService.login(member.getUserId(), member.getPassword()); if (loginMember == null) { bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다."); return "login/loginForm"; } return "redirect:/"; } <div class="container"> <div class="login-container"> <h2 class="text-center mb-4">로그인</h2> 에러 메시지 띄우고 싶은 곳 <form action="/login" method="post" modelAttribute="user"> <div class="mb-3"> <label for="userId" class="form-label">아이디</label> <input type="text" class="form-control" id="userId" name="userId" required> </div> <div class="mb-3"> <label for="password" class="form-label">비밀번호</label> <input type="password" class="form-control" id="password" name="password" required> </div> <div class="d-grid gap-2"> <button type="submit" class="btn btn-primary">로그인</button> </div> </form> </div> </div>
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오류 발생
뭐가 문제일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 부분 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:85) at jdk.proxy2/jdk.proxy2.$Proxy72.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Suppressed: java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:85) at jdk.proxy2/jdk.proxy2.$Proxy72.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.afterTestMethod(ResetMocksTestExecutionListener.java:67) at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:487) at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:278) ... 2 more Caused by: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:105) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.getDefaultPlugin(DefaultMockitoPlugins.java:79) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:75) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:49) at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:29) at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:26) at org.mockito.internal.MockitoCore.<clinit>(MockitoCore.java:71) at org.mockito.Mockito.<clinit>(Mockito.java:1683) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:105) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) ... 2 more Caused by: java.lang.reflect.InvocationTargetException at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:103) ... 15 more Caused by: org.mockito.exceptions.base.MockitoInitializationException: Could not initialize inline Byte Buddy mock maker.It appears as if your JDK does not supply a working agent attachment mechanism.Java : 17JVM vendor name : Amazon.com Inc.JVM vendor version : 17.0.11+9-LTSJVM name : OpenJDK 64-Bit Server VMJVM version : 17.0.11+9-LTSJVM info : mixed mode, sharingOS name : Windows 11OS version : 10.0 at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260) at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23) ... 18 more Caused by: java.lang.IllegalArgumentException at java.instrument/sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0(Native Method) at java.instrument/sun.instrument.InstrumentationImpl.appendToBootstrapClassLoaderSearch(InstrumentationImpl.java:220) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:177) ... 19 moreCaused by: [CIRCULAR REFERENCE: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker]
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
test.my.db 가 안생깁니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
JdbcTemplate update 사용시 반환값 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요. 수업에 배운 내용을 바탕으로 작은 메모 어플을 만들면서 질문이 있어 질문 남깁니다.@Repository public class JdbcMemoRepository implements MemoRepository{ private final JdbcTemplate template; public JdbcMemoRepository(DataSource dataSource) { this.template = new JdbcTemplate(dataSource); } @Override public Memo memoSave(Memo memo) { String sql = "insert into memo (memo, created, dTime) values (?, ?, ?)"; template.update(sql, memo.getMemo(), LocalDateTime.now(), memo.getDTime()); return memo; }이런식으로 코드를 짜서 memoSave의 반환값을 확인해 보면 반환값이 memo와 dTime 필드에만 있고, created와 id는 null값으로 반환이 됩니다. 이유는 클라이언트쪽에서 requestBody로 건내주는 필드가 memo와 dTime뿐이고, created는 서버에서 LocalDateTime.now()로, id는 mysql에서 auto increment로 생성하고 있어서 parameter로 받는 memo를 그대로 반환하면 id와 created가 null이 되는 것 같습니다. 이 문제를 해결 하기 위해서는 memoSave로 데이터베이스에 넣어준 후 바로 그 레코드 값을 데이터베이스에서 꺼내서 반환을 해야 할 것 같은데 방법을 모르겠어서 질문드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 상수와 그리고 홈로그인에서 질문이 있습니다.
쿠키를 이용한 방법, 직접만든 세션을 이용하는 방법, 서블릿 세션을 이용하는 방법 모두에서 사용자별로 고유의 세선id를 생성하였지만 그 생성된 값들을 찾기 위한 키는 상수로 정의하여 사용하셨습니다.// 쿠키만 이용하였을 떄 Cookie idCookie = new Cookie(“memberId”, loginMember.getId()+””);// 직접 만든 세션 Cookie MySessionCookie = new Cookie(SESSION_COOKIE_NAME, sessionId);// 서블릿 세션 Session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember)이렇게 하면 서버측에서는 같은 키로 서로 다른 값들을 저장하게 되는것 같은데 어떻게 구별해서 사용자 객체를 찾아내는 건가요?다른분들도 질문을 많이 하신것 같은데 찾아보아도 이해가 좀 어려워서 질문 드립니다. 그리고 홈컨트롤러에서 homeLogin의 모든 버전에서 쿠키, 세션을 이용해 찾았는데 회원데이터가 없으면 return “home”;을 하는데 회원이 로그인을 하여야 쿠키, 세션을 만들어주기 때문에 값이 존재하지 않을 수 없을것 같은데 해당 사항을 고려하신 이유가 있는건가요?쿠키, 세션을 이용해 값을 찾는순간부터
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
JSESSIONID 쿠키
JSESSIONID 쿠키가 로그아웃 이후에도 브라우저 남아잇던데 맞나요?직접 세션 만들기 파트였나 쿠키 파트였나, 여기서는 setMaxAge(0) 이런거로 바로 만료시켰던 것 같아서요.어차피 이 JSESSIONID 세션은 서버에서 없앴으니까 쿠키는 브라우저에 남아있어도 의미가 없는 거죠?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
API에 Bean Validation 적용 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요. API에 Bean Validation을 적용하는 단계에서 질문이 있습니다.검증 오류 요청 단계에서 오류가 발생한 경우 json이 정상적인 DTO를 json으로 만드는 것이 아닌 bindingResult에서 데이터를 꺼내 새로운 error라는 객체에 담아 json으로 보내는 형식으로 로직을 만들었습니다.이때 클라이언트측에서는 정상적인 상황에서는 item이라는 정상 객체가 json으로 반환되고 오류상황에는 error라고 하는 객체가 json으로 반환이 되게 되는데 두 경우 모두 response.status는 200으로 나오더라구요. 클라이언트 쪽에서 이 두 케이스를 분류하여 로직을 처리해야하는데 어떻게 구분하도록 해야하는지 모르겠어서 질문드립니다.오류 검증에서 오류가 나타났을때 서버에서 status를 400으로 보내도록 만들면 될까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
자바 버전 변경 후 서버 기동시 에러
https://drive.google.com/file/d/1DFSAROydq__CgrODCk-yzlCH8RCCpR_A/view?usp=sharing콘솔창에 한글깨짐 현상이 일어나https://www.inflearn.com/questions/1161232위의 글의 답변대로 설정했습니다.그 후 자바 버전을 Eclipse Terium version 17.0.9 에서corretto-17 Amazon Corretto version 17로 변경했습니다.그래도 해결되지 않아 제어판에서 국가또는지역-시스템 로캘변경에 들어가 utf-8 설정 후 윈도우 재부 팅 후ServletApplication 파일의 서버를 재기동하니 아래 사진과 같은 오류가 뜹니다.상단에 프로젝트 압축파일 첨부하였습니다.답변 부탁드립니다.