묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
WebSecurity관해여 질문드립니다
강의자료 pdf 19page 설명하실 때 WebSecurity는 HttpSecurity에서 생성한 SecurityFilterChain을 SecurityBuilder에 저장한다고 하셨는데, SecurityBuilder는 인터페이스인데 어떻게 저장하는지 이해가 안됩니다. 원래 변수나 데이터들은 객체에 저장하는게 아닌가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ModelAttribute 관련 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@PostMapping("/add") public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) { //검증 오류 결과를 보관 Map<String, String> errors = new HashMap<>(); //검증 로직 if (!StringUtils.hasText(item.getItemName())) { errors.put("itemName", "상품 이름은 필수입니다."); } if (item.getPrice() == null || item.getPrice() < 1000 || item.getPrice() > 1000000) { errors.put("price", "가격은 1,000 ~ 1,000,000 까지 허용합니다."); } if (item.getQuantity() == null || item.getQuantity() >= 9999) { errors.put("quantity", "수량은 최대 9,999 까지 허용합니다."); } //특정 필드가 아닌 복합 룰 검증 if (item.getPrice() != null && item.getQuantity() != null) { int resultPrice = item.getPrice() * item.getQuantity(); if (resultPrice < 10000) { errors.put("globalError", "가격 * 수량의 합은 10,000원 이상이어야 합니다. 현재 값 = " + resultPrice); } } //검증에 실패하면 다시 입력 폼으로 if (!errors.isEmpty()) { model.addAttribute("errors", errors); return "validation/v1/addForm"; } //성공 로직 Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", true); return "redirect:/validation/v1/items/{itemId}"; }14분 강의내용 질문입니다. 만약 오류가 있다면 if (!errors.isEmpty()) { model.addAttribute("errors", errors); return "validation/v1/addForm"; }이 코드를 실행해서 errors모델을 담겠지만,이전에 입력해둔 Item을 모델에 담지 않았는데도 값이 유지될 수 있는 이유가파라미터에 @ModelAttribute Item item이 있기 때문인가요?만약 그렇다면 왜 그렇게 되는지 궁금합니다.파라미터에 있는 @ModelAttribute Item item 코드 자체가 미리 모델에 담기는 것인가요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
자바에서 스레드풀을 생성한다면 어떻게되나요?
질문이 몇가지 더 있어 질문남깁니다.1.톰켓을 실행했을때 톰켓의 스레드풀에 있는 스레드에 의해war의 클래스파일 로직들이 실행된다고하셨는데 만약 자바 로직에서 forkjoinpool같은 스레드풀을 또 생성하면 톰켓의 스레드풀과 별도로 스레드풀이 하나 더 만들어지는건가요? 수업외 질문이라면 죄송합니다 ㅠㅠ
-
해결됨오브젝트 - 기초편
영화가 정책을 1개만 갖는데 비해 정책이 다수의 컨디션을 갖는 디자인에 대해
아 이건 처음부터 수업 내용에 대한 질문이나 의문이라기보다 그 예제를 보다 현실적으로 확장했을 때 이런 부분을 어떻게 생각하시는지 정도의 질문입니다. 수업의 용이성을 위해 구현된 코드에 의문이나 불만은 없습니다 ^^정책이 여러 개의 컨디션을 소유하고 그 중 하나만 걸리면 할인 금액을 계산하게 되어있습니다.이게 약간 논리적으로 혼란한데 할인이 일어나는 이유는 컨디션에 걸렸기 때문으로 결국 진짜 할인 이유는 소유한 컨디션 중 하나입니다.결국 걸린 컨디션에 따라 할인 금액이 달라질 것 같이 생겼는데, 정책은 고정된 방법으로 할인가를 계산하고 있습니다.이것이 잘못되었다고 생각하지는 않는데, 이런 논리의 흐름이라면 역시 영화가 다수의 정책을 소유해야 하지 않나 싶어서요.
-
해결됨오브젝트 - 기초편
DiscountPolicy 구현 및 설계에 대해 궁금한 점이 있습니다.
상영은 영화에게 요금계산을 맡기고영화는 다시 정책에게 요금 계산을 맡기죠정책은 다시 컨디션에게 할인 여부를 판정하게 하고컨디션은 다시 상영에게 협조를 구합니다.대표적으로 4번의 상황에서 나오는 코드가 시퀀스판정입니다.헌데 이 코드의 구조를 보면 말이 컨디션이 스크린과 협조한거지 상영의 속성을 그대로 까서 얻은 것과 진배 없습니다.더 나아가 컨디션은 상영의 속성 변화나 애당초 주어진 상영의 지식 정도에 큰 영향을 받아 구현됩니다. 상영의 지식이 적으면 구현할 수 있는 컨디션도 좁은 범위의 가능성을 갖게 되며 상영이 추가적인 정보가 확장된다면 컨디션도 더 많은 구조로 확장할 수 있게 됩니다. 즉 이 둘은 완전히는 아니지만 변화율이 상당히 긴밀하다 할 수 있습니다.현실적으로는 마케팅팀의 입김에 의해 컨디션을 추가하려다보니 상영에 정보가 충분치 않아 추가하게 될 가능성이 높아 보입니다.또한 이런면에서 상영은 역할이나 책임을 수행한다기보다 컨디션 입장에서는 그냥 데이터클래스로 보이는 수준이라고 생각됩니다. 이미 컨디션의 이름이 상영의 속성을 평가하겠다는 뉘앙스를 강하게 풍기고 있습니다.제 생각에는 이러한 이유로 컨디션과 상영이 충분히 디커플링 되어야 한다고 생각합니다.그래야 할인조건을 만드는 변화율과 상영의 변화율을 분리할 수 있기 때문입니다.이 디커플링으로 가장 적절한 장소는 정책의 calculateDiscount메소드의 for루프라 생각됩니다.interface ConditionInfo{ int getSequence() ZonedDateTime getStartTime() int getMinAge() int getRunningTimeMinute() } ... for(DiscountCondition each:conditions){ ConditionInfo info = new ScreenInfo(Screen); if(each.isSatisfiedBy(info)){ ...게다가 이 설계는 일견 의존성 흐름이 단방향처럼 보이지만 결국 정책이 상영을 알고 상영은 영화를 알게 되면서 다시 영화가 정책을 알게 되는 순환 의존성의 구조로 귀결됩니다. 물론 영화가 정책에 의존하는 부분은 단지 소유밖에 없으니 그나마 나은 편이지만, 정책이 컨디션에게 상영을 던져주면서 부탁하면 컨디션이 상영에 정보가 충분치 않은 경우 상영이 다시 영화에 추가 정보를 만들게 하는 순환구조가 일어납니다.사실 정책이 getDiscountAmount하는 과정도 말이 좋아 상영에게 받은거지 그건 결국 완전히 영화의 가격에 의존하는 로직입니다. 즉 사실상 정책과 영화의 단방향 의존성은 순환의존성으로 깨져버린 상태라 디자인상 그냥 정책 생성시 영화를 넣어주는게 더 유지보수가 편한 거 아니냐? 라는 생각도 들었습니다.전체 도메인에서 정책 내의 컨디션이 핵심비지니스 로직이라고 판단되는 바, 이 부분을 더 추상화할 필요는 충분히 있다 생각됩니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
XCode
위 사진처럼 에러 발생합니다.문서처럼 sudo xcode-select --installsudo xcode-select -s /Applications/Xcode.app/Contents/Developersudo xcodebuild -runFirstLaunch실행을 했으며 영상을따라서 XCode 로 가서 시뮬레이터를 다운받았습니다.
-
미해결[코드팩토리] [중급] 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.orgBUILD FAILED in 2sRunning Gradle task 'assembleDebug'... 3.7sError: Gradle task assembleDebug failed with exit code 1minSdkVersion을 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 파일입니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - l 시간초과
안녕하세요 선생님 제가 처음에 visited 대신해서 vector를 함수 parameter로 넘기는 방식으로 코드를 짜보았는데 시간초과가 나왔습니다. 그 이유가 무엇인지 알 수 있을까요?해당 vector를 visited로 바꾸자마자 바로 통과 했습니다.http://boj.kr/04db1b073dee466cad92e220313f886f
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
도메인 구입하고 호스팅 설정 하였지만
안녕하세요도메인 구입하고 호스팅 설정도 똑같이 하였는데 아래와 같이 나오는데 어떻게 해야할까요? ㅠ
-
해결됨삼각형의 실전! CMake 초급
CMake 의 단점들
모던 CMake 로 넘어오면서 장점들을 소개해주셧는데, 단점들은 무엇이 있나요?
-
미해결모던 안드로이드 - Jetpack Compose 입문
깃허브에 있는 MemoryTodoRepository 는 룸을 사용하는게 아닌 메모리에 저장, 수정, 삭제 하는건가요?
Room처럼 내부저장소에 저장하는 것이 맞다면,Room을 사용 하지 않는 방법인데 작동되는 건 아예 똑같은 건가요?아니면 저장되는 곳이 다르다거나 저장방식은 다른데 같은 역할로써 쓰일 수 있는건가요?
-
미해결실습으로 배우는 핵심 네트워크 기술
Trunk의 이해 1, 2: 스위치가 2개를 이용하여 구성된 환경에 대하여
선생님, 안녕하세요.1. 이전 강의의 토폴로지와 달리 <Trunk의 이해>에서는 스위치 2개를 사용하고 있는데, 이렇게 스위치 2개를 이용해서 네트워크를 구성해야 하는 상황은 언제 필요할까요? 예시의 10.1.1.11, 13과 10.1.1.12, 14가 물리적으로 떨어져 있을 때 필요한 걸까요?2. 두 스위치는 물리적으로 각각 어디에 어떻게 연결되어 있나요? 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
localhost:8080질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.다 된거 같은데 사이트에 연결할수 없음이 나오네요
-
해결됨200억건의 데이터를 MySQL로 마이그레이션 할 때 고려했던 개념과 튜닝 방법
[Skip Locked For Session] 12:14초 내용 관련 질문
안녕하세요. Skip Locked For Session 강의를 보다가 궁금증이 생겨서 질문을 하게 됐습니다. Skip Locked For Session 12:14초의 내용을 보면 왼쪽 터미널에서 SELECT * FROM testLock WHERE name = "ax" order by seq limit 3 for update skip locked쿼리를 통해서 1개의 row를 받아오는 장면이 나오는데요.오른쪽 MySQL Workbench에서 트랜잭션을 실행하고 SELECT * FROM testLock WHERE name = "ax" order by seq limit 3 for update를 통해 Lock을 잡고 있는 상황인데 어떻게 왼쪽 터미널(다른 세션)에서 name이 ax인 row를 가져올 수 있는지 궁금합니다. skip locked 설정이 들어갔으니 lock이 걸린 데이터 (name이 ax인 row)는 못 가져와야 하는거 아닌가요 ?? skip locked를 제외했을 때는 lock 걸린 데이터를 가져와야 하니 timeout이 나는 상황은 이해를 했습니다.
-
해결됨[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
시험시 HTML 작성과 포토샾 작업 중 어느 것을 먼저합니까?
로고, 슬라이드, 갤러리, 배너, 바로가기 이미지 작업 HTML 작성 후에 해야 합니까? 시험지 보고 먼저 제작 해 두어야 합니까?HTML 작성 하다가 중간 중간 제작해야 합니까?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]명령 프롬포트에서 java를 치면 나오는데, gradlew.bat치면 'gradlew.bat'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고 나와요 ㅠㅠ자바는 22버전입니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
Knowledge graph
Llm 에서 knowledge graph를 db로 쓴다는 이야기를들었는데, vector db의 자리에 graph db를 교체해넣는개념인가요. Vector db와 knowledge graph의 장단점은 무엇일까요. 평시에 너무궁금했던내용이라 질문드립니다
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
정해진 질문
질문있습니다. 정해진 주제외의 질문에는 답을하지 않도록하는 방법도 있을까요? 예를들어 유아용 채팅봇을 만드는데 정해진 주제 외에는 답을하지 못하게 하고 싶습니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
정해진주제만 답하는봇
질문있습니다. Rag와 반대로 정해진주제외의 질문은 답을하지 않도록하는 방법도 있을까요? 예를들어 유아용 채팅봇을 만드는데 정해진 주제 외에는 답을하지 못하게 하고 싶습니다.
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
3. 동물앨범 만들기-2-3 질문입니다.
해당 강의에서 컴포넌트를 만들고 상태관리를 할때 모든 코드에 this가 왜 붙는건가요??저렇게 만든것도 그냥 객체인거 같은데 let state ={} 로안 하고 let도 없고 변수도 없는데 this로 state를 참조되는것도 궁금합니다.모든 코드에 this가 붙는 이유일반함수에 this한거니 그냥 window 객체에 state 변수가 생긴건지 궁금합니다.2가 아니면 그냥 state라는 걸 자바스크립트가 제공해서 참조해서 사용하는것인지this.state = {};