묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
통계 SQL을 ORM으로 효과적으로 전환하는 방법
안녕하세요. 저는 현업에서 Proc를 써서 개발을 하고 있습니다. SQL은 보통 300줄 정도 되는게 보통이며, 1000줄 가까이 되는 것도 있습니다. 이 SQL들은 window 함수를 써서 대부분 통계와 집계 쿼리인데요 (group by, partirion by) 이 경우에도, ORM으로 전환하는 것이 효과적일까요? 회사에 강력하고 전환요청을 하고싶은데, 확신이 서지않아 질문드립니다
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
구글드라이브 강의자료를 조금만 수정해주셨으면 합니다.
안녕하세요 선생님 강의 정말 잘 보고 열심히 공부하고 있습니다. 좋은 강의 만들어주셔서 감사합니다. 구글드라이브에 올려주신 강의 내용은 정말 알차고 좋습니다. 다름이 아니라 강의자료 파일에 따로 인덱싱이 없어서 문서가 오름차순으로 정렬되어있는것 같은데요 강의 순서와 관계없이 자료 순서가 뒤죽박죽 섞여 있어서 파일을 찾을 때 조금 번거롭고 복습할때도 순서대로 보기가 편하지 않습니다. 가능하시면 파일명 앞에 숫자로 인덱싱을 해주셔서 조금만 편의를 도와주시면 감사하겠습니다. 강의는 너무 알차고 정리가 잘되어 있어서 좋습니다 감사합니다!
-
[PyTorch] 쉽고 빠르게 배우는 딥러닝
세션2. 튜토리얼 코드 관련 질문입니다!
삭제된 글입니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테이블 생성이 안되서 메일과 프로젝트 압축 파일 보냈어요
아래와 같은 내용으로 질문 메일 보냈어요 답변해주시면 감사여! 메일 내용: 안녕하세요 존경하는 김영한 강사님! 도메인 클래스들에 jpa관련 설정을 한뒤 src\main\java\jpabook\jpashot\JpashotApplication.java 의 메인 함수 실행을 해서 테이블 생성을 하려 했는데 에러가 발생했는데 어떻게 고쳐야 될지 잘모르겠어서여 강의: 엔티티 클래스 개발2 www.inflearn.com/course/스프링부트-JPA-활용-1/lecture/24768?tab=note&speed=1 7분 44초쯤 error: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: Attribute [jpabook.jpashot.domain.Order.status] was annotated as enumerated, but its java type is not an enum [jpabook.jpashot.domain.OrderStatus] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[spring-beans-5.3.2.jar:5.3.2] 압축 파일로 첨부했는데 한번 봐주시면 감사여! 좋은 하루되세여!
-
미해결플렉스(Flex) 반응형 웹사이트 포트폴리오(The World's Best Cities)
혹시 오프라인 강의는 없으실까요
오프라인 강의가 있다면, 참가해서 듣고싶은데 오프라인도 하실까요? (강의 감사하게 잘보고 있습니다)
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
cannot post /register라는 에러가뜨는데 어찌해야할지 모르겠네요
달랑 저런 에러 하나떠서 어딜 손봐야할지 모르겠네요..... 또 5천번 포트 실행하면 hello world는 잘 실행됫는데 구문을 고치고 다시 실행해봐도 Hello world만 뜨는데 혹시 제 인터넷 환경이 잘못된걸까요?
-
미해결ionic 3로 만드는 Push Message Server
강의 자료(소스 코드) 다운로드
정리 > Resource 강좌에 있는 링크(https://drive.google.com/file/d/1rBdTKQe2WAeCvED7B7bKGXGQh9yxeaaR/view?usp=sharing)에서 강의 자료를 다운로드 받을 수 없습니다. 소스 코드를 올려주시면 감사하겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
싱글게임 -> 멀티게임
어떤 멀티게임을 만들려고 할때 싱글게임인것을 멀티게임으로 바꾸는 작업이 편한가요 아니면 아에 처음부터 멀티작업을 하면서 작업하는게 편한가요?
-
미해결애플 웹사이트 인터랙션 클론!
선생님 이부분 질문있습니다.
type:'sticky', //2 heightNum:5, scrollHeight:0, objs:{ container: document.getElementById('scroll-section-2') } }, { type:'sticky', //3 scrollHeight:0, heightNum:5, objs:{ //container: document.querySelector('#scroll-section-3') container: document.getElementById('scroll-section-3') } } ]; function setLayout(){ for(let i=0; i<sceneInfo.length; i++){ sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; sceneInfo[i].objs.container.style.height=sceneInfo[i].scrollHeight; //기본적으로 문자열을 설정해야하나 ${--- } << ---이부분에 변수이름을 적용 가능 } console.log(sceneInfo); } setLayout(); })(); 주석과는 관계 없이 getelementbyid 로 id객체를 가져와서 그 객체에 style.height로 값을 저런식으로 주게되면 왜 적용이 안되는건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
버퍼와 패킷의 차이점
Q1. 버퍼는 우체통(데이터를 받을 공간사이즈) 이라고 비유하면 패킷은 편지(주고받을 데이터)에 해당되는건가요? 제가 이해하고 있는게 맞는지 모르겠네요 -------------------------------------------- Q2. 입력버퍼의 크기를 초과하는 분량의 데이터전송은 발생하지 않는다가 tcp통신인걸로 알고있는데 소켓1에서 받는사이즈보다 소켓2에서 주는 데이터사이즈가 크면 데이터를 잘라서 처리하는건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
소켓과 세션
소켓과 세션의 차이를 모르겠습니다. 소켓은 휴대폰에 비유를 하자면 세션은 뭔가요? 그리고 네트워크이론강의때에 손님,문지기,대리인이 필요하다고 말씀하셨는데 대리인이 왜필요한건지 모르겠어요 고로 문지기만 있어도 서로 소통이 잘 되지않나요? 똑같은말인데 소통하는데에 있어서 소켓이 두개만있으면 되지 왜 대리인까지 소켓을만들어서 3개의 소켓을쓰는지 모르겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
지연 로딩 질문드립니다.
질문. 지연로딩은 연관된 엔티티를 실제로 사용할ㄸ때 쿼리가 나가는데. (member.getTeam 프록시 객체익고 member.getTeam().getName() 하면 팀 엔티티를 조회하듯이) 그래서 지연로딩이 일어나는 위치가 2번째줄에서 일어나는게 맞는지 질문드립니다. orderItem.getItem()(연관된 엔티티 실제로 사용) 함으로써 프록시 초기확가 일어나서 orderitem을 조회하고, 여기서 getName() 에 의해서 프록시 초기확가 되어 item 조회 쿼리가 나가는게 맞는지 질문 드립니다.
-
해결됨Node.js 교과서 - 기본부터 프로젝트 실습까지
9장 세션을 DB에 저장시 리다이렉션 오류 발생
9장 강의를 실습하고 나서 session을 DB에 저장하고 싶어 connect-session-sequelize를 이용하여 MySQL의 session 테이블에 저장하는 데 까지는 성공했습니다. 하지만 강의 대로 passport를 이용하여 로그인을 구현한 상태로 로그인을 시도하면 로그인이 된 상태가 새로고침을 해야 반영되는 오류가 발생하는 것을 알게되었습니다. 로그인 버튼을 누른 후 정상적으로 redirect 될 때가 있고, 로그인 후 redirect를 해도 로그인이 안된 상태의 페이지에 머무르는 상태가 될떄도 있어서 정확히 제가 무슨 실수를 했는지 판단할 수가 없습니다. 더 당혹스러운 점은 session을 DB에 저장하지 않고 진행하면 이런 현상은 나타나지 않아서 DB에 session을 저장하는 과정에서 오류가 발생한다는 것 까지만 추측한 상태입니다. 로그인 할때마다 새로고침을 강제할 수도 없는 상황이라 어떻게 해결해야 할지 정말 막막한 상태입니다. 브라우저 캐시 문제인지도 확신이 서질 않습니다. 주변에 도움을 구할 수 있는 분이 없는 상태라 이렇게 제로초님께 질문하게 되었습니다. 혹시 제 코드에 문제가 있는지 봐주시면 정말 감사하겠습니다.또 이런 현상이 왜 나타나는지 제로초님의 생각을 들어보고 싶습니다. Github
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
WrappedApp created new store with.. 반복 오류 질문입니다.
안녕하세요! 강의 잘 듣고 있습니다. 다름이 아니라, 유사 에러 겪은 다른 학생들 질문 찾아봤는데도 해결이 안되서 질문드립니다. 다른 페이지에서는 저 에러가 안 뜨는데 index 페이지에만 가면 state가 전부 초기화가 되네요. 그리고 해당 문구가 계속 무한루프 돌듯이 반복되구요. 또 실행 잘 되다가 갑자기 저럴 때가 생깁니다. // reducers 내부 index.js import { HYDRATE } from "next-redux-wrapper"; import { combineReducers } from "@reduxjs/toolkit"; import userSlice from "./user"; import alertSlice from "./alert"; const rootReducer = (state, action) => { switch (action.type) { case HYDRATE: console.log("root reducer", state, action); return { ...state, ...action.payload }; default: { const combinedReducer = combineReducers({ user: userSlice.reducer, alert: alertSlice.reducer, }); return combinedReducer(state, action); } } }; export default rootReducer; // actions user.js export const fetchUser = async () => { const response = await api.get(`/users/load`); console.log(response.data); return response.data; }; export const loadUser = createAsyncThunk("user/loadUser", fetchUser); // reducers user.js import { createSlice } from "@reduxjs/toolkit"; import { loadUser } from "../action/user"; const initialState = { userData: null, requestId: null, auth: false, }; const userSlice = createSlice({ name: "user", initialState, extraReducers: (builder) => builder .addCase(loadUser.pending, (state, action) => { const { meta } = action; state.requestId = meta.requestId; return { ...state, }; }) .addCase(loadUser.fulfilled, (state, action) => { state.requestId = null; state.auth = true; state.userData = action.payload; return { ...state, }; }) .addCase(loadUser.rejected, (state) => { state.requestId = null; state.auth = false; return { ...state, }; }) .addDefaultCase((state) => { return { ...state }; }), }); export default userSlice; // store/index.js import { configureStore, getDefaultMiddleware } from "@reduxjs/toolkit"; import { createWrapper } from "next-redux-wrapper"; import rootReducer from "../reducer"; const store = configureStore({ middleware: [...getDefaultMiddleware()], reducer: rootReducer, devTools: process.env.NODE_ENV !== "production", }); export const makeStore = (context) => store; const wrapper = createWrapper(makeStore, { debug: process.env.NODE_ENV !== "production", }); export default wrapper; // pages/index.js // 컴포넌트 코드 생략 export const getServerSideProps = wrapper.getServerSideProps( async (context) => { console.log("getServerSideProps start"); console.log(context.req.headers); const cookie = context.req ? context.req.headers.cookie : ""; axios.defaults.headers.Cookie = ""; if (context.req && cookie) { axios.defaults.headers.Cookie = cookie; } context.store.dispatch(loadUser()); console.log("getServerSideProps end"); }, );
-
스프링 기반 REST API 개발
EventResource 질문입니다!
삭제된 글입니다
-
미해결C 와 C++ 을 동시에 배워보자 - 두들낙서의 C/C++
double
9:00 문제에서 float대신 double을 사용해 보았는데 컴파일 결과값이 정답과 전혀 다르네요 왜그런거죠?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
Inconsistent Accessibility
강의 한번 듣고 처음부터 다시 복습 중인데요 이전에도 한 강 들을 때마다 몇번씩 다시 복습 하고 그래서 왜 이런지 도통 이해가 가질 않습니다 현재 단계는 Player 클래스 생성하고, 프로퍼티 및 Initialize 함수 생성하고, 그에 맞춰 Program 및 Board 클래스에 수정을 가하는 부분입니다 문제는 이전에는 한번에도 그러지 않다가 Board 클래스의 Initialize 함수에 파라미터로 Player를 넣을때 Inconsistent Accesibility 오류가 생깁니다 해당 함수의 Accesibility보다 Player 클래스의 Accesiblity가 낮아서 생기는 걸로 보이기에 Player 클래스 앞에 Public을 추가하면 해결을 됩니다만 제가 몇번이고 복습한 내역에서도 강의에서도 이 부분에 Public을 추가 하신적은 없었습니다 어떻게 된건지 알려주세요 namespace MMO2_CompleteReview { public class Board { const char CIRCLE = '\u25cf'; public int Size { get; private set; } public TileType[,] Tile { get; private set; } Player _player; public enum TileType { Empty, Wall } public void Initialize(int size, Player player) { if (size % 2 == 0) return; Size = size; _player = player; Tile = new TileType[Size, Size]; //GenerateBinaryTree(); GenerateSideWinder(); } namespace MMO2_CompleteReview { class Player { public int PosY { get; private set; } public int PosX { get; private set; } Random random = new Random(); Board _board; public void Initialize(int posY, int posX, int destY, int destX, Board board) { PosY = posY; PosX = posX; _board = board; } } }
-
해결됨더 자바, 코드를 조작하는 다양한 방법
바이트코드 조작 강의 매우 유익했습니다.
컴포넌트 스캔 동작이 전부터 궁금했었는데, 명쾌한 설명 정말 감사합니다!
-
해결됨스프링 웹 MVC
세션에서 넘어오는 데이터 바인딩
강의 3분 정도의 설명에 session 에 있는 데이터를 받아와 @ModelAttribute 의 객체에 바인딩이 가능하다고 하셔서, 테스트를 작성해봤지만 실패해 테스트를 어떻게 작성해야하는지 질문드립니다.. 제가 시도한 방법은 다음과 같습니다. <컨트롤러> @Controller public class TestController { @PostMapping("/session") @ResponseBody public Event sessionTest(@ModelAttribute Event event){ return event; } } <테스트 코드 > @WebMvcTest class TestControllerTest { @Autowired MockMvc mockMvc; @Test void sessionTest() throws Exception { MockHttpSession session = new MockHttpSession(); session.setAttribute("name", "jaden"); mockMvc.perform(post("/session") .session(session) .param("limit", "10")) .andDo(print()) .andExpect(status().isOk()); } } <실행결과> 세션을 목업해서 넘겨봤는데, 바인딩이 되지 않아 null 이 찍힙니다. 또한, 두번째로 시도한 방법은 mockMvc 에 .sessionAttr 을 넣을 수 있어서 사용해 봤습니다. <테스트코드> @Test void test2() throws Exception{ mockMvc.perform(post("/session") .sessionAttr("limit", "10") .param("name", "jaden")) .andDo(print()) .andExpect(status().isOk()); } <실행결과> 하지만 마찬가지로 바인딩이 잘 되지 않는 것 같더라구요.. 어떻게 테스트 코드를 작성해야 제대로 바인딩을 할 수 있을까요? --- 아니면 혹시, session 에서 값을 받아와 setter 를 통해 직접 바인딩 해줄 수 있기 때문에 그렇게 말씀하신걸까요? 좋은 강의 감사드립니다!
-
해결됨홍정모의 따라하며 배우는 C++
namespace 사용 관련 질문 드립니다.
안녕하세요. 강의에 나온 대로 코드를 조금 변형해서 짜는 중인데 namespace에 걸린 함수를 어떻게 불러오느냐에 따라 값이 달라서 궁금해서 질문드립니다. #include <iostream> using namespace std; namespace work1 { int a = 1; int doSomething() { a += 3; return a; } } namespace work2 { int a = 2; int doSomething() { a += 5; return a; } } int main() { cout << "<First Try> \nwork1_a: " << work1::a << endl; cout << "\nwork2_a: " << work2::a << endl; cout << "\nwork1_doSomething: " << work1::doSomething << endl; cout << "\nwork2_doSomething: " << work2::doSomething << endl; cout << "\nwork1_doSomething(): " << work1::doSomething() << endl; cout << "\nwork2_doSomething(): " << work2::doSomething() << endl; work1::a; work1::doSomething; work2::a; work2::doSomething; cout << "\n<Second Try> \nwork1_a: " << work1::a << endl; cout << "\nwork2_a: " << work2::a << endl; cout << "\nwork1_doSomething: " << work1::doSomething << endl; cout << "\nwork2_doSomething: " << work2::doSomething << endl; cout << "\nwork1_doSomething(): " << work1::doSomething() << endl; cout << "\nwork2_doSomething(): " << work2::doSomething() << endl; return 0; } 이걸 출력하면 <First Try> work1_a: 1 work2_a: 2 work1_doSomething: 0056107D work2_doSomething: 00561145 <Second Try> work1_a: 4 work2_a: 7 work1_doSomething: 0056107D work2_doSomething: 00561145 work1_doSomething(): 7 work2_doSomething(): 12 이렇게 나옵니다. doSomething에서 ()를 붙이지 않은 경우에는 16진수로 나오고, 코드를 돌릴 때마다 계속 바뀌던데 이거는 주소값 인가요? 그게 아니라면 왜 이렇게 나오는 지 궁금합니다. 그리고 second try에서는 work1_a와 work2_a의 값이 4와 7이 되어서 doSomething()의 값도 7과 12로 변하는데, 이는 First try에서 cout << work1::doSomething() << endl; cout << work2::doSomething() << endl; 을 하면서 a의 값이 4와 7로 변했기 때문인 것으로 보입니다. 그런데 main 함수 내에서 work1::a; work1::doSomething; work2::a; work2::doSomething; 을 쓰고 second try 이하를 출력하나, 이를 빼고 바로 second try 이하 부분을 출력하나 같은 결과(a값이 각각 4와 7)인데, 그렇다면 메인 함수에서 단순히 work1::a; work1::doSomething;을 쓸 때에는 어떤 효과를 가지게 되나요? 메인 함수 내에서 work1::doSomething; 을 쓴다면 일종의 정의(definition)가 되는 것이고, work1:doSomething()을 하면 그때부터 함수를 사용하는 것이라고 봐도 될까요?