묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
./gradlew build 후 에러가 났습니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]이렇게 에러가 났는데, 초심자라 전혀 해석을 못하겠습니다.JDK17, Gradle8.7, SpringBoot 3.1.11 로 실행하고 있습니다. 처음 JAVA8을 사용하고 있다가, springboot가 3.0만이 지원되고 있다고 하여, JAVA17을 설치하여 환경변수 등 모두 잘 설정하였습니다. 이외에 수강 내용대로 잘 따라가서, 인텔리제이에서 실행할 때에는 잘 되고 있었는데, wsl에서 build를 하니 에러가 났네요. 어떤 점이 잘못된 걸까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
동적 jsp, 정적 jsp
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]jsp 파일중에new-form.jsp 는 동적으로 처리되는 부분이 없고save.jsp 는 자바 코드가 동적으로 처리되는 부분이 있는데 보통 웹서버에서 정적으로 html 을 내려주곤 하는데 new-form.jsp같은경우 위와같이 정적파일을 내려주는건가요?? jsp를 사용하지 않고 //자바코드 in html PrintWriter w = response.getWriter(); w.write("<html>"); w.write("<head>"); w.write(" <meta charset=\"UTF-8\">"); w.write(" <title>Title</title>"); w.write("</head>"); w.write("<body>"); w.write("<a href=\"/index.html\">메인</a>"); w.write("<table>"); w.write(" <thead>"); w.write(" <th>id</th>"); w.write(" <th>username</th>"); w.write(" <th>age</th>"); w.write(" </thead>"); w.write(" <tbody>");이런식으로 동적으로 html을 만드는거는 알겠는데 save.jsp 이렇게 프로젝트에 파일 자체가 있어도 그 안에 동적인 로직이있으면 동적으로 브라우저한테 내려주는건가요??? 3. 그럼 jsp로는 정적 동적 둘 다 가능한건가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 인터셉터 - 요청 로그 질문있습니다.
1.스프링 인터셉터 - 요청 로그 강의 2분 10초에서 3분까지 LogInterceptor가 싱글톤이기 떄문에 String uuid를 preHandle위에 작성하면 안된다고 하셨는데요.그런데 MemberController에서도 private final MemberRepository memberRepository; 이 부분은 변수 선언 가능한데요. 2. 스프링 인터셉터 - 요청 로그 강의 14분 13초에서 위 코드가 호출한 컨트롤러 메서드의 모든 정보가 포함되어있다. 라고 나오는데요. hm이 회색으로표시(변수 사용안함) 무슨정보가 포함되어있는건가요? @Slf4j public class LogInterceptor implements HandlerInterceptor{ public static final String LOGIN_ID = "loginId"; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String requestURI = request.getRequestURI(); String uuid = UUID.randomUUID().toString(); request.setAttribute(LOGIN_ID,uuid); //@RequestMapping:HanddlerMethod //정적리소스:ResourceHttpRequestHandler if (handler instanceof HandlerMethod){ HandlerMethod hm=(HandlerMethod)handler; } log.info("REQUEST[{}][{}][{}]",uuid,requestURI,handler); return true; } 3.bean코드를 주석처리해줬는데 addInterceptors랑 FilterRegistrationBean 랑 코드 차이가 뭔가요?제 생각엔 필터랑 인터셉터 차이같은데 LoginCheckFilter 이부분은 주석처리 안해주셔서요.@Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LogInterceptor()) .order(1) .addPathPatterns("/**")//모든 경로에 대해 LogInterceptor를 실행하도록 지정합니다. 이는 모든 요청이 인터셉터를 통과하게 만듭니다. .excludePathPatterns("/css/**","/*.ico","/error");//.excludePathPatterns("/css/**","/*.ico","/error")은 /css/ 경로, .ico 파일 및 /error 경로를 제외하고 모든 요청에 대해 LogInterceptor가 실행되도록 설정합니다. } // @Bean public FilterRegistrationBean logFilter(){//스프링부트가 was를 들고 띄움. FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(); filterRegistrationBean.setFilter(new LogFilter()); filterRegistrationBean.setOrder(1); filterRegistrationBean.addUrlPatterns("/*");//어떤 url패턴을 할꺼냐. return filterRegistrationBean; }같은강의 12분 50초에서 선생님 코드에서는 items가 아래처럼 목록이 다 뜨는데 저는 안뜹니다 .혹시 버전 문제인가요?전체코드:https://drive.google.com/file/d/13MrBawN2imZlq9AJdH1h9_3_kN5CAueU/view?usp=drive_link
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
섹션 6. 순수 jbdc
이 부분이 임포트가 아예 안 됩니다ㅠㅠimport org.springframework.jdbc.datasource.DataSourceUtils; 그래서DataSourceUtils.getConnection(dataSource);이렇게 인텔리제이에서 빨간 불이 들어오구요ㅠㅠ DataSourceUtils에만 빨간 불이 들어옵니다!!어떻게 해결해야 할까요!!private Connection getConnection() { return DataSourceUtils.getConnection(dataSource); } private void close(Connection conn, PreparedStatement pstmt, ResultSet rs) { try { if (rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (pstmt != null) { pstmt.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) { close(conn); } } catch (SQLException e) { e.printStackTrace(); } } private void close(Connection conn) throws SQLException { DataSourceUtils.releaseConnection(conn, dataSource); }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링jpa 질문이 있습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long>, MemberRepository { @Override Optional<Member> findByName(String name); }이 스프링jpa 에서 저기 findByName 부분은 없어도 되는 걸까요? 이미 MemberRepository 인터페이스를 상속 받으니까? 만약에 MemberRepository 에서 메만약에 MemberRepository 에서 메소드명을 schByName 이라 SpringDataJpaMemberRepository 에서소드명을 schByName 이라고 짓는다면 어떡해야 SpringDataJpaMemberRepository 에서 어떡해야하나요?..스프링jpa를 염두해두고 미리 메소드명들을 만들어야 하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
css
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]사진과 같이 수정, 등록 폼에 css가 강의 내용과 다른데 혹시 어떤이유인지 알 수 있을까요? [구글 드라이브]https://drive.google.com/file/d/1oDw7yGjUQYH6d4c1Br85hFX9HACaGzj3/view?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
코드 생성과 처리구조
[질문 내용]여기에 질문 내용을 남겨주세요.조금 의아한 부분이 있어서요 @beforeEach 안에서 Repository 생성이 되었는데 윗줄에서 다시 선언이 되어서 클래스에 적용되는 건가요?? 기본적으로 코드는 위에서 아래로 처리되는 걸로 아는데요 위에서 선언이 먼저 되고 beforeEach 안에서 new 로 생성된 부분이 계속 버벅거립니다
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
Jdbc템플릿을 사용하면 지금까지 내용은 직접 사용하는 일은 없나요?
지금까지의 설명은 기술의 발전 과정을 설명해주신것이니 실무에서나 개인 프로젝트 할때는 JDBC템플릿을 이용하면 지금까지 설명해주신 부분이 모두 해결이 자동으로 되니 에러 변환이나 커넥션 가져오고 반환하는 등 모든 과정을 고민하지 않아도 되는것인거죠 ?그리고 멤버서비스v3_4테스트부터 오류가 발생하여 Jdbc템플릿을 이용하는 방법 테스트에까지 오류가 해결이 안됩니다. 기존에 질문글에 구글드라이브 링크를 올렸는데 해결 부탁드립니다 ㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
코드 수정 후 자동으로 변경
안녕하세요, 강의 잘 보고 있습니다.코드 수정 후에 rerun 할때마다 너무 불편한데, 혹시 rerun 안해도 localhost:8080이 켜져있는 상태에서 자동으로 화면이 변경되는걸 볼 수 있을까요? 예를 들어서 리액트 같은경우는 싱글페이지의 장점을 가지고 있어서 코드 수정 후 저장만 하면 바로 바로 변경되는걸 볼 수 있는데 인텔리제이에서도 비슷한 내용이 있나 싶어서 문의드립니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
모델 키 설정 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]공부를 하다가 갑자기 궁금해져서 질문 드립니다MemberListControllerV3 클래스와 MemberSaveControllerV3에서 mv객체의 Model의 키를 각각 "members"와 "member"로 설정한 이유가 있나요?이전의 버전도 계속 그런 방식으로 설정을 하더라구요.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
섹션 5
private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } /** * 회원 가입 */ public Long join(Member member) { // 같은 이름이 있는 중복 회원X validateDuplicateMember(member);// 중복 회원 검증 memberRepository.save(member); return member.getId(); }MemberRepository는 인터페이스인데, 아래 join에서 memberRepository.save(member)을 어떻게 사용하는 건가요? 인터페이스는 객체를 만들지 못하고 구현체를 만들어야하는데 그러면 필드에서 MemberRepository의 구현체인 MemoryMemberRepository를 받아야 되는게 아닌가 했습니다.이해가 잘 되지않아서 질문드립니다ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인텔리제이에서 자바스크립트 인라인 each 작성시 오류
[질문 내용]자바스크립트 인라인 each 작성시 정상적인 문법에도 불구하고 인텔리제이에서 에러 표시가 뜹니다.서버 실행후 페이지 소스를 보면 작동이 아예 안되는것 같습니다.인터넷 검색으로 해결법을 찾아보려고 했지만 관련된 오류가 하나도 없어서 질문 올려봅니다...ㅠㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
final 과 this
[질문 내용]여기에 질문 내용을 남겨주세요. service 에서 repository 호출 시 final 쓰는 이유 좀 설명해주세요 ㅠ 그리고 this의 의미가 setName(String name){.....} 에서 매개변수로 넘어온 (String name)을 지칭하는 것인가요??
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
해외에서는 웹 어플리케이션 개발할때 프로시저를 더많이 사용하나요?
안녕하세요. 강의를 듣다가 해외에서 프로시저를 사용하는 부분에서 궁금한점이 들어서 질문을 남깁니다.해외의 경우 웹 애플리케이션을 개발할때 전부 프로시저로 개발하거나 비중이 높은 사이트나 회사도 있나요?(범용적으로 유지보수와 가독성을 위해서 적절히 섞어서 사용한다고 알고 있습니다.)만약 프로시저 비중이 높거나 전체를 개발 된 사이트가 있다면 혹시 어떻게 생각하는지 들을 수 있을까요?(저는 별로라고 생각합니다!)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
폼데이터 GET 요청 시, WhiteLabel 페이지 출력
환경: Mac OS, Spring Boot 3.2.5, Java 17 강의, 문서 코드 그대로 작성했습니다.10:10부터 설명해주시는 폼데이터 GET 요청 시, WhiteLabel 페이지가 출력이 됩니다.반환하는 뷰 이름과 뷰 파일 이름이 매칭이 되지 않는지 확인했고, 무슨 문제인지 감이 잘 잡히지 않습니다. 확인 한 번만 부탁드리겠습니다! 감사합니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
리다이렉트시...
1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 내용 들으면서 예시 프로그램 만들어 봤습니다.MemberDTO 에는 회원 가입시 비밀번호 확인 하는 부분이 없습니다. 이때, 비밀번호랑 비밀번호 확인란이랑 같은 것이 입력되었는지 확인하고 싶어서 이렇게 ModelAttribute로 member랑 mbrPwdConfirm을 넘겨 받아서 member의 pwd와 mbrPwdConfirm의 값이 같은지 비교했습니다. 그후 로그인 화면으로 리다이렉트 했는데, 이때, 이렇게 위에 mbrPwdConfirm부분이 쿼리로 나타납니다. singIn 함수에서 mbrPwdConfirm 부분을 제거 하고, request.getParameter("mbrPwdConfirm")을 하면 되긴합니다. 왜 전자의 방식은 안되고 후자의 방식은 되는 지 궁금합니다. 또한, 리다이렉트시 이 부분을 없애고 싶은데, 그러면 modelAttribute 부분을 없애야 하는데... 그러면 signIn함수에서 값을 사용을 못합니다....
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
체크예외를 런타임예외로 변환하는 코드
[질문 내용]해당 영상에서 unCheckedAppTest 클래스 내에서 SQLException을 RuntimeException으로 변환하는 부분을 static class로 생성해서 사용하고 있습니다.<첫 번째 질문>이렇게 체크 예외를 런타임 예외로 바꿀 때 항상 static class로 생성해야 되는지 아니면 try { ~~ } catch(SQLException e) { throw RuntimeException(e); } 이렇게 사용해도 되는지 궁금합니다.<두 번째 질문>체크 예외를 런타임 예외로 바꾸는 부분을 static class로 생성할 때 무조건 해당 체크 예외가 발생하는 클래스에다 생성해야 하는지도 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
value값이 null로 나오는 이유???
[질문 내용]여기에 질문 내용을 남겨주세요.value 값이 왜 null로 나오나요???????????
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HandlerExceptionResolver 시작 질문있습니다.
잘못된 입력값이라고 나오는데 줄이 되게 길게 나옵니다.혹시 강의처럼 똑같이 나올려면 코드 어느부분을 추가해야하나요?전체코드입니다.:https://drive.google.com/file/d/1Bc9E7UaYn4H6j54XeFvdknSmHTWSgmvC/view?usp=drive_link
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
스프링 DB2 테스트 - 데이터 롤백 오류
findItems()에서 "itemA", "itemB"가 남아있다는 오류가 발생합니다. jdbc:h2:tcp://localhost/~/testcase 로 접속해서 select 해 보면 데이타가 없는데, =jdbc:h2:tcp://localhost/~/test 로 접속해서 select하면 "itemA", "itemB" 가 남아있습니다.(삭제하고 다시 실행해도....). TestDataInit을 실행하는거 같네요??@Bean @Profile("local") public TestDataInit testDataInit(ItemRepository itemRepository) { return new TestDataInit(itemRepository); }링크 :: https://drive.google.com/file/d/1HD2gxtYhL8B5fZ3KazZ148-4x66PPCuo/view?usp=sharing