묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
BindingResult Whitelabel Error Page질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 수량이나 가격에서 qqq 로 했을경우 따로 에러를 BindingResult 에 검증 오류를 안넣어도 알아서 만들어 준다고 되어있는데 저는 저렇게 했을경우 Whitelabel Error Page 가 생겨서 질문드립니다 @PostMapping("/add") public String addItemV1(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes , Model model) { if(!StringUtils.hasText(item.getItemName())){ bindingResult.addError(new FieldError("item","itemName","상품 이름은 필수입니다")); } if(item.getPrice()==null || item.getPrice()<1000 | item.getPrice()>1000000){ bindingResult.addError(new FieldError("item","price","가격은 1000~1,000,000 까지 허용합니다")); } if(item.getQuantity()==null || item.getQuantity()>=9999){ bindingResult.addError(new FieldError("item","quantity","수량운 9999 이상이어야합니다")); } if(item.getQuantity() != null || item.getPrice()!=null){ int resultPrice=item.getPrice()*item.getQuantity(); if(resultPrice<10000){ bindingResult.addError(new ObjectError("item","가격 * 수량의 합은 10000원 이상이어야합니다 .현재값 = "+resultPrice)); } } if(bindingResult.hasErrors()){ log.info("errors={}",bindingResult); System.out.println("zzzzzzzzzzzzzzzzzzzzzzzzzzzz"); return "validation/v2/addForm"; } Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", true); return "redirect:/validation/v2/items/{itemId}"; }
-
미해결
[공모전]대한민국AI국제영화제
[대한민국AI국제영화제] ● 개최개요 - 개최일시 : 2024. 10. 25(금) - 개최장소 : 경기도 고양시 일산서구 킨텍스 제2전시관 6홀-주최/주관: 경기도/경기콘텐츠진흥원 - 주요내용 : 개막식, AI미디어 컨퍼런스, 상영회 ● 목적‘AI가 선사하는 새로운 기회’를 주제로 생성형 AI를 활용한 영상 콘텐츠 창작을 지원하고 AI 시대에 콘텐츠 창작의 길과 상생 발전 가능성 모색 ●모집 부문1. Narrative Contents : 생성형 AI로 제작한 내러티브가 있는 영화/영상2. Documentary Contents: 생성형 AI를 활용하여 제작한 다큐멘터리 영상3. Arts&Culture Contents: 생성형 AI로 제작한 Art, Music, Dance 영상4. Free Format Contents: 생성형 AI로 제작한 장르 불문 영상 ●시상대상 (1) 20,000천원세션 별 1등 (4) 각 7,000천원세션 별 2등 (4) 각 3,000천원세션 별 3등 (16) 각 1,000천원특별상 (1) 5,000천원 ●출품 기간 2024년 8월 1일 ~ 2024년 9월 6일 24:00시 까지 (KST기준) ●출품 방법 - ‘제출서식1 - 출품신청서’를 작성하여 이메일로 제출 : aiff@gcon.or.kr(또는 gaif@gcon.or.kr) - 또는 주관기관이 별도로 공지하는 접수 플랫폼을 통한 제출 ●제출 서류 출품자는 출품신청서를 전자우편(aiff@gcon.or.kr)를 통해 제출해야 하며, 서류의 누락 또는 오기재 등에 따른 불이익은 출품자에게 있다. - 출품신청서(개인정보 수집이용 동의서, 참가자 서약서, 저작권&라이센스 확보 확인서 포함) ●문의처 - 대한민국AI국제영화제 사무국 / 1666-4598 / 2024aiff.cs@gmail.com - (재)경기콘텐츠진흥원 / 032-623-8073(8028) / jam@gcon.or.kr / jodongjun@gcon.or.kr ●공식 홈페이지(대한민국AI국제영화제 (gcon.or.kr))에서 자세한 내용 확인 가능
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
SRAM 코드 Delay 관련
SRAM 코드의 경우 posedge에서 memory에 값을 넣는 동시에 ad, din 값을 하나씩 커지게 동작 시키면 기능 합성에는 문제가 되지 않지만, Delay가 적용되면 값이 흐트러 질 수 있는거 아닌가요?(예를 들면 negedge에 값을 넣어준다던가 해야하는게 아닌가요?)
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
AuthService를 주입 받지 못하는 이유를 모르겠어요
코팩님 강의를 따라서 코드를 작성했는데, 강의 영상을 봐도 BasicTokenGuard에서 AuthService를 주입 못 하는 이유를 모르겠어요.. AuthModule에가 가서 imports이랑 provider에 BasicTokenGuard를 넣어도 해결되지 않네여.. 가드의 위치는 강의랑 똑같이 auth/guard 폴더 안에 위치하고 있어요.. 원인이 대체 뭘까요..?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
6. synchronized 문제 1 log출력
public static void main(String[] args) throws InterruptedException { Counter counter = new Counter(); Runnable task = new Runnable() { @Override public void run() { for (int i = 0; i < 10000; i++) { counter.increment(); log(counter.getCount()); // 로그 출력 추가!!!!!!!!!!!!!!! } } }; Thread thread1 = new Thread(task); Thread thread2 = new Thread(task); thread1.start(); thread2.start(); thread1.join(); thread2.join(); log(counter.getCount()); } static class Counter { private int count; public void increment() { count++; } public int getCount() { return count; } } 문제를 푸는 도중 count의 값을 확인해보고 싶어서 MyLogger.log(counter.getCount());를 호출했더니 문제 없이 20000이 계속 출력됩니다.synchronized를 사용하지 않아서 여전히 동시성 문제는 발생할텐데 어떻게 20000이라는 값이 나오게 되는지 궁금합니다!!
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
로그인 로딩 중 버튼 비활성화 관련 질문입니다.
riverpod 상태 관리 시watch 메서드를 통해 view를 변경하는데userMeProvider를 watch하지 않고로그인 버튼의 onPressed 내에서 read로 상태를 읽어도비활성화가 잘 작동합니다.제가 이해한 바로는 userMeProvider가 생성될 때 생성자의 getMe 메서드를 통해서 상태는 null이 되어있을텐데어떻게 로그인 버튼을 누른 후 상태가 UserModelLoading으로 바뀌었을 때 view가 이를 감지하고 버튼을 disable시키는지 이해가 되지 않아 질문드립니다. 현재 로그인 스크린은 ConsumerStateFul 위젯입니다.ConsumerWidget으로 변경해도 잘 작동합니다. ElevatedButton( onPressed: ref.read(userMeProvider) is UserModelLoading ? null : () => ref .read(userMeProvider.notifier) .login( username: username, password: password, ) .then( (value) { if (value is! UserModelError) return; ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(value.message), duration: Duration(seconds: 1), ), ); }, ), child: const Text('로그인'), ),
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
즉시 로딩 상황에서 select문 호출에 대해 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Member 클래스의 team이 즉시 로딩으로 설정된 상황에서 아래 코드와 같이 실행 했을 때, team 엔티티의 select문이 한번 밖에 호출 되지 않습니다.저는 member 엔티티를 다 순회하면서 select문을 호출 할 것으로 예상했는데, 이 경우는 어짜피 각 member들의 team이 모두 같기 때문에 JPA에서 알아서 해당 team만 호출 하는 것인가요? 이부분이 궁금하여 질문 드립니다.Team team = new Team(); team.setName("Team 1"); em.persist(team); Team team2 = new Team(); team2.setName("Team 2"); em.persist(team2); Member member = new Member(); member.setUsername("user1"); member.setTeam(team); em.persist(member); Member member2 = new Member(); member2.setUsername("user2"); member2.setTeam(team); em.persist(member2); em.flush(); em.clear(); List<Member> members = em.createQuery("select m from Member m", Member.class).getResultList(); tx.commit();
-
해결됨Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)
DBeaver는 왜쓰는 건가요?
안녕하세요..!! 제가 백엔드나 db관련해서 지식이 없어서 잘 이해가 안되네요 ㅠdb관리를 supabase 사이트로 들어가서 확인하면 되는데, 왜 클라이언트 툴인 DBeaver를 쓰는건가요?supabase 서버에 접근하지 못하는 클라이언트들이 테스트를 할때 쓰는것일까요?답변 부탁드립니다..
-
해결됨실전! GitHub Actions으로 CI/CD 시작하기
시나리오2에서 여러 릴리즈 브랜치를 한 번에 운영환경에 배포
안녕하세요.이 그림에서 추가되는 기능의 횟수만큼 운영환경에 배포를 해야하는데 혹시 여러개의 기능을 모아 한 번에 배포하려면 어떤 방식을 사용하면 좋을까요?브랜치를 하나 더 만들어 릴리즈 브랜치들을 전부 머지한 후 직접 운영환경에 배포하는 방법 이외에 다른 좋은 방법이 있을까요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
강의자료에서 수정되어야 될 부분이 있네요.
강의자료 DelegatingPasswordEncoder 빈 정의에서알고리즘 지정생성에서@Bean public PasswordEncoder passwordEncoder() { String encodingId = "pbkdf2"; Map encoders = new HashMap<>(); encoders.put(encodingId, Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_8()); DelegatingPasswordEncoder delegatingPasswordEncoder = new DelegatingPasswordEncoder(encodingId, encoders); return delegatingPasswordEncoder;} 에서 String encodingId = "pbkdf2"; 가 String encodingId = "pbkdf2@SpringSecurity_v5_8""; 로 수정되어야 되거나 아님 encoder 할때 버전을 5_5로 바꾸어야 하네요.한참 헤메이다 저처럼 헤메이지 말라구 올려봅니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-i 포켓문 문제 시간초과
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이와 같이 코드를 작성하였는데 시간 초과가 나는데 왜 그런 것인가요?일부러 시간복잡도가 m*n이 되지 않게 하려고 맵 2개를 만들어서, o(n)이 최고 시간복잡도가 되게끔 설계하였습니다.#include <bits/stdc++.h> using namespace std; int n; // 포켓몬의 수 int m; // 문제 수 map<int, string> poketmonsByNumber; map<string,int> poketmonsByName; vector<string>searchId; string name; string question; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cin>> n >> m; for(int i=0; i<n; i++){ cin>>name; poketmonsByNumber[i+1]=name; poketmonsByName[name]=i+1; } for(int i=0; i<m; i++){ cin>>question; if (isdigit(question[0])) { int id = stoi(question); searchId.push_back(poketmonsByNumber[id]); } else{ string id=to_string(poketmonsByName[question]); searchId.push_back(id); } }; for(auto id : searchId) { cout<<id<<endl; } return 0; }
-
해결됨실무에 바로 적용하는 스토리북과 UI 테스트
svg를 public 말고 src>assets안에 넣는다면 import를 어떻게해야하나요?
현재는 public에서 아이콘을 가져오는데 assets에 가져올때는 어떻게 하나요? import type { Meta, StoryObj } from "@storybook/react"; import { IconButton } from "../../components/IconButton"; const meta = { title: "Buttons/IconButton", component: IconButton, parameters: { layout: "centered", }, tags: ["autodocs"], argTypes: { alt: { control: "text", description: "아이콘의 대체 텍스트" }, iconPath: { control: "text", description: "아이콘의 경로", defaultValue: "", }, onClick: { action: "clicked", description: "아이콘 클릭 시 호출되는 함수" }, }, } satisfies Meta<typeof IconButton>; export default meta; type Story = StoryObj<typeof meta>; export const Default: Story = { args: { alt: "아이콘", iconPath: "ic-delete-dark.svg", onClick: () => {}, }, };
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
22장 Vitis C언어 코딩 시 Register map 질문드립니다.
안녕하세요 . 22장에서 BRAM을 하나 더 추가하여서 Core 수를 늘려보자는 취지로 하나 더 늘려보았습니다.따라서 AXI 코드를 이렇게 설정해주었고 (16bit로 진행했기 때문에 BRAM 하나당 2Core = 4Core 입니다.)Vitis C언어 상에서도 위와 같이 설정해주었습니다. 하지만, Vitis serial terminal 상에서는 이처럼 result_2 / result_3 에 관련된 값이 출력되지 않았습니다.그래서 제가 추측하는 바로는 4'ha 를 0xa로 define하는 방법이 잘못되었나.. 생각이 들면서도 검색해봐도 16진수에 10은 0xa로 c언어상에서 표현한다고 하여 이렇게 궁금하여 질문드립니다. 항상 좋은 강의해주셔서 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
서비스 네이밍
서비스는 join, 메모리에서는 save 이런 식으로 표현을 한다면, 서비스 즉 비즈니스 관점은 다른 말로 “유저입장“ 이라고 생각하면 될까요?
-
해결됨김영한의 실전 자바 - 중급 2편
강의노트 질문있습니다.
들었던 강의를 정리하는 중인데, 혹시 블로그에 강의 노트의 일부를 올려도 되나요? 컬렉션 프레임워크에 대해 작성 중인데 강의 노트 안에 collection, list, queue, set의 의존관계가 정리된 깔끔한 그림을 인용하고 싶어서요.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의 자료 부탁드립니다.
강의 자료 부탁드립니다! huo2100@naver.com
-
미해결
안녕하세요
ㄹㄹㄹ
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
active 관련 질문
폰트어썸으로 라디오버튼과 체크박스를 커스텀 하는 강의에서, checked 가상클래스는 input[type=checkbox] 에 적용하였으나 (체크박스를 누르는 것이므로 active 또한 input[type=checkbox]에 적용하면 자연스럽다고 생각하여서)active는 label에 적용한 이유를 모르겠습니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
r_min_cnt사용 이유
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.)==================[1. 질문 챕터] : [Verilog HDL/FPGA 외전1 - 시계만들기] Chapter 2. 시,분,초 만들기 - Part1 7분 57초쯤[2. 질문 내용] : r_min_cnt로 초를 저장한 다음 end else if 문 안에서 그 초가 59초가 될 때 0으로 초기화하고 o_min값을 1증가시킨다고 이해했는데 end else if (o_sec==60-1)처럼 이미 사용하고있는 변수를 사용하면 되는거 아닌가요?[3. 시도했던 내용, 그렇게 생각하는 이유] : o_sec는 wire타입이여서 출력으로 확인만되서 reg 탑입의 저장되는 변수하나를 만든건가 싶기는 한데 그렇다 하더라도 그냥 처음부터 o_sec를 reg타입으로 만들어주면 되는거 아니였나 싶습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
플레이어 포지션 변경 하기 위해 코드 추가
플레이어 포지션이 발이기 때문에 카메라가 계속 발을 찍고 있다고 해서 , 플레이어 포지션 값을 좀 올려보려고 float _playerhight = 1.0f; // 캐릭터 원하는 높이Vector3 playerPosition = player.transform.position + Vector3.up * playerhight;이 부분을 추가했는데 작동은 되는데 별로 차이가 없는것 같더라구요.. 제대로 한게 맞을까요? void LateUpdate() { float _playerhight = 1.0f; // 캐릭터 원하는 높이 Vector3 playerPosition = _player.transform.position + Vector3.up * _playerhight; if (_mode == Define.CameraMode.QuarterView) { RaycastHit hit; if(Physics.Raycast(_player.transform.position, _delta, out hit, _delta.magnitude, LayerMask.GetMask("Wall"))) { // dist : 거리 float dist = (hit.point - _player.transform.position).magnitude * 1.0f; transform.position = _player.transform.position + _delta.normalized * dist; } else { transform.position = _player.transform.position + _delta; transform.LookAt(_player.transform); } } }