묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
인터페이스 상속조합에대해서 질문드립니다.
인터페이스 설명하신거보고 상속을 이용해서 여러가지 타입을 레고처럼 조립해서 새로운 형태의 타입을 만들어낼수도 있겠구나 라는 생각을 하게됐습니다.그런데 이게 구조적으로 원래이런건지 몰라서 질문을 드려봅니다.예를 들어서 Iflyable, Ishoutable, Iattackable 이라는 인터페이스를 구현해서각각Iflyable에는 fly라는 함수를 Ishoutable에는 shot이라는 함수를 Iattackable에는 attack이라는 함수를 넣고flyshouter라는 class가 Iflyable과 Ishoutable을 상속받아서 날면서 소리를 지르는 능력을 얻었다고 가정해볼게요.그리고 두번째로 ShoutAttacker라는 class가 Ishoutable과 IAttackable을 상속받아서 소리지르면서 공격을 하는 능력을 얻었다고 가정해보겠습니다.그러면 어찌됐던지 인터페이스가 상속이 돼었기때문에각각 flyshouter => fly와shout라는 함수를 shoutattacker => shout와 attack이라는 함수를 구현해야하잔아요?그러면 결국엔 구현에서 shout라는 공통의 함수를 구현하게 될텐데물론 소리를 지르더라도 뭐 캐릭터에따라서 조금 다르게 소리를 낼수도 있긴하지만 기능자체가 완전 똑같다고 했을때flyshouter와 shoutattacker는 완전 형태가 똑같은 shout 함수를 각각 하나씩 가지고 있어야하는건가요?제가 이질문을 하는 이유는 저렇게 능력들을 인터페이스로 부여받았을때 상속받은 클래스마다 구현을 다 따로하는데 구현부가 완전 똑같은경우에는그냥 복사 붙여넣기로 하나씩 들고 있는게 맞나싶어서 질문 드려봤습니다. 뭐 한두개정도는 복붙해서 사용해도 크게 문제는 없을거같은데지금은 예시로 각각 함수를 하나씩 물고 있는 형태로만 말씀드렸는데 저게 만약에 많아지면 많아지는만큼 늘어나는만큼 계속 복붙을 하는게 맞는지 궁금해서 질문 올렸습니다.
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
버튼 누를시 인포윈도우 닫는 방식 설명좀 다시 부탁드려도 될까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 빈 배열 객체 생성 let infowindow = []; 거기에 for문 돌면서 infowindow 집어넣기infowindowArray.push(infowindow);1,2번 까지는 말 그대로 빈 배열객체를 생성후기존의 infowindow를 집어넣어 기존의 자료가 들어간infowindowArray를 만든것까진 알겠는데그 이후에 3. function closeInfoWindow(){ for (let infowindow of infowindowArray){ infowindow.close(); } };이게 무슨 말 일까요? 사실 모든 원리가 잘 이해가 되질 않습니다..ㅜㅜ기존에는 그냥 인포윈도우 클릭하면 해당정보가 나타나고 그것을 다른 것을 누르면 끄려 그러는데 왜 빈 배열객체를 만드는지 부터 잘 이해가 안되네요..
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
result 에서 결과가 안 나와요.
result 페이지에서 결과가 안 나와요resultname, resultdesc가 안 뜨는데이미지는 선택된 결과 제대로 뜨는 걸로 봐선 알고리즘엔 문제가 없는데 어디서 잘못된 걸까요? 제 코드는 이렇습니다. const main = document.querySelector("#main"); const qna = document.querySelector("#qna"); const result = document.querySelector("#result"); const endpoint = 6; const select = [0, 0, 0, 0, 0, 0]; function claResult() { console.log(select); var result = select.indexOf(Math.max(...select)); return result; } function setResult() { console.log(name); let point = claResult(); const resultname = document.querySelector('.resultname'); resultname.innerHTML = infoList[point].name; var resultImg = document.createElement('img'); const imgDiv = document.querySelector('#resultImg'); var imgURL = '../image/image-' + point + '.png'; resultImg.src = imgURL; resultImg.alt = point; resultImg.classList.add('img-fluid'); imgDiv.appendChild(resultImg); const resultDesc = document.querySelector('.resultDese'); resultDesc.innerHTML = infoList[point].desc; } function goResult() { qna.style.WebkitAnimation = "fadeOut 1s"; qna.style.animation = "fadeOut 1s"; setTimeout(() => { result.style.WebkitAnimation = "fadeIn 1s"; result.style.animation = "fadeIn 1s"; setTimeout(() => { qna.style.display = "none"; result.style.display = "block"; }, 450) }) setResult(); } function addAnswer(answerText, qIdx, idx) { var a = document.querySelector('.answerBox'); var answer = document.createElement('button'); answer.classList.add('answerList'); answer.classList.add('mx-8'); answer.classList.add('py-3'); answer.classList.add('mx-auto'); answer.classList.add('fadeIn'); a.appendChild(answer); answer.innerHTML = answerText; answer.addEventListener("click", function () { var children = document.querySelectorAll('.answerList'); for (let i = 0; i < children.length; i++) { children[i].disabled = true; children[i].style.WebkitAnimation = "fadeOut 0.5s"; children[i].style.animation = "fadeOut 0.5s"; } setTimeout(() => { var target = qnaList[qIdx].a[idx].type; for (let i = 0; i < target.length; i++) { select[target[i]] += 1; } for (let i = 0; i < children.length; i++) { children[i].style.display = 'none'; } goNext(++qIdx); }, 450) }, false); } function goNext(qIdx) { if (qIdx === endpoint) { goResult(); return; } var q = document.querySelector('.qBox'); q.innerHTML = qnaList[qIdx].q; for (let i in qnaList[qIdx].a) { addAnswer(qnaList[qIdx].a[i].answer, qIdx, i); } var status = document.querySelector('.statusBar'); status.style.width = (100 / endpoint) * (qIdx + 1) + '%'; } function begin() { main.style.WebkitAnimation = "fadeOut 1s"; main.style.animation = "fadeOut 1s"; setTimeout(() => { qna.style.WebkitAnimation = "fadeIn 1s"; qna.style.animation = "fadeIn 1s"; setTimeout(() => { main.style.display = "none"; qna.style.display = "block"; }, 450) let qIdx = 0; goNext(qIdx); }, 450); }
-
미해결빅데이터분석기사 실기대비 (R 활용)
섹션 4 작업형 2유형 (16:29) 결과 추가 문의
안녕하세요 선생님, 상세한 강의 잘 듣고 있습니다. 감사합니다. 수강 중, 위의 [섹션4. 2유형] 강의 내용 중 문의사항이 있어 질문을 남깁니다.[동일 내용 문의 링크]맨 마지막 p3에서 2,482명이 나와야 되는거 아닌가요??? - 인프런 | 질문 & 답변 (inflearn.com)문의 커뮤니티 내 동일한 질문이 있어 일부 연장선 문의를 드립니다. (체험) 제2유형 - 체험하기 (goorm.io) - 해당문제model1, model2 을 평균을 내서 최종 모델 p3을 만들고 이를 적용했을 때최근 답변 기준으로 2482개에서 1611개를 제외한 871개의 행이 출력되는 부분은 이해하였습니다.연습 중 제출 형식을 보니, 규정에는 총 2482개의 온전한 데이터 예측 결과를 제출해야 한다고 명시되어 있고이를 강의 상의 871개짜리 데이터로 최종 제출해도 채점 기준에 부합하는지 궁금합니다.저는 TEST 파일은 열 생략이나 결측지 보정 들의 수정이 가해지면 안되는 원본 데이터의 상태로예측 모델을 적용하는 것으로 인지하고 있는데, 해당 부분에 대한 보충 회신을 주시면 감사드리겠습니다. (채점을 위한 기관측의 추가 별도 데이터를 대입하여 예측결과가 실제로 산출되는지 확인하는 부분이 있다하여, 모든 독립변수 행에 대해서도 대응할 수 있는 모델에 대해서 추가 설명이 있으면 도움이 될 것 같습니다.) 제가 강의 내용 중 못 따라간 부분이 있을 수도 있어, 코드 작성 내 놓친 부분이 있는지 계속 수강내용과 확인해 보겠습니다.감사합니다.
-
미해결초보를 위한 도커 안내서
Error establishing a database connection 에러 해결좀 해주세요
윈도우 환경이구요.포트 번호 하나 바꾸지 않고 똑같이 복붙했습니다.윈도우 cmd를 통해 ubuntu 설치 후 mysql, wordpress설치 하고 localhost:8080 접속했는데Error establishing a database connection 에러가 나네요;;;;;;;;; 왜 에러가 나는걸까요..? -MYSQL 생성docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mariadb:10.9 -MYSQL 명령어docker exec -it mysql mysql create database wp CHARACTER SET utf8; grant all privileges on wp.* to wp@'%' identified by 'wp'; flush privileges; quit -워드프레스 명령어docker run -d -p 8080:80 -e WORDPRESS_DB_HOST=host.docker.internal -e WORDPRESS_DB_NAME=wp -e WORDPRESS_DB_PASSWORD=wp wordpress 이렇게 실행했는데 문제가 있는건가요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
querydsl을 사용할 때 java의 Q클래스와 kotlin의 Q클래스 함께사용 가능한가요??
기존에 진행 중이던 프로젝트에서 신규로 개발할 기능들은 kotlin으로 개발하려합니다. 강사님 강의에서 나온 프로젝트의 build.gradle 파일을 참고해서 설정을 하니 java의 Q클래스와 kotlin의 Q클래스가 둘다 생겨버려서 중복이라는 에러가 발생하더군요.... 혹시 java,kotlin 2개를 동시에 Q클래스를 사용할 수 있는 방법은 없을까요??아니면 java의 Q클래스만 생성해서 kotlin에서 java에서 생성한 Q클래스를 사용하면 될까요??그런데 이 방법으로 시도해보려니 설정이 꼬여서 그런지 자꾸 Q클래스는 생성읻되었는데 경로를 못찾는다고 에러가 발생하더라고요ㅠㅠ 좋은 방법있으면 알려주시면 감사하겠습니다. plugins { id 'org.springframework.boot' version '2.2.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' id 'org.jetbrains.kotlin.jvm' version '1.6.21' id 'org.jetbrains.kotlin.plugin.jpa' version '1.6.21' id 'org.jetbrains.kotlin.plugin.spring' version '1.6.21' id 'org.jetbrains.kotlin.kapt' version '1.6.21' } group = 'com.maturi' version = '0.0.1-SNAPSHOT' sourceCompatibility = '8' configurations { compileOnly { extendsFrom annotationProcessor } developmentOnly runtimeClasspath { extendsFrom developmentOnly } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' developmentOnly("org.springframework.boot:spring-boot-devtools") compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' runtimeOnly 'org.mariadb.jdbc:mariadb-java-client:2.7.0' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.modelmapper:modelmapper:2.4.2' testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'com.querydsl:querydsl-jpa' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } implementation group: 'org.javassist', name: 'javassist', version: '3.15.0-GA' implementation group: 'com.google.firebase', name: 'firebase-admin', version: '8.1.0' implementation 'org.springframework.social:spring-social-facebook:2.0.3.RELEASE' implementation 'org.apache.httpcomponents:httpclient:4.5.2' implementation 'com.googlecode.json-simple:json-simple:1.1.1' kapt("com.querydsl:querydsl-apt:5.0.0:jpa") kapt("org.springframework.boot:spring-boot-configuration-processor") } test { exclude { '/**/*' } useJUnitPlatform() } compileKotlin { kotlinOptions { jvmTarget = "8" } } compileTestKotlin { kotlinOptions { jvmTarget = "8" } } def querydslDir = "$buildDir/generated/querydsl" querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } configurations { querydsl.extendsFrom compileClasspath } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl } clean { delete file('src/main/generated') }
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
Custom Getter 에 대해 질문이 있습니다.
안녕하세요 태현님! 이 강의 덕분에 코틀린을 재미있게 학습하고 있습니다. Custom Getter 에 대해 질문이 있어서 질문드립니다. name 을 대문자로 만드는 것을 예시로 Custom Getter 를 사용하는 것과, 프로퍼티로써 사용하는 것에 대해 설명해주셨는데요, 제가 잘 이해하지 못했는지.. 두 방법에 대해 차이가 있는것 같습니다. Custom Getter 를 사용할 경우fun main() { val personTest = PersonTest("abc", 10) println(personTest.name) } class PersonTest ( name: String, var age: Int ) { init { if (age <= 0) { throw IllegalArgumentException("나이는 ${age}일 수 없습니다." ) } println("초기화 블록") } val name = name get() = field.uppercase() }위의 경우 ABC가 출력이 됩니다.생성자를 통해 name 값이 "abc"로 객체가 생성되었으나, custom getter 를 통해 uppercase 되어서 ABC 로 출력되는 것을 볼 수 있습니다. 프로퍼티를 사용하는 경우fun main() { val personTest = PersonTest("abc", 10) println(personTest.name) println(personTest.uppercaseName) } class PersonTest ( val name: String, var age: Int ) { init { if (age <= 0) { throw IllegalArgumentException("나이는 ${age}일 수 없습니다." ) } println("초기화 블록") } val uppercaseName: String get() = this.name.uppercase() }위의 경우는 그대로 "abc" 가 출력이 됩니다.당연히 personTest 객체를 통해 프로퍼티인 upppercaseName을 출력하면 ABC가 출력이 되지만요.. 강의에서 태현님께서 backing field 를 사용하지 않고, 프로퍼티를 통해 사용한다고 하셨는데.. 둘의 작동이 다른 것 같아서요! 제가 짐작컨데, 말씀하신 내용이backing field 처럼 사용되는 경우가 많지 않다.주로 getter 로 값을 가져오는 경우에는 값 자체를 가져오는 경우가 많으므로 프로퍼티를 통해 값을 가져오도록 한다.라고 이해해도 되는 것일까요?
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
g_pHeadNode
g_pHeadNode는 왜 주솟값을null로 갖고있나요?
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
이틀째 설치에서 멈췄어요..제발도와주세요
선생님..ㅠㅠ 이틀째 혼자 해결해보려했지만 도저히 안되겠어서 질문드립니다..주피터랩에서 아래 명령어 실행시 아래 사진처럼 오류가뜹니다... 혹시나 해서 3.11 로 설치된 버전은 윈도우에서 에러뜬다고 해서 다운그레이드로 3.10.9도 했는데 소용이 없습니다 ㅠㅠ에러는 밑에 더 많습니다...!pip install pandas==0.25.3 error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully. exit code: 1 [930 lines of output] C:\Users\E\AppData\Local\Temp\pip-install-pae_e_5b\pandas_3f818e724d534a0eaa4782a616cf7235\setup.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html import pkg_resources C:\Users\E\anaconda3\Lib\site-packages\setuptools\__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! ******************************************************************************** Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`. ******************************************************************************** !! dist.fetch_build_eggs(dist.setup_requires) running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-cpython-311 creating build\lib.win-amd64-cpython-311\pandas copying pandas\conftest.py -> build\lib.win-amd64-cpython-311\pandas copying pandas\testing.py -> build\lib.win-amd64-cpython-311\pandas copying pandas\_typing.py -> build\lib.win-amd64-cpython-311\pandas copying pandas\_version.py -> build\lib.win-amd64-cpython-311\pandas copying pandas\__init__.py -> build\lib.win-amd64-cpython-311\pandas creating build\lib.win-amd64-cpython-311\pandas\api copying pandas\api\__init__.py -> build\lib.win-amd64-cpython-311\pandas\api creating build\lib.win-amd64-cpython-311\pandas\arrays copying pandas\arrays\__init__.py -> build\lib.win-amd64-cpython-311\pandas\arrays creating build\lib.win-amd64-cpython-311\pandas\compat copying pandas\compat\chainmap.py -> build\lib.win-amd64-cpython-311\pandas\compat copying pandas\compat\pickle_compat.py -> build\lib.win-amd64-cpython-311\pandas\compat copying pandas\compat\_optional.py -> build\lib.win-amd64-cpython-311\pandas\compat copying pandas\compat\__init__.py -> build\lib.win-amd64-cpython-311\pandas\compat creating build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\accessor.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\algorithms.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\api.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\apply.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\base.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\common.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\config_init.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\frame.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\generic.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\index.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\indexers.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\indexing.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\missing.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\nanops.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\resample.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\series.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\sorting.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\strings.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\window.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\__init__.py -> build\lib.win-amd64-cpython-311\pandas\core creating build\lib.win-amd64-cpython-311\pandas\errors copying pandas\errors\__init__.py -> build\lib.win-amd64-cpython-311\pandas\errors creating build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\api.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\clipboards.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\common.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\date_converters.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\feather_format.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\gbq.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\gcs.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\html.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\packers.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\parquet.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\parsers.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\pickle.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\pytables.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\s3.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\spss.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\sql.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\stata.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\__init__.py -> build\lib.win-amd64-cpython-311\pandas\io creating build\lib.win-amd64-cpython-311\pandas\plotting copying pandas\plotting\_core.py -> build\lib.win-amd64-cpython-311\pandas\plotting copying pandas\plotting\_misc.py -> build\lib.win-amd64-cpython-311\pandas\plotting copying pandas\plotting\__init__.py -> build\lib.win-amd64-cpython-311\pandas\plotting creating build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_algos.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_base.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_common.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_compat.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_downstream.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_errors.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_expressions.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_join.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_lib.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_multilevel.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_nanops.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_optional_dependency.py -> build\lib.win-amd64-cpython-311\pandas\tests
-
해결됨일잘하는 마케터, MD에게 꼭 필요한 파이썬 데이터 분석
5강에서 Error가 뜹니다.
5강에서 최신 코드를 복사-붙여넣었음에도 불구하고 Error문구가 뜹니다. (driver가 defined되지 않았다고 합니다.)수정 필요 지점 확인 부탁드릴 수 있을까요? 테스트경로 :https://colab.research.google.com/drive/1Jhx3zJjTJ5Yu33a1DuSbRMLL98jJcSz3?usp=sharing
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
static/base.css파일을 인식을 못합니다
이전 강의 내용까지는 다 되었고 개발자 모드 들어가서 뜯어봐도 클래스 값이랑 다 지정 잘 되있고 setting파일, head 파일 전부 오타 없는걸 5번은 확인한것 같습니다. 그런데 base.css에 옮긴것만 되지 않습니다.답답해서 static 파일 및 base.css를 삭제해도 문제 없이 css만 없는채로 만들어지는데 어떻게 해결하나요?개발환경은 구름ide를 활용하고 있는데 혹시 이게 문제가 될 수 있을까요?인터넷의 자주 실수하는 해결방법은 모두 해보았습니다
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
copypage 라는 명령어는 어디서 보나요?
1. HwpCtrl API.hwp2. Action Table.hwp3. ParameterSet Table.hwp4. HwpAutomation.hwp요 한글파일이나한컴오피스 홈페이지 개발메뉴얼에 copypage 라는 명령어는 찾아도 안나와서요...python용으로 쓸려면 어떤 문서를 참고해야하는지..그리고첫쪽 복사후붙여넣을때다음페이지에 붙여넣는코드가 어딘지 궁금합니다PutFieldText 인덱스가 +1 될때 자동으로 페이지가 늘어나나요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
2019에서 콘솔 앱이 .net framework로 밖에 솔루션 생성이 안됩니다.
visual studio 2019 community를 다운로드 하여 설치하였는데요.콘솔앱을 설치하려고 하면 .net Framework버전만 솔루션이 생성이됩니다. 질문글을 보니 콘솔 애플리케이션으로 선택하고 생성하면 될 것 같아서 실행해 보고 있는데요. 이런 식으로 .net 5.0 지원되지 않음으로 뜨면서 콘솔 어플리케이션 자체가 생성이 안되고 있어요.Array.Fill()함수가 생성되지 않아서 알아보다가 결국 질문글 올립니다. 비주얼 스튜디오 2019 커뮤니티 공홈에서 받았구요. 이럴때는 어떻게 해결해야 좋을까요?대안으로 2022 버전으로 사용하는게 좋을지도 문의 드려요.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
sendgrid 메일 발송이 안됩니다 ㅠㅠ
7개월 전에 이 기능을 구현을 했고, python shell 로 메일보내서 1 확인 후 메일 확인, 실제로 회원가입 후 메일 발송되는 것까지 확인을 했습니다.sendgrid 회원가입은 구글 계정으로, sender 계정 이메일은 naver 이메일로 하였었구요. send_grid_api_key 값은 잘 지정해주었습니다 ㅜㅜ 아직도 python shell 에서 메일을 보내보면 1이 잘 뜨는데 메일이 발송되지 않습니다.. 스팸메일함 전체메일함 다 확인했는데도 안되네요 ㅜㅜㅜㅜ혹시 몰라서 sender authentication 부분 첨부합니다 ㅜㅜclass User(AbstractUser): class GenderChoices(models.TextChoices): MALE = "M", "남성" #전자는 DB에 저장되는 값, 후자는 실제 보여지는 값 FEMALE = "F", "여성" sns_url = models.URLField(blank=True) bio = models.TextField(blank=True) phone_number = models.CharField(max_length=13, blank=True, validators=[RegexValidator(r"^010-?[1-9]\d{3}-?{4}$")]) gender = models.CharField(max_length=1, blank=True, choices=GenderChoices.choices) avatar = models.ImageField(blank=True, upload_to="accounts/avatar/ $Y/%m/%d") def send_welcome_email(self): subject = render_to_string("accounts/welcome_email_subject.txt", { "user": self, }) content = render_to_string("accounts/welcome_email_content.txt", { "user": self, }) sender_email = settings.WELCOME_EMAIL_SENDER send_mail(subject, content, sender_email, [self.email], fail_silently=False) # SEND GRID 설정 SENDGRID_API_KEY = os.environ.get("SENDGRID_API_KEY") EMAIL_HOST = 'smtp.sendgrid.net' EMAIL_HOST_USER = 'apikey' EMAIL_HOST_PASSWORD = SENDGRID_API_KEY EMAIL_PORT = 587 EMAIL_USE_TLS = True WELCOME_EMAIL_SENDER = "신상정보라가렸습니다!!@naver.com"각각 models.py 와 common.py 입니다 ㅜㅜ
-
미해결[React 2부] 고급 주제와 훅
[3.3장 부수효과 훅] 훅을 만드는 과정 중 드는 궁금증
리액트 훅들을 직접 구현하는 과정을 보고 있습니다. 크게 다른 부분들은 어려움은 없는데 사소한 궁금증이 있습니다. MyReact 컴포넌트 내부에 훅을 구현할 때 arrow function이 아닌 function ... () { ... } 표현으로 함수를 구현하는 특별한 이유가 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
nunique에 관해 문의 드려요.
작업형 1-3에서 a.nunique().sort_values(ascending=False).index[0] 명령을 보내면,nunique중 첫 번째 문자열과 두 번째 개수 중에 개수로 정렬되는 이유가 궁금하고..index[0]를 하면 문자열만 나오는 이유도 궁금하네요. 저렇게 하면 왜 정렬된 첫번째 열의 이름과 개수가 함께 나오지 않는지..두 명령 모두 문법이 눈에 익지 않네요..
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
탭메뉴 갤러리클릭하면 갤러리들이안나오고 공지사항이그대로보이는데 뭐가잘못됬을까요 ..
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>a연습</title> <link rel="stylesheet" href="css/a연습.css"> </head> <body> <div class="container"> <header> <div class="header-logo"></div> <div class="navi"> <ul class="menu"> <li> <a href="#none">탑</a> <div class="sub-menu"> <a href="#none">블라우스</a> <a href="#none">티</a> <a href="#none">셔츠</a> <a href="#none">니트</a> </div> </li> <li> <a href="#none">아우터</a> <div class="sub-menu"> <a href="#none">자켓</a> <a href="#none">코트</a> <a href="#none">가디건</a> <a href="#none">머플러</a> </div> </li> <li> <a href="#none">팬츠</a> <div class="sub-menu"> <a href="#none">청바지</a> <a href="#none">짧은바지</a> <a href="#none">긴바지</a> <a href="#none">레깅스</a> </div> </li> <li> <a href="#none">악세사리</a> <div class="sub-menu"> <a href="#none">귀고리</a> <a href="#none">목걸이</a> <a href="#none">반지</a> <a href="#none">팔찌</a> </div> </li> </ul> </div> </header> <div class="slide"> <div></div> </div> <div class="items"> <div class="news"> <div class="tab-inner"> <div class="btn"> <span class="active">공지사항</span> <span>갤러리</span> </div> <div class="tabs"> <div class="tab1"> <a class="open-modal" href="#none">운영위원장 후보자 추천을 받고 있습니다. <b>2020.01.09</b> </a> <a href="#none">홈커밍데이 진행위원회 결과를 다운로드 받으세요. <b>2020.01.07</b> </a> <a href="#none">카드결제 무이자 이벤트 한시적 10월 20일까지 <b>2019.12.31</b> </a> <a href="#none">보안강화 시스템 작업 안내 공지 <b>2019.12.20</b> </a> <a href="#none">부여 가을연꽃축제 10주년 콘서트 축제 <b>2019.12.20</b> </a> </div> <div class="tab2"> <a href="#none"><img src="imges/d-1images/gallery-1.jpg" alt="gallery1"></a> <a href="#none"><img src="imges/d-1images/gallery-2.jpg" alt="gallery2"></a> <a href="#none"><img src="imges/d-1images/gallery-3.jpg" alt="gallery3"></a> </div> </div> </div> </div> <div class="banner"></div> <div class="shortcut"></div> </div> <footer> <div class="footer-logo"></div> <div class="copyright"></div> <div class="sns"></div> </footer> </div> <div class="modal"> <div class="modal-content"> <h2>부여 가을연꽃축제 팸투어 모집</h2> <p>예비 청년상인들을 위해 진행하는 부여에서 청춘의 미래를 디자인하다. 청년창업人부여 팸투어가 12월 05일 토요일 충청남도 부여에서 진행됩니다. 팸투어는 전액 무료로 진행되며 참가비 없습니다. 이번 팸투어에서는 부여군상권활성화재단의 청년상인 육성프로젝트를 실제로 견학하며 확인해 보실 수 있는 좋은 기회이니 창업을 희망하는 많은 청년 분들의 관심 부탁드립니다. 온라인 및 전화 또는 메일 등으로 사전 참가신청하실 수 있습니다!</p> <a class="close-modal" href="#none">닫기</a> </div> </div> <script src="script/jquery-1.12.4.js"></script> <script src="script/연습용custom.js"></script> </body> </html> @charset "UTF-8"; body{ margin: 0; background-color: #fff; } a{ font-size: 15px; color: #333; list-style: none; text-decoration: none; } .container{ border: 1px solid #000; width: 1200px; } header{ display: flex; justify-content: space-between; } header > div{ border: 1px solid #000; height: 100px; } .header-logo{ width: 200px; } .navi{ width: 600px; } .menu{ padding: 0; list-style: none; margin-top: 30px; } .menu li{ float: left; width: 25%; text-align: center; box-sizing: border-box; } .menu li > a{ border: 1px solid pink; display: block; padding: 5px; transition: 0.5s; } .menu li:hover > a{ background-color: pink; color: #fff; } .sub-menu{ border: 1px solid pink; display: none; } .sub-menu a{ display: block; padding: 5px; transition: 0.5s; } .sub-menu a:hover{ background-color: palevioletred; color: #fff; } .slide{} .slide > div{ border: 1px solid #000; height: 300px; } .items{ display: flex; } .items > div{ border: 1px solid #000; height: 200px; } .news{ width: 500px; } /*tab-inner*/ .tab-inner{ width: 97%; margin: auto; margin-top: 5px; } .btn{} .btn span{ border: 1px solid #000; display: inline-block; width: 100px; margin-right: -6px; padding: 4px; text-align: center; border-radius: 7px 7px 0 0; background-color: #ddd; border-bottom: none; margin-bottom: -1px; cursor: pointer; } .btn span.active{ background-color: #fff; } .tabs{} .tabs > div{ border: 1px solid #000; height: 150px; } .tab1{} .tab1 a{ display: block; border-bottom: 1px dashed #000; padding: 5px; } .tab1 a:last-child{ border-bottom: none; } .tab1 a b{ float: right; font-weight: normal; } .tab2{ display: none; } .banner{ width: 350px; } .shortcut{ width: 350px; } footer{ display: flex; } footer > div{ border: 1px solid #000; height: 100px; } .footer-logo{ width: 200px; } .copyright{ width: 800px; } .sns{ width: 200px; } /*modal*/ .modal{ background-color: rgba(0, 0, 0, 0.5); position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: none; } .modal-content{ background-color: #fff; width: 400px; height: 400px; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); } .modal-content h2{ background-color: powderblue; text-align: center; } .modal-content p{ line-height: 1.5em; padding: 10px; } .close-modal{ border: 1px solid #000; padding: 5px 5px; margin-right: 30px; float: right; } /*tab-inner*/ $('.btn span:first-child').click(function(){ $('tab1').show() $('tab2').hide() $(this).addClass('active') $(this).siblings().removeClass('active') }) $('.btn span:last-child').click(function(){ $('tab2').show() $('tab1').hide() $(this).addClass('active') $(this).siblings().removeClass('active') })갤러리부분에 이미지도 넣어놨는데 tab2 부분이 안나타나고 tab1 부분만 그대로 나와움직이질않습니다 span부분클릭해도 tab1부분만 나와있어요 어디서부터 잘못된걸까요 전에꺼랑 비교햇을때 똑같은데 어떤게 잘못됫나요 ,,,
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
글 삭제 컨펌 팝업에서 취소를 눌렀을 때
postDetail에서 삭제버튼을 누른 후 뜬 삭제 하시겠습니까? 팝업 창에서 취소를 눌러도로딩 스핀이 생겨요. 왜 그럴까요??<html><div class="col-auto"> <button class="btn btn-danger" @click="remove" :disabled="removeLoading" > <template v-if="removeLoading"> <span class="spinner-grow spinner-grow-sm" aria-hidden="true" ></span> <span class="visually-hidden" role="status">Loading...</span> </template> <template v-else>삭제</template> </button> </div><setup>const removeError = ref(null); const removeLoading = ref(false); const remove = async () => { try { if (confirm('삭제 하시겠습니까?') === false) { return; } removeLoading.value = true; await deletePost(props.id); vSuccess('삭제가 완료되었습니다.'); router.push({ name: 'postList' }); } catch (err) { removeError.value = err; vAlert(err.message); } finally { removeLoading.value = true; } }; 취소를 하면 저절로 false가 돼서 removeLoading.value = true로 안넘어가야하는 것 아닌가요?제가 빼먹은 부분이 어디일까요 ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경에서 sklearn이 안불러집니다.
체험 제1유형을 풀려고 했으나, preprocessing 이 안불러집니다. 혹시 시험에서 사용할 수 없는지 궁금합니다.
-
미해결[2025 개정판] 빅데이터분석기사 실기 (with Python)
시험환경 체험 & 연습사이트의 작업3형 문제풀이
시험환경 체험 & 연습사이트의 작업3형에 대한 문제풀이 요청드립니다.