묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
제 코드에서 잘못된 부분을 알고 싶습니다!
안녕하세요 선생님,http://boj.kr/eabdc120ede54df9bf4da138381baa63 2870 번 수학숙제 문제를 풀어봤습니다.입력받은 문자열에서 알파벳은 모두 '*' 로 바꾸고, 변경된 문자열을 토대로 재귀 함수를 이용하여 정수 부분을 추출하려고 하였으나, 어째서인지 문자열의 첫 번째 정수만 출력되고, 두번째 정수는 출력되지 않습니다. 예를들어, "lo3za4" 라는 입력값이 들어가면, 출력으로 첫 번째 정수인 3만 출력되고, 4는 출력되지 않습니다. 어느 부분에서 어떤 실수가 있는지 알려주시면 감사하겠습니다. 좋은 강의 늘 감사드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jdbc properties에 유저와 패스워드가 없어서 그런지 에러가 뜹니다
[질문 내용]이렇게 뜨고있고, 유저랑 패스워드가 틀렸다는 에러가 뜹니다.ip 주소때문이라 생각이 들어서 localhost로 변경 후 톰캣을 재실행 했음에도 여전히 유저와 비밀번호가 틀렸다는 에러가 나옵니다. properties에 유저와 패스워드를따로 설정해줘야할까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-C 질문
안녕하세요 큰돌님 조금 다른 로직으로 풀었는데 TC랑 반례들 다 적용해보아도다 통과되는데 제출하면 틀렸다고 해서 제가 어느부분을 놓친건지 질문드립니다. 전역변수저는 연결정보를 다음과 같이 map과 set을 활용하였습니다.const int INF = 987654321; int n{}; int arPopular[15]{}; // 각 구의 인원수 저장 용도 map<int, set<int>> graph{}; // Key : 구. Value : 해당 구랑 연결된 구들 int minDiff = INF; // 나눠진 두 구의 최소 인원수 차이구현 함수 프로토타입// Gu - FindNode 가 서로 연결되어 있는지 여부 bool IsConnect(int Gu, int FindNode); // 하나의 구역이 끊김 없이 연결될 수 있는지 bool IsAreaConnected(const vector<int>& Area); // 인구수 차이 구해오기 int GetDifPop(const vector<int>& Area1, const vector<int>& Area2); 일단 저의 로직 순서는 다음과 같습니다.비트마스킹으로 모든 경우의 수를 탐색한다. 각 경우의 수마다 비트가 0이면 vector1에다가, 1이면 vector2에다가 넣어준다. 여기까지 되었으면 일단 두 그룹으로 나뉘어진다. 각 그룹에 대해서 Union Find 알고리즘을 적용해서 서로 끊기지 않고 연결될 수 있는지 확인한다. 만약 두 그룹 모두 끊기지 않고 연결될 수 있다면 우리가 원하는 2개의 구역으로 나눈것이다. 이하 최소 찾는 로직부터는 동일. 코드 링크는 여기있습니다!http://boj.kr/bbe484bd863f42fbba08a1e48b55dad2
-
미해결스프링 시큐리티 OAuth2
Resource Owner Password 권한 부여 방식 문의
안녕하세요. Resource Owner Password 권한 부여 방식에 대해 문의 드립니다.AppConfig에 사용자 이름과 패스워드를 map 저장하게 되는데요.사용자가 수많은 사용자의 이름과 패스워드를 was vm 메모리에 들고 있는 건가요?was가 이중화 또는 클라우드 일때 매번 다른 was를 붙으면 그때마다 권한을 다시 부여 받는 것인지요?감사합니다.
-
해결됨개발자를 위한 쉬운 도커
도커파일 피드백..
이런 질문을 드려도 괜찮을지 모르겠습니다.. (혹시 좀 아니라고 생각하신다면 답변을 안 남겨주셔도 괜찮습니다!)다름이 아니라, 제가 다른 프로젝트에서 진행했던 Spring을 docker로 실행시키기 위해서 혼자 해보고 있었는데요Spring은 Spring Boot 3.1.5와 gradle, java17 로 이루어져 있습니다(높은 버전의 gradle 이미지를 사용하다보니 강의에서의 Dockerfile과 많이 달라졌습니다.)FROM gradle:8.2.1-jdk17 AS builder WORKDIR /app COPY . /app RUN gradle wrapper --gradle-version 8.2.1 RUN ./gradlew build FROM openjdk:17-jdk-alpine COPY --from=builder /app/build/libs/*.jar /app/app.jar ENTRYPOINT ["java"] CMD ["-jar","/app/app.jar"]이렇게 작성해서docker build -t [이미지명] . --platform linux/x86_64 해당 명령어를 사용해서 이미지를 생성하고 후에 실행까지 성공했습니다. 다만, 이 Dockerfile은 cache를 잘 활용하지 못한다는 단점이 있습니다.하지만, 제 주변에 docker를 좀 해 본 친구들은 빌드 스테이지에서도 openjdk:17-alpine을 사용해서 빌드를 진행하고, cache를 적극적으로 활용하지 않아서 물어보기가 애매했습니다.. ㅜㅜ 그래서 제가 여쭤보고 싶은 부분은1. 강의가 비교적 최근 강의임에도 gradle 이미지 버전이 7.6.12을 사용하시면서 강의를 진행했던 것으로 기억하고 있습니다. 그렇다면, gradle의 버전은 크게 상관이 없는걸까요?2. 제가 이 글에 적은 Dockerfile에 대한 피드백을 조심스럽게.. 부탁드립니다..
-
미해결
파이널 컷 프로를 트라이얼 버젼으로 학습중
학생이나 교직원은 아니지만 영상 편집툴인 파이널 컷 프로를 저렴하게 구입할 수 있나요?교육 할인 프로그램에서 판매하고 있는 5종 세트도 관심이 있는데,(배우다 보니 음향이나 영상 조정 프로그램들이 다 연결이 되어 있더군요..^^)학생이나 교직원이 아니어서 언감생심(마음은 있지만, 감히 생각을 할 수도 없슴) 이지만 ㅠㅠ그럼에도 불구하고 싸게 구입할 수 있는 방법이 있을까요? 추신: 어떤 분이 구매자의 메일 아이디나 비번을 통한 거래를 언급하던데, 이 또한 가능한가요??(세상에 떠 도는 이야기는 많은데, 그것에 대한 팩트 체크를 해주는 곳은 너무도 적군요 ㅠㅠ)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-H 질문 있습니다!
선생님 안녕하세요 !제가 푼 문제 코드는 다음과 같습니다.http://boj.kr/3475d11fa8a2499bba282e226bdc5e92제가 풀었을 떄는 시간초과가 났었습니다.여기서 여쭤볼 것이 있습니다. Q1. 제가 작성한 코드에서 시간 복잡도를 계산할 떄 최악의 수를 생각하고 계산을 합니다. N이 100,000이고 K는 1일 떄 제가 작성한 코드는 대략 3N의 시간복잡도가 나오는 것으로 계산하였습니다. 또한 선생님의 풀이를 저는 2N의 시간복잡도로 생각을 합니다. 그러면 만일 실전에서 제가 작성한 3N이 시간 초과가 뜬다면 2N으로 줄일 방안을 생각하는 것이 맞을까요?!?
-
미해결
인텔리제이 단축키
문장 중간에서 문장 끝으로 옮기는 단축키를 강의에서 알려주셨는데, 기억이 안 나 다시 아무리 찾아봐도 어디 있는지 찾을 수가 없네요 ㅜㅜ문장 끝으로 옮겨서 엔터 바로 치고 다음 문장으로 넘어갈 수 있게 하는 경우가 많았습니다.exApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class);여기서 ApplicationContext 자동완성하고 나서 현재 위치가 ac에 있다고 한다면이 단축키를 누르면 ;뒤로 이동하고그 다음 엔터 쳐서 다음 문장 바로 칠 수 있게 했었습니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
VIVADO Linux 프로젝트 생성 질문
안녕하세요.FPGA에 관심이 가지게 되어서 VIVADO 강의가 있어서 공부 욕심이 생겨서 수강을 하였습니다.현재 강의 중에서는 Linux에서 Project 를 생성 하는 방법이 따로 언급이 없으며 Vivado를 설치하여 chapter를 열 수 있지만, 개인적으로 폴더를 생성 후 프로젝트를 따라가면서 배워보고 싶은데 방법을 알 수 있을까 하여 문의 드립니다.참고할 사이트 있으면 기재해주시면 감사합니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
시간복잡도 관련 질문입니다.
위 코드에서 for문이 n번 만큼 반복되고 그 안에 있는 while문이 도는 횟수의 총 합이 n번이라고 하셨는데 그렇다면 위 코드의 시간복잡도는 [for문 시간복잡도: o(n)] * [while문의 시간 복잡도 : {o(n-1) + o(n-3) + ... o(1)} ]= o(상수 * n) 이렇게 이해하면 되는 걸까요?
-
미해결
복습기간
안녕하세요. 회사에서 새로운 교육 사이트로 전환하여 새로운 기분으로 공부하는 직장인입니다. 다름이 아니라 복습 기간에 대하여 문의 드립니다. 보통 전에는 강의 수료 후 1년 동안 재 복습을할 수 있었는데요. 하이러닝에서는 왜 ?? 없을까요? 여러모로 검토하여 수강한 과목에 대해서는 1년 복습기간을 주시면 좋을 것 같습니다.기존의 이런 혜택을 누리다가 사라지니 역체감이 심각합니다. 감사합니다. 새해 복 많이 받으세요.~~
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
공통 레이아웃 사용시 js <script> 사용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요.레이아웃 구성시 base.html-> 공통파일개별 페이지 -> <head>에서 title, script, link 넘겨서 페이지별로 추가 구성이런식으로 사용하고 있는 중 인데 한가지 궁금한 점이 있습니다. <head> </head> 태그 안에 있는 <title> <link> <script> 태그들만 들어가는게 아니라 전체 페이지에 있는 <script> 태그가 다 넘어가는 건가요? 혹시 이 방식을 사용하면서 개별 페이지에서 <script></script>를 추가해서 사용하는 방식은 없을까요..? 강의 내용에선 layoutMain.html 파일에서 <head></head> 안이 아닌 다른 영역에 <script></script> 를 따로 써서 이 페이지에서만 쓸 수 있는 스크립트를 작성할 수 있는지 궁금합니다...!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시계열 데이터 수업 자료 어디에?
시계열 데이터를 다루는 수업을 현재 보고 있는데, 관련 자료가 어디에 있나요?제가 일일히 쳐서 하기가 어려워서 데이터 프레임을 받고싶은데,,, 어디에 있는지 못찾겠어요.
-
해결됨스프링 핵심 원리 - 기본편
OCP 원칙관련
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]만약에 새로운 구현체를 만들어서 기능을 확장하게 되면 인터페이스에 새로운 내용을 추가해야 할수도 있을거 같은데 이러면 OCP 원칙에 위반된게 아닌건가요?예를 들면 구현체에Member del(Member member){ // 코드 생략 }이런식으로 멤버를 삭제하는 기능을 만들어서 확장한다고 하면 인터페이스에 Member del(Member member);라는 코드를 추가해야지 않나요??
-
해결됨김영한의 실전 자바 - 기본편
접근 제어자 문제 풀이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]문제 풀이를 다음 날 새로 만들어서 풀어보니까 조금 다른 부분이 생겼는데1. 본인2. 강의각 배열의 총 가격 값만 더하는 거라면 1번처럼 하는 게 좋아 보이는데 Item item = items[i];를 추가하신 이유와 어떤 차이점이 있는지 궁금해요
-
미해결
[김영한님 스프링 백엔드 강의 스터디 인원 추가 모집]
[김영한님 스프링 백엔드 강의 스터디 인원 추가 모집]스터디 주제 :김영한 선생님의 백엔드 자바 스프링 스터디 인원을 1명 추가 모집하려고 합니다. 예상 스터디 일정(횟수) :매주 수요일, 일요일 스터디가 진행됩니다.수요일장소 : 창동역일시 : 19:30일요일장소 : 건대입구역(예정)일시 : 19:30 예상 커리큘럼 간략히 :김영한 선생님의 강의 커리큘럼을 전부 따라 완강할 계획입니다.모든 강의를 완강하기 전에, 도중에 협업툴 활용과 토이 프로젝트를 진행할 수도 있습니다.(미정) 예상 모집인원1명 스터디 소개와 개설 이유 :진행 방식 :강의 듣고 각자 공부모임 전까지 개인별로 배운 내용 정리해서 노션/블로그 업로드모임 때는 발표자가 강의자료 보면서 해당 회차 범위에 대하여 요약 설명하면서 진행발표자 진행 하에 팀원들의 질문 또는 공유하고 싶은 내용 자유롭게 나누기스터디 후 담당자는 회의록 정리 및 업로드진행 관련 참고 사항 :✅ 강의 분량은 매일 섹션 1개가 기본이지만 유동적으로 조율 가능✅ 개인별로 정리한 내용은 과제에 업로드✅ 발표자와 회의록 담당은 당일 랜덤 선정 스터디 관련 주의사항 :현재 스터디는 총 4명이서 진행 중이며 1명 더 추가 모집하여 총 5명이서 진행할 예정입니다.구성 인원인 자바를 공부한지 얼마 안된 비전공자, 전공자, 실무 경험자로 구성되어있습니다.현재 위 이미지에서 HTTP 웹 기본 지식까지 진행하였으며 스프링 MVC 1부터 같이 참여하게 될 계획입니다.스프링에 대한 이해와 실력은 중요하지 않으며 항상 조금씩이라도 더 나아지려는 마음가짐과 주도적으로 스터디에 참여하려는 분이었으면 좋겠습니다.스터디 운영과 스터디룸 대여를 위한 보증금/벌금 제도가 추가될 수 있는데 추후 협의를 통해 결정할 예정입니다 스터디에 지원할 수 있는 방법을 남겨주세요. (이메일, 카카오 오픈채팅방, 구글폼 등.) :https://open.kakao.com/o/gllO3g8f
-
해결됨개발자를 위한 쉬운 도커
빌드과정에서 USER 부분이 궁금합니다.
강의중해당부분에서 명령을 실행할 사용자를 변경한다고 하셨는데 그러면 궁금한게 해당 사용자에대한 생성과 권한 부여같은것들은 어디에서 진행이 되는것일까요??
-
미해결Next + React Query로 SNS 서비스 만들기
로그인 버튼 클릭시 500에러 발생
아이디, 비밀번호를 입력하고 로그인 버튼을 누르면 500에러가 발생합니다. 9090 서버 포트는 잘 켜져있다고 뜨고, 코드 올리겠습니다.<auth.ts>import NextAuth from "next-auth"; import CredentialsProvider from "next-auth/providers/credentials"; import KakaoProvider from "next-auth/providers/kakao"; export const { handlers: { GET, POST }, auth, signIn, } = NextAuth({ pages: { signIn: "/i/flow/login", newUser: "i/flow/signup", }, providers: [ CredentialsProvider({ async authorize(credentials) { // credentials 안에 id창에서 입력하는 정보다 담겨있음 const authResponse = await fetch(`${process.env.AUTH_URL}/api/login`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ id: credentials.username, password: credentials.password, //next-auth의 credentials에는 username, password로 고정되어 있어서 이를 바꿔줌 }), }); //로그인 실패시 if (!authResponse.ok) { return null; } const user = await authResponse.json(); return user; }, }), //kakao로그인을 사용할때 // KakaoProvider(), ], }); <LoginModal.tsx>"use client"; import style from "@/app/(beforeLogin)/_component/login.module.css"; import { signIn } from "next-auth/react"; import { useRouter } from "next/navigation"; import { ChangeEventHandler, FormEventHandler, useState } from "react"; 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(""); try { await signIn("credentials", { username: id, password, redirect: false, }); //kakao, naver로 바꿀 수 있음 //client 일때는 next-auth/react의 signIn을 사용 //server 일때는 @/auth의 signIn을 사용 router.replace("/home"); } catch (error) { console.log(error); 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> ); } <middleware.ts>export { auth as middleware } from "./auth"; export const config = { matcher: ["/compose/tweet", "/home", "/explore", "/messages", "/search"], }; <route.ts>export { GET, POST } from "@/auth";에러 내용 :TypeError: next_dist_server_web_exports_next_request__WEBPACK_IMPORTED_MODULE_0__ is not a constructor at reqWithEnvURL (webpack-internal:///(rsc)/./node_modules/next-auth/lib/env.js:15:12) at httpHandler (webpack-internal:///(rsc)/./node_modules/next-auth/index.js:139:139) at /Users/imhwarang/projects/zerocho/z-com/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:63815 at /Users/imhwarang/projects/zerocho/z-com/node_modules/next/dist/server/lib/trace/tracer.js:133:36 at NoopContextManager.with (/Users/imhwarang/projects/zerocho/z-com/node_modules/next/dist/compiled/@opentelemetry/api/index.js:1:7062)너무 길어서 다 올릴수는 없네요 에러내용을
-
해결됨개발자를 위한 쉬운 도커
cmd와 run에 대해서 궁금한점이있습니다.!
1.RUN 명령어 실행(새로운 레이어 추가)CMD["명령어"]컨테이너 실행시 명령어 지정두개의 차이점이 이렇다고 하셨는데 어차피 컨테이너를 실행하는과정에서 처음에 실행되는것은 같은것같은데 차이점이:CMD는 이미지당 1개 RUN은 여러개가 가능하며레이어의 관점에서 CMD는 추가가 안되고 RUN의경우 레이어에 추가가되는 차이가 있는걸까요??2.그리고 해당 부분에서 docker run 실행명령을 통해서 적히는 부분은 CMD로만 적히고 컨테이너가 실행이 되고나서부터 실행하는것이 run으로 기록이 된다 라고 이해하면될까요?
-
해결됨IT보안을 위한 와이어샤크 네트워크 패킷 분석 실전
강사님 저는 HTTP가 안뜨는 이유가 뭘까요?
이더넷으로 캡처하면 처음보는 포트들만 나오고, wifi로 캡처하면 TCP 등 다양하게 나오지만 HTTP 포트만 안떠요..! 설정을 잘못한 걸까요?