inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

POST http://localhost:3090/api/users net::ERR_INTERNET_DISCONNECTED

미해결

Slack 클론 코딩[실시간 채팅 with React]

제로초님, 코드는 정확히 따라 한 거 같은데, 무엇이 문제인지 판단이 안되네요... 리액트 v18, 타입스크립트 v18, axios는 1.2.3 입니다. webpack import path from 'path'; import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin'; import webpack, { Configuration as WebpackConfiguration } from "webpack"; import { Configuration as WebpackDevServerConfiguration } from "webpack-dev-server"; interface Configuration extends WebpackConfiguration { devServer?: WebpackDevServerConfiguration; } import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; const isDevelopment = process.env.NODE_ENV !== 'production'; const config: Configuration = { name: 'sleact', mode: isDevelopment ? 'development' : 'production', devtool: !isDevelopment ? 'hidden-source-map' : 'eval', resolve: { extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'], alias: { '@hooks': path.resolve(__dirname, 'hooks'), '@components': path.resolve(__dirname, 'components'), '@layouts': path.resolve(__dirname, 'layouts'), '@pages': path.resolve(__dirname, 'pages'), '@utils': path.resolve(__dirname, 'utils'), '@typings': path.resolve(__dirname, 'typings'), }, }, entry: { app: './client', }, module: { rules: [ { test: /\.tsx?$/, loader: 'babel-loader', options: { presets: [ [ '@babel/preset-env', { targets: { browsers: ['IE 10'] }, debug: isDevelopment, }, ], '@babel/preset-react', '@babel/preset-typescript', ], env: { development: { plugins: [['@emotion', { sourceMap: true }], require.resolve('react-refresh/babel')], }, production: { plugins: ['@emotion'] } }, }, exclude: path.join(__dirname, 'node_modules'), }, { test: /\.css?$/, use: ['style-loader', 'css-loader'], }, ], }, plugins: [ new ForkTsCheckerWebpackPlugin({ async: false, // eslint: { // files: "./src/**/*", // }, }), new webpack.EnvironmentPlugin({ NODE_ENV: isDevelopment ? 'development' : 'production' }), ], output: { path: path.join(__dirname, 'dist'), filename: '[name].js', publicPath: '/dist/', }, devServer: { historyApiFallback: true, // react router port: 3090, devMiddleware: { publicPath: '/dist/' }, static: { directory: path.resolve(__dirname) }, proxy: { '/api/': { target: 'http://localhost:3095', changeOrigin: true, }, }, }, }; if (isDevelopment && config.plugins) { config.plugins.push(new webpack.HotModuleReplacementPlugin()); config.plugins.push(new ReactRefreshWebpackPlugin()); } if (!isDevelopment && config.plugins) { } export default config; index.tsx import useInput from "@hooks/useInput"; import React, { useCallback, useState } from "react"; import { Form, Label, Input, LinkContainer, Button, Header, Error} from './styles' import axios from "axios"; const SignUp = () => { const [email, onChangeEmail] = useInput('');//useInput은 커스텀 훅 const [nickname, onChangeNickName] = useInput(''); const [password, setPassword] = useState(''); const [passwordCheck, setPasswordCheck] = useState(''); const [mismatchError, setMismathError] = useState(false); const onChangePassword = useCallback((e: any) => { setPassword(e.target.value); setMismathError(e.target.value !== passwordCheck); // 함수 기준으로 외부 변수만 deps에 적어줌 내부 변수는 x }, [passwordCheck]); const onChangePasswordCheck = useCallback((e: any) => { setPasswordCheck(e.target.value); setMismathError(e.target.value !== password) }, [password]); const onSubmit = useCallback((e: React.FormEvent) => { e.preventDefault(); if(!mismatchError && nickname){ console.log('서버로 회원가입하기'); axios.post('/api/users', { email, nickname, password, }) .then((response) => { console.log(response); })//요청이 성공하면 실행 .catch((error) => { console.log(error.response); })//요청이 실패하면 실행 .finally(() => {});//성공하든 실패하든 실행시키고 싶은 것 } console.log(email, nickname, password, passwordCheck) }, [email, nickname, password, passwordCheck, mismatchError]); return ( <div id="container"> <Header>Sleact</Header> <Form onSubmit={onSubmit}> <Label id="email-label"> <span>이메일 주소</span> <div> <Input type="email" id="email" name="email" value={email} onChange={onChangeEmail} /> </div> </Label> <Label id="nickname-label"> <span>닉네임</span> <div> <Input type="text" id="nickname" name="nickname" value={nickname} onChange={onChangeNickName} /> </div> </Label> <Label id="password-label"> <span>비밀번호</span> <div> <Input type="password" id="password" name="password" value={password} onChange={onChangePassword} /> </div> </Label> <Label id="password-check-label"> <span>비밀번호 확인</span> <div> <Input type="password" id="password-check" name="password-check" value={passwordCheck} onChange={onChangePasswordCheck} /> </div> {mismatchError && <Error>비밀번호가 일치하지 않습니다.</Error>} {!nickname && <Error>닉네임을 입력해주세요.</Error>} {/* {signUpError && <Error>{signUpError}</Error>} */} {/* {signUpSuccess && <Success>회원가입되었습니다! 로그인해주세요.</Success>} */} </Label> <Button type="submit">회원가입</Button> </Form> <LinkContainer> 이미 회원이신가요?&nbsp; <a href="/login">로그인 하러가기</a> </LinkContainer> </div> ); }; export default SignUp; 이렇게 따라 한 후에 회원 가입 누르면 아래 같은 화면이 뜹니다.

  • 웹팩
  • react
  • Socket.io
  • socket.io
  • typescript
  • babel
  • 클론코딩
  • 클론코딩
성창수 댓글 2 좋아요 0 조회수 1132

하나의 작업을 여러 서비스 계층에서 나눠서 할때 트랜잭션 처리

미해결

실전! 스프링 데이터 JPA

예를들면 하나의 게시글을 처음 작성하며 여러 태그도 함께 붙이는 내용을 구현할 때 게시글 관련해서 PostService, 태그 관련해서 TagService로 처리를 한다고 가정해보겠습니다. public ResponseEntity(@RequestBody PostRequest postRequest) { Post post = postService.post (postRequest.toPost()); tagService.addTag(postRequest.toTag()); return ResponseEntity ...; } 이런 형태이고 post() 메서드를 통해 게시글을 저장하고 addTag() 메서드를 통해 태그를 저장한다고 할때 서로 다른 서비스 클래스의 메서드에 @Transactional 이 걸려있어서 만약 Post 엔티티를 저장한 후 Tag 엔티티를 저장해야 하는 상황에서 중간에 문제가 발생한다면 Tag는 저장이 안되었지만 Post는 저장이 되는 문제가 발생합니다. 간단하게 상황 설명만을 위해 작성한 예시라 내용이 이상하지만 이런 상황에서 트랜잭션을 한번에 처리할 방법이 있을까요? 결국 하나의 트랜잭션에서 처리해야할것 같아서 위 예시의 경우 postService에서 TagService의 addTag를 호출하는 형태로 하면되지 않을까 고민해 봤습니다. 보통 이런식으로 한번에 처리해야 하는 로직이 여러 서비스 계층에 나누어 있는 경우? 처리를 어떤식으로 하는지 어떤 방법들이 있는지 궁금합니다.

  • java
  • spring-boot
  • JPA
  • spring-boot
  • jpa
  • spring
pj5016 댓글 1 좋아요 0 조회수 1370

인터프리터 설정 할 때 이렇게 뜹니다

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

인터프리터 누르니까 이렇게 뜹니다 3.8.6 선택해도 말씀하신 것처럼 왼쪽 아래에 버전이 뜨지 않고 0표시만 있네요 어떻게 해야 하나요? 이상태로 수업 받아도 되나요?

  • python
eunji1952 댓글 1 좋아요 1 조회수 582

refreshToken 도 만료가 되었을 경우 로그아웃인가요?

해결됨

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

일반적으로 refreshToken 도 만료가 되었을 경우 로그아웃인가요? 일반 앱에서는 계속적으로 로그인이 유지가 되는데, 이건 특수한 경우로 refreshToken 도 새롭게 받는 것 인가요?

  • Flutter
  • 하이브리드 앱
mkp0131 댓글 1 좋아요 0 조회수 408

선생님 server.xml 컨텍스트 path에 대해서 질문드립니다.

미해결

[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]

MVC04 를 실행시키려면 이 코드로는 진행이 안됩니다. 여기가 문제인 것 같은데 어떤 게 올바른 코드인지 말씀 부탁드립니다 ㅠㅠ!

  • MVC
  • mvc
  • jsp
  • mysql
  • ajax
  • pojo
정원준 댓글 1 좋아요 0 조회수 365

혹시 리타게팅 방법이 아예 달라졌을까요??

미해결

[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문

영상대로 따라 했는데 강의 16:51분부턴 영상속처럼 안되네요 둘이 똑같은 모션이 아니라 벨리카 에셋 혼자서 한쪽팔 들고 스샷처럼 행동만하고 탭도 영상이랑 다르던데 혹시 패치가 되서 안되는걸까요??

  • blueprint
  • unreal
최지로 댓글 0 좋아요 0 조회수 500

강의 내용중 말씀하신게 서로 상반되서 문의 드립니다.

미해결

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]

명강의 항상 감사드립니다. 공부하는 와중에 이해를 못하는 부분이 있어서, 문의 드립니다. 강의 영상 1분54초 부터 2분 16초까지 입니다. 아래는 말씀하신내용을 그대로 적었습니다. 도커 컴포즈로 한번에 실행한 도커들은 내부 네트웍망이 구축이 되서, 서로 접속을 할수가 있습니다 . 하지만 해당 이미지가 이런 포트를 아예 오픈해 놓지 않는다면 해당 컨테이너로 접속할수 있는 창구가 없겠죠 제가 이해하지 못하는 부분은 도커 컴포즈는 내부 네트워망이 구축이 되서 접속을 할수가 있다 라고 말씀해 주셨는데, 포트를 오픈해 놓지 않으면 접속 할수 있는 창구가 없다라고 말씀을 해주셨습니다. 접속할수 있는데 접속할수 있는 창구가 없다 라는게 이해가 잘안가는데 네트워크로는 접속 할수 있고, 포트로는 접속을 못한다 라고 이해하면될까요?

  • network
  • docker
  • linux
가후 댓글 1 좋아요 0 조회수 397

Springboot version(start.spring.io)

해결됨

토비의 스프링 부트 - 이해와 원리

https://start.spring.io/ 현재는 2.7.6은 보이지 않아, 우선 인텔리제이에서의 프로젝트 생성 마법사로 설정하거나, springboot cli로 설치해야 할 것 같아 공유드립니다.

  • spring-jdbc
  • spring-boot
  • spring
  • spring-jdbc
  • spring-boot
gguu 댓글 1 좋아요 0 조회수 1306

고객별 연관 상품 추출 수업 관련 질문

미해결

다양한 사례로 익히는 SQL 데이터 분석

안녕하세요, 주변별 고객별 연관 상품 추출 sql 구하기 -02 수업 관련해서 질문 드리겠습니다. 해당 쿼리문 결과값 중 'cnt' 열에 해당되는 횟수가 출력이 되는데, 예를 들면 위 사진에 보이는 출력 열 'cnt' 3에 해당되는 user_id 를 알고 싶을 때는 어떤 쿼리를 작성해야되나요?

  • DBMS/RDBMS
  • sql
  • postgresql
  • 퍼포먼스 마케팅
  • 데이터 엔지니어링
Dash Choi 댓글 1 좋아요 1 조회수 445

assertThrows() 질문

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] assertThrows 메서드를 사용해 주문 취소 테스트 예를 실행하던 중 궁금한 점이 생겨 질문을 남깁니다. 배송 완료 상황일 때는 취소가 되지 않는 예외를 적용한 것에 대해 제가 작성한 테스트인데요. 아래 코드를 통해 말씀드리겠습니다. // given Member member = createMember(); Item item = createBook("JPA", 10000, 10); int orderCount = 2; int curStock = item.getStockQuantity(); Long orderId = orderService.order(member.getId(), item.getId(), orderCount); // when // 배송 완료 상태면 취소가 안됨 Order getOrder = orderRepository.findOne(orderId); getOrder.getDelivery().setStatus(DeliveryStatus.COMP); IllegalStateException e = assertThrows(IllegalStateException.class, () -> orderService.cancelOrder(orderId)); Assertions.assertThat(e.getMessage()).isEqualTo("이미 배송완료된 상품은 취소가 불가능합니다."); // order 취소되는 경우를 가정하고 위에서 테스트했다고 쳤을 때 어떤 상태인지 보고 싶음! System.out.println(orderRepository.findOne(orderId).getStatus()); 아래와 같이 getStatus를 출력해보면 CANCLE이 아닌 ORDER라고 출력이 됩니다. getOrder.getDelivery().setStatus(DeliveryStatus.COMP); IllegalStateException e = assertThrows(IllegalStateException.class, () -> orderService.cancelOrder(orderId)); Assertions.assertThat(e.getMessage()).isEqualTo("이미 배송완료된 상품은 취소가 불가능합니다."); // order 취소되는 경우를 가정하고 위에서 테스트했다고 쳤을 때 어떤 상태인지 보고 싶음! System.out.println(orderRepository.findOne(orderId).getStatus()); 바로 이 부분인데요. assertThrows 내에서 orderCancle을 진행해서 테스트를 진행하는데 왜 주문의 상태가 CANCLE이 아닌 ORDER로 출력이 되는 지 알 수 있을까요? 객체의 얕은 복사, 깊은 복사와 관련이 있는 것인지 궁금합니다.

  • JPA
  • 웹앱
  • 웹앱
  • spring-boot
  • jpa
  • spring
  • java
김 승우 댓글 1 좋아요 1 조회수 2328

인텔리제이 무료 버전도 학습에 지장없나요?

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

지장없다는 말도 있고 있다는 말도 있던데 저는 김영한님 로드맵 2개 다 들을 예정인데 강의가 몇십 개 있더라구요 인텔리제이 무료 버전을 써서 막히는 부분들이 있을까요?

  • java
  • spring
  • mvc
  • spring-boot
  • MVC
11 1 댓글 1 좋아요 0 조회수 470

2-S

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 고민하다가 이렇게 하면 될 거 같아서 해봤는데, 런타임 에러가 발생합니다. 논리만 보면, 강사님이랑 비슷한 거 같은데, 완전 잘못간것일까요?? http://boj.kr/34380871ba87499d9065179a1e49a024

  • c++
  • 코테 준비 같이 해요!
  • 코딩-테스트
  • C++
kimseunghwan7777 댓글 2 좋아요 0 조회수 632

질문입니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 복습 중 궁금한 것들이 생겨서 질문 드립니다. 1. @Repository 어노테이션을 붙이면 이 클래스는 EntityManager 가 관리하는 클래스가 된다는 걸 의미하나요? 2. @Transactional(readOnly = true) 를 이용하면 영속성 컨텍스트에 관리를 받지 않게 된다고 하는데 이것이 어떤 이점이 있는지 궁금합니다. 3. MemberController 에서는 @Valid 를 사용했는데 ItemController 의 create 메서드에서는 왜 @Valid 를 사용하지 않았는지 궁금합니다.

  • spring
  • 웹앱
  • 웹앱
  • JPA
  • jpa
  • spring-boot
  • java
작성자 댓글 1 좋아요 0 조회수 371

해당 코드 schemetic 질문

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

안녕하세요 맛비님 해당 Code를 Schemetic을 했을 때 Flip Flop을 보고 의문이 생겼습니다. 제가 알기로 D Flip Flop은 입력으로 CLK와 D(입력)를 받아 출력 Q 를 내보낸다고 알고 있습니다. 하지만 schemetic을 띄웠을 때 위와 같이 Filp Flop에 CLK, D 뿐만이 아니라, RST가 붙은 경우도 있고, SET과 RST 둘 모두가 붙은 경우도 봤습니다. Q) SET or RST이 붙어있는 Flip Flop은 D F/F인가요? 아니면 J-K F/F인가요? (J = Set 역할, K = Reset 역할) D F/F에 게이트들이 추가적으로 붙은 D F/F인가요? J-K(S-R) F/F이 아니라면 이유가 무엇인지 궁금합니다. 감사합니다

  • fpga
  • 임베디드
  • 임베디드
osia0921 댓글 1 좋아요 2 조회수 365

[질문] 1.5. Linear Equations in Linear Algebra 5page

해결됨

선형대수학개론

안녕하세요. 해당 강의를 듣다 궁금한점이 있어 질문드립니다. 질문은 다음과 같습니다..! 5페이지 부분을 강의하실 때 Ax=0(homogeneous linear system)의 solution set은 항상 span {V1, V2, ..., Vp}로 표현된다고 하시고, A는 m by n 행렬, 벡터 V는 R^m 스페이스에 있다고 하셨는데 벡터 V는R^m이 아니라 R^n 스페이스 내에 있는게 아닌지요,,? 언제나 좋은 강의 감사드립니다 ( ◡̉̈ )

  • 선형대수학
  • 선형대수학
shchoi 댓글 1 좋아요 1 조회수 422

Application Program 설계 시 multi-process vs. multi-thread

해결됨

곰책으로 쉽게 배우는 최소한의 운영체제론

안녕하세요, 늘 좋은 강의 감사드립니다. 강의 중 Process=Program 이라고 생각하면 된다고 하셨는데, 하나의 Application Program을 설계 할 때 동시에 수행되어야 하는 task에 대해 multi-process로 동작하도록 할 것 인가 multi-thread로 동작하도록 할 것 인가는 설계자의 선택의 문제인가요? Process=Program 개념으로 생각하면 설계자 입장에서 하나의 Application Program 내에 여러개의 Process를 만드는 것은 불가능 한 것인가? 이렇게 생각이 들기도 하는데 궁금해서 여쭤봅니다.

  • 운영체제
  • 운영체제
basketcree 댓글 1 좋아요 0 조회수 458

강의에 나온 GqlAuthAccessGuard가 상속 받는 AuthGuard('myGuard')에 대해 궁금한게 있습니다.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

강의자료 중 >> 회원 조회 API - 인가 << 해당 부분에서 이해가 가지 않는 게 있습니다. 해당 강의 자료에서 아래와 같은 내용이 있는데요. AuthGuard와 GqlAuthAccessGuard는 부모-자식의 관계이고 getRequest 부분만 오버라이딩 한거라고 생각됩니다(요청이 rest-api가 아닌 gql이기 때문에). 그래서 AuthGuard의 기능이 GqlAuthAccessGuard에도 똑같이 있는 거라고 생각되는데 해당 자료에는 GqlAuthAccessGuard가 실행 된 뒤에 AuthGuard가 실행된다고 나와있는데요. 이 부분이 이해가 되질 않네요...

  • NestJS
  • tdd
  • nodejs
  • docker
  • rest-api
  • express
  • javascript
gigo96 댓글 1 좋아요 0 조회수 280

리액트 안에 gql 적용시 설치 패키지 질문

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

질문1 리액트에 gql 적용시 영상과다르게 아래와같이 단색으로 프로그래밍 됩니다 어떤 패키지를 적용해야 할까요?

  • seo
  • node.js
  • graphql
  • nodejs
  • react
  • next.js
  • Next.js
이효성 댓글 1 좋아요 1 조회수 256

Future<RestaurantDetailModel> 타입을 정해주면 RestaurantDetailModel.fromJson 을 사용하여 인스턴스를 생성하는 것은 factory 키워드 때문인가요?

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

Future<RestaurantDetailModel> 타입을 정해주면 RestaurantDetailModel.fromJson 을 사용하여 인스턴스를 생성하는 것은 factory 키워드 때문인가요?

  • 하이브리드 앱
  • Flutter
mkp0131 댓글 1 좋아요 0 조회수 473

pos 구조체 초기화 문제

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘

강의 코드대로 중괄호({})로 pos 구조체 변수를 생성, 초기화 하면 항상 Pos{ -1, 0 } >> 이 부분에서 error C2440: 'initializing': cannot convert from 'initializer list' to 'Pos' note: No constructor could take the source type, or constructor overload resolution was ambiguous 에러가 뜹니다. 해결 하긴 했는데 Pos 구조체 안에서 int32 y = 0; int32 x = 0; 로 초기화 시키지 않고 int32 y; int32 x; 로 바꾸니까 바로 되더라구요. 우선 동작은 잘 되는데 혹시 뭐가 문제인건지 알 수 있을까요?

  • 기술면접
gyummm 댓글 0 좋아요 0 조회수 525

인기 태그

인프런 TOP Writers

주간 인기글