inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

섹션15 인가 DB 연동부분

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

안녕하세요 강사님, 강의를 수강중인 수강생입니다. 궁금한 사항이 있어 질문드립니다. PersistentUrlRoleMapper의 getUrlRoleMapping를 확인해보면 결국 urlRoleMappings 변수의 key value부분이 SecurityFilterChain의 requestMatchers("/admin/**").hasAuthority("ROLE_ADMIN")이 되는것 같습니다. 예를들어 컨트롤러 쪽 api 호출시 /admin/select 는 ROLE_MANAGER, ROLE_ADMIN 접근 가능하며 /admin/insert ROLE_ADMIN만 호출을 허락하려고하면 JPA나 쿼리를 수정해서 urlRoleMappings 에 매핑하면 될지 궁금하여 질문드립니다. 현재 업무중의 테이블이 Role 과 Menu가 있고, Role과 Function이라는 테이블이 있어서, Menu접근에 권한과 Menu하위에 기능별로 다르게 권한을 동적으로 주려고하다보니 해당부분을 수정하면 될것 같아서 질문을 드립니다. public class PersistentUrlRoleMapper implements UrlRoleMapper{ public PersistentUrlRoleMapper(ResourcesRepository resourcesRepository) { this.resourcesRepository = resourcesRepository; } @Override public Map<String, String> getUrlRoleMappings() { urlRoleMappings.clear(); List<Resources> resourcesList = resourcesRepository.findAllResources(); resourcesList.forEach(re -> { re.getRoleSet().forEach(role -> { urlRoleMappings.put(re.getResourceName(), role.getRoleName()); }); }); return urlRoleMappings; } }

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
류혜상 댓글 1 좋아요 0 조회수 245

단순 용어 질문드립니다.

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

DBConnectionUtil 을 통해 커넥션을 획득하는 과정에서의 용어 질문입니다. 커넥션을 획득한다 커넥션을 연결한다 이 둘의 의미가 여기서는 획득한다(얻다) 가 더 알맞는 표현인건가요?

  • spring
  • mvc
  • spring-jdbc
재영 댓글 1 좋아요 1 조회수 263

테스트 로그

미해결

스프링 핵심 원리 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 테스트를 실패하면 로그가 나오는데 성공하면 영상처럼 로그가 안나오는데 따로 설정이 필요한가요?

  • spring
  • 객체지향
백종원 댓글 2 좋아요 0 조회수 327

리다이렉트 가 안되고 서버 오류라고 하는데 뭐가 문제 일까요?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 오류 내용은 이러한데 2024-06-10T18:33:11.875+09:00 ERROR 12636 --- [nio-8081-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either.] with root cause java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either. 느낌은 파라미터 오류 같은데 일단은 강의 내용대로 했는데.. 500오류 라고 뜨네여 뭐가 문제인지... 잘 선배님들 도와 주세여 혹시 모르니 구글 드라이브에도 남겼습니다. https://drive.google.com/file/d/1_u0G8TeUUVAxLRege6WdbTzNBOuvlZvJ/view?usp=sharing

  • spring
  • mvc
fnvjtm153 댓글 1 좋아요 0 조회수 339

로그인 여부에 따라 다른 UI는 어떻게 개발해야 하나요?

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요 로그인 과정 학습하다가 궁금한 점이 생겨 질문을 올려봅니다. 보통의 웹사이트는 로그인 여부에 따라 화면 또는 로직이 다릅니다. 예를 들어, 어떠한 게시판에 접속했을 때, 로그인이 된 경우: 닉네임 칸에 자동으로 회원의 닉네임이 입력되어있음 로그인이 안된 경우: 닉네임 칸이 빈칸임 의 경우에 html에서 조건문으로 처리를 하나요? 아니면 각각의 경우에 따라 파일을 만들어서 처리하나요? (ex.boardloggedin.html, boardnotloggedin.html)

  • spring
  • mvc
liltjay 댓글 1 좋아요 0 조회수 223

섹션 5

해결됨

스프링 핵심 원리 - 기본편

@Test @DisplayName("싱글톤의 주의할 점") void statefulServiceSingleton() { ApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); StatefulService statefulService1 = ac.getBean("testConfig", StatefulService.class); StatefulService statefulService2 = ac.getBean("testConfig", StatefulService.class); statefulService1.order("userA", 10000); statefulService2.order("userB", 20000); assertThat(statefulService2.getPrice()).isSameAs(20000); } 오류 메시지 java.lang.AssertionError: Expecting actual: 20000 and: 20000 to refer to the same object 이렇게 테스트 했더니 오류가 뜹니다!ㅠㅠㅠ Assertions.assertThat().isSameAs() Assertions.assertThat().isEqualsTo() 두 개의 차이점이 궁금합니다!

  • spring
  • 객체지향
권정익 댓글 1 좋아요 0 조회수 171

jdk 오류 질문드립니다

미해결

스프링 핵심 원리 - 기본편

섹션3 - 스프링으로 전환하기 부분 9:47 [질문 내용] 세팅에서 Gradle(Default)랑 Intellij IDEA 둘 다 변경해봤는데도 오류뜹니다 도와주세요 ㅎ그흑

  • spring
  • 객체지향
유댕 댓글 3 좋아요 0 조회수 469

로그추적기V1 테스트에서 오류납니다.

미해결

스프링 핵심 원리 - 고급편

구글 클라우드를 사용할 수 있는 환경이 안되서 제 블로그 링크를 붙입니다. https://blog.naver.com/jfk6725/223474471383 오류 내용입니다. Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/CodingStudy/%EC%8A%A4%ED%94%84%EB%A7%81/advanced/advanced/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. BUILD FAILED in 3s 4 actionable tasks: 2 executed, 2 up-to-date

  • spring
  • 디자인-패턴
jfk6725 댓글 3 좋아요 0 조회수 327

advancedTimeBy와 thenAwait 사용 예시가 궁금합니다

미해결

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부

안녕하세요, advancedTimeBy와 thenAwait 사용 예시를 모르겠어서 문의드립니다. 강의 중 advancedTimeBy는 '특정 시간을 당겨서 앞서 나가는 것'이라 설명해주셨고, thenAwait은 해당 시간이 빠르게 다가오는 걸로 이해하면 된다고 설명해주셨습니다. 궁금한 점은 1) 각각의 테스트가 필요한 예시를 조금만 더 자세히 들어주실 수 있으실까요? 특정 프로젝트에서 어떤 상황일 때 해당 방법이 필요한지 감이 잡히지 않습니다. 1-2) 어떤 상황에 필요한 것인지 모르다보니, advancedTimeBy와 thenAwait의 쓰임이 분명히 구분돼 있을텐데도 유사한 방식이 아닌가? 라는 생각이 듭니다. 이 부분도 예시로 설명해주실 수 있다면 함께 설명해주시면 감사하겠습니다.

  • java
  • spring
  • project-reactor
  • webflux
harper.2 댓글 1 좋아요 0 조회수 240

제네릭 DTO 질문

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] static class Result<T> { private T data; } 위와 같은 Result를 static으로 선언해서 inner class로 여기서는 사용을 하였는데요, 이를 패키지 바깥에 전역적으로 사용할 수 있도록 하나의 클래스로 선언하는 것과 inner class로 사용할 때 어떤 차이가 있을지 궁금합니다. 가령, 어떤 Response에서는 count라는 필드가 필요하고, 어떤 Response에서는 message라는 필드가 필요하다고 하면, 전역적으로 Result라는 DTO를 하나의 public 클래스로 만들어둔다면 위 상황을 처리하기 힘들 것 같은데 어떠한 방식이 객체지향적인 방식일까요?

  • java
  • spring
  • spring-boot
  • jpa
스물다섯컷의흑백필름 댓글 2 좋아요 0 조회수 347

TDD질문

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강의를 듣던중 의문이 생겨 질문드립니다. TDD 빨간불을 보고 (강의 6분 쯤) 초록불을 만드는 과정에서 return 8500을 하셨는데 이렇게 초록불을 만드는 게 맞나요?? 오히려 무슨 테스트를 수정해야하는 지 헷갈릴 거 같은데 제가 이해한 초록불을 만드는 과정은 변수명, JPA를 사용한다면 N+1 문제 등 아예 신경안쓰고 초록불을 만들고 위 문제들을 수정해 가는 과정으로 생각했는데..

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
박준형 댓글 2 좋아요 0 조회수 291

createOrder 변경

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강의를 듣다가 의문점이 생겨 질문드립니다. createOrder의 test를 구현하기 위해 LocalTime을 인자로 받게 변경했는데 결국 test를 위해 비지니스 로직을 수정을 하는 과정이 너무 짜치는데 다른 방법은 없을까요? 강의 뒤쪽에 나오는 걸까요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
댓글 2 좋아요 0 조회수 287

섹션 4

해결됨

스프링 핵심 원리 - 기본편

public class ApplicationContextSameBeanFindTest { ApplicationContext ac = new AnnotationConfigApplicationContext(SameBeanConfig.class); @Test @DisplayName("타입으로 조회 -> 같은 타입이 둘 이상 있으면 중복 오류 발생") void findBeanByTypeDuplicate() { MemberRepository bean = ac.getBean(MemberRepository.class); System.out.println("bean = " + bean); } @Configuration class SameBeanConfig { @Bean MemberRepository memberRepository1() { return new MemoryMemberRepository(); } @Bean MemberRepository memberRepository2() { return new MemoryMemberRepository(); } } } 너....무 기본적인 질문같지만 아직 부족해서 질문드립니다!ㅠㅜ 현재는 복습중입니다. 본문: 이 테스트 코드를 실행하면 오류가 납니다. ->UnsatisfiedDependencyException ApplicationContext ac = new AnnotationConfigApplicationContext(SameBeanConfig.class); 여기서 중첩 클래스로 SameBeanConfig를 만들었습니다. 그런데 SameBeanConfig에 static을 붙이지 않으면 왜 오류가 뜨는지 잘 모르겠습니다.... 이전 강의에서 만들었던 AppConfig는 static클래스가 아닙니다. 그럼에도 AnnotationConfigApplicationContext()에 설정 정보로 넘겨줘도 실행하는데 지장은 없었습니다. 한 마디로 AppConfig도 객체를 따로 생성해서 넘긴 게 아니라 AppConfig.class로 넘겼습니다. 그러면 SameBeanConfig.class도 정상 작동해야하는 게 아닌가...합니다....

  • spring
  • 객체지향
권정익 댓글 1 좋아요 0 조회수 146

동작 순서 질문

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요 공부를 하던 중 동작순서가 헷갈려서 질문 남깁니다. 회원가입을 예로 들어 질문하면 회원가입 버튼을 눌렀을 때, GetMapping의 url로 화면을 보여주고 사용자가 내용을 작성하면, 작성한 데이터를 th:action으로 인해 PostMapping url로 다시 돌아가 데이터가 ModelAttribute에 있는 객체에담겨 @Validated로 검증 후 오류가 있으면 bindingresult로 담아 다시 addform으로 보내 오류 메세지를 화면에 출력하고 오류가 없으면 홈화면으로 보내는 것 맞을까요 ??

  • spring
  • mvc
해톨 댓글 1 좋아요 1 조회수 203

회원가입 실행 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원가입 실행 오류가 있어서 확인해 본결과 Member.java 수정 @GeneratedValue(strategy = GenerationType.SEQUENCE) 을 하면 돌아가는데 왜 강의 코드 에서는 에러가 생기나요 ??

  • java
  • spring
  • mvc
  • spring-boot
kkkkkk 댓글 2 좋아요 0 조회수 322

2024.06기준) 최근 SecurityConfig 설정 문의

미해결

스프링부트 시큐리티 & JWT 강의

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. github에 올려주신 version2, 3 둘 다 빨간줄뜨고 6.1 이후로 deprecated 되었다고 나오는데 설정 어떻게 해야 할까요? ㅜㅜ 스프링부트 시큐리티2강 - 시큐리티 설정 듣고있습니다.

  • spring
  • spring-security
  • jwt
seohyeonjin787 댓글 3 좋아요 0 조회수 984

start.spring.io 에서 dependencies 에 아무것도 추가를 안하면

미해결

스프링 핵심 원리 - 기본편

start.spring.i o 에서 dependencies 에 아무것도 추가를 안하면 spirng 프레임워크를 사용하는 것이 되나요 ? 아니면 start.spring.i o 에서 dependencies 여부 상관없이 여기서 프로젝트를 다운받고 하게 되면 다 spring boot 프레임워크인건가요 ?

  • spring
  • springboot
김지수 댓글 1 좋아요 0 조회수 436

"테스트 케이스 세분화하기" 강의 화면이 안나옵니다

해결됨

Practical Testing: 실용적인 테스트 가이드

다른 강의는 잘 나오는데 테스트 케이스 세분화하기 강의만 화면이 까맣게 나옵니다. 저만 그럴까요? Arc 브라우저에서 수강하다가 크롬 브라우저에서도 확인해봤는데 똑같이 화면이 안나옵니다. UPDATE 1: "테스트 케이스 세분화하기" 부터 화면이 안나오는 것 같네요. UPDATE 2: 크롬에서 하드웨어 가속 기능을 끄니까 정상적으로 화면이 나옵니다. 왜 기능을 꺼야하는건지 이유를 알고 싶긴하네요.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
김주영 댓글 2 좋아요 0 조회수 263

'더 견고해지기 위해 남은 작업' 아 영상 파트에 나오는 자료 공유 받을수 있나요?

해결됨

견고한 결제 시스템 구축

우선 좋은 강의 준비해주셔서 정말 감사드립니다! 영상에 나오는 노션 자료 초기 영상에서 공유 해주셨던 노션 링크 통해 확인해보니깐 '더 견고해지기 위해 남은 작업' 이 영상에서 나오는 자료는 안보이는것 같습니다. 제가 못 찾는걸까요? 이부분 공유가 안되었으면 공유 부탁드립니다!

  • spring
  • spring-boot
  • dbms/rdbms
  • backend
  • payments
리나 댓글 1 좋아요 0 조회수 295

상품 수정 500에러가 뜹니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 상품 수정 하려 했더니 다음과 같은 에러가 뜹니다. 강의 듣고 작성한 코드인데 어떤 부분이 잘못됐는지 알고 싶습니다. package jpabook.jpashop.controller; import jpabook.jpashop.domain.item.Book; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.service.ItemService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @Controller @RequiredArgsConstructor public class ItemController { private final ItemService itemService; @GetMapping("/items/new") public String createForm(Model model) { model.addAttribute("form", new BookForm()); return "items/createItemForm"; } @PostMapping("/items/new") public String create(BookForm form) { Book book = new Book(); book.setName(form.getName()); book.setPrice(form.getPrice()); book.setStockQuantity(form.getStockQuantity()); book.setAuthor(form.getAuthor()); book.setIsbn(form.getIsbn()); itemService.saveItem(book); return "redirect:/items"; } @GetMapping("/items") public String list(Model model) { List<Item> items = itemService.findItems(); model.addAttribute("items", items); return "items/itemList"; } @GetMapping("/items/{itemId}/edit") public String updateItemForm(@PathVariable("itemId") Long itemId, Model model) { Book item = (Book) itemService.findOne(itemId); BookForm form = new BookForm(); form.setId(item.getId()); form.setName(form.getName()); form.setPrice(form.getPrice()); form.setStockQuantity(form.getStockQuantity()); form.setAuthor(item.getAuthor()); form.setIsbn(item.getIsbn()); model.addAttribute("form", form); return "items/updateItemForm"; } @PostMapping("/items/{itemId}/edit") public String updateItem(@PathVariable String itemId, @ModelAttribute("form") BookForm form) { Book book = new Book(); book.setId(form.getId()); book.setName(form.getName()); book.setPrice(form.getPrice()); book.setStockQuantity(form.getStockQuantity()); book.setAuthor(form.getAuthor()); book.setIsbn(form.getIsbn()); itemService.saveItem(book); return "redirect:items"; } } package jpabook.jpashop.repository; import jpabook.jpashop.domain.item.Item; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import jakarta.persistence.EntityManager; import java.util.List; @Repository @RequiredArgsConstructor public class ItemRepository { private final EntityManager em; public void save(Item item) { if (item.getId() == null) { em.persist(item); } else { em.merge(item); } } public Item findOne(Long id) { return em.find(Item.class, id); } public List<Item> findAll() { return em.createQuery("select i from Item i", Item.class) .getResultList(); } }

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
lgh8079 댓글 2 좋아요 0 조회수 227

인기 태그

인프런 TOP Writers

주간 인기글