묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
파괴 되었다는 메세지 미출력 등
안녕하세요 일단 좋은 강의 감사드립니다. 몇가지 질문이 있어서 질문 남깁니다.! 1.randint 의 변수를 50,100 까지 늘려서 출력해보니 파괴되었다는 메세지는 출력되지않습니다. 본 코드에 어떤이상이 있어서 그런걸까요.. 2. 출력메세지를 보면 마린1,2,3 으로 구분이 안되어 어떤 마린의 피가 몇 달았는지까지 구분감을 주고싶은데 각 유닛의 이름에 구분감을 줄 수 있는 방법이 있을까요? from random import * #일반 유닛 class unit: def __init__(self, name, hp, speed): self.name = name self.hp = hp self.speed = speed print(f"{name} 유닛이 생성됬습니다") def move(self, location): print("[지상유닛 이동]") print(f"{self.name}은 {location} 방향으로 이동합니다.{self.speed} 속도로 이동") def damaged(self, damage): print(f"{self.name} : {damage} 데미지를 입음.") self.hp -= damage print(f"{self.name}의 현재 체력은 {self.hp} 입니다.") if self.damage <= 0: print(f"{self.name} 파괴되었습니다.") # 공격유닛 class attackunit(unit): def __init__(self, name, hp, speed, damage): unit.__init__(self, name, hp, speed) self.damage = damage def attack(self, location): print(f"{self.name} {location}방향으로 {self.damage} 만큼의 데미지" ) #마린 class marine(attackunit): def __init__(self): attackunit.__init__(self,"마린", 40, 1, 5) #스팀팩 def stimpack(self): if self.hp > 10: self.hp -= 10 print(f"{self.name} : 스팀팩을 사용합니다. (hp 10 감소)") else: print(f"{self.name} : 체력이 부족하여 스팀팩을 사용하지 않음") #탱크 class tank(attackunit): #시즈모드 seize_developed = False def __init__(self): attackunit.__init__(self, "탱크", 150, 1, 35) self.seize_mode = False def set_seize_mode(self): if tank.seize_developed == False: return #현재 시즈모드가 아닐때 > 시즈모드 if self.seize_mode == False: print(f"{self.name} : 시즈모드로 전환합니다.") self.damage *= 2 self.seize_mode = True #현재 시즈모드일 떄 > 시즈모드 해제 else: print(f"{self.name} : 시즈모드를 해제합니다.") self.damage /= 2 self.seize_mode = False # 날 수 있는 기능을 가진 클래스 class flyable: def __init__(self,fly_speed): self.fly_speed = fly_speed def fly (self, name, location): print(f"{name} {location} 방향으로 {self.fly_speed} 로 날아감") #공중 공격 유닛 클래스 class flyableattackunit(attackunit, flyable): def __init__(self, name, hp, damage, fly_speed): attackunit.__init__(self, name, hp, 0, damage) #지상스피드 0 flyable.__init__(self, fly_speed) def move (self, location): print("[공중유닛 이동]") self.fly(self.name, location) #레이스 class wraith(flyableattackunit): def __init__(self): flyableattackunit.__init__(self,"레이스", 80, 20, 5) self.clocked = False #클로킹 모드 (해제상태) def clocking(self): if self.clocked == True: print(f"{self.name} : 클로킹 모드 해제합니다. ") self.clocked = False else: print(f"{self.name} : 클로킹 모드 설정합니다") self.clocked == True def game_start(): print("[알림] 새로운 게임을 시작합니다.") def game_over(): print("player : gg") print("[player] 님이 게임에서 퇴장하셨습니다.") #실제 게임 진행 game_start() m1 = marine() m2 = marine() m3 = marine() t1 = tank() t2 = tank() w1 = wraith() attack_units = [] attack_units.append(m1) attack_units.append(m2) attack_units.append(m3) attack_units.append(t1) attack_units.append(t2) attack_units.append(w1) #전군이동 for units in attack_units: units.move("1시") #탱크 시즈모드 개발 tank.seize_developed = True print("[알림] 탱크 시즈모드 개발이 완료되었습니다.") #공격 모드 준비 (마린 : 스팀팩, 탱크 : 시즈모드, 레이즈 : 클로킹) for units in attack_units: if isinstance(units, marine): units.stimpack() elif isinstance(units, tank): units.set_seize_mode() elif isinstance(units, wraith): units.clocking() #전군 공격 for units in attack_units: units.attack("1시") #전군 피해 for units in attack_units: units.damaged(randint(30,40)) #공격은 랜덤 (5~21) #끝 game_over()
-
미해결홍정모의 따라하며 배우는 C++
연습문제 출력관련
출력했을때 뒤에 이상한 문자가 나오는데 왜그런건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
서비스 클래스의 join 안에서 중복회원검증 후?
서비스 클래스의 join 안에서 중복회원검증 함수에서 illegalstate exception을 던지게 되면 memberRepository.save()를 수행하지 않게끔 해야하는거 아닌가요? 저 상태면 중복된 회원이 있건없건 save를 하게되는게 아닌지 여쭙고자합니다!
-
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
jacksonfilter, 그리고 @valid 질문드립니다.
삭제된 글입니다
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
혼자서 점프 하는 애니메이션을 넣어 봤습니다ㅜㅜ
삭제된 글입니다
-
미해결[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
강의 자료가 없어요
강의 자료가 없는데 오류인가요?
-
미해결스프링 핵심 원리 - 기본편
안녕하세요! 질문 있습니다.
안녕하세요 좋은 강의 잘 듣고 있습니다. node.js , Golang 등 다양한 백엔드 언어가 많은데 이것들도 객체지향적으로 프로그래밍이 가능한 것이 있는걸로 알고있습니다. 혹시 다른 언어가 아닌 스프링을 사용하는 이유가 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
querydsl 이 안됩니다.ㅜㅜ
안녕하세요? 강사님!! 항상 강의 잘듣고 있습니다. 다름이 아니라, 제가 build.gradle 에서 querydsl 을 설정 하고 코끼리 모양 버튼 눌렀는데 계속 에러가 떠서 이렇게 질문 드립니다. 항상 좋은 강의 와 답변 감사드립니다 ^^ //querydsl 추가buildscript { dependencies { classpath("gradle.plugin.com.ewerk.gradle.plugins:querydslplugin:1.0.10") }}plugins { id 'org.springframework.boot' version '2.4.1' id 'io.spring.dependency-management' version '1.0.10.RELEASE' id 'java'}group = 'jpabook'version = '0.0.1-SNAPSHOT'sourceCompatibility = '11'//apply plugin: 'io.spring.dependency-management'apply plugin: "com.ewerk.gradle.plugins.querydsl"configurations { compileOnly { extendsFrom annotationProcessor }}repositories { mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } //querydsl 추가 implementation 'com.querydsl:querydsl-jpa' //querydsl 추가 implementation 'com.querydsl:querydsl-apt'}test { useJUnitPlatform()}//querydsl 추가//def querydslDir = 'src/main/generated'def querydslDir = "$buildDir/generated/querydsl"querydsl { library = "com.querydsl:querydsl-apt" jpa = true querydslSourcesDir = querydslDir}sourceSets { main { java { srcDirs = ['src/main/java', querydslDir] } }}compileQuerydsl{ options.annotationProcessorPath = configurations.querydsl}configurations { querydsl.extendsFrom compileClasspath}//여기 밑에가 에러 내용입니다.....A problem occurred configuring root project 'jpashop'. > Could not resolve all artifacts for configuration ':classpath'. > Could not find gradle.plugin.com.ewerk.gradle.plugins:querydslplugin:1.0.10. Searched in the following locations: - https://plugins.gradle.org/m2/gradle/plugin/com/ewerk/gradle/plugins/querydslplugin/1.0.10/querydslplugin-1.0.10.pom If the artifact you are trying to retrieve can be found in the repository but without metadata in 'Maven POM' format, you need to adjust the 'metadataSources { ... }' of the repository declaration. Required by: project : Possible solution: - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
전화번호와 자동차등록번호 마스킹 차이점
선생님 전화번호마스킹할 때에는 re.sub('(\d{3})-(\d{2})(\d{2})-(\d{2})(\d{2})', r'\1-\2**-**\5', '010-1234-5678')이런식으로() 괄호 안에 \d 를 그냥 써주셨는데.. 자동차등록번호 마스킹할 때에는 re.sub("([0-9])([가-힣])([\d])([\d]{2})([\d])", r"*\2\3**\5", car_num) 이런식으로()괄호안에 \d를 쓸 때 [] 안에 넣는 이유는 무엇인가요? 별차이가 없는건지.. 왜 []를 써주었는지 궁금합니다..
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
문자열에 뒤쪽에 * 넣으려고 하는데..
선생님~ 이번에는.. car_num = "32가나1234"에서 "32가*1234" 이렇게 만들려고 하는데.. 강의에서처럼 숫자에서는 마지막 한자리만 바뀌는게 되던데.. 문자에서는 적용이 왜 안되나요..?ㅠ 어떻게 해야 할까요?
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
마스킹 연속으로 했을 때
선생님 car_num = "32가나1234"를 "3*가*1234" 이렇게 만들고 싶어서 re.sub("([0-9])([가-힣])([\d]{4})", r"**\3", car_num) 이렇게 해봤는데.. 안되네용..ㅠ 패턴자리에 어떻게 해야 하나요?
-
미해결홍정모의 따라하며 배우는 C++
강사님과 질문 답해주시는 분들께
질문이 아니라서 게시판 성격과 맞지 않는다면 지우도록 하겠습니다. 강의 듣다가 문득 떠오른건데, 좋은 강의와 친절한 답변을 들을 수 있어서 너무 감사하다는 생각이 들었습니다. 페스트 캠퍼트 광고 엄청하길래 갔었는데 교제도 커리큘럼도 없이 그냥 즉흥적으로 하는 것 같은, 이 예기 했다가 저 얘기 했다가 하는 강의를 듣다가 포기했었습니다. 현재 40% 도 못들었지만 정말 만족하고 감사히 듣고 있습니다. 찾아보고 고민해도 모르겠어서 질문하면 엄청 친절한 + 제대로된 답변을 통해서 궁금증도 해결할 수 있었구요. 진심으로 감사드립니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
특정 유저에게 디엠을 보내는 기능
안녕하세요! comment 엔드포인트 부분을 듣다가 질문 드립니다. 익명 유저가 특정 유저에게 디엠을 보낸다고 가정했을 때 엔드포인트를 /<특정유저번호>/post 로 하려고 하는데 이 경우 로그인하지 않은 상태에서 자신이 메세지를 보낼 특정 유저의 번호를 어떻게 넘겨줄 수 있을까요? 그냥 DB상의 이메일이나 닉네임을 그냥 노출시켜도 괜찮을까요? 아니면 암호화를 해야 할까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
질문있습니다.
안녕하세요 제로초님. 제로초님은 실무에서 디자인파일을 받으면 보통 BootStrap, antd, css 라이브러리를 많이 사용하는편인가요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃허브 권한 요청
강의 다시 듣고있습니다. 허용 부탁드리겠습니다 ^^ 인프런 아이디: poptato 인프런 이메일: poptato@naver.com 깃헙 아이디 : poptato1999 깃헙 Username : poptato@naver.com
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
One To One 매핑시 주 테이블
안녕하세요 선생님! One To One 매핑시 주 테이블과 대상테이블을 분리해서 설명해주셨는데요, 주테이블과 대상테이블을 어떤기준으로 정하신건가요? 강의에서는 예시로 보편적으로 Member를 주테이블로 두었다고 생각하고 설명하신건가요?
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
질문있습니다!
User.js 에서 //스키마를 모델로 감싸기 const User = mongoose.model('User', userSchema) //다른 곳에서 쓸수잇게 module.exports = { User } 이부분을 제일 하단에 놓느냐 마느냐에 따라서 오류가 생기는데 이유좀 알고싶어요 로그인 할때 안되서 코드오타 찾다가 위치를 수정하니까 되더라구요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
foreach 단축키
foreach 단축키는 iter 입니다.ㅎㅎ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
enum과 Type
이 강의 때문에 파트1 Reflection도 다시 들었는데 이해가 잘 안되네요 아니면 이해를 한건데 납득을 못하는건지 모르겠씁니다 제가 이해한 enum은 상수에다가 이름을 붙여줘서 가독성을 높이는 기능이다라고 알고 있습니다 파트1에서 typeOf()로 추출한 Type 클래스는 해당 클래스에 엑스레이를 찍어서 정보를 런타임중에 실시간으로 볼 수 있다고 하셨는데요 이 두가지를 섞어서 구현하시는 부분에서 결과적으로 이렇게 하면 Bind() 함수로 저기 enum 타입이 넘어가겠구나라는건 이해가 가는데 그 중간 과정이 이해가 안갑니다 (enum으로 선언된 것들은 뭐라고 불러야 하나요?) enum Buttons { PointButton } void Start() { Bind<Button>(typeof(Buttons)) } void Bind<T>(Type type) { string[] names = Enum.GetNames(type); } 이 부분에서 Start()함수에서 typeof(Buttons)를 써서 나온 값은 Type 클래스이고, Buttons의 정보를 담고 있을테지요 그런데 제 생각에 Buttons의 정보라 함은 "이건 enum 타입이다" 라고 굉장히... 일반적인 정보가 전달 되겠구나라고 생각이 계속들어요(덕분에 계속 상수, 정수 이런쪽으로만 사고를 하네요) 그런데 이것에 대응해서 Enum.GetNames(Type enumType)이라는 함수가 있으니까 더 헷갈립니다 어떻게 이해를 해야하는데 가이드를 해주실 수 있을까요?
-
미해결CSS Flex와 Grid 제대로 익히기
색감 관련 궁금증
chrome 창에서 열었을때랑 firefox에서 열었을 때, 예제의 빨간계열 색감이 달라보이네요. 크롬에서는 약간 탁해보인다면 파이어폭스에서는 쨍한 컬러라고 해야하나요? 이럴경우 색감을 어떻게 맞추어주어야하나요? 갑자기 궁금해져서 ㅎㅎ 앗 그리고 공유해주신 html 파일 보다가 폰트 사이즈는 왜 %로 줬나요? 그리고 -moz-osx 이게 어떤 속성을 준것인지 text-rendering은 무슨 속성인가요? html { font-size: 87.5%; /* 14px */ font-family: Roboto, 'Noto Sans KR', sans-serif; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility !important; }