월 66,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
스터디 테스트코드에 대해 여쭤보고 싶습니다.
안녕하세요 강사님. 전체적으로 한 번 복습한 후 테스트코드를 작성하던 도중에 궁금한 점이 생겨서 질문을 남기게 되었습니다. 제가 스스로 작성해보고 막히는 부분이 있으면 선생님코드를 참고하는 식으로 작성하고 있는데 아래와 같은 테스트에서 저는 마지막에 findByPath("wrong path"); 라고 작성했는데 강사님의 코드에서는 findByPath("test-path")로 되어있더라구요 혹시 제가 어떤 부분을 잘못생각해서 다른건지 여쭤보고 싶습니다. 요즘 유튜브 자바스터디도 잘 보고있습니다! @Test@WithAccount("keesun")@DisplayName("스터디 개설 - 실패")void createStudy_fail() throws Exception { mockMvc.perform(post("/new-study") .param("path", "wrong path") .param("title", "study title") .param("shortDescription", "short description of a study") .param("fullDescription", "full description of a study") .with(csrf())) .andExpect(status().isOk()) .andExpect(view().name("study/form")) .andExpect(model().hasErrors()) .andExpect(model().attributeExists("studyForm")) .andExpect(model().attributeExists("account")); Study study = studyRepository.findByPath("test-path"); assertNull(study);}
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
checkEmailToken의 매개변수 token, email, model
안녕하세요 너무 쉬운 질문이라 부끄럽지만 여쭤봅니다. accountController의 checkEmailToken에서 매개변수 값으로 token, email, model이 들어오는데, 저는 아무리 해도 token, model은 null 값이 들어오거든요... 어느부분에서 오류가 생긴걸까요? 어느부분을 고쳐야 할까요? 사실 강의 영상을 보아도 콘솔에 나타난 토큰 + 이메일 값을 주소창에 복붙해주는 것만 보이는데 매개변수가 어디로부터 받아졌는지 잘 모르겠어요 질문 설명이 잘 되었는지 모르겠습니다만...ㅠㅠ
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
Git link
혹시 해당 강의 studyolle의 기선님 git 주소좀 알 수 있을까요? 아무리 찾아봐도 안보여서요 ㅠㅠ 감사합니다.
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
Study Event Test 하는 법 문의드립니다.
안녕하세요. 백기선 강사님 강의 참고하여 직접 코드 짜면서 공부하는 도 중 막히는 부분이 생겨 질문 남기게 되었습니다. Study관련한 Event에 대해서 테스트를 해보려고 하는데요. @Transactional @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.MOCK) @AutoConfigureMockMvc public class StudyNotificationTest { @Autowired MockMvc mockMvc; @Autowired ApplicationEventPublisher applicationEventPulbisher; @Autowired NotificationService notificationService; @Autowired NotificationRepository notificationRepository; @Autowired AccountService accountService; @Autowired AccountRepository accountRepository; @Autowired StudyService studyService; @Autowired StudyRepository studyRepository; @Autowired ZoneService zoneService; @Autowired TagService tagService; @Autowired TagRepository tagRepository; @Autowired ThreadPoolTaskExecutor executor; @BeforeEach public void boforeEach() { SignUpForm signUpForm = SignUpForm.builder() .email("test@test.com") .nickname("test") .password("12341234") .build(); Account account = accountService.signUp(signUpForm); account.setStudyCreatedByEmail(true); account.setStudyCreatedByWeb(true); account.setStudyUpdatedByEmail(true); account.setStudyUpdatedByWeb(true); TagForm tagForm = TagForm.builder().title("test").build(); Zone zone = zoneService.findAll().get(0); Tag tag = tagService.save(tagForm); accountService.addTag(account, tag); accountService.addZone(account, zone); StudyForm studyForm = StudyForm.builder() .fullDescription("test") .path("test") .shortDescription("test") .title("test").build(); Study study = studyService.save(studyForm, account); studyService.addTag(study, tag); studyService.addZone(study, zone); } @AfterEach public void afterEach() { accountRepository.deleteAll(); studyRepository.deleteAll(); tagRepository.deleteAll(); notificationRepository.deleteAll(); } @DisplayName("Study Created Event") @Test public void studyCreateEventTest() throws Exception { Study study = studyService.getOnlyStudyByPath("test"); Account account = accountService.findByNickname("test"); applicationEventPulbisher.publishEvent(new StudyCreatedEvent(study)); executor.getThreadPoolExecutor().awaitTermination(1, TimeUnit.SECONDS); List<Notification> notifications = notificationService.findByNotificationType(NotificationType.STUDY_CREATED); assertTrue(notifications.stream().map(Notification::getAccount).collect(Collectors.toList()).contains(account)); } } 위와 같이 코드를 작성했는데, EventListener에서 Study를 조회하는 부분에서 ID에 해당하는 Study가 없다는 오류와 함께 테스트가 진행되지 않았습니다.. (executor 부분은 async 테스트 하는 방법 찾아보던 도중 발견한 코드입니다.) 해당 이벤트를 테스트할 수 있는 방법 문의드립니다. 감사합니다.
- 해결됨스프링과 JPA 기반 웹 애플리케이션 개발
질문있습니다.(자체해결..)
삭제된 글입니다
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
smtp 설정 파트 오류에 대해 여쭤보고 싶습니다.
안녕하세요 강사님. 우선 개인적으로 강의 정말 재밌게 잘 듣고있습니다. 감사합니다. smtp설정 강의 부분에서 설정을 마치고 새로 회원가입을 할 때 아래와 같은 에러가 생겨서 여쭤보고 싶습니다. javamail.send(mailMessage);에서 mailMessage구문오류 때문이라고 생각해서 다시 강의를 보고 코드를 확인했는데도 그대로네요 혹시 아래와 같은 에러가 어떤 실수를 했을 때 발생할 수 있는지 알려주시면 감사하겠습니다!
- 해결됨스프링과 JPA 기반 웹 애플리케이션 개발
맥에서 안되시는 분들 참고하세요
테스트를 돌리면 'Can not connect to Ryuk at localhost' 에러와 함께 제대로 실행되지 않아 평소처럼 제가 뭘 잘못한 줄 알고 한참을 고생했는데, 검색해보니 DOCKER FOR MAC 2.4.0 버전과 testcontainer가 충돌(?)이 있는 것 같습니다. 전 1.15.0-rc2 버전을 통해 일단 해결했습니다. 관련 이슈는 https://github.com/testcontainers/testcontainers-java/issues/3166 참고하세요~
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
Maven 대신 gradle 쓰시는 분들 위해서 남깁니다...
https://plugins.gradle.org/plugin/org.siouan.frontend 사용하시면 될듯합니다. ////build.gradle 설정 def preinstalledNodeDistributionDirectory = file("${projectDir}/src/main/resources/static/node") apply plugin: 'org.siouan.frontend-jdk11' frontend { nodeDistributionProvided = false nodeInstallDirectory = file("${projectDir}/src/main/resources/static/node") packageJsonDirectory = file("${projectDir}/src/main/resources/static") nodeVersion = '12.16.3' assembleScript = 'run build' cleanScript = 'run clean' checkScript = 'run check' }
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
git commit 문서
화면에서 보이는 google document는 어디에서 볼 수 있나요?
- 해결됨스프링과 JPA 기반 웹 애플리케이션 개발
검색 후 페이지네이션
선생님, 그 자료수가 적을땐 눈치 못챘는데, 한 80개 넣고 6개씩 띄우니까 페이지가 10개 딱 뜨고 / 11페이지~ 이렇게 10페이지씩 끊어 주는것이 아니라, 13페이지가 한번에 떠버리는데, pagable 설정으로 더 해줘야 되는건지, impl 에서 설정해줘야 되는 것이 있는건지, 아니면 다른 게 있는건지 궁금합니다.
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
혹시 터미널에서 mvnw가 안되는 분들을 위해 남깁니다..
mvnw test를 실행했을때 에러가 발생하는 경우가 있는데 https://stackoverflow.com/questions/54614905/error-failed-to-execute-goal-org-apache-maven-pluginsmaven-compiler-plugin3-8 자바 컴파일러 버전이 안맞는다는둥, Maven 버전이 안맞는다는둥 '버전'이 안맞는 에러가 발생하시면 인텔리제이의 터미널에서 mvnw -version을 통해 자바 jdk 버전을 확인해보시길 바랍니다.. pom.xml의 자바 버전인 11과 같은 jdk버전인지 꼭 확인해보세요...
- 해결됨스프링과 JPA 기반 웹 애플리케이션 개발
커스텀 로그인 설정 질문있습니다.
로그인 창을 띠로 2개로 구현하고 싶은데 SecurityConfig 의 loginPage 설정을 2개로 설정할 수는 없나요? .formLogin() .loginPage("/login-user").permitAll() .loginPage("/login-provider").permitAll() // 에러
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
updateProfile에 영속성컨텍스트
안녕하세요. updateProfile 메소드 내에 account 객체를 persistence로 만드는 방법과 관련해서 아래 소스와 같이 작성했는데요. 제가 생각한 것은 Id로 조회를 한 객체는 Persistence 상태이고, 값을 수정하면 update가 될것이라고 생각해서 작성했는데 update가 되지 않아 원인을 여쭤보고자 질문남깁니다. 답변 부탁드립니다. 감사합니다. public void updateProfile(Account account, Profile profile) { Optional<Account> byId = accountRepository.findById(account.getId()); Account reAccount = byId.get(); reAccount.setBio(profile.getBio()); reAccount.setUrl(profile.getUrl()); reAccount.setOccupation(profile.getOccupation()); reAccount.setLocation(profile.getLocation()); }
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
질문은 아니지만...
modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); 위처럼 하면 완전히 같은 경우만 매핑을 해준다네요.. CamelCase를 피하기위해 Underscore전략을 쓰는거 보다 괜찮아보여서 글 한번 등록해봅니다 -.-
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
UserAccount 객체 작성 이유에 대해 질문드립니다.
안녕하세요. 강사님. 먼저 좋은 강의 감사합니다. 들으면서 Spring Boot, JPA 활용에 큰 도움이 되고 있습니다. 해당 강의 중 질문드릴 게 있어서요. UserAccount 객체를 작성하고, 로그인 시 해당 객체를 principal로 사용한 이유가 핸들러에 parameter로 account 객체를 받기 위해서 사용한 것으로 이해했는데요. 혹시 이해한 내용이 맞는지 궁금합니다. 만약 기존 @CurrentUser 및 UserAccount 를 사용하지 않고 핸들러에 파라미터로 @AuthenticationPrincipal로 받으면 nickname으로 설정한 String 타입만 넘어오게 되는 건가요?? 답변 부탁드립니다. 감사합니다.
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
이메일 인증후 로그인을 안하면 경고창이 안사라지는 이유
위에 삽입한 이미지는 디버그를 통해서 값을 확인해보기 위한 상황인데요 로그에 찍혀있는 url을 통해 이메일 토큰을 인증한 이후 index.html로 이동해도 이메일을 인증하라는 경고문구가 사라지지 않아서 왜 않없어 지는지 기선님과 다른점을 찾아보다가 로그인을 하지않았기 때문이라는 것을 알았는데 로그인이 무슨상관인지 잘 이해가 가지않아서요 ㅜ 이미지에는 주석처리 되어있지만 accountService.login(account); 부분을 주석을 지우면 잘 동작하더라구요 이미지의 1번 부분을 주석처리하면 2번 모습 처럼emailVerified 값이 true 인데도 index.html에서 인증하라는 경고가 나오게 됩니다! 1. test 라는 계정으로 회원가입 2. localhost/check-email-token?token=26738f98-4cff-48f8-9a8f-92432e6a329f&email=asdf@asdf.asdf 라는 주소로 이동해 이메일인증을 완료 3. 리다이렉트 되면서 index.html로 이동 4. 이메일 인증이 정상적으로 되었고 디버그상에도 emailVerified 값이 true로 확인됨 5. 리다이렉트된 index.html에서는 "가입을 완료 하려면 계정 인증 이메일을 확인 하세요" 라는 문구가 계속 노출됨 6. account != null && !account?.emailVerified 라는 조건이 만족될 때 경고문구가 보이는데, 왜 그렇게 되는지 모르겠습니다. 로그인은 form에서 post로 요청되었을 때 이미 처리된것이 아닌가요??? 페이지를 이동할 때 마다 로그인상태가 풀리는건가요?? 결론: accountService.login(account); 코드를 주석처리하면 이메일 인증이 완료되었음에도 index.html에서 인증하라는 경고가 나오게 된다. 가입도 되었고 인증도 되었고 emailVerified도 true인데 로그인이 무슨상관인지 모르겠습니다! 설명이 너무 엉성해서 의미를 파악하기 어려우시면 제가 스크린샷으로 다시 설명드려 보겠습니다. ㅜㅜ
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
안녕하세요 ajax-csrf-header 코드에 관해 질문 드립니다.
강의를 다듣고 혼자 프로젝트를 새로 만들며 공부중에 ajax-csrf-header를 가져다가 쓰는데 Exception evaluating SpringEL expression: "_csrf.token" 에러로 인해 프로젝트가 실행이 안되는데 어떻게 해야할까요... ㅠㅠ
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
로고가 뜨지 않아 질문드리겠습니다.
안녕하세요 백기선 선생님 Spring Security 때문에 403 forbidden으로 img 파일이 웹브라우저에 뜨지 않는 내용까지는 이해를 하였습니다. 그 뒤에 SecurityConfig 파일에서 configure를 재정의하는부분까지 따라하였는데요 제 크롬 웹브라우저에서는 계속해서 403 forbidden이 발생합니다. resources 디렉토리 하위에 static 디렉토리 안에 img 파일을 넣어두었습니다. 제가 강좌내용을 따라 작성한 SecurityConfig 코드입니다. 어느부분에서 문제가 생겨서 이미지 파일이 뜨지 않을까요...??
- 해결됨스프링과 JPA 기반 웹 애플리케이션 개발
패키지 구조 관련 질문입니다.
안녕하세요. 어제 라이브 재밌었습니다.신세경.. 미국엔 잘 돌아가셨는지 궁금하네요..ㅎㅎ 다름이 아니고, 강의를 보고 개인 프로젝트를 진행하려고 하는데 패키지 구조를 도메인형으로 해야할지, 계층형으로 해야 할지에서 부터 고민이 되어 질문드립니다. 기선님 강의에서는 도메인으로 나뉘었고, 펫클리닉 프로젝트도 찾아보니 도메인으로 나눠놓았더라구요 제가 본 여타 다른 강의들에서는 컨트롤러/서비스/레포지토리/exception/ 등등으로 나눠놓은 걸 보아 어떤 것이 정답이다 라는 것은 없는것 같기도하고.. 해서 블로그 글을 참고해서 보니https://cheese10yun.github.io/spring-guide-directory/도메인이 더 낫다는 글을 보았습니다. 기선님 강의들에서는 더 나은 패키지구조 선택에 관해서 언급하셨던 기억이 없어서 질문드려요! 너무 좋은 강의 만들어주셔서 감사합니다. 많은 도움이 되고 있어요 :)
- 미해결스프링과 JPA 기반 웹 애플리케이션 개발
Edit Configuration에서 질문이 있습니다.
안녕하세요 백기선님 강의를 들으면서 따라하는 도중 오류가 발생하여 질문드립니다. maven을 compile 한 후에 Edit Configuration을 클릭하면 이렇게 SpringBoot가 나오지 않고 unknown으로 나오게 됩니다. 혹시 인텔리제이 커뮤니티 버전에선 지원을 하지 않는 기능인가요?? 아래는 강좌에서 나오는 화면입니다.