묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
스프링부트로 실제 쇼핑몰을 제작해보고싶은데요..
스프링부트로 실제 쇼핑몰을 제작해보고싶은데요 혹시 결제기능관련이나 쪽지관련기능 로직짜는거 추가로 보강즘 해주실수없나요? 파이썬이나 자바스크립트 백엔드 관련강의들보면 결제기능 탑재나 쪽지기능 구현등 강의가 더러 널려있는데 유독 스프링부트관련해서는 이런기능을 구현하는 강의가 없는것같습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
test.mv.db 삭제 후 오류
강의 영상에서test.mv.db를 삭제하라 하셔서 rm으로 지웠는데요 다시 시작하라 하셔서 jdbc:h2:~/test 이거로 입력하니 Database "C:/Users/(사용자명)/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) 로 뜹니다... 결정적으로 이전에는 만들어졌던test.mv.db 파일이 안 만들어집니다..
-
미해결실전! 스프링 데이터 JPA
save 메서드와 변경감지 질문입니다.
안녕하세요.강의 항상 잘 보고 있습니다. SimpleJpaRepository 구현 클래스의 save 메서드 안에em.merge가 있습니다. 결국 엔티티를 변경할 일이 있으면 save 메서드를 사용하지 말고 변경 감지를 사용하라는 말씀이 맞으신가요? save 메서드는 새로운 엔티티를 저장할 때만 사용하라는 것으로 이해하면 될까요?
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
검색기능이 안됩니다
코드를 맞게 쳤는데 메뉴 이름중 일부만 검색했을때 나오질 않네요<!-- 검색에 의한 쿼리 --> <select id="doSearch" resultType="hello.sailing.v2.vo.Order_list"> SELECT no, coffee_no, coffee, price, cust_id, name, DATE_FORMAT(reg_day,'%Y.%m.%d') AS reg_day FROM order_list WHERE 1=1 AND reg_day >= DATE_FORMAT( #{strStartDate},'%Y%m%d') AND reg_day < DATE_ADD(DATE_FORMAT(#{strEndDate},'%Y%m%d'), INTERVAL +1 DAY) <if test="strCoffee != 'ALL'"> AND coffee like CONCAT(#{strCoffee},'%') </if> <if test="strName != 'ALL'"> AND name like CONCAT(#{strName},'%') </if>
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
검색기능이 안됩니다
@PostMapping("/order_search") public String doSearch( @RequestParam("start_date") String strStartDate, @RequestParam("end_date") String strEndDate, @RequestParam(value = "coffee", defaultValue = "ALL") String strCoffee, @RequestParam("name") String strName, Model model ){ log.info("strStartDate :"+strStartDate); List<Order_list> list = orderSvcV2.doSearch(strStartDate,strEndDate, strCoffee,strName ); model.addAttribute("list", list); return "/v2/order/order"; }/* 조회하기 */ public List<Order_list> doSearch(String strStartDate, String strEndDate, String strCoffee, String strName) { List<Order_list> list = orderDao.doSearch(strStartDate,strEndDate, strCoffee,strName ); return list; }package hello.sailing.v2.dao; import hello.sailing.v2.vo.Order_list; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface OrderDaoV2 { List<Order_list> doList(); List<Order_list> doSearch(String strStartDate, String strEndDate, String strCoffee, String strName); }package hello.sailing.v2.vo; import lombok.Data; @Data public class Order_list { private String no; private String coffee_no; private String coffee; private String price; private String cust_id; private String name; private String reg_day; } <!-- 검색에 의한 쿼리 --> <select id="doSearch" resultType="hello.sailing.v2.vo.Order_list"> SELECT no, coffee_no, coffee, price, cust_id, name, DATE_FORMAT(reg_day,'%Y.%m.%d') AS reg_day FROM order_list WHERE 1=1 AND reg_day >= DATE_FORMAT( #{strStartDate},'%Y%m%d') AND reg_day < DATE_ADD(DATE_FORMAT(#{strEndDate},'%Y%m%d'), INTERVAL +1 DAY) <if test="strCoffee != 'ALL'"> AND coffee like CONCAT(#{strCoffee},'%') </if> <if test="strName != 'ALL'"> AND name like CONCAT(#{strName},'%') </if> </select>화면에서는 조회버튼을 누르면 검색이 안됩니다...코드는 틀린게 없는데 왜 그런거죠?
-
해결됨스프링 부트 웹 개발 입문 - 따라하며 배우기
500에러
<!DOCTYPE html> <html lang="ko"> <head> <title>Coffee Order List</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" href="/css/comm.css"> <link rel="stylesheet" type="text/css" href="/css/coffee.css"> </head> <body> <!-- 헤더 위치 --> <div class="topnav"> <a href="/v2/home">Home</a> <a href="/v2/menu">커피메뉴</a> <a href="/v2/order">주문내역</a> <a href="/v2/member">고객정보</a> </div> <div id="main" style="font-size:large; text-align: center; "> <div id="search" style="height: 150px;padding: 15px; font-size: small; width: 90%; margin-left: auto; margin-right: auto;"> <h3>[ Coffee Order List <span style="font-size:30px;">🛒</span> ]</h3> <form name="fm_order" autocomplete="on"> <fieldset> <legend> [검색조건] </legend> <label>등록기간</label><input type="date" id="start_date" name="start_date" min="2020-01-01" max="2023-12-31"> - <input type="date" id="end_date" name="end_date" min="2020-01-01" max="2023-12-31"> <label>메뉴명</label> <input type="text" id="menu" name="menu"> <label>고객명</label> <input type="text" id="name" name="name"> </select> <input type="submit" value="조회" style="width: 80px;height: 30px;font-weight: bold; font-size: medium"> <!-- <a href="javascript:loadDocArray()">test</a> --> <!-- <label>CheckBox : </label><span id="idCheckBox"></span>--> </fieldset> </form> </div> <table class="table"> <thead> <tr class="tr_td"> <th>Chk</th> <th>주문번호</th> <th>커피No</th> <th>메뉴명</th> <th>가격</th> <th>고객ID</th> <th>고객명</th> <th>주문일자</th> </tr> </thead> <tbody id="t_body"> <!--- 데이타 출력 부분 --> <tr th:each="prod : ${list}"> <td><input type="checkbox" name="chkOrderNo" th:value="${prod.getNo()}"></td> <td th:text="${prod.getNo()}">주문번호</td> <td th:text="${prod.getCoffee_no()}">커피No</td> <td th:text="${prod.getCoffee()}">메뉴명</td> <td th:text="${prod.getCust_id()}">고객ID</td> <td th:text="${prod.getName()}">고객명</td> <td th:text="${prod.getReg_day()}">주문일자</td> </tr> </tbody> </table> </div> <!-- 푸터 위치 --> <div class="footer"> <!-- https://www.w3schools.com/html/html_emojis.asp --> <h4>[Footer] <span style="font-size:30px;">⛵</span> Spring boot 항해 ~ with Me</h4> </div> </body> </html> 계속 오류가 There was an unexpected error (type=Internal Server Error, status=500).An error happened during template parsing (template: "class path resource [templates/v2/order/order.html]")org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/v2/order/order.html]") at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:241)이렇게 떠요ㅠㅠ
-
미해결코드로 배우는 React with 스프링부트 API서버
중간에 나와있는 1분 미만 수업
로그인 페이지 설정 다음에 나온 저 두 가지 강의는 어떤 내용인걸까요??해당 수업 두 개 때문에 수료기준 미달로 떠서요 ㅠㅠ확인 부탁드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
패키지 질문 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]SpringConfig를 만들 때 service 패키지에 만든 이유가 있나요? 메인 클래스와 같은 패키지 및 아래 패키지에 존재하면 상관 없나요?
-
미해결스프링 시큐리티 OAuth2
authenticationEntryPoint 질문입니다.
강의 10분22초 강의자료 그림에서 인증이 실패하면 DaoAuthenticationProvider가 BasicAuthenticationEntryPoint를 호출한다고 돼있는데, AuthenticationEntryPoint는 이 과정에서의 실패가 아니라 해당 필터를 지나서 AuthorizationFilter에서 인증이 안된 사용자가 권한으로 인해 예외가 발생했을 경우 호출되는거 아닌가요? UsernameAuthenticationFilter에선 이런식이였던거 같은데 제가 잘못 이해한걸까요? DaoAuthenticationProvider에서 인증이 실패하면 BasicAuthenticationEntryPoint가 아니라 해당 필터에 등록된 FailureHandler가 호출되야할거 같은데 설명 부탁드립니다!
-
미해결스프링 배치
Multi-threaded-step과 Partitioning 차이 확인
안녕하세요 Multi-threaded-step과 Partitioning 차이가 제가 알고 있는 게 맞는지 궁금하여 질문드립니다.Multi-threaded-step은 하나의 Step 안에서 Chuk 크기만큼읽기-처리-쓰기 이 한 사이클을 여러 스레드들이 독립적으로 수행되어 단일 스레드보다 속도 향상을 할 수 있고PartitionStep은 하나의 Master Step 안에 파티셔닝 할 Slave Step을 정의하고 이 Step은 공유되고 gridSize 만큼 스레드가 생성되어 해당 스레드에는 독립적으로 스택에 StepExecution 참조를 할당받아 마치 여러 Step들이 스레드 개수만큼 수행되는 건가요? 즉 Multi-threaded-step은 Step in Muti-Thread 이고Partitioning은 Step in Multi-Step 인거죠?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
로그가 안찍혀요 ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용 OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended2024-10-03T23:40:00.663+09:00 INFO 9488 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'2024-10-03T23:40:00.665+09:00 INFO 9488 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...2024-10-03T23:40:00.670+09:00 INFO 9488 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.> Task :testBUILD SUCCESSFUL in 4s4 actionable tasks: 1 executed, 3 up-to-date오후 11:40:00: Execution finished ':test --tests "jpabook.jpashop.MemberRepositoryTest.testMember"'. 테스트는 통과하는데 저렇게 뜨면서 로그가 안찍히네요 ㅠㅠ 설정도 줄맞춰서 다 해봤는데 도저히 안돼서 .. 뭐가 문제일까요 ㅠ
-
해결됨스프링 부트 웹 개발 입문 - 따라하며 배우기
v2 객체 만드는중 입니다
v2 객체 만들고 이름도 바꾸고 패키지도 다시 만들었는데 이 오류가 자꾸 발생합니다..3일동안 하는데 계속 같은 오류가 뜨네여[2024-10-0323:26:47:2892] [restartedMain] DEBUG o.s.b.d.LoggingFailureAnalysisReporter -Application failed to start due to an exception org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.sailing.v1.dao.MenuDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
-
미해결스프링 배치
jdbcCursorReader, jdbcPagingReader 질문
안녕하세요 jdbc 를 통해 데이터를 읽어오는 점에 대해 질문이 있습니다.@Bean public ItemReader<Customer> jdbcCursorItemReader() { return new JdbcCursorItemReaderBuilder<Customer>() .name("jdbcCursorItemReader") .fetchSize(10) .dataSource(dataSource) .sql( "select id, firstName, lastName, birthDate from customer where firstName like ? order by lastName, firstName") .beanRowMapper(Customer.class) .queryArguments("A%") .build(); }여기서 fetchSIze 는 db 에서 한번에 가져올 레코드 수이고 @Bean public ItemReader<Customer> jdbcPagingReader() throws Exception { Map<String ,Object> paramMap = new HashMap<>(); paramMap.put("firstName", "H%"); return new JdbcPagingItemReaderBuilder<Customer>() .name("jdbcPagingReader") .dataSource(dataSource) .fetchSize(3) .pageSize(3) .queryProvider(pagingQueryProvider()) .parameterValues(paramMap) .beanRowMapper(Customer.class) .build(); }여기 페이징 방식에는 fetchSize, pageSize 두개를 둘 다 사용할 수 있던데 차이가 정확인 뭔가요? pageSize는 설정 시 쿼리에 Limit 설정 수가 추가되어 나가는 것은 확인했습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 리포지토리와 회원 서비스
[질문 내용]회원 리포지토리는 인터페이스와, 메모리 구현체로 이루어져 있습니다. 그런데 회원 서비스는 회원 리포지토리와는 반대로 클래스로만 이루어져 있는데 왜 회원 리포지토리는 회원서비스처럼 클래스로 만들지 않고 인터페이스와 메모리구현체 클래스로 나뉘었는지 궁금합니다.
-
미해결스프링 배치
step muti-thread 질문
안녕하세요 step 에서의 멀티 스레드 동작 방식에 대해 질문이 있습니다. 4개의 스레드 풀을 관리하는 taskExecutor 를 사용한다고 하였을 때 제일 맨 처음 스레드가 db 에서 fetch size 만큼 가져오고 시작하게 되는데 각 스레드들은 독립적으로 읽기-처리-쓰기 한 싸이클을 독립적으로 처리하게 되는게 맞나요.?아니면 또 스레드1이 읽은 데이터를 스레드 2가 처리하는 방식인가요.?요약은 스레드1이 읽은 데이터를 쓰기 작업까지 한 싸이클을 끝까지 독립적으로 수행하는가 아닌가 입니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 소스코드
혹시 강의 소스코드를 받을 수 있을까요??의존성 문제가 해결이 안돼서 강의 코드를 한번 받고싶습니다
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
생성메서드에 대한 질문입니다.
제가 강의를 듣다가Order 엔티티의 생성메서드의 파라미터에는 OrderItem의 리스트가 넘어오고,OrderItem 엔티티의 생성메서드의 파라미터에는 Item 객체가 넘어오는데 각각 Order 엔티티의 생성메서드에 OrderItem 리스트가 넘어오는 이유는 주문상품이 있어야 주문이 있기 때문이고, OrderItem 엔티티의 생성메서드에 Item 객체가 넘어오는 이유는 상품이 있어야 주문상품이 있기 때문이라고 이해하면 될까요??
-
해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기
강의 들으면서 블로그에 올려도 될까요?
안녕하세요! 제목처럼 강의 내용 들으면서 블로그에 정리하려고 하는데 괜찮을까요? :)
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
환경변수 설정을 yml 아니라 properties로 해도 상관 없나요?
yml과 properties의 차이가 계층구조 표현의 차이만 있는거 같은데 properties로 적용해서 강의를 진행하여도 상관이 없나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 등록 이후 두번째 회원가입부터 오류 발생
2024-10-02T00:24:30.390+09:00 ERROR 17692 --- [hi-spring] [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "com.example.hi_spring.domain.Member.getName()" is null] with root causejava.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "com.example.hi_spring.domain.Member.getName()" is nullat com.example.hi_spring.repository.MemoryMemberRepository.lambda$findByName$0(MemoryMemberRepository.java:31) ~[classes/:na]at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) ~[na:na]회원가입에서 이름 입력 이 후 두번째부터 회원가입 등록 시 위와 같은 오류메세지가 나타납니다.회원목록 화면으로 가보아도 처음에 정상적인것처럼 등록한 이름도 나오지 않고, #이름 위와 같은 화면으로 숫자만 생성되어 있고 빈칸으로 나옵니다. 오류메세지에서는 findByName 부분이 잘못 되어졌다고 나오는데 오류원인이 무엇인지 모르겠습니다.도움부탁드립니다.