묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
라이브러리 디렉터리는 왜 추가해야하나요?
#pragma comment(lib, "Engine.lib") 문장을 통해서 Client프로젝트에게 라이브러리 경로를 알려준 것이라고 생각하는데 왜 라이브러리 디렉터리도 추가해주어야 하나요? 그리고 프로젝트 속성 -> 구성속성 ->VC++ 디렉터리 에서 포함 디렉터리와 라이브러리 디렉터리를 변경해주는 것과 프로젝트 속성 -> 링커 -> 일반 -> 추가 라이브러리 디렉터리, 입력 -> 추가 종속성은 어떻게 다른가요? 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
html의 form에서 요청에 반응하는 controller
안녕하세요. addForm.html 에서 item을 받아서 요청하면(post) 결국에는 FormItemController의 addItem 메서드가 그 item 객체를 그대로 받을 것이다 라고 하셨는데요. 흐름상. 그런데 addForm에서 요청을 보낼 때 (post메서드는 일치) action 부분이 item.html인데, 원래 이 부분이 해당하는 컨트롤러의 경로와 일치해야 그 컨트롤러로 요청을 보내는 것이 아닌가요? 어째서 Form에서 등록하면 @PostMapping("/add") 컨트롤러가 반응하는지 궁금하네요. 감사합니다.
-
미해결인터랙티브 개발 실무 끝장내기 [역량 강화편]
CD플레이어 animation:rotateAni 무반응
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. CD플레이어 챕터 css에서 디스크가 계속 회전하게끔 하는 코드가 안먹네요 이유를 모르겠어요 ㅠ 혹시 전체 css를 다 올려드려야할까요? animation: rotateAni 10s ease infinite;
-
미해결자바스크립트 비기너: 튼튼한 기본 만들기
코드제출합니다..흐엉
// 함수 코드가 없는 빈 함수를 작성한다. (변수이름 check) let check = function(){}; // 배열을 담을 변수을 선언하고 []빈배열를 할당한다. let nArr = []; // for문으로 배열에 1 이상 1000000이하까지의 수를 담는다. for(let i = 1; i <= 1000000; i++){ nArr.push(i); } // 반복이 시작되는 현재시각을 구한다. let start = Date.now(); // forEach()로 배열반복한다. // check()함수를 호출한다. (변수에 함수가 할당되어있다.) nArr.forEach(check); // 반복이 끝나는 종료시간을 구한다. let end = Date.now(); // forEach()의 반복이 끝나면 함수의 실행시간을 반환한다. console.log(end - start); -> 14, 15초 정도로 나오더라구요 맞나요? ㅠㅠ
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
clear()이후에도 Id값이 남아 있는 이유? (10:40)
앞서 많은 분들이 질문하셨지만, 아직 명확하게 이해가 되지 않아서 질문드립니다. 10분 40초 부분의 getReference() 조회 시, Id 값은 이미 있기 때문에 쿼리가 날아가지 않는다는 것에 대한 의문입니다. 우선, 의문이 들었던 지점입니다. Member 엔티티의 Id를 GeneratedValue 방식 사용하는 상황에서, 1 em.persist(member) ;2 3 em.flush();4 em.clear();5 6 em.getReference(Member.class, member.getId());7 8 System.out.println("findMember.id = " + findMember.getId()); 위와 같은 코드를 실행했을 때 상황입니다. 1) 제가 이해한 위 코드 실행시 발생하는 일을 순서대로 정리해보면: 1행: em.persist(member); (1) DB의 전략에 따라 DB에서 ID값을 generate하고, (2) 생성된 ID값이 1차캐시의 key로 저장된다. 4행: em.clear(); (1)영속성 컨텍스트가 완전히 비워진다: 즉 1차 캐시에 저장된 Id값도 비워진다. 6행: em.getReference(Member.class, member.getId()); (1)1차캐시에서 id값을 찾음 (2)4행의 (1)로 인해서 캐시에서 Id 값을 찾을 수 없기에 DB에 SELECT 쿼리를 던지게 된다. 2) 때문에 "Id값이 이미 있기 때문에 INSERT 쿼리가 날아가지 않는다"는 것이 이해가 되지 않습니다. 구체적으로 궁금한 것은 (1) 위에서 말하는 저장된 id값이 어떻게 저장되었냐는 것입니다. (2) id값이 이렇게 저장되는 것은 어느 시점에서 이루어졌냐는 것입니다. 두 문제에 대한 제 생각은 (1) 영속성 컨텍스트에 저장된 것이 아니고, member 인스턴스의 변수 member.id가 다른 인스턴스 변수들처럼 관리되어서 저장된 것이다. (즉 우리가 비영속 상태의 인스턴스 book에 book.setName("Jpa")하는 식으로 값을 저장할 때처럼 저장되는 것이다) (2) 1행의 (2), 즉 1차캐시의 key로 저장되는 시점에 저장되었다. 인데, 이 이해가 적절한 것인지 궁금합니다. 즉, <영속화되는 엔티티의 id값은 DB에서 생성되어, 1차캐시에 저장되는 시점에 인스턴스 변수에 저장된다.> 그리고 <그 id값은 해당 인스턴스와 동일한 생명 주기를 갖는다>가 적절한 이해인지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
_coPatrol==null 질문
안녕하세요! 항상 강의 잘 듣고 있습니다.(키보드도 잘 쓰고 있습니다.) protected override void UpdateIdle() { base.UpdateIdle(); if(_coPatrol!=null) { StopCoroutine(_coPatrol); _coPatrol=null; } } 로 null 체크하는 부분 관련하여 질문드립니다. 강의 코드에서는 UpdateIdle() 에서 if(_coPatrol=null) 로 확인하고 Coroutine을 실행하고 있는데요, 다음과 같이 생각하여 if문을 지우고 UpdateIdle에서 곧바로 StartCoroutine을 하도록 하였습니다. protected override void UpdateIdle() { base.UpdateIdle(); _coPatrol = StartCoroutine("CoPatrol"); } -> 어차피 CoPatrol이 실행되면 State가 Moving상태가 되어 Coroutine이 2중으로 실행되지 않는다. 그러므로 StartCoroutine만 놔둬도 됨. 만약 갈 장소 검색에 실패하거나 CoPatrol이 완료되면 Idle이 되어 다음 Frame에 CoPatrol을 수행한다.(반복) 그래서 실행했을 때의 화면은 다음과 같습니다. https://youtu.be/yHUq12WU2dA 강의 코드에서는 깔끔하게 해당 목적지로 이동하고 끝이지만, 수정한 코드에서는 정신없이 왔다갔다 하다가 해당 목적지로 이동하는 현상이 보입니다. 곰곰이 생각해보았으나 마땅한 이유가 생각나지 않아 질문드립니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
갑자기 실행 오류가 뜨네요..
❯ npm run dev > nodebird@1.0.0 dev /Users/hangyujin/Desktop/JBBP/tutorial/nodebird/front > next ready - started server on 0.0.0.0:3000, url: http://localhost:3000 info - Using webpack 5. Reason: Enabled by default https://nextjs.org/docs/messages/webpack5 error - ../../../../../node_modules/react-redux/es/components/Context.js:1:0 Module not found: Can't resolve 'react' Import trace for requested module: ./../../../../../node_modules/react-redux/es/exports.js ./../../../../../node_modules/react-redux/es/index.js ./node_modules/next-redux-wrapper/es6/index.js ./store/configureStore.js ./pages/_app.js https://nextjs.org/docs/messages/module-not-found 왜 그럴까요,,, nodemodules과 package-lock.json 삭제했다가 다시 npm install하고 실행해도 똑같습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
LazyConnectionDataSourceProxy transactional 이슈
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://docs.google.com/document/d/1j0jcJ9EoXMGzwAA2H0b9TOvRtpwlxI5Dtn3sRtuXQas/edit#heading=h.w2tomwsznga7)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://docs.google.com/document/d/1xCQKit-1V6l6ObeCe49St33RHPzLF_P_c3o7aSDTKs0/edit#heading=h.7dhnp46ven0v)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 영한님 @Transactional에 readOnly 옵션을 넣어주게되면 public class SpringTransactionAnnotationParser implements TransactionAnnotationParser, Serializable { // .. code public TransactionAttribute parseTransactionAnnotation(Transactional ann) { return parseTransactionAnnotation(AnnotationUtils.getAnnotationAttributes(ann, false, false)); } // .. code } 위와 같이 SpringTransactionAnnotatinParser에 의해서 annotaion에 설정한 parameter 들이 transaction manger 에 설정을 넣어주기 위해서 RuleBasedTransactionAttributer객체를 만들게 됩니다. 그리고 readOnly=true를 설정할 경우 rbta.setReadOnly(attributes.getBoolean("readOnly")); 로 readonly 설정을 하게 됩니다. multi module 환경에서 replication 설정했을 때 datasource를 선택하게 해주는 로직을 아래와 같이 작성하였습니다. @RequiredArgsConstructor public class ReplicationRoutingDataSource extends AbstractRoutingDataSource { private final DataSourceKey dataSourceKey; @Override protected Object determineCurrentLookupKey() { boolean isReadOnly = TransactionSynchronizationManager.isCurrentTransactionReadOnly(); System.out.println(isReadOnly); if (isReadOnly) { logger.info("Connection Slave"); return dataSourceKey.getDefaultSlaveKey(); } logger.info("Connection Master"); return dataSourceKey.getMasterKey(); } } 하지만 determineCurrentLookupKey 함수가 parseTransactionAnnotation 보다 먼저 실행되어, read only를 무시하는 이슈가 발생하게 되었습니다. 이럴 경우 어떻게 해야지 parseTransactionAnnotation 가먼저 실행되고, determineCurrentLookupKey 가실행될 수 있는지 궁금합니다. 코드 링크는 다음과 같습니다. replication 설정 코드는 아래의 4개입니다. 어떻게 해야지 determineCurrentLookupKey가 parseTransactionAnnotation 보다 늦게 실행되게 하는지
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
글작성 엑티비티에서 키보드 사용시 스크롤로 화면을 올리는것이 되지 않습니다
강의를 따라하면서 게시글을 작성하는 엑티비티를 따라서 완료 하였습니다. 키보드 사용시 화면이 올라가게 하는것을 따라 만들려고 하였으나 올라가지 않습니다. 데이터 바인딩이 아니고 뷰바인딩을 사용하여 layout 으로 감싸지 않았고 문제를 해결해보기위해 인터넷을 뒤지며 xml 을 수정하여 강의와 좀 차이가 있습니다. xml 을 어떻게 수정해야 스크롤이 작동 할까요? <?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".board.BoardWriteActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="30dp" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="60dp"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="글쓰기 페이지" android:textColor="@color/black" android:textSize="30dp" /> </LinearLayout> <EditText android:id="@+id/TitleArea" android:layout_width="match_parent" android:layout_height="60dp" android:layout_margin="20dp" android:background="#00ff0000" android:gravity="center" android:hint="제목을 적어주세요" /> <LinearLayout android:layout_width="match_parent" android:layout_height="0.5dp" android:layout_margin="20dp" android:background="#000000" /> <EditText android:id="@+id/ContentsArea" android:layout_width="match_parent" android:layout_height="60dp" android:layout_margin="20dp" android:background="#00ff0000" android:gravity="center" android:hint="내용을 적어주세요" /> <LinearLayout android:layout_width="match_parent" android:layout_height="0.5dp" android:layout_margin="20dp" android:background="#000000" /> <ImageView android:id="@+id/ImageBtn" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center" android:layout_marginTop="30dp" android:src="@drawable/plus" /> <Button android:id="@+id/WriteButton" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginLeft="20dp" android:layout_marginTop="40dp" android:layout_marginRight="20dp" android:backgroundTint="@color/mainblue" android:text="입력" android:textColor="@color/black" android:textSize="20dp" /> </LinearLayout> </LinearLayout></ScrollView>
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
pk가 다른 테이블의 fk 2개이상으로 들어갈 경우는 어떻게 해야할까요?
강의 보면서 제가 전에 SQL를 공부했던 내용을 적용시켜서 공부하고 있는데, 이런 경우 맵핑은 어떤식으로 해야하는지 궁금합니다. Member Table ----------- @Id @Genereatedvalue private Long id Follow Table ------------- @Id @Generatedvalue private Long id @ManyToOne @JoinColumn(name"member_id") private Member memberHost @ManyToOne @JoinColumn(name"member_id") private Member memberFollow 위 처럼 member테이블의 pk가 follow테이블의 두 변수의 각각 fk로 맵핑되었을 때 연관관계 처리를 어떻게 하면 좋을가요?member Table에 @OneToMany(mappedBy = "member) List<Follow> follow = new ArrayList<>() 로 작성하니 인식을 못합니다 ㅠㅠ 혹시 이런경우는 어떻게 처리 해야 할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
null 오류
선생님 강의를 보며 코드를 똑같이 작성했는데 널 리퍼런스 오류가 디버깅 도중에 뜨면서 GenPacket.cs가 만들어지지 않아 진도를 못나가고 있습니다 genPackets += string.Format(PacketFormat.packetFormat, packetName, t.Item1, t.Item2, t.Item3); 이 코드에서 널 리퍼런스 오류가 뜨면서 디버깅이 중단됩니다 정확히는 t가 널이었다면서 오류가 뜹니다
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
vector에서 질문이 있습니다~!
문득 든 생각인데요 vector<int> arr[n]과 vector<int> arr(n)이 무슨 차이가 있는 건가요? arr[1]안에 배열을 넣을 수 있고 arr(1)안엔 배열을 넣을 수 없음의 차이인가요????
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 작성해봤습니다.
안녕하세요 강사님 function solution(arr) { let answer = 0, row = 0, col = 0, cro = 0, rev = 0; for (let k = 0; k < arr.length; k++) { (row = 0), (col = 0); for (let m = 0; m < arr.length; m++) { row += arr[k][m]; col += arr[m][k]; } cro += arr[k][k]; rev += arr[k][4 - k]; answer = Math.max(answer, row, col, cro, rev); } return answer; } 이렇게 작성해봤습니다.
-
미해결실전! 스프링 데이터 JPA
복합키 식별 관계 매핑에 대해서 여쭈어봅니다.
선생님... 현재 복합키 식별 관계의 mapping에서 선생님 책을 보고 인터넷을 찾아봐도 문제에 부딪혀 해결에 지쳐서 질문을 드립니다. @IdClass(InternetBuzzIdentifier.class)public class InternetBuzz { @Id private String program; @Id private String channel; @Id private String days;... @Getter @Setterpublic class InternetBuzzIdentifier implements Serializable { private String program; private String channel; private String days;... @Entity@Getter@Setterpublic class InternetBuzzMapping { @Id @GeneratedValue private Long id; private String contentId; private String contentsetId; @OneToOne @JoinColumns ({@JoinColumn (name = "program"), @JoinColumn (name = "channel"), @JoinColumn (name = "days")}) private InternetBuzz internetBuzz; public InternetBuzzMapping(InternetBuzz internetBuzz) { this.internetBuzz = internetBuzz; } 처음에는 하나의 repository(InternetBuzz)을 만들었고 둘의 연결관계를 통해서 internetbuzz를 save하면 자동으로 InternetBuzzMapping 테이블에도 program, channel, days값이 들어가길 원하는데 internetbuzz.save()를 하면 internetbuzzmapping 테이블은 그대로입니다. internetBuzzRepository.save(buzz);internetBuzzMappingRepository.save(new InternetBuzzMapping(buzz)); 그래서 internetbuzzMappingRepository를 만들어 위와같이 save를 하려하니 Caused by: java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : racoi.Dto.InternetBuzzMapping.internetBuzz -> racoi.Dto.InternetBuzz 위와같은 에러가 납니다. 어떤게 문제인지 책을 뒤져봐도 잘 이해가 안갑니다 ㅠ
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어봤습니다.
안녕하세요 강사님. 이렇게 한 번 풀어봤습니다. function solution(arr) { let answer = 0; const score = arr.join("").split(0); for (const a of score) { if (a) { answer += (a.length * (a.length + 1)) / 2; } } return answer; };
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기
cd client -> npm install 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 #2에서 cd client로 디렉토리 체인지 후 npm install 하면 무한 로딩 뜨는 오류가 발생됩니다. 어떻게 해결방안이 있을까요? 이것을 설치하지 않으면 다음단계로 못 넘어갈것 같은데요 ㅜㅜ
-
해결됨구글애즈로 배우는 퍼포먼스마케팅 필수 (2023년 업데이트)
'디스플레이와 프로그래매틱 광고'에서 DV 360 타게팅 방식에 대한 질문
안녕하세요, 좋은 강의 잘 듣고 있습니다 :) '디스플레이와 프로그래매틱 광고' 강의에서 DV 360의 특징을 GDN과 비교하여 알려주신 부분(61슬라이드)을 보다 궁금증이 생겨 질문드립니다. DV 360에서 사용자/콘텐츠 이외의 타겟팅이 가능하다고 해주셨는데, 구체적인 예시가 있을까요? 사용자와 콘텐츠 데이터 이외의 분석가능한 데이터가 어떤 것이 있는지 궁금합니다. 감사합니다.
-
미해결실전! 스프링 데이터 JPA
1:N 프로젝션 join
안녕하세요! 중첩 프로젝션에 대해 이것저것 해보는 도중, 1:N에 대해서도 인터페이스를 만들어 해보았습니다. 예를 들어 TeamProjection이 있을 때, 다음과 같습니다. public interface TeamProjection { String getName(); List<MemberInfo> getMembers(); interface MemberInfo{ String getUsername(); } } Team과 member의 관계는 강의에서와 동일하게 1:N 관계입니다. TeamRepository에 메서드를 다음과 같이 정의했습니다. public interface TeamRepository extends JpaRepository<Team, Long> { <T> List<T> findProjectionByName(@Param("name") String name, Class<T> tClass); } 이제 Test를 돌리기 위해 다음과 같이 테스트코드를 짜고 실행했을 때 SQL 결과입니다. @Test @DisplayName("프로젝션 테스트") public void 프로젝션_테스트() throws Exception{ //given Team team = Team.builder().name("team").build(); em.persist(team); Member m1 = builder().username("a").age(10).team(team).build(); em.persist(m1); Member m2 = builder().username("b").age(10).team(team).build(); em.persist(m2); em.flush(); em.clear(); //when List<TeamProjection> r = teamRepository.findProjectionByName("team", TeamProjection.class); //then for (TeamProjection teamProjection : r) { List<TeamProjection.MemberInfo> members = teamProjection.getMembers(); for (TeamProjection.MemberInfo m : members) { System.out.println("member : " + m.getUsername()); } System.out.println("team : " + teamProjection.getName()); } } >> SQL (Team + Member + Member) 총 3회 select team0_.team_id as team_id1_4_, team0_.name as name2_4_ from team team0_ where team0_.name=? ------- select members0_.team_id as team_id4_3_0_, members0_.member_id as member_i1_3_0_, members0_.member_id as member_i1_3_1_, members0_.age as age2_3_1_, members0_.team_id as team_id4_3_1_, members0_.username as username3_3_1_ from member members0_ where members0_.team_id=? -------- select members0_.team_id as team_id4_3_0_, members0_.member_id as member_i1_3_0_, members0_.member_id as member_i1_3_1_, members0_.age as age2_3_1_, members0_.team_id as team_id4_3_1_, members0_.username as username3_3_1_ from member members0_ where members0_.team_id=? 질문) 1:N은 프로젝션 조회를 했을 때 join이 되지 않는 것인지 궁금합니다!
-
미해결생활코딩 - Linux
backup파일 fi syntax error
backup 파일 라인4 fi 구문에 대한 error 가 나는데요 화인 부탁드립니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
안녕하세요
안녕하세요.. 전강의 다 수강하고 혼자 프로젝트 만들어보고있는 수강생입니다.. 질문을 어디에 해야할지몰라서.. 최대한관련된곳에 드립니다.. 안녕하세요. json으로 받아오는걸 해보고싶어서 dothome으로 홈페이지를 얻은뒤 빌드해서 ftp로 업로드하고 같은 디렉토리에 test.json 파일을 업로드 했습니다 vuex 를 만들고 axios로 가져와서 원하는 데이터까지 $store.state로 접근 성공 하였습니다. 출력도 잘됩니다. 그런데 img 파일만corb로 차단이되었는데 .. 제가 테스트용 json 파일을 백엔드 가아닌 ftp서버에 올려서 그런건가요? 찾아보니.. 동일 서버가 아니고 외부서버에서 이미지 요청시 차단된다고 하던데.. 제가 테스트하기위에 json파일을 업로드한게 방법이 틀린건가요?