묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
출력 로그가 저랑 많이 다른데.. 해결 방법좀 알려주세요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 강의 내용과 달리 테스트를 실행하면 저는 영한님과 다르게 로그가 출력이 되는데요, 이 부분은 어떻게 설정을 하나요? 저도 찾아보고 있는데 아직 찾지 못하여 질문 남깁니다! 저는 Test Result 아래로 페키지도 출력이 안되고 로그도 너무 다르게 출력이되네요.. 강의와 맞추고 싶은데 방법좀 알려주시면 감사하겠습니다!
-
해결됨옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트
[막강] IoC방법 공부를 할 때?
스프링 IoC를 공부하려면 @Configuration+@Bean 학습을 하려고 하는데, @AppConfig같은 것으로 공부를 해야하는지, 어떻게 해야할지 조그만한 힌트를 주시면 감사하겠습니다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
member 상수 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.17: 58초에 나오는 MEMBER_A,B,EX 상수들질문입니다.영상처럼 상수에 값을 넣고 @AfterEach에 넣어주셨는데 @AfterEach void after() throws SQLException { memberRepository.delete("memberA"); memberRepository.delete("memberB"); memberRepository.delete("ex"); }이것처럼 직접 값을 넣어주게 되도 동작을 동일하게 진행되는데 상수 지정을 하지 않고 이런 식으로 값을 넣어주게 되면 문제가 생길 수 있을까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
isNew=true 나오는 상황이 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]세션 정보와 타임아웃 설정 강의를 듣다가 궁금한 부분이 생겼습니다. "isNew()가 새로 생성된 세션인지,아니면 과거에 만들어졌고 클라이언트에서 서버로 sessionId를 요청해서 조회된 세션인지 여부"질문1. 새로 생성된 세션을 true, 과거에 만들어진 세션은 false 이렇게 반환되는게 맞나요? 질문2. 위 질문이 맞다면 회원가입을 하고 로그인을 했을때 콘솔 실행창에 isNew=true로 나와야 할 것 같은데 왜 false로 나오는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
@Configuration이 빈을 등록하는 것은 아닌게 맞나요?
아마 4. 스프링으로 전환하기 강의에서 설명하신 바에 따르면 스프링 빈을 생성하려 할 때new AnnotationConfigApplicationContext(AppConfig.class) 해서 @Configuration을 기반으로 한 클래스를 인자로 전달하면, 이 클래스 내에 @Bean이 붙은 것들은 스프링 컨테이너에 빈으로 등록한다 라고 설명하셨는데요, 여태 @Configuration이 달린 AppConfig를 전달 해주었다면 이번 강의에서는 @Configuration을 삭제한 AppConfig를 전달 해주셨고 붙이지 않아도 @Bean이 붙은 객체들은 스프링 빈으로 다 등록된다고 하셨는데요. 그렇다면 @Configuration의 역할은 4. 스프링으로 전환하기에서 설명하셨던 것과 달리 @Configuration이 붙은 클래스내의 @Bean 붙은 것들을 스프링 빈으로 등록하도록 해주는 것이 아니라 @Bean은 @Configuration이 없어도 빈으로 등록되는 것이고 @Configuration의 역할은 그저 스프링 빈이 싱글톤임을 보장해주는 역할인 것인가요? 제가 기억한 앞선 강의와 살짝 달라진것 같아 헷갈리네요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
lombok 콘솔 출력
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예안녕하세요, http 요청 데이터 -api 메시지 바디 json 부분 강의를 들으며 라이브 코딩을 하다 롬복이 정상적으로 작동하지를 않아 질문을 남깁니다. postman에 강의 내용처럼 아래 사진처럼 입력을 하였습니다.콘솔에서 출력되는 부분을 확인해봤는데 아래 사진처럼 보여집니다. 문제는 {"username" : "hello", "age" : 20}] 라는 부분은 정상적으로 콘솔에 출력되는데 data.username=hellodata.age=20 이라는 롬복 getter 부분이 콘솔에 출력되지 않는 상황입니다. 따로 클래스를 만들어 롬복에서 문제가 생겼나 getter setter을 돌려보니 롬복은 정상 출력되어 다른 부분에서 문제가 생긴 듯 하는데, 해당 부분의 오류 원인이 무엇인지 알 수는 있을까요 ..? 2025-04-21T17:58:26.166+09:00 DEBUG 27381 --- [mvcpattern1] [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header 2025-04-21T17:58:26.177+09:00 DEBUG 27381 --- [mvcpattern1] [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing request
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
ctrl + F6 이후로 con 인식이 안 됩니다
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]제목 그대로 ctrl + F6 이후로 con 인식이 안됩니다.그래서 새로 다시 코딩을 해봐도 안되고 강의 PDF에 있는걸로 복사해서 바꿔봐도 안 됩니다. 복사 이후로는 다른 memberRepository 나 fromId 등 인식이 다 안되서 여쭤봅니다. 프로젝트 압축 파일 링크입니다https://drive.google.com/file/d/1WsWLpkTaAFSYKr7sL7V1mzXDqmoR6bhL/view?usp=drive_link
-
미해결스프링 핵심 원리 - 기본편
CoreApplication 테스트 코드 오류 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서 CoreApplication 클래스에 @ComponentScan이 있기에 스프링부트 실행시 이 CoreApplication 클래스가 속해있는 패키지부터 이하의 패키지까지해서 @Component을 찾아 스프링 빈을 자동으로 등록된다고 하셨습니다.그래서 스프링부트(CoreApplication)를 사용하면 여기에 @ComponentScan이 있기에 딱히 @ComponentScan을 사용하지 않는다고 하셨습니다. 그렇다면! 이전 AutoConfigTest에서public class AutoAppConfigTest { @Test void basicScan() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(CoreApplication.class); MemberService memberService = ac.getBean(MemberService.class); assertThat(memberService).isInstanceOf(MemberService.class); } }이렇게 AutoAppConfig.class -> CoreApplication.class 로 변경해도 똑같이 동작하지 않을까? 하는 생각해 그대로 테스트 코드를 진행했으나,위 와 같은 에러가 나네요.저는 CoreApplication 클래스에 컴포넌트 스캔이 있으니 이것을 테스트 코드에 대신 넣어도 다른 @Component를 찾아 스프링 빈으로 등록할것이다 라고 생각했는데 에러가 나니 어떻게 된건지 모르겠네요.제가 어디 잘못이해하거나 빠뜨린 것 있을까요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
DrivenManager 와 Connection 반환에 대한 질문입니다!
커넥션을 요청하고 반환받는건 서버와 DB 사이의 작용이라고 생각해서 커넥션 구현체를 클라이어트에 반환한다는 부분이 이해가 잘 안 갑니다! 클라이언트라는 단어가 단순히 웹 클라이언트로 쓰이는 것뿐만 아니라 요청하는 쪽을 지칭할 때 쓰는거라고 보면 될까요? 여기선 애플리케이션 로직 즉, Connection 객체를 사용하는 저의 애플리케이션 코드를 의미하는 걸까요?
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
app.host 관련 질문이 있습니다
dev 프로퍼티 파일에 app.host 를 정의하지 않고 dev 환경으로 실행후, 메일을 보낼시 host 값이 http://localhost:8080 으로 어떻게 넣어지는건가요? dev 프로퍼티 파일에 정의가 안되어 있으면 local 프로퍼티 파일을 참조하게 되는것인가요...?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
objectMapper과 json 객체
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 강의 수강 중 질문이 생겨 여쭤봅니다 ! http 요청 데이터 - api 메시지바디 -json 강의에서 등장하는 코드 HelloData helloData = objectMapper.readValue(messageBody,HelloData.class);라는 부분은 스트링의 messageBody라는 변수를 json 객체로 변환하는 것인가요, 아니면 json객체인 messageBody를 hellodata 타입 객체로 변환하는 것일까요 ?
-
미해결스프링 핵심 원리 - 고급편
템플릿 메서드 패턴에 interface를 적용하면 장단점이 뭐가 있을까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]템플릿 메서드 패턴에서 추상 클래스로 템플릿과 구현해야 하는 메서드를 제공하고 있는데, interface를 이용해서 패턴을 제공하면 어떤 장단점이 있나요? interface의 default 키워드를 사용해서 템플릿을 제공한다고 하면, 기존 추상 클래스 방식과 비교했을 때 어떤 차이가 있고, 어떤 상황에서 더 유용할까요? 감사합니다!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
MySQL 연결 오류
태현님 안녕하세요 좋은 강의 잘 듣고 있습니다. 수강하면서 실습 진행하면서 3번 정도 mysql 연결 오류가 발생해서 gpt를 통해 해결해보려고도 하고 구글링도 해보았지만 근본적인 해결이 안되어 고민 끝에 질문 남깁니다.우선, 문제 상황을 말씀드리면mysql 설치 후 인텔리제이에서 연결도 잘되어 실습을 진행하다 [S1009] !AuthenticationProvider. BadAuthenticationPlugin! 라는 메시지가 뜹니다.mysql 8.0 CLI-Unicode 에 들어가서 초기에 설정한 비밀번호를 입력하면 바로 unicode가 종료되어 진입 조차 불가능합니다.cmd 실행하여 mysql -u root -p 명령을 입력해서 정확한 비밀번호를 입력하면 ERROR 2059 (HY000): Authentication plugin 'auth_gssapi_client' cannot be loaded: ÁöÁ¤µÈ ¸ðµâÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù. 에러 메시지가 뜹니다.최후의 수단으로 mysql 관련 모든 파일 및 프로그램 삭제 후 재설치하여 인텔리제이 연동해서 실습이 정상적으로 진행이 되다가 랩탑을 몇 번 껐다 키면 위의 문제가 반복됩니다. 왜 저런 문제가 발생하고, 어떻게 해야 해결이 가능할까요..?지금까지는 완전 삭제 및 재설치하여 db 테이블 구성을 처음부터 다 다시 하면서 실습을 어떻게든 따라했지만 근본적인 해결책을 찾고 싶어 질문 드립니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
타임리프 url expression
[질문 내용]1. <td><a href="items.html" th:href="@{/basic/items/{itemId}(itemId=${item.id})}" th:text="${item.id}">회원id</a></td> <td><a href="items.html" th:href="@{/basic/items/${item.id}}" th:text="${item.itemName}">상품명</a></td>2에 리터럴 대체를 위한 ||를 씌운 방식혹시나하여 2 방식으로 표현해보니, 1과 동일한 url link를 생성하였습니다.셋 중 가장 권장하는 방식은 어떤 것이고, 그 이유는 무엇인가요?2도 정상작동하는 것 같은데, ||을 꼭 씌워야하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Item field가 null일 경우
[질문 내용]price가 0인 경우는 이벤트, 쿠폰 등으로 인한 경우의 수를 떠올릴 수 있었는데,null인 경우는 실무에서 어떤 경우에 발생하는지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
"이 서블릿에 던져준다" 의미
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 내용 4:53초 경 "서블릿 컨테이너가 request, response 객체를 만들어서 이 서블릿에 던져준다" 이 말은 아래의 단계 중에서 웹 브라우저에서 먼저 localhost:8080/hello로 요청을 보냄WAS 에서는 요청 메시지를 기반으로 방금 본 request, response 객체를 만들어냄이후 서블릿 컨테이너를 통해서 만들어낸 request, response 객체를 파라미터로 넘기면서 helloServlet 을 실행함helloServlet의 실행이 끝나고 리턴값 response 이 있을텐데, 이것을 바탕으로 HTTP 응답 메시지를 만들어냄웹 브라우저에게 응답 메시지를 전달함. 이후 서블릿 컨테이너를 통해서 만들어낸 request, response 객체를 파라미터로 넘기면서 helloServlet 을 실행함이 부분에 해당하는 내용인가요? request와 response 객체를 만들어서 특정 서블릿(ex.helloServlet)에게 넘겨주고 리턴값(response)가 WAS에게 반환되고 HTTP 응답 메시지를 생성한 뒤에 웹 브라우저에게 전달 이것이 맞는 내용인가요? 또한, 아래 부분에 @Override가 있다는 건 @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpServlet 파일 속에 해당 메서드가 존재한다는 의미기에 찾아보았는데protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); if (method.equals("GET")) { long lastModified = this.getLastModified(req); if (lastModified == -1L) { this.doGet(req, resp); } else { long ifModifiedSince; try { ifModifiedSince = req.getDateHeader("If-Modified-Since"); } catch (IllegalArgumentException var9) { ifModifiedSince = -1L; } if (ifModifiedSince < lastModified / 1000L * 1000L) { this.maybeSetLastModified(resp, lastModified); this.doGet(req, resp); } else { resp.setStatus(304); } } } else if (method.equals("HEAD")) { long lastModified = this.getLastModified(req); this.maybeSetLastModified(resp, lastModified); this.doHead(req, resp); } else if (method.equals("POST")) { this.doPost(req, resp); } else if (method.equals("PUT")) { this.doPut(req, resp); } else if (method.equals("DELETE")) { this.doDelete(req, resp); } else if (method.equals("OPTIONS")) { this.doOptions(req, resp); } else if (method.equals("TRACE")) { this.doTrace(req, resp); } else { String errMsg = lStrings.getString("http.method_not_implemented"); Object[] errArgs = new Object[1]; errArgs[0] = method; errMsg = MessageFormat.format(errMsg, errArgs); resp.sendError(501, errMsg); } }왜 위와 같은 코드를 굳이 재정의 해야만 했는지가 궁금합니다.. 아직 강의를 모두 수강하지 않아서 가지게 되는 궁금증일 수도 있겠지만 혹시나 너무 뜬구름 잡는 질문이 아니라면 간단하게나마 설명을 부탁드려도 될까요?.. 흐름상 이해를 해보았는데 확신이 들지 않아서 이런 바보같은 질문을 해봅니다.. 감사합니다..
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
회원가입 시 로그인 화면이 안뜨는게 맞는거죠?
[질문 내용]여기에 질문 내용을 남겨주세요. 스프링 인터셉터 - 인증 체크 강의 기준질문: 회원가입 시 로그인 화면이 안뜨는게 맞는거죠? 저는 회원가입 시에도 로그인 화면이 뜨고 있는데요, 로그인 화면이 안뜨는게 맞다면 어디에서 놓쳤는지 확인해보려구요
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
어떤 이유에서인지 jsp 회원가입 회원목록 들어가지지 않음(2_링크추가)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.https://inf.run/2ruuR전에 올렸던 질문 내용입니다.https://drive.google.com/file/d/1oNHG9872eU7vUZrH3xx3DKPfJGPuFcnZ/view?usp=sharing파일 첨부해서 다시 올립니다.감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문취소문의
주문취소 부분에 cancel()을 실행하면 왜 db업데이트가 되는지 이해가잘안갑니다 .주문을 저장할때처럼 엔티티매니저에서 persist를 해주어야 commit되는게 아닌가요 ?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링부트 3.4.4 프로젝트 생성 시 Gradle - Groovy vs Gradle - Kotlin
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 프로젝트 생성 중에 궁금한게 있어서 질문 드립니다.기존에는 영한님의 강의 중에서 프로젝트 생성 시 저는 Gradle - Groovy로 생성했었는데이번에는 Gradle - Kotlin 으로 생성해보려 하는데 괜찮을까요 ??