학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 강의를 잘 듣고있는 학생입니다. 질문의 내용은, 회원가입 후 제출을 누른 뒤, 다시 원래대로 redirect:/까지는 return 되지만, H2 database에 저장이 되지 않는 문제가 있어서 질문드립니다. 제가 생각한 문제의 원인은 3가지입니다. memberrepository.join의 문제인가? (애초부터 저장이 되지 않음.) h2 database의 연결 문제인가? 스프링 코드의 문제인가? 이렇게 3가지의 문제로 생각해볼 수 있는데요, 다른분들의 오류도 찾아보고 나름대로 열심히 찾아보았지만, 모두 검토해본 결과, 이 3가지의 문제+다른분들과 겹치는 문제가 아니여서 질문드립니다. 제가 이 3가지의 문제에서 해결책을 찾을 수 없던 이유는 다음과 같습니다. 그렇다면(이것이 맞다면), MemberServiceTest의 저장도 가능하지가 않을 뿐더러, 이것의 데이터도 저장이 되지 않아야 한다. 허나 MemberServiceTest를 돌려본 결과, 테스트는 통과하고 .join도 다 가능하다 라는 것을 알 수 있었습니다. 코드 ::MemberServiceTest @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Autowired EntityManager em; @Test //@Rollback(value = false) --> 눈으로 확인해 보고 싶을때 public void 회원가입() throws Exception { //given Member member = new Member(); member.setName("kim"); //when Long saveId = memberService.join(member); //then em.flush(); assertEquals(member,memberRepository.findOne(saveId)); } h2.database의 연결 문제인가? 이것에 대해 제가 아니라고 생각한 이유는 다음과 같습니다. 그 이후의 강의인 상품 등록을 했을때, 신기하게 상품 등록은 정상적으로 되었습니다. h2 database에도 등록이 되었고 상품 목록도 나타났습니다. 이렇게 등록을 했을때. 이렇게 데이터베이스에도 있는것을 확인할 수 있었고, 상품 목록도 제대로 있는것을 확인할 수 있습니다. 따라서 2번도 맞지 않는다고 생각했습니다. 3.스프링 코드의 문제인가? :: MemberController 코드 package jpabook.jpashop.controller; import jakarta.validation.Valid; import jpabook.jpashop.domain.Address; import jpabook.jpashop.domain.Member; import jpabook.jpashop.service.MemberService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @Controller @RequiredArgsConstructor public class MemberController { private final MemberService memberService; @GetMapping(value = "/members/new") public String createForm(Model model) { model.addAttribute("memberForm", new MemberForm()); return "members/createMemberForm"; } @PostMapping(value = "/members/new") public String create(@Valid MemberForm form, BindingResult result) { if (result.hasErrors()) { return "members/createMemberForm"; } Address address = new Address(form.getCity(), form.getStreet(), form.getZipcode()); Member member = new Member(); member.setName(form.getName()); member.setAddress(address); memberService.join(member); return "redirect:/"; } @GetMapping(value = "/members") public String list(Model model){ List<Member> members = memberService.findMembers(); model.addAttribute("members",members); return "members/memberList"; } } ::creatememberForm.html코드 <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head th:replace="fragments/header :: header" /> <style> .fieldError { border-color: #bd2130; } </style> <body> <div class="container"> <div th:replace="fragments/bodyHeader :: bodyHeader"/> <form role="form" action="/members/new" th:object="${memberForm}" method="post"> <div class="form-group"> <label th:for="name">이름</label> <input type="text" th:field="*{name}" class="form-control" placeholder="이름을 입력하세요" th:class="${#fields.hasErrors('name')}? 'form-control fieldError' : 'form-control'"> <p th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Incorrect date</p> </div> <div class="form-group"> <label th:for="city">도시</label> <input type="text" th:field="*{city}" class="form-control" placeholder="도시를 입력하세요"> </div> <div class="form-group"> <label th:for="street">거리</label> <input type="text" th:field="*{street}" class="form-control" placeholder="거리를 입력하세요"> </div> <div class="form-group"> <label th:for="zipcode">우편번호</label> <input type="text" th:field="*{zipcode}" class="form-control" placeholder="우편번호를 입력하세요"> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> <br/> <div th:replace="fragments/footer :: footer" /> </div> <!-- /container --> </body> </html> 여러번 비교해 본 결과 강의자료와 강의에 있는 코드와 다름이 없다는 것을 알게 되었습니다. 오류 내용이 나타나면 해결하기가 더 쉬운데, 오류내용이 나오지 않아서 해결하기 더 어려운 것 같습니다. 사실 이후에 강의도 듣고 있다가 이 문제가 해결이 되지 않아서 계속 막혀서 고생하고 있는 상황입니다... 도와주시면 감사하겠습니다..
질문이 몇가지 더 있어 질문남깁니다. 1.톰켓을 실행했을때 톰켓의 스레드풀에 있는 스레드에 의해 war의 클래스파일 로직들이 실행된다고하셨는데 만약 자바 로직에서 forkjoinpool같은 스레드풀을 또 생성하면 톰켓의 스레드풀과 별도로 스레드풀이 하나 더 만들어지는건가요? 수업외 질문이라면 죄송합니다 ㅠㅠ
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
강사님 안녕하세요\ 다름이 아니라 flutter_secure_storage를 추가하고 빌드파일에서 minSdkVersion 부분에 18을 추가하고 재시작을 하니 오류가 생겼습니다. 그래서 minSdkVersion에 18을 지우고 재시작을 하니 정상동작하였습니다. 18을 작성하니 오류가 뜨는 이유가 무엇인가요? Launching lib\main.dart on SM S918N in debug mode... FAILURE: Build failed with an exception. * Where: Build file 'C:\Users\DongHan\AndroidStudioProjects\project\delivery_front\android\app\build.gradle' line: 41 * What went wrong: A problem occurred evaluating project ':app'. > Could not find method minSdkVersion() for arguments [18] on extension 'flutter' of type FlutterExtension. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 2s Running Gradle task 'assembleDebug'... 3.7s Error: Gradle task assembleDebug failed with exit code 1 minSdkVersion을 18로 설정하고 재실행 했을떄의 오류 로그입니다 plugins { id "com.android.application" id "kotlin-android" // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } def localProperties = new Properties() def localPropertiesFile = rootProject.file("local.properties") if (localPropertiesFile.exists()) { localPropertiesFile.withReader("UTF-8") { reader -> localProperties.load(reader) } } def flutterVersionCode = localProperties.getProperty("flutter.versionCode") if (flutterVersionCode == null) { flutterVersionCode = "1" } def flutterVersionName = localProperties.getProperty("flutter.versionName") if (flutterVersionName == null) { flutterVersionName = "1.0" } android { namespace = "com.example.delivery" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "com.example.delivery" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutterVersionCode.toInteger() versionName = flutterVersionName } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig = signingConfigs.debug } } } flutter { source = "../.." } 위 파일은 android/app/build.gradle 파일입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 명령 프롬포트에서 java를 치면 나오는데, gradlew.bat치면 'gradlew.bat'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고 나와요 ㅠㅠ 자바는 22버전입니다.
안녕하세요, 강사님 int 형 사이즈 계산이 잘못된 것 같습니다. int 형은 4byte 임으로 4씩 차이가 발생하지 않나요?? "" int 배열 메모리 주소: 0x7ffd3f1f9e28 0x7ffd3f1f9e2c 0x7ffd3f1f9e30 '이게 뭔소리인가..' 싶지만 그냥 숫자마다 오른쪽 끝만 보시면, 연속된다는 것을 알 수 있습니다. 다만, int는 2씩 차이가 나고 char는 1씩 차이가 납니다. """"
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에서 findById 테스트코드 작성 안 하는 이유가 있나요 ?
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
flutter 하시는 이유가 있을까요 ?? 코드팩토리 다른 nest js 강의를 듣고있는데요 만약 typescript 를 사용하고있다면 react native 를 사용하는것이 더 이득이지 않을까?? 생각했습니다. react native 가 성능이 안좋다곤하지만 큰 기업에서 이미 사용하고있어서 그럼.. 성능이 flutter 만큼은 나오지 않더라도 사용하는 사람에 따라 다른거 아닌가 생각이 들더라구요. 그럼 배우지마 !! 할수 있지만 ㅎㅎ 배우는 입장에서 궁금해서 여쭤봅니다.
C언어 기출문제의 변형 강좌의 13분 53초이고 문제 4번입니다. 여기서 예로 숫자를 65를 넣은 상황이고 while문을 통해 반복하고 있었고, 2번째 루프로 들어가서 rd는 6이 나오는 것 까지는 이해가 갑니다. 근데 왜 rv를 구하는 과정에서 rd를 더하면 55가 되는지 알고 싶습니다. rd는 6이므로 더하고 나면 56이 되어야 하는거 아닌가 싶습니다!
강의 재생 할때마다 '재생 중에 오류가 발생했다"는 문구가 떠요. 현재 군인이고 사지방을 이용중인데, 사지방에는 hamonikr os인 컴퓨터랑 window os인 컴퓨터가 있어서, 두가지 운영체제 모두 들어가서 실행해봤는데도 다 똑같이 재생 오류가 뜹니다.(구글 크롬 브라우저에서도 실행해봤습니다.) 한 5강까지는 잘 되다가 그 다음부터 오류 문구가 떠서 강의를 더 들을수가 없는 상태입니다. 해결 방법을 아신다면 알려주시고, 만약 계속 했는데도 안된다면 강의 결제 취소 부탁드려도 될까요?(결제일 7일이 지난 상태입니다)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 혹시 스택 메모리에 쌓이는 스택프레임들은 main 메서드안에서 실행되는 메서드들만 이루어져있나요 아니면 다른 클래스의 메서드를 사용하면 그 인스턴스 메서드들도 스택 메모리에 쌓이나요?
안녕하세요 강의 너무 잘 듣고 있습니다. 다름이 아니라 저 문제에서 classA의 생성자도 호출하던데 해당 생성자는 괄호안에 파라미터가 없기 때문에 불러 올 수 없지 않나요..?ㅠㅠ A b = new C(100) 에서 100이라는 파라미터 값이 들어갔는데 왜 A()를 불러오는지 모르겠습니다.