학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] MemoryMemberRepositor클래스의 store 변수에 static이 없다면 @AfterEach가 없더라도 이전 데이터로 인한 오류(강의 11:50)가 발생하지 않았습니다. static은 클래스의 변수로 모든 인스턴스들이 공유하게 되어 static store는 @AfterEach가 없다면 오류가 발생하게 된다는 점을 이해했습니다. 하지만 static이 없더라도 MemoryMemberRepositoryTest에서 MemoryMemberRepository 인스턴스를 생성했기 떄문에 인스턴스 고유의 store 변수를 가지게 되므로 각 테스트에서 서로 공유되어야 하지 않나요? 디버깅을 통해 확인해본 결과 findAll()이후 findByName() 시에 store는 비어있는데 이유가 무엇인가요?
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다! [질문 전 답변] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요] 3. 질문 잘하기 법을 읽어보셨나요? 예 (https://www.inflearn.com/blogs/1719) 4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 네 [질문 하기] 안녕하세요 hashicorp 사에서 만든 이미지 빌드 툴 에서는 Packer와 Vagrant 가 있는걸로 알고 있습니다. 혹시 현업에서도 Vagrant를 사용하나요? Vagrant는 커밋이 너무 예전에 된거 같아서. Packer를 통해서 이미지 빌드를 자동화 하고, Vagrant로 동작 테스트 하는 고객사가 있는걸로 알고 있어서. 실제 고객사에서는 어떻게 사용하는지 궁금합니다.
안녕하세요 , 원래 작성했던 코드에서 querydsl 로 변경하는 중 사용이 익숙하지 않아 질문 드립니다. 아래는 원래 작성했던 코드입니다. @Override public Page<MemberDto> findAllMember(int pageNumber, int size) { Pageable pageable = PageRequest.of(pageNumber, size); List<MemberDto> MemberDtoList = memberRepository.findAllByState(MemberCode.S1) .get() .stream() .sorted(Comparator.comparingLong(o -> (o.getCapacity() - o.getCnt()))) .map(MemberDto::fromEntity) .collect(Collectors.toList()); 위 코드에서 https://www.inflearn.com/questions/94176/querydsl-sorting-%EC%A1%B0%EA%B1%B4%EC%97%90-%EB%8C%80%ED%95%9C-%EC%A7%88%EB%AC%B8%EC%9E%85%EB%8B%88%EB%8B%A4 이 질문을 참고해 아래와 같이 작성해 보았습니다. public Page<Member> findAllByState (MemberCode memberCode, Pageable pageable) { return applyPagination(pageable, queryFactory -> queryFactory .selectFrom(member) .where( member.state.eq(memberCode.S1)) .orderBy(member.capacity.subtract(member.cnt).asc()) ); } 하지만 제가 원했던 바와 다르게 생성 순으로 반환되고 있어 필드끼리 계산을 이용해 orderBy 하는 방법을 알고 싶습니다. 참고로 orderBy 안 member.capacity.subtract(member.cnt) 는 member 클래스의 가능한 총 정원에서 실제member 의 수 만큼 제외한 것이며 , Long 타입입니다.
// Test메서드 void AutowiredOption() { ApplicationContext ac = new AnnotationConfigApplicationContext(TestBean.class); // ac 객체를 생성할 때 오른쪽 인자의 클래스에는 @Component가 자동으로 붙음 } // 등록 클래스 static class TestBean { @Autowired(required = false) // 이렇게 해야 예외 안남, 아예 메서드가 호출 안됨 public void setNoBean1(Member member) { // Member는 스프링 빈에 없음 System.out.println("setNoBean1 = " + member); } //null 호출 @Autowired public void setNoBean2(@Nullable Member member) { System.out.println("setNoBean2 = " + member); } //Optional.empty 호출 @Autowired(required = false) public void setNoBean3(Optional<Member> member) { System.out.println("setNoBean3 = " + member); } } 질문1. @Autowired가 붙은 메서드의 정보가 빈으로 등록이 되나요?(setNoBean1, 2, 3이란 이름의 빈이 등록되나요?) 질문2. 빈 등록 방법 중에 @Configuration을 사용할 때는 @Bean을 메서드에 붙어야 한다고 알고 있는데 @Bean을 메서드에 붙여도 될까요?
안녕하세요 강의 잘 듣고 있습니다. 강의 [섹션 5 카프카 프로듀서 애플리케이션 개발 > 메시지 키를 가진 프로듀서 애플리케이션] 에서의 질문 드립니다.. 질문 1. 강의를 따라가며 실습을 그대로 진행해보고 있는데.. 아래와 같이 kafka-console-consumer 명령어에 --from-beginning 옵션을 주고 실행했을 때.. 보낸 순서대로 출력이 이루어지지 않는것으로 보여서 이유가 무엇인지 궁금합니다.. 질문 2. 애플리케이션에서 key1-value1 을 먼저 send 하고 key2-value2 를 send 하는 순서로 실행을하면.. kafka-console-consumer 명령어로 실시간으로 출력되는 것을 보았을 때.. key2 가 먼저 출력되고 key1 이 출력됩니다.. 이 경우 무엇이 잘못 된건지 궁금합니다. 실습환경 Kafka 2.5.0 코드는 3.4.1 kafka-producer 의 ProducerWithKeyValue 를 key value 값만 변경하였습니다. 감사합니다.
따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. AWS로 배포하고나면 visual studio code에서 npm으로 로컬실행을 할 수 없을 까여?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 17:48초에 나오는 내용에 질문드립니다. return "redirect:" + redirectURL; 위 경로대신 밑에 있는 경로를 썼는데 이상 없던데 이렇게 해도 무방한가요? return "redirect:/items";
회의실 상세페이지 만들기 강의 듣고 있는데요. meeting-room-detail 스크립트 작성 시 room: Rooms 선언한 부분에서 계속 type에러가 발생합니다. room 은 이니셜라이저가 없고, 생성자에 할당되어 있지 않다는 오류가 떠서 type을 undefined로 선언을 해줬더니 아래 param 으로 id 를 받아오는 부분에서는 undefined 형식은 Rooms 형식에 할당할 수 없다는 에러 메시지가 계속 뜹니다. room!: Rooms 로도 해봤는데 그렇게 하면 null 형식은 Rooms 형식에 할당할 수 없다고 뜨는데, 어떻게 해결을 하면 될까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. void combi(int a, vector <int> b) { if (b.size() == k) { print(b); return; } for (int i = a + 1; i < n; i++) { b.push_back(i); combi(i, b); b.pop_back(); } return; } 위의 함수에서 for문 다음의 return 함수를 없애도 함수의 동작에는 문제가 없고 더 빨리 동작하는데 return을 쓸 때의 이점이 있나요? 다른 코드들을 볼 때도 return;이 없어도 동일하게 동작하지만 return;이 있는 많은 예문들을 보게 되는데 return;을 코드에 추가하는 그 이유를 알고 싶습니다. 또한 return;을 넣는 순간 동작 시간이 약 0.08초에서 0.22초로 증가하게 되는데 그 이유를 알고 싶습니다.
안녕하세요, 강의 잘 수강하고 있습니다! L4 강의 중 TCP 연결 이라는 착각이라는 말을 하셨는데요, 강의를 다시 들어보아도 정확히 어떤 요지인지를 파악하기 어려워서 질문 남겨봅니다! 4 way handshake이 일어나지 않아도 연결은 끊긴 상태일수 있다는 의미인 것인지.. 구체적인 의미를 알려주시면 감사드리겠습니다!
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
강의 코드를 그대로 따라가고 있지는 않고 기존에 알고 있던 내용이랑 합쳐서 코드를 작성하고 있습니다. Controller @PutMapping("/user") public void updateUserName(@RequestBody UpdateUserDto updateDto) { userService.updateUserName(updateDto.getId(), updateDto.getName()); } Dto public class UpdateUserDto { private long id; private String name; public long getId() { return id; } public String getName() { return name; } Repository @Override public void updateUserName(long id, String name) { String sql = "update user set name = ? where id = ?"; jdbcTemplate.update(sql, name, id); } Service @Override public void updateUserName(long id, String name) { userRepository.updateUserName(id, name); } 수정을 눌렀을 때 name은 정상적으로 값이 넘어오는데 id가 계속 0으로 넘어옵니다,, 등록 시에는 DB에 id가 정상적으로 입력되고 있는데 뭐가 문제일까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이 부분을 설명하실 때, 강사님께서 “고객 요청이 오면 service 메소드가 호출이 되고 , viewPath라는 경로의 jsp를 dispatcher의 forward 함수가 다시 호출을 하고 서버 내부에서 서버끼리 new-form.jsp로 제어권을 넘겨준다” 라고 말씀하셨습니다. 여기서 이해가 안되는 부분이 2개 있습니다. 1."서버 내부에서 서버끼리"라고 말씀하셨는데 이건 어떤 어떤 서버를 얘기하는 건가요? 서블릿은 "자바를 사용해 웹 페이지를 동적으로 생성하는 서버 내 프로그램"이라고 설명이 나와있습니다. 그러면 서블릿이 하나 하나의 서버이고, MvcMemberFormServlet 서블릿에서 new-form.jsp 서버로 상호작용을 하고있다. 이렇게 이해하면 되는건가요? 이게 아니라면, "서버 내부에서 서버끼리"라는 것은 어떤 서버 내부에서 어떤 서버들을 이야기 하시는 건가요? 2. "new-form.jsp로 제어권을 넘겨준다"에서 MVC 패턴에서 제어권이란 정확히 어떤 개념인가요? 제어권이란 현재 데이터에 접근하는 "서블릿이나 서버 또는 객체"를 의미하는건가요? 설명 부탁드립니다.
import pygame from turtle import back import time pygame.init() def text_0(): screen.fill((0,0,0)) # 배경 검은색 배경 pygame.display.update() #게임화면 다시그리기 sound.play() time.sleep(9) sound.stop() screen.blit(iphone,(0,0)) #배경 그리기 pygame.display.update() #게임화면 다시그리기 time.sleep(4) def text_1(): text=["어...어라?","음... 꿈인가?","에이 설마~","망했다!!!!!!!!!!!!!!!!!!"] check_text=False global check_break check_break=0 for i in text: check_text=0 for j in range(len(i)): for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: running_esc=True #이부분 ################################## while running_esc: dt = clock.tick(60) screen.blit(esc,(0,0)) mouse_x,mouse_y=pygame.mouse.get_pos()#좌표구하기 if (out_button_x_pos<mouse_x<out_button_x_pos+out_button_width and out_button_y_pos<mouse_y<out_button_y_pos+out_button_height): screen.blit(out_touch_button,(out_button_x_pos,out_button_y_pos)) else: screen.blit(out_button,(out_button_x_pos,out_button_y_pos)) pygame.display.update() ################################### if event.key == pygame.K_SPACE: screen.blit(room,(0,0)) myText = myFont.render(i, True, (0,0,255)) screen.blit(myText, (1000,900)) pygame.display.update() check_text=True if check_text: break screen.blit(room,(0,0)) myText = myFont.render(i[0:j], True, (0,0,255)) screen.blit(myText, (1000,900)) pygame.display.update() time.sleep(0.3) while check_text: for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: check_text=False #화면크기 설정 screen_width=1920 #가로 screen_height=1020 #세로 screen=pygame.display.set_mode((screen_width, screen_height))#(가로,세로) #게임 이름 pygame.display.set_caption("Nado Game") #FPS clock = pygame.time.Clock() #배경 이미지 background = pygame.image.load("C:/python/pygame_basic/background_beta.png") start = pygame.image.load("C:/python/pygame_basic/start_beta.png") iphone = pygame.image.load("C:/python/pygame_basic/iPhone_beta.png") room =pygame.image.load("C:/python/pygame_basic/room_beta.png") esc=pygame.image.load("C:\python\pygame_basic\esc_beta.png") #버튼 이미지 out_touch_button=pygame.image.load("C:/python/pygame_basic/break_change_button.png") out_button=pygame.image.load("C:/python/pygame_basic/break_button.png") out_button_size = out_button.get_rect().size out_button_width = out_button_size[0] out_button_height = out_button_size[1] out_button_x_pos = (screen_width / 2) - (out_button_width/2) out_button_y_pos = (screen_height / 2)-(out_button_height/2) #캐릭터 가져오기 character = pygame.image.load("C:/python/pygame_basic/character.png") character_size = character.get_rect().size #캐릭터의 크기 character_width = character_size[0] #캐릭터의 가로 크기 character_height = character_size[1] #캐릭터의 세로 크기 character_x_pos = (screen_width / 2) - (character_width/2) #화면 가로의 절반 크기에 해당하는 곳에 위치(가로) character_y_pos = screen_height-character_height #화면 세로 크기 가장 아래에 해당하는 곳에 위치(세로) #캐릭터 좌표 to_x=0 to_y=0 #이동 속도 character_speed = 0.6 #효과음,배경음악 sound = pygame.mixer.Sound( "C:\python\pygame_basic\iPhone-Alarm-Original (online-audio-converter.com).wav" ) #폰트설정 myFont = pygame.font.SysFont("malgungothic",30) #이벤트 루프 global running running = True text_namber=1 #진행도 while running: dt = clock.tick(60) #게임화면의 초당 프레임 수 설정 #종료문 for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.type == pygame.K_ESCAPE: running_esc=True #이부분 ##################################### while running_esc: dt = clock.tick(60) screen.blit(esc,(0,0)) mouse_x,mouse_y=pygame.mouse.get_pos()#좌표구하기 print(mouse_x,mouse_y) if (out_button_x_pos<mouse_x<out_button_x_pos+out_button_width and out_button_y_pos<mouse_y<out_button_y_pos+out_button_height): screen.blit(out_touch_button,(out_button_x_pos,out_button_y_pos)) else: screen.blit(out_button,(out_button_x_pos,out_button_y_pos)) pygame.display.update() ##################################### if text_namber==0: text_0() text_namber=1 if text_namber==1: text_1() text_namber=2 #pygame 종료 pygame.quit() 함수 안에선 마우스 좌표가 잘 구해져서 잘 실행 되는데 함수 안에선 마우스 좌표가 안구해져서 잘 실행이 안되요.....
안녕하세요. 혼자 개인 프로젝트를 하면서 강의를 듣고 있는데 궁금한 점이 생겨서 질문 남깁니다! 현재 projectA 안에 프론트, 백 폴더를 제로초님처럼 만들어놓고 프론트는 react+typescript / 백은 nestjs+typescript 로 전부 설치해놓은 상태입니다. 다만, 이렇게 할 경우 proxy 설정을 프론트에서 해줘야 된다고 하여 아래 처럼 설정을 해당 강의 듣기전에 구글링하여 만들어놨었습니다. 미들웨어 설치 npm i http-proxy-middleware projectA > pront > src > setupProxy.ts const { createProxyMiddleware } = require("http-proxy-middleware"); module.exports = function (app) { app.use( createProxyMiddleware("/api", { target: "http://localhost:3095", changeOrigin: true, }) ); }; package.json // 위에 생략... "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "proxy": "http://localhost:3095/", // 아래 생략... 여기서 궁금한 점이.. proxy를 설정할 때 미들웨어를 설치하여 setupProxy.js 파일을 만들어서 사용하라는 글들을 많이 봐서 그대로 따라하고 파일명만 ts로 변경했었습니다. 이렇게 하니 api를 불러오는 url 부분에 localhost:3095 ~~~ 이 부분을 전부 다 입력해야 에러가 나지 않았고 생략해서 사용하려면 package.json에 proxy 경로를 추가하는 방법밖에는 없는걸까요??(미들웨어 설치 + setupProxy.ts 파일로만 proxy 설정을 해보고 싶었는데 이 경우에는 api url 불러오는 부분에 locallhost~~~... 를 쓸 수 밖에 없는지가 궁금합니다.) 다만.. package.json에 proxy 경로를 넣어놓고 setupProxy.ts 파일의 코드를 지워도 제대로 돌아가더라구요.. setupProxy.ts 파일을 잘 못 만든걸까요? 이때 돌아가는 이유가 package.json의 proxy 경로로만 인식을 한 것 같습니다.. https://www.npmjs.com/package/http-proxy-middleware 마지막으로 위 proxy 설정 파일을 해주면 cors 오류가 발생하지 않는 것 같은데 둘중 하나만 설정을 해주는 것이 맞을까요? 둘다 해줘야 하는건지.. 프론트에서 proxy만 하거나 백에서 cors를 설치하는 방향 둘중에 뭐가 더 나은 방향인지도 궁금합니다! 원래는 아래 cors 설치하고 아래 코드까지 작성 해놨었습니다. main.ts(back 폴더안) import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import cors = require('cors'); async function bootstrap() { const app = await NestFactory.create(AppModule); app.use(cors()); await app.listen(process.env.PORT); console.log(`listening on port ${process.env.PORT}`); } bootstrap();
안녕하세요. 프로그램 설치시 하기 오류가 뜨는데요.. There has been an error : The enviromental variable COMSPEC does not seem to print to the cmd.exe or there is a trailling semicolon present. 인터넷 참조해서 방화벽도 없애보고 했는데 설치가 안되어서 글을 남깁니다. 배워볼려고 하는데 설치부터 안되니 답답합니다.