묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
run도 안뜨고 갑자기 오류부터 떠서 질문해봅니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]아래 사진은 다운 과정이고 위 사진은 압축 푼 파일 열자마자 뜨는 오류입니다. run 버튼도 안뜹니다. 무엇이 문제일까요..
-
미해결스프링 시큐리티
최신 스프링 시큐리티 - Ajax 로그인 시도 시 쿠키가 오지 않을 때 삽질 기록
증상### 로그인(일반 회원) POST http://localhost:8080/api/login Content-Type: application/json X-Requested-With: XMLHttpRequest { "username": "user", "password": "1111" } ### 로그인(매니저) POST http://localhost:8080/api/login Content-Type: application/json X-Requested-With: XMLHttpRequest { "username": "manager", "password": "1111" } ### messages 요청 GET http://localhost:8080/api/messages Content-Type: application/json X-Requested-With: XMLHttpRequesthttp 파일을 작성하고 로그인 요청에 성공했음에도 성공 응답 및 사용자 정보 dto가 오도록 했는데, 쿠키가 오지 않는 문제가 있었습니다.원인원인은 AbstractAuthenticationProcessingFilter 의 기본 SecurityContextRepository가 RequestAttributeSecurityContextRepository이기 때문입니다.그동안 폼 인증에서 우리가 세션을 통해 인증을 할 수 있었던 것은 스프링시큐리티가 기본적으로 등록해준 UsernamePassowordAuthenticationFilter가 저 SecurityContextRepository 구현체로 DelegatingSecurityContextRepository(HttpSessionSecurityContextRepository(), RequestAttributeSecurityContextRepository()) 를 넣어줬기 때문입니다.또 우리가 AuthenticationSuccessHandler, AuthenticationFailureHandler를 커스텀하게 만들었다면 이를 수동으로 등록하는 코드를 작성해줘야하는 이유도 이와 같습니다. 기본 구현체가 위와 같기 때문입니다. @Bean fun ajaxLoginProcessingFilter(): AjaxLoginProcessingFilter { val filter = AjaxLoginProcessingFilter(objectMapper, authenticationManager()) filter.setSecurityContextRepository(securityContextRepository()) filter.setAuthenticationSuccessHandler(ajaxAuthenticationSuccessHandler()) filter.setAuthenticationFailureHandler(ajaxAuthenticationFailureHandler()) return filter } @Bean fun securityContextRepository(): SecurityContextRepository = DelegatingSecurityContextRepository(HttpSessionSecurityContextRepository(), RequestAttributeSecurityContextRepository()) @Bean fun ajaxAuthenticationProvider() = AjaxAuthenticationProvider(userDetailsService, passwordEncoder()) @Bean fun ajaxAuthenticationSuccessHandler() = AjaxAuthenticationSuccessHandler(objectMapper) @Bean fun ajaxAuthenticationFailureHandler() = AjaxAuthenticationFailureHandler(handlerExceptionResolver) @Bean fun ajaxAuthenticationEntryPoint() = AjaxAuthenticationEntryPoint(objectMapper) @Bean fun ajaxAccessDeniedHandler() = AjaxAccessDeniedHandler(objectMapper)혹시 저처럼 최신 스프링 시큐리티 환경에서 실습하시면서http 요청 실습에서 로그인 시 쿠키가 전송 안 되시는 분들은 이 작업을 해보시길 바랍니다.SecurityContextRepository 구현체를 생성하여, 등록해보시는 것을 추천드립니다.
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
회차 강의pdf파일 보는 방법이 없나요?
회차 강의pdf파일 보는 방법이 없나요?분명히 학습자료를 받아서 볼 수 있다고 되어있는데, 노트와 어디에서도 파일을 받아서 볼 수 있는 것이 없습니다.내용을 프린트 해서 볼 수 있는 방법이 있을까요?답변부탁드립니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 데이터베이스 가 접속이 안되어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. Database "C:/Users/mukim/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-224] 90149/90149 (도움말)이렇게 나와요 뭘 어떻게 해야하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
어플리케이션 재구동 시 H2 DB table 및 data가 유지되게 할 수 없나요?
메모리 기반으로 설정했다고 해서 어플리케이션 재구동 할 때마다 Table 및 Data가 날라가는 것으로 알고있습니다.그런데 개인적으로 공부하면서 여러가지 시도를 하다보면 기존 Data가 유지되었으면 좋겠습니다.김영한 강사님의 다른 기초 강의에서는 H2서버의 Data를 유지하도록 설정했었는데,이 강의에서는 설정을 어떻게 해야 Data가 유지되는지요?
-
미해결실전! 스프링 데이터 JPA
fetch join 쿼리 질문 드립니당
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 페이징 처리를 하다가 갑자기 궁금해서(이전에 배웠는데 까먹은걸지도..모르겠네요) <질문> : @Query에서 페치 조인으로 팀을 가져왔는데, Team 엔티티에 있는 List<Members> members의 값은 왜 결과 쿼리에서 조회가 되지 않았는지 궁금합니다.패치조인을 하게 되면 member와 team의 모든 필드 값을 다 select 하게 되는거 아니였나요'? 맞다면 리스트 members도 가져와야 된다고 생각하는데 왜 안되는지 궁금하고, 가져올 수 있는 방법이 따로 있는 건지도 궁금합니다. @Query(value = "select m from Member m left join fetch m.team t", countQuery = "select count(m) from Member m")Page<Member> findByAge(int age, Pageable pageable); @Testpublic void paging(){//given memberRepository.save(new Member("member1", 10)); memberRepository.save(new Member("member2", 10)); memberRepository.save(new Member("member3", 10)); memberRepository.save(new Member("member4", 10)); memberRepository.save(new Member("member5", 10)); memberRepository.save(new Member("member6", 10)); int age = 10; PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Sort.Direction.DESC, "username")); //when Page<Member> page = memberRepository.findByAge(age, pageRequest); // PageRequest의 부모 인터페이스가 Page package study.datajpa.entity;import jakarta.persistence.*;import lombok.*;import java.util.ArrayList;import java.util.List;import static lombok.AccessLevel.PROTECTED;@Entity@Getter @Setter@NoArgsConstructor(access = PROTECTED)@ToString(of = {"id", "name"})public class Team {@Id @GeneratedValue @Column(name = "team_id")private Long id; private String name; @OneToMany(mappedBy = "team")private List<Member> members = new ArrayList<>(); public Team(String name) {this.name = name; }}
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
string vs StringBuilder 어느 것을 사용해야 될까요?
안녕하세요! 너무 간단한 질문이지만, 초심자라 .. 질문 드리고 싶습니다 지금까지 String을 합칠때 '+' 을 사용하여 왔습니다. 그런데 StringBuilder에 대해 공부를 좀 하고 보니 이대로 사용하면 괜찮을까? 고민을 하게 되었습니다. 물론, 문제마다 다르겠지만, 코딩테스트를 시험치러 갈때 StringBuilder를 사용하지 않았다고 해서 시간초과가 뜨거나 그렇진 않을지 궁금합니다. 지금부터라도 StringBuilder로 사용하는 것이 맞을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA 질문이요!
엔티티에서 컬럼 아이디를 idx로 했을 때 findById().get() 했을 때(기본 제공 메소드)는 중복키오류가 안나오는데 레포지토리에 findByIdx(int idx) 이렇게 만든걸 호출했을때는 중복키 오류가 생기는데 차이가 어떻게 생긴건지를 모르겠습니다...save()를 호출안하고 set만 했는데 DB에 객체가 바뀌어서 저장되서 이 부분도 원래 이렇게 되는게 맞는지 궁금합니다...
-
미해결스프링 시큐리티 OAuth2
spring boot 3.1 security entryPoint 관련 질문입니다
스프링부트 2.7.7 버전에서는 사용할때 아무 문제없던 코드들인데 3.1 버전 업데이트하면서 securityFilterChain 이부분 문법만 살짝 바뀐정도입니다 그런데jwt 토큰에서 chain.doFilter(request, response); 까지 잘 넘어가고비즈니스 로직인 service 단에서 에러가 터졌을때 (NullPointException,IllegalArgumentException)에러가 났을경우다시 엔트리포인트로 넘어와서 에러처리가 되는데 왜 이럴까요 ?? 무슨 에러가 나든엔트리포인트로 넘어오는데 엔트리포인트는 인증 실패일경우에 실행되어야하는걸로 알고있습니다토큰값은 모두 유효하고 jwt 토큰 인증은 되었음에도 불구하고 엔트리포인트로 넘어가는 이유를 모르겠습니다아래 에러는 비즈니스로직에서 에러 난 코드이며 2023-10-30T23:56:16.287+09:00 ERROR 26006 --- [nio-8081-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.InvalidDataAccessApiUsageException: No enum constant com.tripcoach.core.domain.alarm.enums.AlarmType.COACH] with root causejava.lang.IllegalArgumentException: No enum constant com.tripcoach.core.domain.alarm.enums.AlarmType.COACHat java.base/java.lang.Enum.valueOf(Enum.java:273) ~[na:na]at org.hibernate.type.descriptor.java.EnumJavaType.fromName(EnumJavaType.java:231) ~[hibernate-core-6.2.9.Final.jar:6.2.9.Final]at org.hibernate.type.descriptor.converter.internal.NamedEnumValueConverter.toDomainValue(NamedEnumValueConverter.java:53) ~[hibernate-core-6.2.9.Final.jar:6.2.9.Final] 바로 에러코드 다음이 2023-10-30T23:56:16.291+09:00 ERROR 26006 --- [nio-8081-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] threw exceptionjava.lang.NullPointerException: Cannot invoke "Object.getClass()" because "exception" is nullat org.springframework.web.method.annotation.ExceptionHandlerMethodResolver.resolveMethodByThrowable(ExceptionHandlerMethodResolver.java:146) ~[spring-web-6.0.12.jar:6.0.12]at org.springframework.web.method.annotation.ExceptionHandlerMethodResolver.resolveMethod(ExceptionHandlerMethodResolver.java:134) ~[spring-web-6.0.12.jar:6.0.12] 엔트리포인트에서 넘어와버리네요부족한 코드이지만 아무리 찾아도 모르겠어서 글 남깁니다. 아래 전체코드 첨부합니다
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈 2번 질문드립니다
코드를 아래와 같이 작성했더니int height = 115; String result = (height >= 120) ? "탑승 가능합니다" : "탑승 불가능합니다"; System.out.println("키가 " + height + "cm 이므로 " + result); height = 121; System.out.println("키가 " + height + "cm 이므로 " + result);키가 115cm 이므로 탑승 불가능합니다키가 121cm 이므로 탑승 불가능합니다 이렇게 출력되는데 중간에 변수값을 height = 121; 이런식으로 변경해주면 안되는건가요?? 121로 숫자가 바뀌는걸 봐서는 변경이 된 것 같은데 뒤에 result가 탑승 불가능합니다로 출력이 되는건지 궁금합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티매핑 -실전예제에서 설정
h2 에서 url 에 jpa shop으로 만드려하는데 생성할수 없다고 에러가 뚭니다. Database "C:/Users/kjkkm/jpashop" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-224] 90149/90149 (도움말)
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
매출액의 종류 문제 질문있습니다.
해당 문제를 다음과 같이 풀었는데 RunTime Error가 발생하는 이유가 뭘까요 ?혹시 시간초과가 되는것일까요 ? import java.util.HashMap; import java.util.Scanner; public class No3 { public static void solution(int n, int m, int[] arr) { HashMap<Integer, Integer> map = new HashMap<>(); int[] answer = new int[m]; int lt = 0; for (int i = 0; i < m; i++) { map.put(arr[i], map.getOrDefault(arr[i], 0) + 1); } answer[0] = map.size(); for (int rt = m; rt < n; rt++) { map.put(arr[lt], map.getOrDefault(arr[lt], 0) - 1); map.put(arr[rt], map.getOrDefault(arr[rt], 0) + 1); if (map.get(arr[lt]) == 0) map.remove(arr[lt]); answer[++lt] = map.size(); } for (int x : answer) System.out.print(x + " "); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) arr[i] = sc.nextInt(); solution(n, m, arr); } }
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 연관관계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]일대다 연관관계가 업데이트 쿼리 나가는 게 아무래도 영속성 컨텍스트 기준으로 쿼리가 나가기 때문에 그런걸까요? 일단 테이블의 연관관계에서는 무조건 다 쪽이 외래키를 가지고 있기 때문에, JPA쪽에서도 그걸 알고 그냥 Member 먼저 insert 한 다음 id 가져와서 Address insert 하면서 같이 주면 효율적이지 않을까 하는데..뭔가 이 쓰기지연 SQL 저장소 여기 나가는 것도 알아서 최적화 되고 이런 게 있었던 거 같은데.. 아닌가.. 작동 방식이 차곡차곡 쌓여서 나중에 나간다 이렇게 알고 있긴 한데..address insert 하는 쿼리문들을 member insert하는 쿼리문 바로 뒤에 붙여버리면 좋지 않을까 하는데.. 이런 거 하나하나 다 따지기에는 너무 많은 케이스가 있고 영속성 컨텍스트 기준으로 나가기 때문에 그런건가요..?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 편의 메서드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의를 듣다가 헷갈리는 점이 생겨 질문드립니다연관관계 편의 메서드는 양방향 관계일때만 사용하면 되는지 궁금합니다만약에 연관관계 메서드를 사용하지 않아서 예를 들어 order엔티티에서 this.member = member만을 해주면 order테이블에는 member 정보가 들어가 있지만 member 테이블에는 order의 정보가 없고 null 상태인건가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
for-each를 사용해서 배열의 값을 입력하는 방법은 없나요?
for-each를 사용해서 배열의 값을 입력하는 방법은 없나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
변경감지와 병합 25:54초 부분 DB에 수정안됨
강사님 안녕하세요 ItemService updateItem 메서드에서 pk넣어서 아이템을 받아온 뒤 Item 객체에서 change 메서드만들고 Book 객체를 생성해서 받아온 값들을 넣었는데 DB에 인서트가 되지않습니다 @Transactinal 어노테이션도넣었고 값도 정상적으로 받아진거까지는 확인했습니다 하지만 DB에 인서트가 날라가지않습니다 BOOK이 그냥객체로 인식되서 JPA에서 인서트쿼리를 안날리는걸가요? 수정이 정상적으로 되게 insert 쿼리가 날라가려면 어떤부분을 고처야 할가요? 오랜시간 답을 못찾아서 질문 남깁니다. 감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
자바버전이요.
1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]지금 hello jpa-애플리케이션 개발 부분 공부하고 있는데요.hibernate.properties not found 이런 에러가 나옵니다.제가 좀 찾아보니. 자바 버전 문제인것같더라구요 저는 11버전을 쓰고 있습니다. 그럼 8버전으로 바까야 하는데, 환경변수까지 모두 바꿔야 하나요? 현재 제가 토이프로젝트하는건 모두 11로 되어있는상태라서요. 그리고 자바 버전을 바꿀 수 밖에 없는건가요? 11로 사용할 수 있는 방법은 없는지 궁금합니다.,
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
테이블을 못 찾습니다. ㅠㅠ
데이터베이스도 생성해주고 해당 테이블도 만들어주었으나 정보를 입력했을 때 해당 테이블을 찾지못해 내부 서버 오류가 발생합니다. 추가적으로 더 설정해줘야 하는 것이 있나요?아래 로그 첨부하겠습니다ㅠㅠjava.sql.SQLSyntaxErrorException: Table 'library.user' doesn't existat com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1009) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1320) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:994) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-4.0.3.jar:na]at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-4.0.3.jar:na]at org.springframework.jdbc.core.JdbcTemplate.lambda$update$2(JdbcTemplate.java:973) ~[spring-jdbc-5.3.29.jar:5.3.29]at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:656) ~[spring-jdbc-5.3.29.jar:5.3.29]at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:968) ~[spring-jdbc-5.3.29.jar:5.3.29]at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1023) ~[spring-jdbc-5.3.29.jar:5.3.29]at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1033) ~[spring-jdbc-5.3.29.jar:5.3.29]at com.group.libraryapp.controller.user.UserController.saveUser(UserController.java:37) ~[main/:na]at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.29.jar:5.3.29]at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.29.jar:5.3.29]at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.29.jar:5.3.29]at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) ~[tomcat-embed-core-9.0.79.jar:4.0.FR]at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.29.jar:5.3.29]at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[tomcat-embed-core-9.0.79.jar:4.0.FR]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.29.jar:5.3.29]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.29.jar:5.3.29]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.29.jar:5.3.29]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.29.jar:5.3.29]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.29.jar:5.3.29]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.29.jar:5.3.29]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1790) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
9-3. 결혼식 질문있습니다.
import java.util.*; import java.io.*; class Main { static int N; static class Time implements Comparable<Time>{ int time; char state; Time (int time, char state) { this.time = time; this.state = state; } public int compareTo(Time t) { if(time > t.time) { return 1; }else if(time == t.time) { if(state != t.state && t.state == 'e') { return 1; } } return -1; } } public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; N = Integer.parseInt(br.readLine()); ArrayList<Time> guests = new ArrayList<>(); for(int i = 0; i < N; i++) { st = new StringTokenizer(br.readLine()); int start = Integer.parseInt(st.nextToken()); int end = Integer.parseInt(st.nextToken()); guests.add(new Time(start, 's')); guests.add(new Time(end, 'e')); } Collections.sort(guests); System.out.println(solution(guests)); } public static int solution(ArrayList<Time> guests) { int ans = 0; int cnt = 0; for(Time t : guests) { if(t.state == 's') { cnt++; ans = Math.max(ans, cnt); } else { cnt--; } } return ans; } }제가 작성한 코드는 위와 같습니다. 강의에서 나온 코드와 거의 흡사한데 채점을 하면 런타임 에러가 발생합니다. 무슨 문제일까요?감사합니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
Order의 orderItems에 orphanRemoval 주지 않는 이유가 따로 있으신 가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기 보면, 주문과 주문 상품은 완전히 종속적일 것 같은 느낌이고,cascade도 ALL이라서 완전히 부모에서 관리할 것 같은 느낌이라..예제에서 보통 실무에서 쓸만한거 거진 예시로써 사용해 왔는데, orphanRemoval는 사용하지 않았던 이유가 궁금합니다.딱히 이유는 없고 충분히 고려할 수도 있는 내용인지, 아니면 뭐 orphanRemoval는 실무에서 잘 안쓴다던지 궁금합니다.아니면 보통 인터넷 쇼핑 이용할 때 주문상품 중 하나를 빼고 싶을 때 뺄 수 있는게 아니라 주문 자체를 다시 해야 하는 경우가 많아서 그런 비즈니스 적인 이유 때문에 그런건가요?그럴 경우는 오히려 고아객체라고 삭제하면 위험해질 수 있으니..?