묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일 업로드와 다운로드에서 궁금한 것이 있습니다.
안녕하세요. 파일 업로드와 다운로드 강의 중 문득 궁금한 것이 생겨서 이렇게 질문을 드립니다.강의에서 처럼 메모리에 Item을 저장하는 것이 아니라 실제 RDBMS에 저장을 한다고 가정을 하게되면Item 테이블엔 id와 itemName만 저장하고 파일 경로를 저장할 File 테이블엔 Item의 id와 UploadFile의 uploadFileName과 storeFileName을 저장하는 것일까요? 이렇게 저장한다고 가정하였을 때, DB에서 Item객체를 불러올 땐 Item 테이블에서 id와 itemName을 가져와 set 해주고, File 테이블에서 uploadFileName과 storeFileName을 가져와 UploadFile 객체와 List<UploadFile>을 만들어 Item 객체를 만든다. 로 이해해도 되는 부분일까요?? 뭔가 경우에 따라서 다양한 방법이 있겠지만 지금 제 머리속으론 이런 방식이 떠올라서 이게 맞는건지 궁금해서 여쭈어봅니다. 좋은 강의 항상 감사하게 듣습니다 ㅎ 감사합니다.
-
해결됨실리콘밸리 엔지니어와 함께하는 아마존 웹서비스(Core)편
IAM ROLE에 대해 질문있습니다.
EC2에서 S3에 대한 모든 액세스를 허용하는 ROLE을 만들고 또, 그것을 EC2 인스턴스에 적용했을 때 해당 EC2인스턴스의 CLI에서 S3로 접근할 때만 ROLE이 동작하는 것인가요?예를 들어 EC2에서 S3로 접근하기 위해 SDK모듈을 이용해서 코드(예: node.js)상에서 S3로 접근할 때, ROLE이 적용되어 있지않으면 접근이 불가능한지, 또는 ROLE이 적용되어있다면 별 다른 액세스키 없이도 S3에 접근이 가능한지 궁금합니다.
-
미해결선형대수학개론
1.6 Linear Independence - Set of two vectors 질문
영상에선 14분 즈음 입니다.v1의 coefficient가 nonzero 하므로 nontrivial solution이 존재하게 되어 linearly dependent가 된다는데,v1의 coefficient는 -1이고, c가 만약 0이라면 -v1=0인건데 그럼 v1=0이라는 trivial solution만 존재하므로 independent인거 아닌가요?(제가 뭔가 정의를 요상하게 이해하고 있는 것 같기도 합니다.)
-
해결됨Do it! 알고리즘 코딩테스트 with JAVA
스택문제 백준 1874
강의내용의 코드가 헷갈려서 아래내용대로 수정해보았는데 이렇게 해도 될까요 ? public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt(); // 수열의 개수int A[] = new int[N]; // 수열을 저장할 배열// 데이터 입력for (int i = 0; i < N; i++) {A[i] = sc.nextInt();} Stack<Integer> stack = new Stack<>();StringBuffer bf = new StringBuffer(); // 연산 출력 저장 int num = 1;for (int i = 0; i < N; i++) {int su = A[i];while (su >= num) { // 현재 수가 스택의 수와 같거나 큰 경우stack.push(num++);bf.append("+\n");}if (stack.isEmpty() || stack.peek() != su) {System.out.println("NO");return;}stack.pop();bf.append("-\n");} System.out.println(bf.toString()); // 결과 출력}}
-
미해결자바스크립트 중급 강좌
심볼 관련 질문
안녕하세요.자바스크립트 중급강의 듣다가 질문 드립니다.영상 5:56 부분에서 심볼을 사용하면 user객체에 해당 메소드가 있었는지 고민할 필요가 없다고 말씀해주셨는데요.그 이유가 궁금합니다.다른 개발자가 만들어놓은 프로퍼티를 덮어쓸 위험이 없는 것과는 다른 이유가 또 있을 것 같아서요.답변 부탁드릴게요.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁드립니다!
xgkg0344@naver.com 으로 부탁드립니다!
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
RequestDispatcher 상수 질문
사소한 질문이지만, RequestDispatcher에 정의된 상수들을 그대로 import 해서 사용하지 않고, 굳이 ErrorPageController에 다시 정의해서 사용하는 이유가 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
public void findAll() 부분에서 맨마지막줄에 숫자를 멀넣어도 오류가 안뜨는데 왜그런가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결Next + React Query로 SNS 서비스 만들기
AuthProvider 사용 시 서버 컴포넌트가 궁금합니다.(+ API 관련)
안녕하세요. 항상 강의 잘 보고 있습니다! return ( <html lang="en"> <body className={inter.className}> <MSWComponent /> <AuthSession> {children} </AuthSession> </body> </html> )next-auth 강의 내용 중 최상위 layout.tsx에서 위 코드와 같이 AuthSession 감싸주신 걸 볼 수 있는데 이는 next-auth에서 제공하는 SesisonProvider를 통해 감싸진 자식 컴포넌트들에서 session 데이터를 공유하기 위함으로 이해하였습니다. 그런데 SessionProvider는 useSession 훅을 사용하는 컴포넌트에 대해 session 데이터를 공유하는 것이기에 "use client"가 사용되는데 최상위 layout 파일에 AuthSession으로 그것의 children을 감싸게 되면 그 아래에 포함된 모든 컴포넌트들이 전부 클라이언트 컴포넌트가 되기 때문에 이렇게 되었을 때 계층 아래의 서버컴포넌트들이 제대로 서버 컴포넌트로써 작동할 수 있는지가 궁금합니다. 그래서 useSession을 사용해야 하는 컴포넌트의 상위에서만 해당 provider로 감싸주고 서버 컴포넌트에서 session이 필요한 경우 해당 provider로 감싸지 않아도 session을 가져올 수 있지 않나 궁금증이 들어 질문드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
Initialize와 Render에 관한 오류로 테두리 빨간으로 노출되지 않고 모두 녹색으로 출력됩니다.
지금 실행시 다음과 같이 Initialize와 Render에 관한 오류로 테두리 빨간으로 노출되지 않고 모두 녹색으로 출력됩니다. 확인부탁드립니다. 1>D:\projact\ConsoleApp1\ConsoleApp1\Program.cs(19,19,19,29): error CS1501: 인수 1개를 사용하는 'Initialize' 메서드에 대한 오버로드가 없습니다.1>D:\projact\ConsoleApp1\ConsoleApp1\Program.cs(51,23,51,29): error CS1061: 'Board'에는 'Render'에 대한 정의가 포함되어 있지 않고, 'Board' 형식의 첫 번째 인수를 허용하는 액세스 가능한 확장 메서드 'Render'이(가) 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요.1>"ConsoleApp1.csproj" 프로젝트를 빌드했습니다. - 실패========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========
-
미해결따라하며 배우는 MySQL on Docker
app_test_insert.sh 쉘 스크립트 실행 오류
sh app_test_insert.sh 실습중인데 쉘 스크립트 만든 후 실행하면 실행이 안됩니다. ERROR 9001 (HY000) at line 1: Max connect timeout reached while reaching hostgroup 10 after 10000ms위와 같이 connect 오류가 납니다. 왜 그러는 걸까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
벡터 선언할 때 질문이 있습니다
안녕하세요 큰돌님! http://boj.kr/fedde0e4bf064dc4b05484aa6d98848e 기존에 있던 main 함수에서 선언하는for (int i = 1; i < 4; i++)v.push_back(i);이것을 주석처리하고전역에서vector<int> v{1, 2, 3};이렇게 하는 게 더 간단해보여서 해봤는데 오류가 뜹니다..이런 오류가 뜨는 이유가 궁금합니다원래는 run code 버튼 눌러서 실행했었는데c++ % g++ -std=c++11 -Wall a.cpp -o test.out로 컴파일 하니까 해결됐습니다..제 c++ 버전이 14라서 그런 것 같은데 전역에서 벡터를 vector<int> v{1,2,3}; 이렇게 선언하려면 무조건 컴파일을 c++ % g++ -std=c++11 -Wall a.cpp -o test.out 이렇게 해야할까요..?c++ % g++ -std=c++14 -Wall a.cpp -o test.out 했을때도 실행이 안 됐었습니다참고로 맥북m1입니다!
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
데이터 연동 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!https://www.inflearn.com/questions/1211264이렇게 질문을 드렸었는데요ㅠ 공공데이터포탈에 문의 해보니 데이터 정상적으로 송출된다하여 다시 시도해보니 사진처럼 데이터가 정상적으로 들어오는걸 확인했습니다. 그런데도 불구하고 시뮬레이터에서는 에러가 있습니다만 반복적으로 실행되는데 어디서 문제를 찾아야 할까요,,,,ㅠㅠㅠㅠㅠ에러 내용은 이렇습니다
-
미해결딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)
트랜스포머 실습 파일 실행 시 에러가 발생합니다.
130_Transformer.ipynb를 코랩 환경에서 실행하는데 25번째 코드 셸을 실행하면 에러가 발생합니다.위의 모든 코드 셸을 실행한 뒤에 다음 코드를 실행하면 ValueError: Exception encountered when calling PositionalEmbedding.call().Invalid dtype: <property object at 0x7d6f6aff73d0> Arguments received by PositionalEmbedding.call(): • x=tf.Tensor(shape=(64, 110), dtype=int64) 이런 에러가 발생합니다. 어디가 문제이며 어떻게 해결을 해야 할까요? # 포르투갈어와 영어를 위한 위치 인코딩 임베딩 레이어 생성 embed_pt = PositionalEmbedding(vocab_size=tokenizers.pt.get_vocab_size(), d_model=512) embed_en = PositionalEmbedding(vocab_size=tokenizers.en.get_vocab_size(), d_model=512) # 포르투갈어 입력에 대한 임베딩 적용 pt_emb = embed_pt(pt) # 영어 입력에 대한 임베딩 적용 en_emb = embed_en(en)
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
활용 DP 질문
선생님, 안녕하세요다름이아니라 6강까지 꾸역꾸역 이해했다고 생각했는데 7강에서 막히네요 문제 1에서는 for문으로 변경할때 역순으로 dp를 채워주었는데 왜 문제 2냅색은 앞방향으로 for문을 도는건가요?저는 6강에서 이해하기를 문제1, 문제2 모두 recursion을 통해 결국 맨 마지막 까지 도달한뒤 base condition을 통해 계산하면서 => 뒤에서 부터 계산하면서 dp를 채워준다고 생각했습니다그리고 7강에서 recursion 대신에 for문을 통해 dp를 채워준다고 이해하고 강의를 보았는데요 문제1에 대해서는 for문을 역순으로 도는데 왜 문제2는 역순으로 돌지 않는지 잘 이해가 안갑니다. 둘의 차이가 뭔가요? 차이가 있다면 왜 6강에서는 둘다 똑같은 틀로 문제를 푼건가요? 정말 이해하고싶은데 어렵네요 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
createMember 테스트코드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]회원 웹 기능 - 등록 강의영상을 보다가 질문이 생겼습니다. 강의에서 get 주소에서 html 페이지로 멤버 이름을 받고 post로 이름을 넘기는 로직같은 경우, 실무에서는 어떻게 테스트 코드를 작성하나요? html까지 포함해서 동작하는 걸 확인할 수 있는 방법이 있나요?
-
해결됨Next + React Query로 SNS 서비스 만들기
로그인시 오류페이지로 이동됩니다
해당 영상에서 질문들을 참고해봐서 그나마 재영님 질문과 비슷해서 버전 문제일 수 있을 것 같아 버전도 낮춰보고 했음에도 해결이 되지 않아 새로 질문 올립니다.. [[[ 문제점 ]]]아이디와 패스워드를 치고 로그인을 눌렀을 때 오류페이지로 이동됩니다.정상적일때 경로 => [ localhost:3000/home ]현재 이동되는 경로 => [ localhost:3000/api/auth/error ][ 해당 사진 ][ 적용했었던 버전 내역 ]next-auth@5.0.0-beta.3next-auth@5.0.0-beta.4next-auth@5.0.0-beta.11@auth/core@0.19@auth/core@0.27 [ 디렉토리 구조 ] [ 코드 ]envNEXT_PUBLIC_BASE_URL=http://localhost:9090 AUTH_SECRET=testtestauth.tsimport NextAuth from "next-auth" import CredentialsProvider from "next-auth/providers/credentials"; export const { handlers: { GET, POST }, auth, signIn, } = NextAuth({ pages: { signIn: '/i/flow/login', newUser: '/i/flow/signup', }, providers: [ CredentialsProvider({ async authorize(credentials) { const authResponse = await fetch(`${process.env.NEXT_PUBLIC_BASE_URL}}/api/login`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ id: credentials.username, password: credentials.password, }), }) if (!authResponse.ok) { return null } const user = await authResponse.json() return user; }, }), ] });mocks/handlers.tsimport {http, HttpResponse, StrictResponse} from 'msw'; export const handlers = [ http.post('/api/login', () => { console.log('로그인'); return HttpResponse.json({ userId: 1, nickname: '프림입니다만', id: 'pream', image: '/5Udwvqim.jpg' }, { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/' } }); }), http.post('/api/logout', () => { console.log('로그아웃'); return new HttpResponse(null, { headers: { 'Set-Cookie': 'connect.sid=;HttpOnly;Path=/;Max-Age=0' } }); }), http.post('/api/signup', async ({ request }) => { console.log('회원가입'); // return HttpResponse.text(JSON.stringify('user_exists'), { // status: 403, // }) return HttpResponse.text(JSON.stringify('ok'), { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/;Max-Age=0' } }) }), ];@/app/(beforeLogin)/_components/LoginModal.tsx"use client"; import { ChangeEventHandler, FormEventHandler, useState } from "react" import style from "@/app/(beforeLogin)/_components/login.module.css"; import { signIn } from "next-auth/react"; import { useRouter } from "next/navigation"; export default function LoginModal() { const [id, setId] = useState(''); const [password, setPassword] = useState(''); const [message, setMessage] = useState(''); const router = useRouter(); const onSubmit: FormEventHandler<HTMLFormElement> = async (e) => { e.preventDefault(); setMessage(''); window.alert('aaa'); try { await signIn("credentials", { username: id, password, redirect: false, }); window.alert('bbb'); router.replace('/home'); } catch (err) { console.error(err); setMessage('아이디와 비밀번호가 일치하지 않습니다.'); } }; const onClickClose = () => { router.back(); }; const onChangeId: ChangeEventHandler<HTMLInputElement> = (e) => { setId(e.target.value); }; const onChangePassword: ChangeEventHandler<HTMLInputElement> = (e) => { setPassword(e.target.value); }; return ( <div className={style.modalBackground}> <div className={style.modal}> <div className={style.modalHeader}> <button className={style.closeButton} onClick={onClickClose}> <svg width={24} viewBox="0 0 24 24" aria-hidden="true" className="r-18jsvk2 r-4qtqp9 r-yyyyoo r-z80fyv r-dnmrzs r-bnwqim r-1plcrui r-lrvibr r-19wmn03"> <g> <path d="M10.59 12L4.54 5.96l1.42-1.42L12 10.59l6.04-6.05 1.42 1.42L13.41 12l6.05 6.04-1.42 1.42L12 13.41l-6.04 6.05-1.42-1.42L10.59 12z"></path> </g> </svg> </button> <div>로그인하세요.</div> </div> <form onSubmit={onSubmit}> <div className={style.modalBody}> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="id">아이디</label> <input id="id" className={style.input} value={id} onChange={onChangeId} type="text" placeholder=""/> </div> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="password">비밀번호</label> <input id="password" className={style.input} value={password} onChange={onChangePassword} type="password" placeholder=""/> </div> </div> <div className={style.message}>{message}</div> <div className={style.modalFooter}> <button className={style.actionButton} disabled={!id && !password}>로그인하기</button> </div> </form> </div> </div> ) }여기서 onSumbit 함수 부분에서 alert를 중간에 넣었는데window.alert('aaa')은 떴고,확인 버튼 누르고, 다음 window.alert('bbb')가 뜨자마자 바로 에러 페이지로 이동됩니다. ( 확인 버튼 조차 못누르고 바로 이동됩니다 ) 그리고 auth.ts 에서는 재영님 질문처럼 터미널 로그들이 안찍힙니다... 9090 서버는 잘 띄워놨었구요.회원가입 로그는 잘 나오는데 로그인 로그는 안뜹니다.
-
미해결스프링 핵심 원리 - 고급편
aop에서 DB 접근?
안녕하세요 영한님 강의를 토대로 개인프로젝트를 진행하다가 생긴 의문점입니다스프링 시큐리티의 @Preauthorize를 공부하다가 생긴 의문인데, 만일 여러 컨트롤러의 메서드에서 단순히 User의 ROLE_XXX 뿐만이 아니라, 현재 유저에게 이 리소스를 사용할 자격이 있는지? 를 검사하는 공통된 로직이 필요하다면 (리소스 단순 CRUD 뿐만이 아니라 더 세부적인 로직들이 있다면), 여기에 aop를 적용하는 의의가 있을까요?만일 의의가 있다면, 권한이 있는지를 알려면 DB에 다녀와야 하는데 AOP에서 데이터소스에 접근하는별로 좋은 방법이 아니라고 들었습니다.간단한 예시긴 하지만, 대충 이런 로직을 구현하려고 합니다@CheckOwner어노테이션이 붙어있고, postId를 인자로 받은 경우에선 post.Member.id가 현재 세션의 memberId와 같은 경우에만 이후 로직이 진행되게 하려는 의도입니다.@Around("@annotation(CheckOwner) && args(postId,..)") public Object checkPostOwner(ProceedingJoinPoint joinPoint, Long postId) throws Throwable { log.info("test"); //DefaultTransactionDefinition def = new DefaultTransactionDefinition(); //TransactionStatus status = tr.getTransaction(def) MockPrincipal principal = (MockPrincipal)SecurityContextHolder.getContext() .getAuthentication() .getPrincipal(); Post post = postRepository.findById(postId).orElseThrow(NoPostException::new); if (!post.getMember().getId().equals(principal.getId())) { throw new AccessDeniedException("권한이 없다고"); } Object result = joinPoint.proceed(); log.info("test"); //tr.commit(status); return result; }
-
해결됨Flutter로 SNS 앱 만들기
두번째 명령어 입력 시 오류
이렇게 뜬 다음 플랫폼 선택하는 창이 떴는데 뭐가 문제인건가요?해당 문구 출력하고 플랫폼 선택하는 화면은 나오긴 합니다만찝찝해서 질문 남깁니다.어떻게 해결해야 하나요?(참고로 저도 전에 질문 남기신 분처럼 flutterfire 오류가 나왔더라고요.그래서 답변 남겨주신대로 경로 넣어서 다시 입력했더니저렇게 나왔습니다.)
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요. 코테 플랫폼 질문드립니다.
코드 제출하고 Submitting에서 넘어가지 않으면 시간초과인가요?