묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨버그헌팅과 시나리오 모의해킹 전문가 되기
locate 명령어가 실행되지 않습니다
/var/lib/plocate/plocate.db: No such file or directorylocate 명령어 실행하면 위 에러 출력됩니다. 혹시 몰라서 mlocate 설치했는데도 동일한 에러가 출력됩니다. 어떻게 해결해야 하나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션(readOnly=true)와 스냅샷의 관계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이번 질문 내용을 정리해보니 좀 길어서 미리 좀 죄송합니다.....질문은 1개입니다. 스냅샷과 @Transactional(readOnly=true)의 관계 질문입니다.질문 내용은 다음과 같습니다.스프링 트랜잭션 이해/트랜잭션 옵션 소개 11:04 쯤 보면JPA는 읽기 전용 트랜잭션(@Transactional(readOnly=true))일 경우커밋 시점에 플러시를 호출하지 않는다. ... 추가로 변경이 필요 없으니 변경 감지를 위한 스냅샷 객체도 생성하지 않는다.라고 들었는데 이때 갑자기 스냅샷의 관계에 대해 헷갈려 질문해봅니다.말 그대로MemberService.class 에 있는@Transactinal(readOnly=true)findMemberById()로 find 해왔는데 스냅샷이 생성이 안되면Member findMember = memberService.findMemberById(memberId);findMember.setUsername("변경된 username");의 코드가 동작했을 때 변경이 안된다는 건데그러면 되게 난감한 상황인 것 같아말이 안돼서 다시 생각해보았습니다. 그래서 제가 생각해보고 시도해봤는데,@Transactional(readOnly=true) findMember() 메서드 내에서는스냅샷이 생성이 안되고Member findMember = memberService.findMember(memberId); 에서findMember는 스냅샷 생성이 되어 있는 것이겠다가 결론입니다. 결론을 내보긴 했지만jpa를 배웠을 때find의 경우DB에서 조회해 오는 순간 스냅샷이 생성되어 있는 것으로 이해했어서왜 memberService.findMember() 에서의 트랜잭션이 commit 되고 나서스냅샷이 생성되는지는 모르겠네요.트랜잭션 readOnly=true일 경우 로직을 그렇게 작동하게 해놓은 건가.. 어쨌든.. 제 결론이 맞을까요 ? 아래는 실험해본 코드와생각해서 정리해본 1차캐시 이미지 입니다.find만 했을 경우 혹시 안에 변경감지가 되는지 보려고member.setUsername("1111"); 을 해봤습니다.지금 생각해보니(readOnly=true)라서 flush가 일어나지 않아 update 쿼리가 당연히 안 나가겠지만확인차 해봤다고 봐주시면 될 것 같습니다.// flush() 때문에 update 쿼리가 안 나가는 거면 내부에 스냅샷이 있을 수도 있겠네요. 어쨋든 이 결과 생각한 1차 캐시 및 스냅샷 이미지입니다.트랜잭션 시작, 종료 사이에 스냅샷이 비워져 있는지 확실하진 않아서저게 맞는 지가 핵심 질문입니다. 만약 비워져 있는 게 맞다면,부가적으로 따라오는 의문은 다음과 같습니다.changeMemberUsername() 메서드를 호출했을 때1차 캐시 및 스냅샷은 어떻게 동작하는가 입니다.일반적으로 find를 해온 후데이터를 변경하는 JPA이기 때문에@Transactional(readOnly=true) findMemberById() 로 들고온 결과는반드시 스냅샷이 있어야 된다는 게 제 생각이기 때문에다음과 같이 동작할 거라고 결론을 지어봤습니다.이렇게 스냅샷이 동작하는 게 맞을까요 ? 여기까지 읽어주셔서 정말 정말 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
카프카 sink connector 사용시 에러
안녕하세요. 카프카 관련 수업 듣는 중 오류가 발생하여 질문 드립니다.org.apache.kafka.connect.errors.ConnectException: Tolerance exceeded in error handler\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:206)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execute(RetryWithToleranceOperator.java:132)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertAndTransformRecord(WorkerSinkTask.java:501)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertMessages(WorkerSinkTask.java:478)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:328)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:232)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:201)\n\tat org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:185)\n\tat org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:234)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: org.apache.kafka.connect.errors.DataException: Converting byte[] to Kafka Connect data failed due to serialization error: \n\tat org.apache.kafka.connect.json.JsonConverter.toConnectData(JsonConverter.java:366)\n\tat org.apache.kafka.connect.storage.Converter.toConnectData(Converter.java:87)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertValue(WorkerSinkTask.java:545)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.lambda$convertAndTransformRecord$1(WorkerSinkTask.java:501)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndRetry(RetryWithToleranceOperator.java:156)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:190)\n\t... 13 more\nCaused by: org.apache.kafka.common.errors.SerializationException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (':' (code 58)): was expecting comma to separate Object entries\n at [Source: (byte[])\"{\"schema\":{\"type\":\"struct\",\"fields\":[{\"type\":\"int32\",\"optional\":false,\"field\":\"id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"user_id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"pwd\"},{\"type\":\"string\",\"optional\":true,\"field\":\"name\"},{\"type\":\"int64\",\"optional\":true,\"name\":\"org.apache.kafka.connect.data.Timestamp\",\"version\":1,\"field\":\"created_at\"}],\"optional\":false,\"name\":\"users\"},\"payload\":{\"id”:4,”user_id\":\"user4”,”pwd\":\"1234\",\"name\":\"username4”,”created_at\":1671277849000}}\"; line: 1, column: 433]\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (':' (code 58)): was expecting comma to separate Object entries\n at [Source: (byte[])\"{\"schema\":{\"type\":\"struct\",\"fields\":[{\"type\":\"int32\",\"optional\":false,\"field\":\"id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"user_id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"pwd\"},{\"type\":\"string\",\"optional\":true,\"field\":\"name\"},{\"type\":\"int64\",\"optional\":true,\"name\":\"org.apache.kafka.connect.data.Timestamp\",\"version\":1,\"field\":\"created_at\"}],\"optional\":false,\"name\":\"users\"},\"payload\":{\"id”:4,”user_id\":\"user4”,”pwd\":\"1234\",\"name\":\"username4”,”created_at\":1671277849000}}\"; line: 1, column: 433]\n\tat com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1840)\n\tat com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:712)\n\tat com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:637)\n\tat com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextFieldName(UTF8StreamJsonParser.java:1011)\n\tat com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:250)\n\tat com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:258)\n\tat com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:68)\n\tat com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:15)\n\tat com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4270)\n\tat com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:2734)\n\tat org.apache.kafka.connect.json.JsonDeserializer.deserialize(JsonDeserializer.java:64)\n\tat org.apache.kafka.connect.json.JsonConverter.toConnectData(JsonConverter.java:364)\n\tat org.apache.kafka.connect.storage.Converter.toConnectData(Converter.java:87)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertValue(WorkerSinkTask.java:545)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.lambda$convertAndTransformRecord$1(WorkerSinkTask.java:501)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndRetry(RetryWithToleranceOperator.java:156)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:190)\n\tat org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execute(RetryWithToleranceOperator.java:132)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertAndTransformRecord(WorkerSinkTask.java:501)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.convertMessages(WorkerSinkTask.java:478)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:328)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:232)\n\tat org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:201)\n\tat org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:185)\n\tat org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:234)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:833)\n발생 에러는 다음과 같은데,터미널에서 직접 produce 하는 도중 발생하였는데 payload 의 데이터가 잘못 전송 되어서 해당 오류가 발생 한 것 같아서 기존 users 테이블에 다시 insert 하는 방식으로 다시 사용했을 때 이전에 실패한 task 가 남아있어서 여전히 my_topic_users 테이블에 insert 되지 않았습니다.중간에 발생한 task 는 삭제하거나 임의로 건너 뛰거나 할 수 없는 것인가요?
-
미해결스프링 핵심 원리 - 기본편
@Autowired에서 에러 발생
package hello.core.scope; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Scope; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; public class SingletonWithPrototypeTest1 { @Test void prototypeFind() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); PrototypeBean prototypeBean1 = ac.getBean(PrototypeBean.class); prototypeBean1.addCount(); assertThat(prototypeBean1.getCount()).isEqualTo(1); PrototypeBean prototypeBean2 = ac.getBean(PrototypeBean.class); prototypeBean2.addCount(); assertThat(prototypeBean2.getCount()).isEqualTo(1); } @Test public void singletonClientUsePrototype() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); ClientBean clientBean1 = ac.getBean(ClientBean.class); int count1 = clientBean1.logic(); assertThat(count1).isEqualTo(1); ClientBean clientBean2 = ac.getBean(ClientBean.class); int count2 = clientBean2.logic(); assertThat(count2).isEqualTo(2); } @Scope("singleton") static class ClientBean { private final PrototypeBean prototypeBean; @Autowired public ClientBean(PrototypeBean prototypeBean) { this.prototypeBean = prototypeBean; } public int logic() { prototypeBean.addCount(); return prototypeBean.getCount(); } } @Scope("prototype") static class PrototypeBean { private int count = 0; public void addCount() { count++; } public int getCount() { return count; } @PostConstruct public void init() { System.out.println("PrototypeBean.init " + this); } @PreDestroy public void destroy() { System.out.println("PrototypeBean.destroy"); } } } 위 코드에서 @Autowired 부분에서 Error:(43, 10) Autowired members must be defined in valid Spring bean (@Component|@Service|...)에러가 발생합니다. 스프링 빈으로 등록되어 있지 않아서 발생하는 오류라고 생각됩니다. 하지만 강사님 코드에서는 발생하지 않아서 제가 뭘 빠뜨린 것 같은데 그게 무엇인지 모르겠습니다.테스트는 돌려보면 잘 작동하고 통과가 됩니다.
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
제가 RW락을 제대로 이해한 건지 질문드립니다.
write-lock은 락을 건 스레드를 제외한 모든 스레드가 블로킹된다.write-lock 후에 read-lock을 잡는것은 허용된다.그 반대는 불가능하다.read-lock상태에서 값의 변경은 없어야 한다.제가 제대로 이해한 것인지 모르겠네요..ㅎㅎ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
eslint.....vscode..... 연동?
강의보고 따라하는데 설정은 알아서 하시라하셔서...구글링 해도 버전도 다르고 환경도 모든게 여기 따라하는거랑 달라서 어떻게 해야 될지 모르겠네요...코드 예뻐지게 하는 기능이라 하셨는데굳이 안 예뻐져도 진도 나가는데 문제는 없죠??우선 강의 내용 따라하고 vscode 마켓에서 eslint 설치만 한 상태임다
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
AWS서버 대체
AWS 서버를 사용하지 않고,Map을 띄울 수 있는 웹페이지 구현 방법이 있을까요? Map을 사용하려면 서버 구축이 필요한거 같더라고요..AWS 서버를 이용하지 않으려는 이유는 1년 후에도 사용하려는데 비용이 부담되어서 입니다..
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
next.js를 설치하면 자동적으로 @next/font가 index.js에 입력됩니다.
강의 41분 53초yarn dev로 로컬호스트 들어가니까 이런 오류가 뜨네요.해석해보니 @next/font는 next.js 13버전에만 쓸 수 있다 하는데next.js 13버전은 리액트 18에서만 쓸수 있다고 뜹니다. 그리고 next.js 설치 진행할때 타입스크립트와 eslint 설치하냐고 나오던데 타입스크립트 yes 하면 index.js가 타입스크립트로 나와서 다시 깔았습니다...next.js 설치하면 index.js에 이런 코드가 떠요.어떻게 해야되나요? 궁금합니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
store.dispatch 오류
store.dispatch 오류const initialState ={ user:{ isLoggedIn: false, user: null, signUpData: {}, loginData: {}, }, post: { mainPosts: [], } }; export const loginAction = (data) =>{ return { type: 'LOG_IN', data, } } export const logoutAction = () =>{ return { type: 'LOG_OUT', data, } } //async action creator //action Createor const CHANGE_NICKNAME = { type: 'CHANGE_NICKNAME', data: 'boogicho', } // const initialState = { // user: { // isLoggedIn: false, // user: null, // signUpData: {}, // loginData: {}, // }, // post: { // mainPosts: [], // } // }; //action Createor const changeNickname = (data) => { return { type: 'CHANGE_NICKNAME', data, } }; changeNickname('boogicho'); //{ // type: 'ChANGE_NICKNAME', // data: 'boogicho', //} // store.dispatch(changeNickname('mighty tak')) // (이전상태, 액션) => 다음상태 const rootReducer =(state, initialState, action)=>{ switch (action.type){ case 'LOG_IN': return { ... state, user: { ...state.user, isLoggedIn: ture, user: action.data, }, }; case 'LOG_OUT': return { ... state, user: { ...state.user, isLoggedIn: false, user: null, }, }; } }; export default rootReducer; 수정후 오류 page: '/' } 60 | //} 61 | // > 62 | store.dispatch(changeNickname('mighty tak')) | ^ 63 | 64 | // (이전상태, 액션) => 다음상태 65 | const rootReducer =(state, initialState, action)=>{ 터미넝essfully in 74 ms (221 modules) ReferenceError: store is not defined at eval (webpack-internal:///./reducers/index.js:60:1) at ./reducers/index.js (D:\react-zero\front\.next\server\pages\_app.js:33:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./store/configureStore.js:9:67) at ./store/configureStore.js (D:\react-zero\front\.next\server\pages\_app.js:44:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./pages/_app.js:17:79) at ./pages/_app.js (D:\react-zero\front\.next\server\pages\_app.js:22:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at __webpack_exec__ (D:\react-zero\front\.next\server\pages\_app.js:130:39) ReferenceError: store is not defined at eval (webpack-internal:///./reducers/index.js:60:1) at ./reducers/index.js (D:\react-zero\front\.next\server\pages\_app.js:33:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./store/configureStore.js:9:67) at ./store/configureStore.js (D:\react-zero\front\.next\server\pages\_app.js:44:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./pages/_app.js:17:79) at ./pages/_app.js (D:\react-zero\front\.next\server\pages\_app.js:22:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at __webpack_exec__ (D:\react-zero\front\.next\server\pages\_app.js:130:39) warn - Fast Refresh had to perform a full reload. Read more: https://nextjs.org/docs/messages/fast-refresh-reload wait - compiling / (client and server)... error - ./node_modules/bunyan/lib/bunyan.js:77:0 Module not found: Can't resolve 'fs' Import trace for requested module: ./node_modules/redex/lib/RedexGlobal.js ./node_modules/redex/index.js ./components/AppLayout.js ./pages/index.js https://nextjs.org/docs/messages/module-not-found error - reducers\index.js (62:4) @ store error - ReferenceError: store is not defined at eval (webpack-internal:///./reducers/index.js:60:1) at ./reducers/index.js (D:\react-zero\front\.next\server\pages\_app.js:33:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./store/configureStore.js:9:67) at ./store/configureStore.js (D:\react-zero\front\.next\server\pages\_app.js:44:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at eval (webpack-internal:///./pages/_app.js:17:79) at ./pages/_app.js (D:\react-zero\front\.next\server\pages\_app.js:22:1) at __webpack_require__ (D:\react-zero\front\.next\server\webpack-runtime.js:33:42) at __webpack_exec__ (D:\react-zero\front\.next\server\pages\_app.js:130:39) { page: '/' } 60 | //} 61 | // > 62 | store.dispatch(changeNickname('mighty tak')) | ^ page: '/' } 60 | //} 61 | // > 62 | store.dispatch(changeNickname('mighty tak')) | ^ 63 | 64 | // (이전상태, 액션) => 다음상태 65 | const rootReducer =(state, initialState, action)=>{ store.dispatch부분은 어떻게 하죱?
-
해결됨핵심만 쉽게, 모두의 SQL 비법 레시피
Live SQL 에 My Tutorials 추가 방법
데이터셰프님이 강의에서 알려주시는 Live SQL 에 My Tutorials 추가 어떻게 하나요? .. 강의에서 따로 알려주시지 않는 것 같아서 질문 드립니다 !
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
클라이언트에서 서버로 데이터 전송
현재 아무것도 켜있지 않은 크롬 웹 브라우저를클라이언트, 로컬호스트 8080을 치고 들어간 웹 페이지를 서버라고 생각하면 될까요?? 아니면 인텔리제이가 클라이언트인가요? 클라이언트와 서버 사이의 관계를 정확히 설명좀 해주실 수 없을까요 ㅠㅠ,,, 혼자 너무 헤매고 있네요
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
const initialState ={ user:{ 동영상 문법오류
const initialState ={ user:{ 동영상 문법오류문제의 상황D:\react-zero\front\reducers\index.jsconst initialState ={ user:{ isLoggedIn: false, user: null, signUpData: {}, loginData: {}, }, post: { mainPosts: [], } }; const initialState ={ user:{ isLoggedIn: false, user: null, signUpData: {}, loginData: {}, }, post: { mainPosts: [], } }; export const loginAction = (data) =>{ return { type: 'LOG_IN', data, } } export const logoutAction = () =>{ return { type: 'LOG_OUT', data, } } //async action creator //action Createor const CHANGE_NICKNAME = { type: 'CHANGE_NICKNAME', data: 'boogicho', } const initialState = { user: { isLoggedIn: false, user: null, signUpData: {}, loginData: {}, }, post: { mainPosts: [], } }; //action Createor const changeNickname = (data) => { return { type: 'CHANGE_NICKNAME', data, } }; changeNickname('boogicho'); //{ // type: 'ChANGE_NICKNAME', // data: 'boogicho', //} // store.dispatch(changeNickname('mighty tak')) // (이전상태, 액션) => 다음상태 const rootReducer =(state, initialState, action)=>{ switch (action.type){ case 'LOG_IN': return { ... state, user: { ...state.user, isLoggedIn: ture, user: action.data, }, }; case 'LOG_OUT': return { ... state, user: { ...state.user, isLoggedIn: false, user: null, }, }; } }; export default rootReducer; 빨간밑줄과 문법내용 고치라고 나옵니다지금 문법오류가 났습니다 흠 .. ㅇ
-
미해결데이터 분석 SQL Fundamentals
row_number
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.상품별 매출 랭킹(카테고리별)이 내림차순으로 나와야 하는데 왜 매출 수치랑 랭킹이 맞지 않을까요.. 대체 어디가 틀린 걸까요ㅠㅠwith c as (select b.category_id, a.product_id, sum(a.amount) sum_amt from order_items a join products b on a.product_id = b.product_id group by a.product_id, b.category_id order by b.category_id, a.product_id )select category_id, product_id, sum_amt, sum(sum_amt) over (partition by category_id) sum_category,row_number() over(partition by category_id order by sum_amt desc) as rank_sumfrom c group by category_id, product_id, sum_amt
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
동영상보고 따라하기에서 우려했던 부분이 오류로 나옵니다..import { createStore } from 'redux';
유려했던 오류가.. 나타났습니다.홈페이지 오류내용Failed to compile ./pages/_app.js Error: x Expression expected ,---- 5 | | import { createStore } from 'redux'; : ^ `---- x Unexpected token `{`. Expected `.` or `(` ,---- 5 | | import { createStore } from 'redux'; : ^ `---- Caused by: 0: failed to process input file 1: Syntax Errorapp.js 페이지 내용 app.js 가 코드로올리면 오류가나서 못올리네요그림첨부합니다. 터미널 내용과, app.js 코드올리려고하면고양이그림나오고 오류나와서 안되서 못올리네요 Failed to compile./pages/_app.js:4:0 Module not found: Can't resolve 'redux' 2 | import PropTypes from 'prop-types'; 3 | import Head from 'next/head'; > 4 | import { createStore } from 'redux'; 5 | 6 | import 'antd/dist/antd.css' 7 | https://nextjs.org/docs/messages/module-not-foundThis error occurred during the build process and can only be dismissed by fixing the error. ㅇ
-
미해결Motion5 기초부터 템플릿 만들기까지!
질문
Link하는 부분에서Source parameter 메뉴를 누르면 properties만 나오고 filter는 나오지 않습니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
마이그레이션 문의입니다.
현재 회사의 DB는 mysql로 되어있는데,제가 강의에서 배우는 Postgresql 과는 문법 차이가 있는거 같더라구요.mysql로 되어있는 문법들을 postgresql로 바꾸는것을 마이그레이션 이라고 하던데실습 강의를 배우면서회사 DB로 복습을 하려 합니다.mysql로 되어있는 것을 postgresql로 바꾸려면 어떻게 해야할까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@Query vs QueryDsl
@Query 내부적으로 문자로 JPQL을 적어야 하는 순간에는 무조건 QueryDsl로 type-safe하게 쿼리를 작성하고 있었습니다 이부분을 좀 생각해보니까SELECT DISTINCT t FROM Team t JOIN FETCH t.members WHERE t.id = :teamIdSELECT m FROM Member m JOIN FETCH m.team예시와 같은 간단한 쿼리들도 전부 QueryDsl로 옮기다보니까 굳이 @Query로 작성하지 않고 옮겨서 작성해야하나 라는 생각이 들었습니다 영한님의 경우 문자로 JPQL을 작성해야하는 순간은 전부 QueryDsl로 작성하시는지 궁금해서 질문을 남기게 되었습니다
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
마지막 표 오타
안녕하세요?강의 수강중에 마지막표에서 MVVM 패턴 밑에, V 와 VM 관계는 1 : n 관계라고 하셨는데요, n : 1 아닌가 해서요.감사합니다~
-
미해결다양한 사례로 익히는 SQL 데이터 분석
UTF-8 문제
안녕하세요, 파일 다운 받고 MySQL로 열었는데 위 이미지처럼 글자가 나오지 않아요. 어떻게 해야 하나요?
-
미해결데이터 분석 SQL Fundamentals
실행 순서 관련
-- 직원별 개별 상품 매출액, 직원별 가장 높은 상품 매출액을 구하고, 직원별로 가장 높은 매출을 올리는 상품의 매출 금액 대비 개별 상품 매출 비율 구하기 with temp_01 as ( select b.employee_id, a.product_id, sum(amount) as sum_by_emp_prod from order_items a join orders b on a.order_id = b.order_id group by b.employee_id, a.product_id)select employee_id, product_id, sum_by_emp_prod , max(sum_by_emp_prod) over (partition by employee_id) as sum_by_emp , sum_by_emp_prod/max(sum_by_emp_prod) over (partition by employee_id) as sum_ratiofrom temp_01order by 1, 5 desc; 위 쿼리의 실행 순서를 살펴 보았는데 맞는지 조언 얻고 싶습니다.order_items a와 orders b를 order_id로 join1의 결과를 employee_id로 group byselect b.employee_id, a.product_id select하여 temp_01 완성temp_01에서 employee_id, product_id, sum_by_emp_prod, sum_by_emp, sum_ratio를 select1, 5요인으로 desc 하여 order by 또 sum_ratio를 select 할 때 sum_by_emp를 사용하지 않고 max(sum_by_emp_prod) over (partition by employee_id)를 그대로 쓰는 이유가 궁금합니다