묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
강의 26분 부터 진행이 안도고 500 에러 발생합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://drive.google.com/file/d/1CQgi9utYN6GNS3pn4k1cXk5t7xuJYQXN/view?usp=sharing26분 다수의 이미지 파일 올리는 부분은 다시 확인해보니 UploadFiile클래스에 오타가 있어서 안되었던것 같습니다. 그런데 오타 수정 후 다시 실행하여 제출을 누르니 텍스트 파일 하이퍼 링크가 표시가 안되는데 왜 그런건지 확인해 주실 수 있나요?그리고 강의 19분 부분 ItemController 클래스에 newItem() 까지만 진행된 부분 실행하니 500에러가 발생하는데 콘솔에 멀티파트로 데이터 나오는 부분이 출력이 안되고2024-04-16T14:10:23.335+09:00 WARN 22132 --- [upload] [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' is not supported]해당 오류가 뜨고 있습니다. 왜 그런건지 알려주세요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
<html xmlns:th="http://www.thymeleaf.org"> 인식이 안되는거 같습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]디펜던시에도 들어있는거 같고build.gradle에도 이렇게 되어있습니다.그런데 이러한 현상때문에 프로젝트를 4번이나 따라만들어봤는데 계속해서 생기는데 어떻게 해야하나요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
lombok 인식이 안됩니다
안녕하세요수강시작으로 프로젝트 세팅중에 있는데 롬북 인식이 안되서 문의드립니다 ㅠplugin 설치하였고아래 사진과 같이 dependencies 세팅도 되어있고상단 이미지처럼 체크하고 restart를 아무리해도.....강의 예제 처럼 Hello class에도 main/java 아래 임으로 생성한 class에서도 롬북이 인식이 안됩니다 ㅠ어떻게 해야할까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
섹션2-2. Hello 서블릿 진행 중 WhiteLabel 에러 관련 질문입니다.
섹션 2-2. Hello 서블릿 강의 진행중에 /hello 접근 시 WhiteLabel 에러가 발생합니다.업데이트된 매뉴얼에 따라 현재 Build and Run 항목은 모두 Gradle으로 설정되어 있으며, 자바 21, 17 버전 모두 같은 문제가 발생하고 있습니다.@ServletComponentScan //서블릿 자동 등록 @SpringBootApplication public class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); } }@WebServlet(name = "helloServlet", urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet.service"); } }같은 문제 관련하여 질문 글들 확인 및 시도해봤습니다만 해결이 되지 않았습니다.콘솔창에도 아무것도 출력되지 않네요.답변주시면 감사하겠습니다!
-
해결됨
스프링 오류 질문
package jpabook.jpashop; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; @RunWith(SpringRunner.class) @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() { Member member = new Member(); member.setUsername("memberA"); Long savedId = memberRepository.save(member); Member findMember = memberRepository.find(savedId); Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); //JPA 엔티티 동일성 보장 } } 김영한 강사님의 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 강의를 수강중입니다. C:\study\jpashop\src\test\java\jpabook\jpashop\MemberRepositoryTest.java:4: error: package org.junit does not existimport org.junit.Test; 위와같은 오류가 나왔는데 어떻게 해결하나요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요! 질문있습니다!
안녕하세요! 수업 너무 잘들었어요 ~이번 수업 프로젝트를 수동 배포를 해보고 CI/CD 공부를 하고싶어서 찾아보던중EC2서버에 docker를 사용해서 JENKINS를 설치하고 CI/CD작업을 하던 와중에 백엔드 코드는 빌드하고 배포를 하였습니다.1. JENKINS포트를 9090 으로 변경하고(스프링 부트 서버가 8080이라 )맞는걸까요?2. 화면도 나오게 배포를 하려면 따로 리액트도 배포를 해줘야 할까요? 같은 서버에 있어서 안해줘도 된다고 생각했는데... 조언부탁드려요 ㅠㅠ!많은 블로그들을 보면 ec2서버를 여러대 사용하고 배치하고 있던데 어떨때 ec2서버를 여러대 사용해야하고 mysql mastr-slave구조도.. redis 서버도 어디다 배치하고 감이 안잡혀서 강사님께 조언부탁드렸습니다 ㅠㅠ!저의 질문이 강의와 맞지 않아서 무례할지 고민하다가.. 조언을 부탁드렸습니다 . 감사합니다
-
미해결스프링부트 시큐리티 & JWT 강의
mustache를 사용하지 않고 thymeleaf를 사용하려고 하는데
mustache를 사용하지 않고 thymeleaf를 사용하려고 하는데config의 WebMvcConfig의 configureViewResolvers도 작성해야 하나요? 참고로 스프링 부트 사용 중입니다!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 관리 예제 - 웹 MVC 개발
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.혹시 제가 폴더 명이나 파일 위치가 잘못 된 걸까요..?https://drive.google.com/file/d/150XPoxwV1oDeLVp8b2oAuuNBADwwXIEl/view?usp=drive_link
-
해결됨
스프링 용어 질문드립니다.
김영한 강사님의 스프링 강의 듣다가 궁금한 것이 생겼습니다.타임리프와 템플릿엔진을 인터넷에 검색해봐도 제대로 된 정의 설명이 없는데, 이 2개의 단어는 정확히 무슨 뜻인가요?
-
미해결Practical Testing: 실용적인 테스트 가이드
강사님 유효성 검증의 분리에 대해 궁금한점이 있습니다.
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 저희만의 서비스에 특화된 비즈니스 검증로직은 따로 서비스나 도메인에서 분리해서 검증하라고 하셨는데, 정확히 이해가 가지 않아서 좀더 질문 드립니다.예를 들어, 패스워드 검증 로직이 있다고 하면, 저희만의 서비스는 패스워드 검증을( 영문,특문 혼합 8자이상)이라고 정했을때, 컨트롤러의 요청 부분에서는 @NotBlank를 처리하고, 서비스나 도메인에서 위의 패스워드 검증 로직을 진행하라는 말씀인가요??
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
hasRole 과 hasAuthority 의 차이
안녕하세요 hasRole 과 hasAuthority 의 차이가 없는 거 같아서 질문 드립니다.기능 상 차이가 없다면 용도의 차이가 있는지 궁금합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
git허브 비밀번호 맞게해도 안되시는 분들
출처 : https://velog.io/@rxdryd/git-clone-%EC%98%A4%EB%A5%98 2021/08/13일부터 비밀번호 가아닌 git tokken입력 방식으로 변경된다고 하네요 출처:https://hoohaha.tistory.com/37참고하셔서 깃 토큰 생성 후아이디는 기존과 동일하게 입력하시구 비밀번호에서 git tokken입력하시면 됩니다.
-
미해결스프링 핵심 원리 - 기본편
@Configuration이 없을때의 싱글톤 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. @Configuration을 붙이지 않으면 TestConfig 자체와 @Bean 메서드들의 반환 객체를 싱글톤 빈으로 등록하지만 의존 관계에서의 객체 호출은 일반 객체를 생성한다.2. 한 @Bean의 일부가 return new Component2(component1()) 라면 Component2는 싱글톤 빈으로 등록되지만 의존 관계에서의 호출인 componenet1은 빈으로 등록이 안되고 일반객체가 생성된다.3. https://www.inflearn.com/questions/475367여기 답변에서 David님께서 "TestConfig 내 객체 생성 메서드의 경우 호출시 싱글톤을 보장하지 않고 매번 새로운 객체를 생성합니다." 라고 하셨는데 의존 관계 주입일때는 1,2번의 이해를 바탕으로 해결했습니다. 그런데 의존 관계 주입이 아닌 객체를 생성해 싱글톤 빈으로 등록하는 경우에도 싱글톤을 보장하지 않는다는게 말이 헷갈려서 질문드립니다. 아래 코드의 경우에서 component2 component2_2가 각각 싱글톤 빈으로 등록된다는 뜻인가요? public class Config { @Bean public Component2 component2() { return new Component2(componenet1()); } @Bean public Component2 component2_2() { return component2(); } @Bean public Component1 component1() { return new Component1(); } 1,2번은 해주신 답변으로부터 이해를 했는데 3번을 잘모르겠습니다.
-
미해결쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
변경데이터 저장 방법 질문 있습니다!
안녕하세요 쥬쥬님testEntity를 리포지토리에서 조회에서 가져온 다음에change 메서드로 수정을 한 후에리포지토리의 save 메서드를 사용하셨는데dirty checking을 사용하지 않고 save를 사용하신 이유가 있을까요?
-
미해결스프링 핵심 원리 - 기본편
인텔리제이 콘솔창
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 보면 콘솔창에 config 정보등 상세하게 출력되는데 제 인텔리제이 콘솔창에는 출력이 괴지 않습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일업로드,다운로드 궁금한게 있습니다.
mvc2편 마지막 강의에서아래 컨드롤러를 추가했다고 화면에 이미지 파일이 나타나는 이유를 정확히 모르겠습니다./images/{filename} 디렉토리가 호출된 적이 없잔아요? @ResponseBody @GetMapping("/images/{filename}") public Resource downloadImage(@PathVariable String filename) throws MalformedURLException { return new UrlResource("file:" + fileStore.getFullPath(filename)); }
-
미해결스프링 핵심 원리 - 고급편
controller나 service나 repository나 어노테이션 하나 붙이면 자동으로 빈 등록되지 않나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]OrderServiceV1, OrderControllerV1, OrderRepositoryV1, AppV1Config각각@Service@Controller@Repository@Configuration이렇게 각각 어노테이션만으로 스프링 빈 자동 등록이 되는걸로 알고있는데, (혹시나 제가 미처 고려하지 못한 이유가 있다면) 수동등록을 선택하신 이유를 알고 싶습니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 세션에 대한 고찰
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 현재 스프링mvc와 jpa를 활용해서 게시판 프로젝트를 만들고있습니다.로그인 처리는 세션으로 구현했습니다.한 유저가 로그인을 해서 게시글을 작성했을때,그 게시글은 작성한 해당 유저만이 수정 및 삭제를 할수있게 구현을 하는 중입니다. @GetMapping("/{boardId}/edit") public String editForm(@PathVariable("boardId") Long boardId, Model model, HttpServletRequest request, HttpServletResponse response) throws IOException { Optional<Board> findBoardOptional = boardRepository.findByIdJoinFetchMember(boardId); if (findBoardOptional.isEmpty()) { response.sendError(HttpServletResponse.SC_NOT_FOUND); return null; } MemberSessionDto memberSessionDto = getMemberSessionDto(request); Board findBoard = findBoardOptional.get(); if (!memberSessionDto.getId().equals(findBoard.getMember().getId())) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return null; } model.addAttribute("board", findBoard); return "boards/editForm"; } 현재 이런식으로 해당 게시글의 번호(boardId)로 해당 게시글이 있는지 먼저 검증을 한 후, 세션에 담아둔 유저의 정보를 가져와 해당 게시글을 작성한 유저의 id와 세션의 유저 정보의 id를 비교를 해서 다 검증이 끝나면은 로직이 정상 수행이 되게 만들었는데 막상 이렇게 만드니 수정 페이지이동, 수정, 삭제 에서도 검증하는 로직이 계속 중복됩니다.@PostMapping("/{boardId}/delete") public String deleteBoard(@PathVariable("boardId") Long boardId, HttpServletRequest request, HttpServletResponse response) throws IOException { Optional<Board> findBoardOptional = boardRepository.findByIdJoinFetchMember(boardId); if (findBoardOptional.isEmpty()) { response.sendError(HttpServletResponse.SC_NOT_FOUND); return null; } MemberSessionDto memberSessionDto = getMemberSessionDto(request); Board findBoard = findBoardOptional.get(); if (!memberSessionDto.getId().equals(findBoard.getMember().getId())) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return null; } boardRepository.deleteById(boardId); return "redirect:/boards"; }이렇게 똑같이 중복이 됩니다. 이렇게 구현을 하는게 맞는건지, 혹은 더 추천하는 방법이 잇는지, 실무에서는 어떻게 검증을 하는지 여쭈어보고싶습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일 업로드 다운로드 오류입니다. 빠른 답변바랍니다.
실행 결과과 강의 내용과 다르게 나옵니다.진도 나가야 되니 빠른 답변 바랍니다.https://drive.google.com/file/d/18G2rJDiA_FpbU226rO0Ck0-xmi-6fa-6/view?usp=sharing
-
미해결스프링 핵심 원리 - 고급편
도대체 동적 프록시란 ㅠㅠㅠㅠ
스프링이 제공하는 빈 후처리기1 강의를 듣고 있습니다..implementation 'org.springframework.boot:spring-boot-starter-aop 추가하고AnnotationAwareAspectJAutoProxyCreator빈 후처리기가 스프링 빈에 자동등록되는데요 궁금한게..동적 프록시라는게 계속 이해가 안갑니다ㅠㅠ인터페이스 기반이나, 구체클래스 기반이나실제 객체말고, 프록시 객체는 언제?어느 시점에 생성이 되는건가요?스프링 실행하면 처음에 로딩 쫙 할때 그때 프록시 객체가 만들어져서 빈으로 주입되는건가요?로딩할때 만들어지는건데 런타임에 만들어진다고하나요..? api 콜 할때 만들어지는게 아닌거죠?ㅠ왜 도대체 동적이라하나요..?ㅠㅠ동적이라는 의미가 생겨나는 코드는 어디부분인가요..?jdk 동적프록시랑 cglib의 프록시 생성차이점은 뭔가요..jdk는 바이트코드 조작이 아니라 리플렉션으로 프록시 객체를 생성하나요?cglib는 리플렉션이 아니라 컴파일된 바이트 코드를 조작해서 프록시객체를 생성하는건가요..?