묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
static과 테스트케이스
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 [질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MemoryMemberRepositor클래스의 store 변수에 static이 없다면 @AfterEach가 없더라도 이전 데이터로 인한 오류(강의 11:50)가 발생하지 않았습니다. static은 클래스의 변수로 모든 인스턴스들이 공유하게 되어 static store는 @AfterEach가 없다면 오류가 발생하게 된다는 점을 이해했습니다.하지만 static이 없더라도 MemoryMemberRepositoryTest에서 MemoryMemberRepository 인스턴스를 생성했기 떄문에 인스턴스 고유의 store 변수를 가지게 되므로 각 테스트에서 서로 공유되어야 하지 않나요?디버깅을 통해 확인해본 결과 findAll()이후 findByName() 시에 store는 비어있는데 이유가 무엇인가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Packet Generator#2 string부분
안녕하세요이 부분까지는 실행이 잘되는 것을 확인하였습니다.그 뒤에 PacketFormat 부분에서실행시키면 아래와 같이 string부분은 입력이 안됩니다. 제 코드에서 틀린부분을 못찾겠어서 선생님이 올려주신 정답 코드로 다시 실행을 해보았는데똑같이 string부분이 입력이 안되는데 혹시 어떤 부분이 잘못되었는지 알려주실 수 있으실까요? class PlayerInfoReq { public long playerId; public void Read(ArraySegment<byte> openSegment) { ushort count = 0; ReadOnlySpan<byte> s = new ReadOnlySpan<byte>(openSegment.Array, openSegment.Offset, openSegment.Count); count += sizeof(ushort); count += sizeof(ushort); this. playerId = BitConverter.ToInt64(s.Slice(count, s.Length - count)); count += sizeof(long); } public ArraySegment<byte> Write() { ArraySegment<byte> segement = SendBufferHandler.Open(4096); bool success = true; ushort count = 0; Span<byte> s = new Span<byte>(segement.Array, segement.Offset, segement.Count); count += sizeof(ushort); success &= BitConverter.TryWriteBytes(s.Slice(count,s.Length-count), (ushort)PacketID.PlayerInfoReq); count += sizeof(ushort); success &= BitConverter.TryWriteBytes(s.Slice(count, s.Length - count), this. playerId); count += sizeof(long); success &= BitConverter.TryWriteBytes(s, count); if (success == false) return null; return SendBufferHandler.Close(count); } }
-
미해결구성 관리 자동화 도구 - 앤서블(Ansible)
Packer와 Vagrant 중 현업에서 둘중 얼마나 더 많이 사용하는지 알고 싶습니다.
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? 예(https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 네[질문 하기]안녕하세요 hashicorp 사에서 만든 이미지 빌드 툴 에서는Packer와 Vagrant 가 있는걸로 알고 있습니다.혹시 현업에서도 Vagrant를 사용하나요?Vagrant는 커밋이 너무 예전에 된거 같아서.Packer를 통해서 이미지 빌드를 자동화 하고, Vagrant로 동작 테스트 하는 고객사가 있는걸로 알고 있어서.실제 고객사에서는 어떻게 사용하는지 궁금합니다.
-
미해결
querydsl orderBy 적용 되지 않음
안녕하세요 ,원래 작성했던 코드에서 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 타입입니다.
-
미해결
네이버 게임 - 라운지 쪽에서 댓글들을 크롤링해보는 단계에서 막혔어요ㅜ
URL : https://game.naver.com/lounge/Viking_Rise/board/detail/2583518사용 코드import requests from bs4 import BeautifulSoup import openpyxl url = "https://game.naver.com/lounge/Viking_Rise/board/detail/2583518" response = requests.get(url) html = response.text soup = BeautifulSoup(html, "html.parser") comment_items = soup.select(".comment_item_text__1foPs") workbook = openpyxl.Workbook() sheet = workbook.active sheet.title = "Crawled Comments" sheet.cell(row=1, column=1, value="Comment Text") sheet.cell(row=1, column=2, value="Attributes") for index, comment_content in enumerate(comment_items, start=2): comment_text = comment_content.get_text(strip=True) comment_attributes = str(comment_content.attrs) sheet.cell(row=index, column=1, value=comment_text) sheet.cell(row=index, column=2, value=comment_attributes) workbook.save("crawled_comments.xlsx") print("Comment attributes have been crawled and saved to crawled_comments.xlsx")
-
미해결스프링 핵심 원리 - 기본편
@Autowired에 대한 사용법이 궁금합니다.
// 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을 메서드에 붙여도 될까요?
-
해결됨[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
kafka-console-consumer.sh 출력 순서 관련 질문
안녕하세요 강의 잘 듣고 있습니다. 강의[섹션 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)
배포하고 나서는 visual studio code에서는 실행못하나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. AWS로 배포하고나면 visual studio code에서 npm으로 로컬실행을 할 수 없을 까여?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인인증필터 return "redirect:" + redirectURL; 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 17:48초에 나오는 내용에 질문드립니다.return "redirect:" + redirectURL;위 경로대신 밑에 있는 경로를 썼는데 이상 없던데 이렇게 해도 무방한가요?return "redirect:/items";
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
브로커의 개수와 서버의 개수
하나의 서버에 하나의 브로커가 설치 되어 있다고 말씀해 주셨는데 복제 옵션이 3일 때, 적어도 3개의 서버를 실행되고 있어야 하는 건가요?
-
미해결입문강의 타입스크립트부터 ionic6 (앵귤러 기반)
회의실 상세 페이지 만들기 강의 중 type 에러
회의실 상세페이지 만들기 강의 듣고 있는데요.meeting-room-detail 스크립트 작성 시 room: Rooms 선언한 부분에서 계속 type에러가 발생합니다.room 은 이니셜라이저가 없고, 생성자에 할당되어 있지 않다는 오류가 떠서 type을 undefined로 선언을 해줬더니 아래 param 으로 id 를 받아오는 부분에서는 undefined 형식은 Rooms 형식에 할당할 수 없다는 에러 메시지가 계속 뜹니다.room!: Rooms 로도 해봤는데 그렇게 하면 null 형식은 Rooms 형식에 할당할 수 없다고 뜨는데, 어떻게 해결을 하면 될까요?
-
미해결홍정모의 따라하며 배우는 C언어
int (*pa)[4]와 int*pa의 차이
#include <stdio.h> int main() { float arr2d[2][4] = { {1.0f,2.0f,3.0f,4.0f},{5.0f,6.0f,7.0f,8.0f} }; float(*pa)[4] = arr2d; printf("%u %u \n", (unsigned)pa, (unsigned)(pa + 1)); printf("%u %u\n", (unsigned)arr2d[0], (unsigned)arr2d[1]); printf("%u %u\n", (unsigned)pa[0], (unsigned)(pa[0] + 1)); printf("%f\n", pa[0][0]); printf("%f\n", *pa[0]); printf("%f\n", **pa); printf("%f\n", pa[1][3]); printf("%f\n", *(*(pa + 1) + 3)); float* ptr = arr2d; printf("%u %u \n", (unsigned)ptr, (unsigned)(ptr + 1)); printf("%u %u\n", (unsigned)arr2d[0], (unsigned)arr2d[1]); printf("%u %u\n", (unsigned)ptr[0], (unsigned)(ptr[0] + 1)); printf("%f\n", ptr[0][0]); printf("%f\n", *ptr[0]); printf("%f\n", **ptr); printf("%f\n", ptr[1][3]); printf("%f\n", *(*(ptr + 1) + 3)); }강의 9:47에서 int(*pa)[4]가 나옵니다.강의 10:20에서 교수님께서 pa는 4개의 float자료형을 가진 배열에 대한 포인터라고 하셨습니다.저는 이것을 [4개의 float자료형을 가진 배열]의 배열에 대한 즉, 2차원배열에 대한 포인터라고 이해했습니다.float arr[4] = { 1.0f,2.0f,3.0f, 4.0f }; float(*pa)[4] = arr;Q1. 위처럼 (*pa)[4]에 1차원 배열도 넣을수 있는건가요? float(*pa)[4]에서 [4]가 헷갈리는것같습니다. 정확히 정의를 내리기가 힘듭니다. float(*pa)[4]란 무엇인가요?ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡpa는 어쨋든 그냥 단순한 포인터 변수 하나 라고 이해했습니다.그래서 똑같이float* ptr = arr2d; 포인터 변수를 하나 선언하고 거기에 2차원 배열([4개의 float자료형을 가진 배열]의 배열을 넣어줬습니다.저는 pa랑 ptr은 그냥 외형만 다를뿐 문법적으로 같은 포인터변수라고 이해했습니다.그런데 pa같은 경우printf("%f\n", pa[0][0]); printf("%f\n", *pa[0]); printf("%f\n", **pa); printf("%f\n", pa[1][3]); printf("%f\n", *(*(pa + 1) + 3));이중포인터처럼 사용가능한 반면ptr의 경우는printf("%f\n", ptr[0][0]); printf("%f\n", *ptr[0]); printf("%f\n", **ptr); printf("%f\n", ptr[1][3]); printf("%f\n", *(*(ptr + 1) + 3));이중포인터처럼 사용하면 밑줄이 뜨고 오류가 떳습니다.그림을 그려보니 ptr은 당연히 단순 포인터변수이기에 이중포인터처럼 사용은 불가능했습니다. Q2.그렇다면 어째서 pa는 포인터변수인데도 이중포인터처럼 사용이 가능한건가요? 또 pa와 ptr의 차이는 무엇인가요? 항상 감사합니다. 진짜 진짜 진짜 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
재귀함수로 구현한 조합 함수 관련 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 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초로 증가하게 되는데 그 이유를 알고 싶습니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
맵에서 위치 변경하기
파란점 위치를 변경 방법을 알 수 있을까요?
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
TCP 연결 이라는 착각 강의 질문
안녕하세요, 강의 잘 수강하고 있습니다!L4 강의 중 TCP 연결 이라는 착각이라는 말을 하셨는데요, 강의를 다시 들어보아도 정확히 어떤 요지인지를 파악하기 어려워서 질문 남겨봅니다! 4 way handshake이 일어나지 않아도 연결은 끊긴 상태일수 있다는 의미인 것인지.. 구체적인 의미를 알려주시면 감사드리겠습니다!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
사용자 이름 수정에서 막힙니다
강의 코드를 그대로 따라가고 있지는 않고 기존에 알고 있던 내용이랑 합쳐서 코드를 작성하고 있습니다.Controller@PutMapping("/user") public void updateUserName(@RequestBody UpdateUserDto updateDto) { userService.updateUserName(updateDto.getId(), updateDto.getName()); }Dtopublic 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가 정상적으로 입력되고 있는데 뭐가 문제일까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
forward 메소드 설명 부분 이해가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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() 함수 안에선 마우스 좌표가 잘 구해져서 잘 실행 되는데 함수 안에선 마우스 좌표가 안구해져서 잘 실행이 안되요.....
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
proxy, cors 관련해서 질문있습니다! (오류 사항은 아닙니다!)
안녕하세요. 혼자 개인 프로젝트를 하면서 강의를 듣고 있는데 궁금한 점이 생겨서 질문 남깁니다! 현재 projectA 안에 프론트, 백 폴더를 제로초님처럼 만들어놓고 프론트는 react+typescript / 백은 nestjs+typescript 로 전부 설치해놓은 상태입니다.다만, 이렇게 할 경우 proxy 설정을 프론트에서 해줘야 된다고 하여 아래 처럼 설정을 해당 강의 듣기전에 구글링하여 만들어놨었습니다. 미들웨어 설치 npm i http-proxy-middlewareprojectA > pront > src > setupProxy.tsconst { 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();
-
해결됨데이터 분석 SQL Fundamentals
postgresql 설치 오류
안녕하세요. 프로그램 설치시 하기 오류가 뜨는데요..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.인터넷 참조해서 방화벽도 없애보고 했는데 설치가 안되어서 글을 남깁니다. 배워볼려고 하는데 설치부터 안되니 답답합니다.