묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]
격국 질문 드립니다
본인 사주의 격국을 찾는 로직이나 알고리즘도 있을까요? 수강중인데 그부분에 대해서는 안나와 있는건가해서요!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 관련 질문 드립니다!
안녕하세요 큰돌님! 다름이 아니라 1-K를 이런 식으로 풀어봤습니다. 하지만 자꾸 틀리는데 반례를 못찾겠어서 질문 드려봅니다. <코드 설명>저 같은 경우 map을 이용해 <한 문자, 문자 개수>를 만들어 개수가 홀수인 문자가 2개 이상이면 "I' m sorry Hansoo"를 출력하며 종료하고 그 외에는 팰린드롬을 만듭니다. 팰린드롬은 다시 문자의 개수가 홀수인 문자가 존재하는 경우와 아닌 경우로 나뉘는데, 존재하는 경우 tmp에 잠시 저장해놓고 나머지는 ret에 철자순으로 저장합니다그리고 tmp를 ret에 붙인 다음에 substr로 해당 문자열을 복사한 뒤 temp에 저장합니다. 마지막으로 temp를 reverse로 역순배치를 하여 ret에 이어붙입니다.최종적으로 이를 출력하는 로직입니다.(문자의 개수가 모두 짝수인 경우는 tmp를 ret에 붙이는 과정만 없고 나머진 동일합니다)정말 열심히 생각해서 풀었는데 왜 틀렸는지 조차 몰라서 매우 속상합니다...반례나 틀린 부분이 어디인지 알려주신다면 정말 정말 감사하겠습니다...! #include <bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); map<char, int> mp; string word, ret; bool isOdd = false; int cnt = 0; char tmp; cin >> word; for(int i = 0; i < word.size(); i++) { mp[word[i]]++; } for(auto it : mp) { if((it).second % 2 == 1) { cnt++; if(cnt > 1) { cout << "I'm Sorry Hansoo"; break; } tmp = (it).first; isOdd = true; for(int i = 0; i < (it).second / 2; i++){ ret += (it).first; } } else { for(int i = 0; i < (it).second / 2; i++){ ret += (it).first; } } } string word2 = ret; if(isOdd) { word2 += tmp; string temp = ret.substr(0, temp.size() - 1); reverse(temp.begin(), temp.end()); word2 += temp; } else { string temp = ret.substr(0, temp.size()); reverse(temp.begin(), temp.end()); word2 += temp; } if(cnt < 2) cout << word2; return 0; }
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
실전문제 해설 pdf 파일
안녕하세요 강사님, 실전문제풀이 해설 pdf 받을 수 있는지 문의 드립니다! 이메일 : kbm17@naver.com감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
생성자가 하나인경우 자동으로 스프링 bin 등록?
스프링 JdbcTemplate 강의 2분 17초 내용 관련하여 질문이 있습니다.생성자가 딱 하나 있으면 자동으로 스프링 bin 에 등록이 되어서 @autowire를 생략할 수 있다고 하는데, 그럴려면관리하고 싶은 객체 클래스에 @Controller, @service, @Repository 혹은 자바로 등록하는 방법인 @Configuration 과 @bean 이 필요하잖아요하지만 2분 17초 화면에서는 위와 같은 애노테이션을 찾아 볼 수 없고, 상속받은 MemberRepostiory 가 자바로 빈에 등록 되어있는 것을 볼 수 있습니다.내가 스프링 bin에 등록하여 관리하고 싶은 객체가 클래스위에 직접 선언 혹은 implements 로 상속받은 클래스가 bin으로 등록 되어 있다면 위의 경우 모두 똑같이 생성자가 딱 하나 있다면, @autowire를 생략할 수 있다고 생각하면 되는지 궁금합니다. 만약 틀리다면 아닌 이유에 설명 부탁드립니다. 또한 @Override 를 붙이는 이유에 대해서도 설명 부탁드립니다.
-
해결됨웹 게임을 만들며 배우는 React
제로초님 안녕하세요!! setInterval clearInterval 실행위치 부탁드립니다.
제로초님 안녕하세요!! setInterval clearInterval 실행위치 부탁드립니다. import { useRef, useEffect } from 'react';function useInterval(callback, delay) {const savedCallback = useRef();useEffect(() => {savedCallback.current = callback;});useEffect(() => {function tick() {savedCallback.current();}if (delay !== null) {let id = setInterval(tick, delay);return () => clearInterval(id); 요부분!!}}, [delay]);return savedCallback.current;}export default useInterval;질문1. if문에서 return에 단지 익명함수를 작성하고 그 익명함수의 return으로 clearInterval 을 적어준건데 왜 익명함수가 실행되어 clearInterval이 등록이되는건가요?? if의 함수의 리턴값이 익명함수의 주소아닌가요?질문2. if에서 reutnrn에 익명함수가 실행되었고 clearinterval이 등록되었다고 치면 왜 delay가 빠꼈을때 실행되는거에요?? ㅠㅠ부탁드립니다. 이해하고싶어요 4시간째 구글링하고 찾아봐도 이해가안되네요..다른분답변에서 setInterval 500으로 실행되면서 return쪽 clearInterval 코드도 등록됩니다. 이 부분도 왜 등록이 되는건가요?ㅠ
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
검색 기능 sql인젝션 질문이 있습니다.
안녕하세요. 강의해주셔서 감사합니다.가끔씩 연습을 하다보면 % 만 입력했을 시 전체데이터가 뱉어지는 경우가 있는데,배운대로,SELECT * FROM board WHERE title like '%검색어%' 라면SELECT * FROM board WHERE title like '%%%'가 될 것 같습니다.이게 어떤 원리로 전체 데이터가 출력이 되는 건지 궁금합니다. 입력한 %가 메타문자(와일드카드)로 인식되어 전체출력이 되는 걸까요?그리고 싱글쿼터만 넣어도 전체 데이터가 출력되는 경우도 있던데 이것도 어떤 원리인지 너무 궁금합니다...! 알려주시면 감사하겠습니다.
-
해결됨토비의 스프링 부트 - 이해와 원리
THIS!
안녕하세요, 자바 기본 적인 질문 한가지만 드릴게요...! public class HellobootApplication { public static void main(String[] args) { GenericWebApplicationContext applicationContext = new GenericWebApplicationContext() { @Override protected void onRefresh() { super.onRefresh(); ServletWebServerFactory serverFactory = new TomcatServletWebServerFactory(); WebServer webServer = serverFactory.getWebServer(servletContext -> { servletContext.addServlet("dispatcherServlet", new DispatcherServlet(this)) .addMapping("/*"); }); webServer.start(); } }; applicationContext.registerBean(HelloController.class); applicationContext.registerBean(SimpleHelloService.class); applicationContext.refresh(); }} 여기서 this는 HellobootApplication class가 아닌, applicationContext 를 지칭 하는게 맞을까요..?매번 this가 조금씩 헷갈리네요 ,,,, 이상한 질문 죄송합니다....!
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
선생님 UDP 관련 질문입니다.
혼자서 공부를 하다보니 UDP를 사용하는 예시로서 DNS에 질의를 보내는것 있다는 것을 알게되었습니다.혹시 DNS에 UDP를 사용하는 이유에 대해서 알려주실 수 있으실까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
자동주입이 안되고 있습니다. ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)주입이 안되고 있는데 왜그런지 모르겠습니다 ㅠㅠ
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
문의
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> 도형 로딩 애니메이션-01 </title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="loading"> <span></span> <span></span> <span></span> </div> </body> </html>@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100&display=swap'); body { font-family: 'Noto Sans KR', sans-serif; line-height: 1.5em; margin: 0; font-weight: 300; display: flex; justify-content: center; align-items: center; height: 100vh; } a { text-decoration: none; } .loading {} .loading span { display: inline-block; width: 15px; height: 15px; background-color: gray; background-repeat: 50%; } .loading span:nth-child(1) {} .loading span:nth-child(2) {} .loading span:nth-child(3) {} @keyframes loading { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 0; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.5); } }도형 자체가 만들어지지 않는데 뭐가 문제일까요?VS CODE 사용중입니다.
-
미해결
hibernate 프로젝트 생성 관련 문의
기존 강의에서는 Maven프로젝트로 hibernate 5.3.10 버전으로 프로젝트 생성이 되어 있습니다 저는 java 17버전으로 gradle 프로젝트로 생성하고 spring-boot 3.0.4 버전으로 잡고 강의를 수강을 할려고 합니다 해당 URL에서https://docs.spring.io/spring-boot/docs/3.0.4/reference/htmlsingle/#appendix.dependency-versions.coordinateshibernate-core 버전을 확인 하여 hibernate 6.1.7 https://hibernate.org/orm/documentation/getting-started/build.gradle plugins { id 'java' } group 'com.lee.test' version '1.0.0' repositories { mavenCentral() } dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' implementation 'org.hibernate:hibernate-core:6.1.7.Final' implementation 'com.h2database:h2:2.1.214' } test { useJUnitPlatform() }resources/META-INF/persistence.xml<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="hello"> <properties> <!-- 필수 속성 --> <property name="jakarta.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="jakarta.persistence.jdbc.user" value="sa"/> <property name="jakarta.persistence.jdbc.password" value=""/> <property name="jakarta.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.hbm2ddl.auto" value="create" /> </properties> </persistence-unit> </persistence>Entity Classpackage hijpa; import jakarta.persistence.Entity; import jakarta.persistence.Id; @Entity public class Member { @Id private Long id; private String name; public Member() {} public Member(Long id, String name) { this.id = id; this.name = name; } }Main Classpackage hijpa; import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManagerFactory; import jakarta.persistence.EntityTransaction; import jakarta.persistence.Persistence; public class JPAmain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); Member member = new Member(1L,"hi"); em.persist(member); tx.commit(); em.clear(); emf.close(); } } IDE 설정은 아래와 같습니다 실행결과"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2021.3.2\lib\idea_rt.jar=64376:C:\Program Files\JetBrains\IntelliJ IDEA 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\User\IdeaProjects\stduy\jpa-basic\out\production\classes;C:\Users\User\IdeaProjects\stduy\jpa-basic\out\production\resources;C:\Users\User\.gradle\caches\modules-2\files-2.1\com.h2database\h2\2.1.214\d5c2005c9e3279201e12d4776c948578b16bf8b2\h2-2.1.214.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\org.hibernate.orm\hibernate-core\6.1.7.Final\343f47b34c96fe9c44bf9b219a7b3c5d6d2fc90e\hibernate-core-6.1.7.Final.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\jakarta.persistence\jakarta.persistence-api\3.0.0\affc7884a85b6876d438a88b5d21ea29b1cc2dd8\jakarta.persistence-api-3.0.0.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\jakarta.transaction\jakarta.transaction-api\2.0.0\24a0525b4acfbca4086d2f1278be3a084fe1c67d\jakarta.transaction-api-2.0.0.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\org.jboss.logging\jboss-logging\3.4.3.Final\c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea\jboss-logging-3.4.3.Final.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\org.hibernate.common\hibernate-commons-annotations\6.0.6.Final\77a5f94b56d49508e0ee334751db5b78e5ccd50c\hibernate-commons-annotations-6.0.6.Final.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\org.jboss\jandex\2.4.2.Final\1e1c385990b258ff1a24c801e84aebbacf70eb39\jandex-2.4.2.Final.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\com.fasterxml\classmate\1.5.1\3fe0bed568c62df5e89f4f174c101eab25345b6c\classmate-1.5.1.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy\1.12.18\875a9c3f29d2f6f499dfd60d76e97a343f9b1233\byte-buddy-1.12.18.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\jaxb-runtime\3.0.2\9897322f5de201bfbfcd1f4f46ffdd4204673b3c\jaxb-runtime-3.0.2.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\jakarta.xml.bind\jakarta.xml.bind-api\3.0.1\5257932df36ff3e4e6de50429dde946490a6a800\jakarta.xml.bind-api-3.0.1.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\jakarta.inject\jakarta.inject-api\2.0.0\46fc8560b6fd17b78396d88f39c1a730457671f0\jakarta.inject-api-2.0.0.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\org.antlr\antlr4-runtime\4.10.1\10839f875928f59c622d675091d51a43ea0dc5f7\antlr4-runtime-4.10.1.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\jaxb-core\3.0.2\e83d0b0005525ddd8b8642bd0bb02227fcf871f1\jaxb-core-3.0.2.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\com.sun.activation\jakarta.activation\2.0.1\828b80e886a52bb09fe41ff410b10b342f533ce1\jakarta.activation-2.0.1.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\txw2\3.0.2\8c448a44cdcdbb5dd48ff2eb88cab858ed52cf91\txw2-3.0.2.jar;C:\Users\User\.gradle\caches\modules-2\files-2.1\com.sun.istack\istack-commons-runtime\4.0.1\4e25c41d338aad4a2c92d0020c9ae0335fad5099\istack-commons-runtime-4.0.1.jar hijpa.JPAmain3월 14, 2023 9:18:28 오후 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformationINFO: HHH000204: Processing PersistenceUnitInfo [name: hello]3월 14, 2023 9:18:28 오후 org.hibernate.Version logVersionINFO: HHH000412: Hibernate ORM core version 6.1.7.Final3월 14, 2023 9:18:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configureWARN: HHH10001002: Using built-in connection pool (not intended for production use)3월 14, 2023 9:18:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001005: Loaded JDBC driver class: org.h2.Driver3월 14, 2023 9:18:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001012: Connecting with JDBC URL [jdbc:h2:tcp://localhost/~/test]3월 14, 2023 9:18:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001001: Connection properties: {password=****, user=sa}3월 14, 2023 9:18:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001003: Autocommit mode: false3월 14, 2023 9:18:29 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>INFO: HHH10001115: Connection pool size: 20 (min=1)3월 14, 2023 9:18:29 오후 org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl logSelectedDialectINFO: HHH000400: Using dialect: org.hibernate.dialect.H2Dialect3월 14, 2023 9:18:29 오후 org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateServiceINFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]Exception in thread "main" java.lang.IllegalArgumentException: Unable to locate persister: hijpa.Member at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:740) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:721) at hijpa.JPAmain.main(JPAmain.java:17)하루 동안 삽질을 했지만 큰 성과는 없었습니다....어떤 부분이 잘못되어 persist부분이 수행이 안되는것일까요 ???
-
미해결성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
환율 네트워크처리1 질문있습니다.
안녕하세요 강의 41:46분에pickerView 의 delegate중에서 didSelecRow에 관해서 궁금한게있는데 해당 delegate속성이 picker로인해 선택된 row를 반환해준다고 알고있습니다.궁금한게[ didSeleectRow가있는 delegate메서드를 사용하려면 저는 func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { selectedRow = row } 여기 함수안에서 var selectedRow = 0 { didSet { selectedCurrencyName.text = rates?[selectedRow].0 selectedCurrency.text = calculateCurrency() } }위에 해당하는 코드를 작성해야 함수가 작동된다고 생각했는데 강사님 강의보니 그게아니더라구요 왜 그런건가요? 가만생각해보니 didSelecRow에서 현재 선택된 row정보만 얻기위한 용도로 pickerView didSelectRow 델리게이트 메서드를 이용했고 row정보를 얻었으니 화면에 뿌려주는 역활은 굳이 안해도되기떄문에 위의코드처럼 따로 didSet속성을 이용해서 화면을 나타낸걸로 이해했는데 제가 이해한게 맞을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안 33p 질문
알고리즘 교안 33pa.find("love") 부분에 대한 이해가 맞는지 질문드립니다.it = a.find("love") 에서 it 값이 love가 있다라고 결정되면it != string::npos -> string::npos(string이 없다)와 값이 같지 않아서 있다고 인정된다맞을까요? C언어에 대한 기초 강의를 듣고 시작해도 조금 버겁네요ㅜㅜ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B 시간 복잡도..!
#include <bits/stdc++.h> using namespace std; int N, M, res; int vis[54][54]; char bd[54][54]; string s; vector<pair<int,int>> land; vector<int> select_land; int dy[4] = {0, -1, 0, 1}; int dx[4] = {1, 0, -1, 0}; void bfs(){ pair<int,int> st = land[select_land[0]]; // land pair<int, int> ed = land[select_land[1]]; // land queue<pair<int,int>> Q; Q.push({st.first, st.second}); // Q삽입 vis[st.first][st.second] = 1; // 방문표시 while(!Q.empty()){ pair<int, int> cur = Q.front(); Q.pop(); for(int dir = 0 ; dir < 4 ; dir++){ int ny = cur.first + dy[dir]; int nx = cur.second + dx[dir]; if(ny==ed.first && nx==ed.second) { vis[ny][nx] = vis[cur.first][cur.second] + 1; res = max(res, vis[ny][nx]); return; // 도착하면 종료 } if(ny >= N || nx >= M || ny < 0 || nx < 0) continue; if(bd[ny][nx]=='W' || vis[ny][nx]!=0) continue; // 방문했거나 물이면 pass Q.push({ny, nx}); vis[ny][nx] = vis[cur.first][cur.second] + 1; } } // 도착하지 못했다면, 그냥 for문을 빠져나옴. (res 업데이트 필요 X) } void solve(int n){ if(select_land.size()==2){ // 2개를 고름. bfs(); fill(&vis[0][0], &vis[0][0] + 54*54, 0); // vis배열 초기화 return; } for(int i = n+1 ; i < land.size() ; i++){ // 땅 전체 개수 (0번부터 land.size()-1번까지) select_land.push_back(i); // 01, 02, 03 ..... solve(i); select_land.pop_back(); } return; } int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N >> M; for(int i = 0 ; i < N ; i++){ cin >> s; for(int j = 0 ; j < M ; j++){ bd[i][j] = s[j]; if(s[j]=='L') land.push_back({i,j}); } } // 입력 받기 solve(-1); cout << res-1; }저는 랜드를 모두 구해서 랜드 중에 2개를 뽑고, 최단거리를 구하고 최단거리중 최대값을 뽑는 로직으로 구해봤습니다. 그런데 시간복잡도에서 계속 걸리네요 ㅠㅠ 혹시 크기가 50*50이라 재귀적으로 하려했는데 이 코드는 시간복잡도가 어떻게 되나요 ㅠㅠ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 실습 강의 질문합니다.
포인터 실습 강의를 다 보고 연습할 겸 플레이어를 만들고 플레이어가 레벨업을 할 경우 영구적으로 스탯이 증가하는 것을 만드려고 하는데 생각대로 안되더군요..포인터만 사용해서는 만들 수 없는 건가요? struct statinfo{ int hp; int atk; int def;};void player(statinfo* playerinfo){ playerinfo->hp = 300; playerinfo->atk = 30; playerinfo->def = 20;}int playerup(statinfo* abc){ int up = (abc->hp) + 12; cout << up << endl; return up;}int main(){ statinfo playerstat; statinfo* playerstatPTR = &playerstat; player(&playerstat); cout << playerstat.hp << endl; cout << playerstatPTR->hp << endl; playerup(&playerstat);}
-
미해결입문자를 위한, HTML&CSS 웹 개발 입문
<html lang = "ko">
"ko"를 "en"으로 바꾸면 영어로 컨텐츠 내용을 구성할 수 있다고 하셨는데 혹시 한글, 영어를 섞어서 넣고 싶으면 어떻게 작성해야 할까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품 수정시 유효성 검사
상품 수정 기능 구현중에수정내역의 유효성 검사를 추가해보고 싶어서 코드를 추가했습니다.```java``` package jpabook.jpashopre.controller; import lombok.Getter; import lombok.Setter; import javax.validation.constraints.NotEmpty; @Getter @Setter public class BookForm { private Long id; @NotEmpty(message = "이름은 필수 입력 사항입니다.") private String name; private int price; private int stockQuantity; @NotEmpty(message = "작가은 필수 입력 사항입니다.") private String author; private String isbn; } package jpabook.jpashopre.controller; import jpabook.jpashopre.domain.item.Book; import jpabook.jpashopre.domain.item.Item; import jpabook.jpashopre.service.ItemService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; @Controller @RequiredArgsConstructor @Slf4j public class itemController { private final ItemService itemService; @GetMapping("/items/new") public String createForm(Model model) { model.addAttribute("form", new BookForm()); return "item/createItemForm"; } @PostMapping("/items/new") public String create(@Valid @ModelAttribute("form") BookForm form, BindingResult result) { if(result.hasErrors()){ return "item/createItemForm"; } Book item = new Book(); item.setName(form.getName()); item.setPrice(form.getPrice()); item.setStockQuantity(form.getStockQuantity()); item.setAuthor(form.getAuthor()); item.setIsbn(form.getIsbn()); itemService.saveItem(item); return "redirect:/"; } @GetMapping("/items") public String list(Model model) { List<Item> items = itemService.findItems(); model.addAttribute("items", items); return "item/itemList"; } @GetMapping("/items/{itemId}/edit") public String updateItemForm(@PathVariable("itemId") Long itemId, Model model) { Book item = (Book) itemService.findOne(itemId); BookForm form = new BookForm(); form.setId(item.getId()); form.setName(item.getName()); form.setPrice(item.getPrice()); form.setStockQuantity(item.getStockQuantity()); form.setAuthor(item.getAuthor()); form.setIsbn(item.getIsbn()); model.addAttribute("form", form); return "item/updateItemForm"; } @PostMapping("/items/{itemId}/edit") public String updateItem(@ModelAttribute("form") @Valid BookForm form,@PathVariable("itemId")Long itemId, BindingResult result) { if (result.hasErrors()) { return "item/updateItemForm"; } itemService.updateItem(form.getId(), form.getName(), form.getPrice(), form.getStockQuantity(), form.getAuthor(), form.getIsbn()); return "redirect:/items"; } } <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head th:replace="fragments/header :: header" /> <style> .fieldError { border-color: #bd2130; } </style> <body> <div class="container"> <div th:replace="fragments/bodyHeader :: bodyHeader"/> <form th:object="${form}" method="post"> <!-- id --> <input type="hidden" th:field="*{id}" /> <div class="form-group"> <label th:for="name">상품명</label> <input type="text" th:field="*{name}" class="form-control" placeholder="이름을 입력하세요" th:class="${#fields.hasErrors('name')}? 'form-control fieldError' : 'form-control'"> <p th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Incorrect date</p> </div> <div class="form-group"> <label th:for="price">가격</label> <input type="number" th:field="*{price}" class="form-control" placeholder="가격을 입력하세요" /> </div> <div class="form-group"> <label th:for="stockQuantity">수량</label> <input type="number" th:field="*{stockQuantity}" class="form-control" placeholder="수량을 입력하세요" /> </div> <div class="form-group"> <label th:for="author">저자</label> <input type="text" th:field="*{author}" class="form-control" placeholder="저자를 입력하세요" th:class="${#fields.hasErrors('author')}? 'form-control fieldError' : 'form-control'"> <p th:if="${#fields.hasErrors('author')}" th:errors="*{author}">Incorrect date</p> </div> <div class="form-group"> <label th:for="isbn">ISBN</label> <input type="text" th:field="*{isbn}" class="form-control" placeholder="ISBN을 입력하세요" /> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> <div th:replace="fragments/footer :: footer" /> </div> <!-- /container --> </body> </html>이름을 입력하지 않고 유효성검사를 실시했습니다. 하지만...네...실패했습니다네트워크에서도 이름이 빠진채로 의도대로 전달도 되었으나 뷰를 표기하지 못하고 화이트라벨 에러페이지만 나옵니다 ㅠ콘솔도 의도된 에러메시지가 출력이 됩니다.뷰단쪽에 문제 일까요? 해결th:action="@{/items/*{id}/edit}" ->updateItemForm,html에 form에 action으로 해결하였습니다.화이트라벨 에러페이지가 좀더 상세한 에러메시지를보여줬으면 하는데 어떻게 설정해야 할까요?
-
해결됨[코드캠프] 훈훈한 Javascript
제공해주신 노션 사이트 자료를 개인 노션에 사용해도 되나요?
다른사람에게 공개는 안하고개인적으로 정리해서 공부하려고 하는데 이미지 같은 자료들을 제 노션에 사용해도 되는지 알고 싶습니다!
-
미해결실전! Querydsl
Projections 질문 dto의 property와 entity의 property의 타입이 다를때 어떻게 변환을 할 수 있나요?
안녕하세요. 다음과 같이 Entity와 Dto가 LocalDateTime, OffsetDateTime 을 사용하여 데이타 타입이 다릅니다. 이경우에class EntityA { public Long id public LocalDateTime regDt; } class DtoA { public Long id public OffsetDateTime regDt; }querydsl 문장을 다음과 같이 하면, List<DtoA > list = jpaQueryFactory .select( Projections.fields( DtoA.class, entityA.id, entityA.regDt )) .from(entityA) .fetch() ; 다음과 같이 오류가 발생합니다.java.lang.IllegalArgumentException: java.time.LocalDateTime is not compatible with java.time.OffsetDateTime다음과 같은 변환함수를 쓰면 될거 같은데, public OffsetDateTime map(Date value) { try{ ZoneOffset zoneOffset = ZoneId.systemDefault().getRules().getOffset(Instant.now()); return value.toInstant().atOffset(zoneOffset); } catch( Exception e) { throw new RuntimeException( e ); } }이 함수를 querydsl에 어떻게 넣어야 할지 모르겠어요답변 부탁드립니다.감사합니다.
-
미해결[핵집] 2025 빅데이터 분석기사(필기)_과목 1~2
강의 자료 요청
저도 빅데이터 분석기사 필기 1~2와 3~4 강의를 모두 신청하였습니다.저도 강의 자료 한꺼번에 받고 싶습니다.alskacjswo@naver.com으로 자료 부탁드립니다.감사합니다.