자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 강사님 궁금한것이 있어서 질문 남깁니다 public void returnBook(String bookName) { UserLoanHistory targetHistory = this.userLoanHistories.stream () .filter(history -> history.getBookName().equals(bookName)) .findFirst() .orElseThrow(IllegalAccessError::new); //findFist()는 옵셔널로 반홚나다 targetHistory.doReturn(); } 이 로직에서 만약 한 책을 빌렸다가 반납하면 그 히스토리를 반납완료 상태로 만들어주고 끝내고 다시 그 책을 빌리려고 한다면 새로운 히스토리를 만들어서 List에 저장할텐데 그럼 다시 그책을 반납할 경우 findFirst()를 해서 그 히스토리를 찾아왔을때 이미 반납된 책을 다시 반납하는 행위가 되는것이 아닌건지 궁금해서 질문 드립니다!
의존성 조언 두번째 방법에서 문제점이 UserService.login은 여전히 의존성이 감춰져있다. 위와 마찬가지로 Userservice.login을 테스트할 때 clock에 의존하고 있는지 알 수 없다. 이거였는데 세번 째 방법도 UserService를 사용하는 메서드는 login(user)만 남겨서 user가 Clock에 의존하는지 모르지 않나요? 아까 맥도날드 예제에서는 인터페이스를 사용하면 일을 시킨다고 설명하셨는데 이것도 인터페이스를 사용해서 일을 시키는거니 이렇게 구현하면 내부에서 clockHolder를 사용해도 외부에서 몰라도 되나요?
처음에 기타가 아닌 걸로 했다가 다시 작성해봅니다. 앱 라이브를 안할경우 페이스북 로그인시 뜨는 화면 라이브를 하려니 뜨는 에러 개인정보처리방침 URL: https://www.facebook.com/privacy/policy/?entry_point=facebook_page_footer 사용자 데이터 삭제 https://developers.facebook.com/docs/development/create-an-app/app-dashboard/data-deletion-callback 임의 작성 localhost:8080 에서 대충 www.naver.com 으로 웹사이트 url 변경 앱 라이브 성공!! 일단 라이브 성공 상태에서 다시 http://localhost:8080 로 웹사이트 url 변경 ??? 읭? 분명 비활성화에서 바뀌긴 했는데 페이스북 로그인이 안됨.. (개발자 계정과 다른 페북 아이디일경우) 개발자 페이스북 아이디 동일할경우. 여기까지 후 일단 페북 인증 잠정 중단. 확인결과 비즈니스계정을 인증해야 api를 정상적으로 사용가능한데, 비즈니스계정 인증시 사업자 등록증 등 요구하는게 많아 포기.
무료 강의임에도 굉장히 강의 퀄리티가 높은 것에 감탄을 하며 보고 있는 중입니다. 좋은 감사드립니다. Validation 처리와 관련해서 질문드릴 것이 있는데요. 강의에서 DTO에 해당하는 클래스의 프로퍼티에 백킹필드를 사용하시고 Custom Getter를 만들어서 처리를 하셨는데, 혹시 이렇게 하는 방법 말고 바로 프로퍼티만으로 하는 방법도 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. remember me 쿠키에 대해 질문드리려 합니다 remember-me 쿠키는 사용자아이디 + 비밀번호를 암호화 해서 가지고 있는걸로 이해했습니다. 그래서 인증 토큰이 만료된다면, remember-me 쿠키를 통해서 쿠키를 디코딩하여 다시 인증을 시도하는걸로 이해했구요! 그러면, 마지막에 ' remember-me 쿠키를 통해서 쿠키를 디코딩하여 다시 인증을 시도 ' 하기 전에, 사용자가 비밀번호를 변경한다 면 remember-me 는 적용이 안되고 다시 로그인 페이지로 돌아가는 걸까요? 강의 잘 듣고 있습니다. 감사드립니다!
강의를 다 수강하고 깃허브 코드 참조하여 작성했습니다. 현재 SecurityConfig 코드는 다음과 같습니다. @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig{ private final UserRepository userRepository; private final CorsConfig corsConfig; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http .csrf(AbstractHttpConfigurer::disable) .sessionManagement((sessionManagement) -> sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS) ) .formLogin(withDefaults()) .httpBasic(withDefaults()) .apply(new MyCustomDsl()) .and() .authorizeRequests(requests -> requests .requestMatchers("/user/**").authenticated() .requestMatchers("/admin/**").access("hasAuthority('ADMIN')") .anyRequest().permitAll() ) .build(); } public class MyCustomDsl extends AbstractHttpConfigurer<MyCustomDsl, HttpSecurity> { @Override public void configure(HttpSecurity http) throws Exception { AuthenticationManager authenticationManager = http.getSharedObject(AuthenticationManager.class); http .addFilter(corsConfig.corsFilter()) .addFilter(new JwtAuthenticationFilter(authenticationManager)) .addFilter(new JwtAuthorizationFilter(authenticationManager, userRepository)); } } } filterchain에서 and()에 오류가 발생합니다. 'and()' is deprecated and marked for removal 로 나오는데 and가 deprecated된 거 같지는 않고 커스텀 필터를 적용하는 것에서 뭔가 문제가 있지 않을까 싶습니다만 이틀째 해결을 못하고 있어 문의남깁니다ㅠㅠ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 사용자 정의함수를 db에 등록시켜놓은 다음에 jpql로 사용을 해보니 따로 방언을 등록하지 않아도 사용이 가능합니다. List<String> str = em.createQuery("select create_prefix(m.username) from Member m", String.class).getResultList(); create_prefix는 직접 등록한 함수입니다. 수업에서는 방언으로 사용자 정의 함수를 등록해야지 적용이 된다고 하는데 이 경우 왜 작동되는지 알고싶습니다.
@Autowired로 EntityManager를 주입받을때 여러 쓰레드가 동시에 접근하면 동시성 문제가 발생합니다. 하지만 @Transactional 을 추가해준다면 //1 @Repository @RequiredArgsConstructor @Transactional public class AutowiredRepository { private final EntityManager em; } //2 @Repository public class PersistenceContextRepository { @PersistenceContext private EntityManager em; } @PersistenceContext 처럼 Transaction에 의해 쓰레드간 동시성 문제를 해결해준다 고 생각하는데 맞게 생각한건지 궁금합니다. 두가지 방법 다 EntityManager를 호출 할때마다 Proxy를 통해 EntityManager를 생성하여 Thread-Safe를 보장해준다라고 볼수 있는 건가요?? 답변주시면 정말 감사하겠습니다.
안녕하세요 강사님. 스프링 환경에서 작업 진행 중에 JWT를 구현하고자 하는데, 강사님 수업도 마찬가지이며 구글링해봐도 정보들 대부분이 스프링 부트 환경에서 JWT 구현하는 내용들이라 궁금합니다. 스프링 부트가 아닌 스프링 환경에서도 JWT 구현이 가능한가요? 가능하다면 스프링 부트에서 구현하는 방식을 따라도 될까요?
안녕하세요 해당 프로젝트를 이클립스가 아닌 인텔리제이로 만들고 싶어 글을 올리게 되었습니다. SpringMVC12 프로젝트(이게 7강에서 11강까지 다 모여있는 거겠죠...?)의 pom.xml에 사용한 것들을 스프링 이니셜라이저의 gradle(build.gradle)로 하고 싶은데 dependencies에 각각 어떠한 것들이 들어가 있는지 알 수 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. 이러한 오류가 뜨는데, 실행하는데는 문제가 없습니다. 이 오류를 고쳐야 할 것 같은데, 어떻게 고쳐야할까요?
난독증이 있는건지 내용은 그대론데 읽을 때마다 내용이 달라지는 것 같아 질문을 남깁니다... 다른 분들이 작성하고, 호돌맨님께서 남기신 답글들을 보고 나서 제가 이해한 것이 맞는지 확인 부탁드립니다... 1. 자판기 비유에 대한 내용 1.1. request(edit), domain(editor)를 작성하셨는데, 말씀하시는 부분이 (결국 같은 내용이겠지만...) request(edit)에는 edit.title, edit.content(100원, 500원)(동전)뿐만 아니라 추후에 예를 들어 edit.name , edit.gender(1000원, 10000원)(지폐)가 넘어 올 수도 있는 상황이 발생할 수도 있는데, 지폐(name, gender)는 받고 싶지 않은 상황에서 domain(editor)(금액 투입구)를 사용하지 않으면, 지폐가 들어오는 것을 막을 수 없고, 추후에 불필요한 지폐를 걸러내는 작업이 발생하기 때문에 애초에 입구 자체를 동전만 넣을 수 있는 domain(editor) 금액 투입구를 만들게 되면, 들어온 모든 동전은 사용에 필요한 값이기 때문에 불필요하게 걸러내는 작업이 없어진다고 생각하는 것이 맞을까요...? (같은 말인 것 같은데... 예를 더 어렵게 만든 것 같아 죄송합니다...) 호돌맨님이 if를 통해 기존 값을 사용하는 방식 2.1 이 말은 즉, 위 예를 연속해서 사용하자면 [사람 1]이 edit.title(100원)을 넣은 상태에서 [사람 2]가 edit.content(500원)짜리를 넣어도 [사람 2] 때문에 [사람 1]이 넣은 edit.title(100원)이 사라지면 안되기 때문에 사용한다는 말씀이 맞으실까요? (물론 위의 예는 [사람 2]가 edit.title(100원)을 넣게되면 금액이 추가되는 것이 아니라 동전이 변경되야 한다는 오류가 있긴 하지만... 그냥 사용하겠습니다...) 뭔가 작성하면서 또 이해가 된 것 같긴하지만... 틀린 부분이 있다면 지적 부탁드립니다... 또 예를 추가하고 글을 복잡하게 만들어 죄송합니다...
안녕하세요 강의잘듣고 있습니다!. 해당 강의부터 엑셀에 작성해주신대로 05-01브랜치를 참고하여 강의를 진행하고 있습니다. SecurityConfig.java를 보면, ajax LOGIN방식을 DSL로 구현한게 Form방식과 합쳐져 있는데 이 설정하나로 form / ajax로그인 두 방식모두 지원하는건가요?
선생님 강의 정말 감사하게 잘 듣고 있는 학생입니다~ 선생님께서는 코딩 멍충이도 술술 이해 시키는 놀라운 마력을 가지고 계시는 거 같아요 항상 감사하는 마음 가지고 수업에 임하고 있습니다. 많이 바쁘시겠지만 혹시 언제 마프가 오픈되는지 알 수 있을까요? 이번 강의 마무리하고 곧 마프로 선생님 강의 듣고 싶은 학생입니다. 존경합니다~ 박매일 선생님!!