for 문 돌리는게, method 돌리는것보다 빠르다고 하는데, method 들로만 사용하여 풀면 효율적이지 않은건가요? 아래 코드로 진행해도 괜찮을까요? function solution(s){ let answer="" const lengths = s.map(str => str.length) const max = Math.max(...lengths) answer= s.filter(str => str.length === max).join('') return answer; }
아래 질문을 올리신 분과 동일한 문제인데 아래처럼 에러가 발생합니다. 강의 중간에 std::apply( )를 사용하기 위해 c++ 17로 변경하셨고, c++17 이전 버전에서 동작하기 위한 xapply 코드를 작성하셨습니다. 저의 생각으로는 std::apply( )를지원하지 않는 이전 버전에서 동작하기 위함이니까 저의 원래 환경인 c++14로 변경해서 빌드를 진행하니 에러가 발생합니다. 일단 다시 c++17로 변경해서 진행해보니 에러는 발생하지 않는데 강의에서 설명하신 코드(MemberJob)가 c++17 이전 버전에서는 동작하지 않는 것인가요?
교수님께서는 #include <string>을 하셨는데, 모든 클래스의 reportError 매개변수에 const char* errorMessage를 넣으셨는데 이유가 무엇인가요? 아래와 같이 std::string으로 대체해서 실행시켰는데 결과는 똑같이 나왔습니다. #include <iostream> #include <string> using namespace std; class IErrorLog // 인터페이스는 앞에 I를 붙여주는 관습 { public: virtual bool reportError(std::string errorMessage) = 0; virtual ~IErrorLog(){} }; class FileErrorLog : public IErrorLog { public: bool reportError(std::string errorMessage) override { cout << "Writing error to a file" << endl; return true; } }; class ConsoleErrorLog : public IErrorLog { public: bool reportError(std::string errorMessage) override { cout << "Printing error to a console" << endl; return true; } }; void doSomething(IErrorLog& log) { log.reportError("Runtime error!!"); // 위에서 순수 가상 함수를 정의만 해도 reportError의 존재는 알고 있기 때문에 메소드호출 가능 } int main() { FileErrorLog file_log; ConsoleErrorLog console_log; doSomething(file_log); doSomething(console_log); return 0; }
안녕하세요. 강의중에 액세스토큰을 변수로 req.header에 저장하면 아래와 같이 3가지 문제점이 있다는 것을 구글링을 통해서 확인했습니다. 1.보안: 액세스토큰을 req.header에 변수로서의 토큰은 공격자에 의해 가로채기에 취약합니다. 2.확장성: 애플리케이션에 많은 수의 요청이 있는 경우 req.header 의 변수는 크기가 커지고 성능 문제가 발생할 수 있습니다. 3.지속성: req.header 에 액세스 토큰을 저장하는 것은 영구적이지 않습니다. 사용자가 페이지를 새로 고치거나 브라우저를 닫으면 액세스 토큰이 손실됩니다. 이로 인해 사용자가 보호된 리소스 에 액세스하기 위해 다시 로그인해야 할 수 있습니다. 질문1) 3번 지속성문제의 경우, 브라우저를 새로고침하게 되면, 액세스 토큰이 사라지게 되니 오히려 보안이 좋다고 생각해야 할까요? accessToken이 수업에서는 10분으 로 만료기간을 설정했는데, restoreAccessToken API가 있기 때문에 acessToken을 req.header에 변수로 저장해도 문제가 되지 않을까요? 질문2) 액세스토큰 만료시간을 10분 ~30분 으로 짧게 잡으신 이유가 1번 문제점 보안의 이유라고 생각하면 될까요? 질문3) 선생님, 좋은 강의 해주셔서 진심으로 감사합니다. 저는 선생님의 백엔드와 프론트 강의를 수강후 실제 웹 서비스를 런칭하기위해서 수업을 듣고 있습니다. 현재는 백엔드 강의를 수강중입니다. 실제 웹 서비스런칭시 accessToken을 req.header에 변수로서 저장하고, refreshToken은 쿠키에 저장하는 게 올바른 방법인가요? refreshToken을 수업에서 가르쳐주신 대로 secure : true, httponly: true와 같이 배포환경으로 바꿔서 배포하게 된다면 보안상 안전할까요? 질문4) 구글링을 해보니, 리프레시 토큰을 Redis에 저장하고, 액세스토큰은 쿠키에 저장하는 방법도 있는 것을 확인했습니다. 액세스토큰의 만료기간을 10분으로 잡고, 리프레시토큰의 만료기간을 2주로 잡을 경우, restoreRefreshToken API 때문에 Redis DB에 자주 접속하게 되어서 DB 사용료가 많이 청구 되지는 않을까요? 서버를 stateless 상태로 웹 서비스를 런칭하기 위해서는 액세스토큰과 리프레시 토큰을 어떻게 저장해야 할까요? 가장 안전한 방법이라고 할 수 있을까요? 감사합니다.
GraphQL 완전정복 (키오스크를 만들며 배우는 풀스택 과정) - [2024 부분 리뉴얼]
강의영상에서는 에러메세지를 출력하는 부분을 error.message 라고 하는데 예제코드에서는 error 라고 되어있더라구요. 차이가 어떤게 있을까요? 강의영상에는 이부분이 == 으로 되어있던데, 예제코드에서는 ===으로 되어있습니다. ===의 의미는 값뿐만아니라 형식까지 확인하는 걸로 알고 있습니다. 일단 예제코드랑 똑같이 가려고하는데 수정되어야할 중요한 부분인가요?
[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
C:\work\apache-tomcat-10.1.5\bin\catalina.bat run [2023-02-24 04:16:40,405] Artifact myweb:war exploded: Waiting for server connection to start artifact deployment... Using CATALINA_BASE: "C:\Users\USER\AppData\Local\JetBrains\IntelliJIdea2022.3\tomcat\d2879f62-a42d-4cc2-8525-ff9de9189793" Using CATALINA_HOME: "C:\work\apache-tomcat-10.1.5" Using CATALINA_TMPDIR: "C:\work\apache-tomcat-10.1.5\temp" Using JRE_HOME: "C:\Program Files\Java\jdk-19" Using CLASSPATH: "C:\work\apache-tomcat-10.1.5\bin\bootstrap.jar;C:\work\apache-tomcat-10.1.5\bin\tomcat-juli.jar" Using CATALINA_OPTS: "" Error: Could not find or load main class org.apache.catalina.startup.Bootstrap Caused by: java.lang.ClassNotFoundException: org.apache.catalina.startup.Bootstrap Disconnected from server 오늘은 또 새로운 오류가 생겼네요... 이거 어떻게 해결하나요 구글에 검색해봐도 무슨 말인지 모르겠어요...
안녕하세요, 현재 군집화까지 강의를 수강한 학생입니다. 다차원 데이터에 대한 군집화를 하려면 어떤 아이디어가 있을지 궁금하여 질문드립니다. 여태까지 배운 내용만 가지고 생각해보면 차원축소를 최대한 잘 하여 3차원까지 줄여서 3차원공간에 나타내 클러스터링을 할 수 있을것같은데 혹시 4차원이상 데이터의 클러스터링도 가능한지, 관련된 레퍼런스가 있는지 궁금합니다! 감사합니다
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
강사님 지금 제 컴퓨터에 jdk 1.8이 설치되어 있고, 사용중이라 이번 강의도 1.8로 진행해도 되는지 궁금합니다.build .gradle에서 sourceCompatibility = '11' -> sourceCompatibility = '1.8'로 바꾸니 실행은 되는데 계속 이렇게 설정해서 수업을 들어도 될까요?
따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
_app.tsx export default function App({ Component, pageProps }: AppProps) { axios.defaults.baseURL = process.env.NEXT_PUBLIC_SERVER_BASE_URL + '/api'; axios.defaults.withCredentials = true; const { pathname } = useRouter(); const authRoutes = ['/register', '/login']; const authRoute = authRoutes.includes(pathname); return ( <AuthProvider> {!authRoute && <NavBar />} <div className={authRoute ? '' : 'pt-12'}> <Component {...pageProps} /> </div> </AuthProvider> ); } 해당 부분에서 !authRoute 논리연산자를 추가하면 Error: Hydration failed because the initial UI does not match what was rendered on the server. 에러가 나옵니다. 강사님 파일을 클론 해서 빌드 확인해보니 이런 에러가 안나오길래, 이 강의까지의 나머지 파일도 클론한 것과 모두 같은 것을 확인했는데 왜 저만 이런 에러가 나오는걸까요? 해당 에러를 구글링해서 해결책으로 나오는 것들을 적용해봤는데 어느것도 에러를 해결해주지 못했습니다ㅠ 어떤 부분을 확인해보면 좋을까요?
scrollTo - 페이지 스크롤 부분 완성본 자체가 작동이 안되네요 크롬브라우저에서 상하 이동 자체가 안되네요 .. 복사해서 붙여넣기 해도요 왜그런건가요? 다음 페이징 스크롤 이동.html 완성본도 크롬 브라우저에서 작동 안합니다 콘솔 이거맞죠? console.log(scrollTo()); 이렇게 하면 아래와같이 나옵니다 아래 저와 같은 분이 있어 https://codepen.io/yahao2512/pen/jOmKgGo\ 여기서 확인해보니 이동은 하나 크롬에서는 behavior: 'smooth', 이게 안되는것 같아요 ~~
<질문> ### https://www.acmicpc.net/problem/12869 뮤탈리스크문제의 시작복잡도는 BFS로 탐색하기니까 O(V+E) = O(60^3 + 6*60^3)=O(150만) 이렇게 계산하는게 맞을까요? ##### 문제를 풀기 전에 6가지의 선택지를 최대 14번쯤하고 6^14 는 10억보다 크니까 무식하게 풀기는 안되겠다고 생각을 했습니다 ((9+2+1)*14=182 > 60*3) 그런데 강의를 보고 각각 최대 6개의 가지가 있는 60^3의 상태를 탐색하는 문제라고 생각하니까 잘못 생각했다는 걸 알았습니다. 위에처럼 시간복잡도를 계산하는게 맞을까요? 이상입니다. 읽어주셔서 감사합니다.
안녕하세요! Drag Handle 예제를 공부하고 있던 중에 질문이 생겨 글 남깁니다. 2023년 2월 현재, 스마트 컴포넌트 X Code Override 강의에 예제로 남겨주신 링크의 글이 보이지 않네요. 찾아보니 현재는 Override 대신 ComponentType, Data 대신 createStore을 사용하는 듯 한데 검색을 해봐도 관련 자료가 많지 않아 수업을 진행하는데 어려움이 있습니다. 혹시 현재 버전에서 활용할 수 있는 코드가 있을지 궁금하네요.
언제나 좋은 강의 감사드리고 좋은 답변 감사드립니다. 다름이 아니라, 6-H, 2776번을 풀었는데 함수의 입력 인자로 인해 시간 초과가 발생했습니다! 시간 초과가 난 코드는 다음과 같습니다. http://boj.kr/991bd2528553446498f49861a7098e78 그래서 강의 영상을 보고 난 후, 딱 한 줄에 차이점이 있다는 것을 알았습니다. 바로 이분 탐색 함수에 벡터 인자가 vector<int> v가 아니라 vector<itn> &v인 것인데요. &v, 즉 주소로 접근을 하지 않으면 시간 초과가 나는 이유를 알 수 있을까요? 감사합니다!
이제 갓 1년된 신입인데... 제 사수는 2년차 입니다. 총 2명밖에 없는 FT팀에... 2주뒤 인턴이 온다고 합니다.. 다행히 수요일이라 시간이 있긴 한데... 저희보고 잘 알려주라고 하네요... 오히려 제가 배워야 할지도 모를것 같은데... ㄷㄷㄷ 인턴분들의 고충 및 희망사항? 등등 바라는 점을 듣고싶습니다..