묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 중고급: 엔진 핵심
getBook 실습 예제중 질문드립니다!
아래의 코드에서함수선언문을 만나면 {getBook : function object}로 설정되고,자바스크립트 엔진이 다시 돌면서 var 키워드로 선언된 getBook으로 인해 {getBook : undefined } 로 설정이 된 후 코드 실행단계에서 함수선언문은 건너뛰고, getBook을 호출하면 undefined가 나와야하는거 아닌가요? 왜 "책1"이 출력되는지 모르겠습니다! function getBook() { return "책1"; } console.log(getBook); var getBook;
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Spring REST Docs1 - 기본설정 get (url) 질문
plugins { id 'java' id 'org.springframework.boot' version '2.7.17' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id "org.asciidoctor.jvm.convert" version "3.3.2" } group = 'com.blog' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } configurations { compileOnly { extendsFrom annotationProcessor } asciidoctorExt } repositories { mavenCentral() } ext { asciidocVersion = "2.0.6.RELEASE" snippetsDir = file('build/generated-snippets') } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'com.querydsl:querydsl-core' implementation 'com.querydsl:querydsl-jpa' asciidoctorExt "org.springframework.restdocs:spring-restdocs-asciidoctor:${asciidocVersion}" testImplementation "org.springframework.restdocs:spring-restdocs-mockmvc:${asciidocVersion}" annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" annotationProcessor 'jakarta.persistence:jakarta.persistence-api' annotationProcessor 'jakarta.annotation:jakarta.annotation-api' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() } test { outputs.dir snippetsDir } asciidoctor { inputs.dir snippetsDir configurations 'asciidoctorExt' dependsOn test } bootJar { dependsOn asciidoctor from ("${asciidoctor.outputDir}/html5") { into 'static/docs' } } package com.blog.api.controller; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; import org.springframework.restdocs.RestDocumentationContextProvider; import org.springframework.restdocs.RestDocumentationExtension; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import static com.querydsl.core.alias.MethodType.get; import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @SpringBootTest @ExtendWith(RestDocumentationExtension.class) public class PostControllerDocTest { private MockMvc mockMvc; @BeforeEach void setUp(WebApplicationContext webApplicationContext, RestDocumentationContextProvider restDocumentation) { this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext) .apply(documentationConfiguration(restDocumentation)) .build(); } @Test @DisplayName("아무개") void Test1() throws Exception { this.mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andDo(document("index")); } } 위와 같이 Test1 에서 get("/") 부분에서 url 타입이 계속 안맞다고 하는데요강의와 똑같이 했는데 뭐가 문제인지 잘 모르겠습니다.
-
미해결스프링 핵심 원리 - 기본편
빈 소멸
public class SingletonTest { @Test void singletonBeanFind(){ AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SingletonBean.class); SingletonBean singletonBean1 = ac.getBean(SingletonBean.class); SingletonBean singletonBean2 = ac.getBean(SingletonBean.class); System.out.println("singletonBean1 = " + singletonBean1); System.out.println("singletonBean2 = " + singletonBean2); ac.close(); System.out.println("singletonBean2 = " + singletonBean2); } @Scope("singleton") static class SingletonBean { @PostConstruct public void init(){ System.out.println("singletonBean.init"); } @PreDestroy public void desrtoy(){ System.out.println("singletonBean.desrtoy"); } } } 스프링 컨테이너가 close() 메서드로 종료될 시점에 컨테이너는 빈 객체의 소멸을 처리한다라고 알고있습니다. 그런데 close() 이후에 singletonBean의 참조변수를 출력해보면 null이 아니라 빈의 참조값이 출력되는 이유가 먼가요? 제가 잘못 알고있는 부분이 궁금합니다아래는 Test 결과 입니다singletonBean.initsingletonBean1 = hello.core.scope.SingletonTest$SingletonBean@530712dsingletonBean2 = hello.core.scope.SingletonTest$SingletonBean@530712dsingletonBean.desrtoysingletonBean2 = hello.core.scope.SingletonTest$SingletonBean@530712d
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
CSR과 SSR이 아직 확실히 이해되지 않아 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]위의 두 가지 상황, '정적 리소스를 제공하는 상황'과 '동적으로 HTML을 생성해서 제공하는 상황' 모두 SSR인가요? 그럼 이 세 가지 경우엔 어떤가요?'웹 클라이언트 to 서버 상황'은 CSR인 것 같기도 하고..'앱 클라이언트 to 서버 상황'도 CSR..? 같은데 확신이 안 드네요.'서버 to 서버'는 CSR과 SSR 중 뭐에 해당하나요? 결론적으로 다섯 가지 상황 각각이 CSR과 SSR 중 무엇에 해당하는지 궁금합니다. 제가 잘못 이해하고 있는 부분이 있을지도 몰라서 질문드립니다.
-
미해결스프링 부트 - 핵심 원리와 활용
[intellij 무료버전]tomcat runner 실행 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 캐시 삭제도 해봤고,인텔리제이 버전도 22.3.3으로 내렸습니다. 여전히 run configuration에서 이렇게밖에 뜨지 않습니다ㅠ 추가로 build.gradle에 복붙하는 코드에서 이런 게 뜨는데, 상관이 있는 걸까요?ㅠ
-
미해결스프링부트 시큐리티 & JWT 강의
Consider defining a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' in your configuration.
@Configuration public class BCryptConfig { @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } } 위와 같이 Config class에 PasswordEncoder 빈을 생성했는데도 Description:Parameter 1 of constructor in domain.Member.service.MemberService required a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' that could not be found.Action:Consider defining a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' in your configuration.Process finished with exit code 1 와 같이 에러가 발생하면 어떻게 해야할까요?
-
해결됨손에 익는 Next.js - 공식 문서 훑어보기
revalidate 질문
안녕하세요 선생님강의 내용중에 revalite 의 방식이두가지가 있다고 하셨고 그중 하나인time 방식은 예를들어 10초로 설정하였다면10초후에 누군가가 요청을하면첫번째 요청자는 이전 값을 받고두번째 요청하였을때 새로운 값을 받는거라고 이해하였습니다. 그렇다면 게시판에 적용하였을때A유저가 새글을 작성하고다시 게시글 목록페이지로 돌아가면1번째 요청이 되기때문에 새글이 보이지 않고새로고침을하면 2번째 요청이 되어서보이게 되는 걸까요? 그리고 위의 내용이 맞다면작성후 목록 페이지로 갔을때본인이 작성했던 새 글이 바로 보이려면어떻게 해야할까요? 온디맨드도 요청이 있을때일단 먼저 값을 보여주고 그 다음부터 새 값을 보여주는거니 이건 아닌것같고..강의 보다가 좋은 방법이 있는지 궁금하네요 ^^ P.S : 정말 알차고 좋은강의 감사드립니다 선생님!볼때마다 너무 만족스러운 강의예요!
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)
강의록 문의사항
해외에서 수강 중입니다. 강의 교재가책을 해외 배송 받기 쉽지 않은데, 혹시 강의록이 Posting되어 있는지요? 좋은 강의 감사합니다.
-
해결됨Next + React Query로 SNS 서비스 만들기
MSW오류 및 서버 액션에 대한 질문입니다!
안녕하세요!‘서버 컴포넌트에서 Server Actions 사용하기’ 섹션을 듣고 질문 2개가 생겼습니다. 강의를 다 듣고 실제로 진행해보니 저의 경우는 redirect('/home') 으로리다이렉션이 진행되지 않습니다network탭을 보니 애초에 서버로 데이터 전송이 안 된 것 같습니다 (payload에는 제대로 데이터가 전송이 됐고 Headers를 보면 status가 200이 뜨긴 하네요) 그래서 MSW문제인가 싶어서 http://localhost:9090/ 에 접속해보니 에러가 발생하네요 MSW설정 자체가 문제인것 같은데 강의내용을 보고 그대로 따라했는데 어느 부분에서 문제가 발생한지 도저히 모르겠습니다.. 제 코드들을 첨부하겠습니다 // browser.ts import { setupWorker } from 'msw/browser'; import { handlers } from './handlers'; // This configures a Service Worker with the given request handlers. const worker = setupWorker(...handlers); export default worker; // handlers.ts import { http, HttpResponse } from 'msw'; export const handlers = [ http.post(`/api/login`, () => { console.log('로그인'); return HttpResponse.json( { userId: 1, nickname: '제로초', id: 'zerocho', 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/users', async ({ request }) => { console.log('회원가입'); // 403에러 전용 // 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', }, }); }), ]; // http.ts import { createMiddleware } from '@mswjs/http-middleware'; import express from 'express'; import cors from 'cors'; import { handlers } from './handlers'; const app = express(); const port = 9090; // 서버 포트 번호 // 현재 돌아가고 있는 로컬호스트 주소 app.use(cors({ origin: 'http://localhost:3000', optionsSuccessStatus: 200, credentials: true })); app.use(express.json()); app.use(createMiddleware(...handlers)); app.listen(port, () => console.log(`Mock server is running on port: ${port}`)); 정확히 서버액션 이라는 개념이 이해가 가질 않습니다 기존 리액트에서 클릭 이벤트 또는 서브밋 이벤트로 폼을 제출하는 방식이 아니라, 폼의 action을 사용해 서버로 폼의 데이터를 제출하는 것같은데, 이것만 보면 그냥 폼데이터 값으로 백엔드 api를 이용하는거같은데.. .정확한 서버 액션 이라는 그 의미를 잘 모르겠네요… 구글링 해보면 따로 api를 생성할 필요 없이 API를 바로 만들어서사용하는거라고 하는데 여기서는 백엔드 API를 사용하고 있고…혹시 다음 강의에 자세한 설명이 나오는것인가요?너무 헷갈리네요
-
해결됨파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
append삭제
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! (스크린샷이 있으면 더더욱 좋습니다)- 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님!시간 날 때 마다 강사님 강의를 열심히 보면서 학습하고있는데현재 pandsas 2.0.3 으로 학습하는데 append라는 함수가 사라져서 질문을 드립니다!제가 구글링 했을 때는 concat으로 대체되었다는 말들이 많은데concat을 이용해서 합치려고 하면 어떻게 해야 할까요?pd.concat([names_df, {'Name':'명수', 'Age':100}], ignore_index=True )names_df.concat([names_df, {'Name':'명수', 'Age':100}, ignore_index=True )위의 두가지 방법으로는 해결이 되지 않아서 질문글 남깁니다!감사합니다!
-
미해결홍정모의 따라하며 배우는 C언어
디버깅 관련 질문
#include <stdio.h> #include <ctype.h> #include <stdbool.h> #define STOP '.' int main() { char c; int n_chars = 0; int n_lines = 0; int n_words = 0; bool word_flag = false; bool line_flag = false; printf("Enter text :\n"); while((c = getchar()) != STOP){ if(!isspace(c)){ n_chars++; } if(!isspace(c) && !line_flag){ n_lines++; line_flag = true; } if(c == '\n'){ line_flag = false; } if(!isspace(c) && !word_flag){ n_words++; word_flag = true; } if(isspace(c)){ word_flag = false; } } printf("Charaters = %d, Words = %d, Lines = %d\n", n_chars, n_words, n_lines); return 0; } 강의 내용 예제 코드인데 문자로 입력해야 디버깅이 가능한 예제 코드들은 어떻게 디버깅 하는지 알 수 있을까요??
-
해결됨손에 익는 Next.js - 공식 문서 훑어보기
섹션3. 날씨 재검증하기 NextRequest 질문입니다.
콘솔로그 결과 안녕하세요 선생님, 강의를보고 간단하게 따라해보았는데요NextRequest 타입의 req를 매개변수로 받아와서req를 console.log 에 찍어보면 undefined가 뜹니다.혹시 NextRequest 사용에 조건이 따로 있을까요? req.nextUrl.pathname 으로 url 도 가져와보고 싶고한데생각처럼 잘 안되네요..
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
nums 조건오류인가요?
문제에 고정된 숫자는 유일하다고 나와있는데, 2번 case의 nums에 3도 index가 3이고, 4도 index가 4라서 고정된 숫자가 2개인데 nums가 잘못된건가요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
const사용이유
안녕하세요! 수업 잘 듣고있습니다.수업소스를 보면 함수도 항상 const를 쓰는데 let을 안쓰고 const를 사용하는 이유가 궁금합니다!!
-
해결됨코딩테스트 [ ALL IN ONE ]
노션 링크 좀 보내주세요
노션 공유 요청 드리고 24시간 기다렸는데.......노션에 어떻게 들어가나요?
-
미해결김영한의 실전 자바 - 기본편
다운캐스팅 관련 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]//부모 변수가 자식 인스턴스 참조(다형적 참조) Parent poly = new Child(); Child child = (Child) poly; child.ChildMethod(); child.parentMethod(); //호출 가능다운캐스팅으로 부모 타입의 poly를 자식타입으로 변경하여자식 클래스의 childMethod를 호출 가능하였습니다. 그런데 바로 child.parentMethod도 호출이 가능하던데다운캐스팅, 업캐스팅 시 부모, 자식의 기능을 모두 불러올 수 있는 것인가요? 부모와 자식의 기능을 모두 호출 가능한 이유가 무엇인지 이해가 되지 않습니다.
-
미해결자바스크립트 중고급: 엔진 핵심
__proto__ 에 대해 질문드립니다
안녕하세요 ! 강의 듣다가 질문드립니다 prototype이 상속을 위해 설정된 것이라는 건 알겠는데요 __proto__ 에 대해, 그리고 그안에 설정되는 내용에 대해 잘 이해가 안됩니다 ㅠㅠ어떤 객체로부터 상속받는지에 대한 참조..느낌일까요? 설명해주시면 감사드리겠습니다..!!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
이전에 h2를 사용한 프로젝트가 있다면 h2를 반드시 재설치 해야 하나요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 강의에서 h2 설정을 했었는데 jdbc url을 바꾸는 것만으로는 새로운 디비를 만들 수 없나요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
DTO 질문입니다.!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의 잘 보고있습니다, ModelAttribute로 받은 HelloData객체를 받을 때 url의 username과 DTO 안에 username이 같아야 하나요?
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
이벤트 페이지 설계를 다음과 같이 map-reduce 방식으로도 하는지 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. "비연결성" 강의를 보던 중 궁금한 것이 생겨 질문을 올립니다. 순간적으로 몰리는 이벤트를 위해 설계를 다음과 같이 구성하기도 하는지 궁금합니다.특별 이벤트 페이지를 운영할 때, 짧은 시간 동안 유저들이 몰려 트래픽이 급증하는 경우가 많습니다. 예를 들어, 오후 6시부터 7시까지 1시간 동안 특별 이벤트가 진행된다면, 그 시간 동안 트래픽이 매우 높아질 것입니다.이러한 상황에서 서버 증설을 고려하며 stateless한 서비스 구성이 중요한데, 이에 대한 다음과 같이 설계를 해보겠습니다. 예를 들어, '오후 6시부터 7시까지 1000명에 한해 20% 할인되는 콘서트 티켓 구매 이벤트'를 진행한다고 가정해보겠습니다. 이 경우, 유저가 이벤트에 참여한 후 즉시 결과를 알 필요는 없다고 생각합니다. 각 웹 애플리케이션 서버마다 독립된 DB를 두어, 이벤트 참여 여부만 해당 서버의 DB에 저장합니다. 그리고 오후 7시가 지난 후, 모든 서버의 DB에 있는 이벤트 관련 데이터를 한꺼번에 일관되게 처리합니다. 이때, 먼저 참여한 1000명을 선정한 후, 모든 참여자에게 이벤트 당첨 여부를 이메일이나 문자로 알립니다. 제가 볼때 이 구조는 마치 map-reduce 모델과 유사하고 단지 reduce 단계가 상대적으로 늦게 실행되는 구조입니다.이러한 구조에 대해서 어떻게 생각하시나요? 또 이벤트를 위해 보편적으로 사용되는 아키텍쳐가 있을까요?