묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
장고로 웹뷰앱 가능할까요?
안녕하세요 강사님,대전에서 강의를 열심히 듣고 있는 수강생입니다 :)모바일 서비스로 창업을 준비하고 있는데... 과연 장고로 커버가 될까 여쭈어봅니다. 우선은 허접한 웹사이트는 만들어두었습니다. (jasol.co.kr)궁극적으로는 유저들에게 푸시 알림을 보내고 싶기 때문에 웹이 아니라 '앱' 환경으로 나아가야겠지요. [질문1]C, Java언어가 친숙한 저에겐 react문법은 너무나 해괴해서 빠르게 시작을 못 하겠더라고요;javascript와 django로만 구현을 했고, 최종적으로는 flutter를 이용해서 웹뷰로만 구현을 하려고 합니다. 근데 제가 해보질 않아서, 이게 될 지 궁금하더라고요. flutter로 겉 껍데기만 만들고, 결국 웹브라우징을 하되, 앱 푸시 기능은 있게 만드는 거죠(장고의 REST framework를 사용하면 구현은 가능할 거 같은데, 맞죠? 제가 거기까진 못 가봐서 ㅠㅜ) 제가 자주 이용하는 yes24 서점앱도 보면 순수 자바스크립트에다가 웹뷰로 싸놓은 것 같았어요. 하지만 푸쉬 알림도 잘 오고요. 이렇게 구현하는 경우도 흔한가요? 토스앱도 대부분 웹뷰로 알고 있는데, 제가 생각하는 서비스는 성능이 중요하지 않은 서비스라서...(예전엔 PWA를 써서 웹을 앱으로 만들었던 거 같은데 요즘은 또 그렇게 하지 않은 것 같더라고요.)요약하자면, django로 웹사이트 구현하고, flutter나 RN으로 웹뷰 구현, 충분히 가능한 얘긴지? [질문2] 웹앱을 꼭 써야하는 지...요즘은 리액트가 대세라는 걸 정말 잘 알고 있습니다. 웹앱이 주는 편리함이 뭘까 생각해봤을 때, 화면전환할때 '깜빡'하는 게 없고 로딩을 초반에 다 해놓는다는것 말고는 크게 와닿는게 없더라고요. 거꾸로 제가 리액트를 새롭게 배워서 구현하기엔 시간이 지연되는 것 같아 괴롭습니다. 웹앱을 꼭 써야만 하는걸까요? yes24 앱도 화면전환할 때 깜빡~ 하고 페이지 로딩하던데 저는 크게 불편함을 못 느끼거든요. [질문3] 혹시 ask컴퍼니에...가끔 서대전역에 갈 일이 있는데, 강사님께 얼굴 비추러 가도 되나요? 바쁘신분 붙잡고 시간 뺏고 싶지는 않고 가끔 조언같은거 구할 때 10분만이라도 얘기하면 길이 생길 거 같은데 ㅠㅜ... 네이버지도에 있는 ask컴퍼니 전화번호에 미리 전화드리고 방문드려도 괜찮을까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Scanner next() 메소드 관련 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 1)int n = kb.nextInt();String str = kb.nextLine();==============================2)int n = kb.nextInt();String str = kb.next(); 1)과 2) 차이점이 궁금합니다.예를들어 5 \r\n 3 을 입력하는 경우,1)의 경우에는 콘솔창에엔터를 치면 입력이 안되고, 2)의 경우에는 엔터를 쳐서 따로 입력이 가능한데 왜 그런지 궁금합니다ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
좌표평면질문
성역에서 시간을 보내다보니 2주째 손을 놓아버렸네요 다시빡공갑니다좌표탐색할때 좌표평면이 저희가 평소알던게아니라 y가 뒤집어져있어서 헷갈리는데 const int dy[] = {-1,0,-,0};const int dx[] = {0,1,0,-1};가 아니라const int dy[] = {1,0,-1,0};const int dx[] = {0,1,0,-1};으로해도 답은 맞게나오던데 상관없나요?
-
해결됨입문자를 위한 자바스크립트 기초 강의
노드와 메소드..
안녕하세요, 선생님! 완전 입문자 중에 찐입문자, 초보중에 쌩 초보인 사람입니다.아무리 자바스크립트 강의를 들어도 뭔가 개념이 와닿지 않아서 뒤로 넘어가지 못하다 선생님 강의를 만나고 하나씩 개념을 잡아가고 있습니다! (우선 너무 감사드린단 인사 먼저 드려요)강의를 듣다보니 노드랑 메소드라는 표현을 자주 사용하시더라구요.대략적으로 무엇을 가르켜 말씀하시는지는 알겠으나, 정확히 말씀하시는 노드와 메소드에 대해 개념을 잡고 가고 싶어서요..! 한번 정의내려주실 수 있으실까요?
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
질문있습니다
1. send()함수는 패킷을 보내는 함수가 아니라 소켓의 출력 버퍼에 데이터를 쓰는 것이고, recv()함수는 소켓의 입력버퍼에서 데이터를 읽어들이는 거라고 보면 될까요?? 데이터를 모아서 한번에 패킷을 보내는 것이 패킷의 갯수를 줄여서 성능 상의 이점이 있다는 건 알겠지만 데이터를 받을 때도 입력 버퍼에서 모아놓았다가 한번에 읽어들이는 것이 좋다는 것은 잘 모르겠네요...ㅠㅠ데이터를 받을 때 패킷을 보낼 때와 마찬가지로 일정 시간 대기해서 데이터가 쌓이도록 한 다음 읽어들인다는 건가요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Identity 생성 전략에서 em.persist(entity) 호출 시 동작 과정 질문
다른분의 질문을 참고하여 생각했을 때em.persist(entity) 호출 -> pk값이 null인 상태로 1차 캐시에 저장불가-> Insert 쿼리가 DB에 전달 -> DB에서 PK 값 생성 -> PK값을 조회해서(내부적으로 select 쿼리를 보냄) 영속성 컨텍스트의 1차 캐시에 저장, PK 값이 적용된 영속 엔티티가 초기값일때 스냅샷으로 사용 위의 처럼 생각이 드는데 맞게 생각한건지 궁금합니다.답변주시면 정말 감사하겠습니다.
-
미해결실전! 스프링 데이터 JPA
JOIN 관련해서 질문드릴게 있어요!
안녕하세요. 수업 듣다가 갑자기헷갈려서 여쭤볼게 생겼어요.@Query("select new study.datajpa.dto.MemberDto(m.id, m.username, t.name) " + "from Member m join m.team t")위 같은 쿼리에서 Member entity에 t.name이란게 없으니 저는 fetch join을 써야 한다고 처음에 생각했거든요.일반 join은 조회시 join 대상이 되는 entity는 조회 대상이 되는 칼럼에서 불러지지 않고, 불러진다면, 따로 쿼리가 동작하기 떄문에 N+1 이 발생하는 걸로 알고있었는데, 수업에서 log보니깐 select 쿼리에서 t.name 도 같이 한 쿼리에 조회되는게 보여서 갑자기.. 멍해지더라구요 ㅋㅋ;;;저는 member 따로 1번, team따로 1번 돌거라고 예상했었는데... 제가 놓친 부분이 있을까요?? 답변 미리 감사드리겠습니다.
-
해결됨[플러터 상태관리] Bloc 마스터 코스 기초부터 응용까지!
안드로이드 스튜디오 에뮬레이터 권장사양
안드로이드 스튜디오에서 코딩하는 것까지는괜찮은데,에뮬레이터로 실행해서 화면 띄우는 거까지 보려면속도가 너무 느립니다.에러가 있을 경우에는 더 답답하고요.일반적인 사무, 인터넷용으로는 답답함을 전혀못 느꼈는데, 유독 코딩할 때만 너무 느리네요컴퓨터를 새걸로 바꿔야 하나 싶기도 한데,안드로이드 스튜디오 에뮬레이터를 원활히돌리려면 컴퓨터 사양이 어느 정도 되면 될까요?(gpu도 좋은게 있어야 할까요? 제가 게임은 별로 안해서요..)참고로 현재 컴퓨터 사양은cpu: amd 3300ram: 8기가ssd: 500gbgpu: 메인보드 내장형 입니다.
-
미해결ChatGPT를 이용한 누구나 앱개발 with 알렉
안드로이드 스튜디오 에뮬레이터 권장사양
안드로이드 스튜디오에서 코딩하는 것까지는괜찮은데,에뮬레이터로 실행해서 화면 띄우는 거까지 보려면속도가 너무 느립니다.에러가 있을 경우에는 더 답답하고요.일반적인 사무, 인터넷용으로는 답답함을 전혀못 느꼈는데, 유독 코딩할 때만 너무 느리네요컴퓨터를 새걸로 바꿔야 하나 싶기도 한데,안드로이드 스튜디오 에뮬레이터를 원활히돌리려면 컴퓨터 사양이 어느 정도 되면 될까요?(gpu도 좋은게 있어야 할까요? 제가 게임은 별로 안해서요..)참고로 현재 컴퓨터 사양은cpu: amd 3300ram: 8기가ssd: 500gbgpu: 메인보드 내장형 입니다.
-
해결됨[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
안드로이드 스튜디오 에뮬레이터 권장사양
안드로이드 스튜디오에서 코딩하는 것까지는괜찮은데,에뮬레이터로 실행해서 화면 띄우는 거까지 보려면속도가 너무 느립니다.에러가 있을 경우에는 더 답답하고요.일반적인 사무, 인터넷용으로는 답답함을 전혀못 느꼈는데, 유독 코딩할 때만 너무 느리네요컴퓨터를 새걸로 바꿔야 하나 싶기도 한데,안드로이드 스튜디오 에뮬레이터를 원활히돌리려면 컴퓨터 사양이 어느 정도 되면 될까요?(gpu도 좋은게 있어야 할까요? 제가 게임은 별로 안해서요..) 참고로 현재 컴퓨터 사양은cpu: amd 3300ram: 8기가ssd: 500gbgpu: 메인보드 내장형 입니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
쿠키 세팅하고 return할때 질문이 있습니다.
import { Body, Controller, Post, Res } from '@nestjs/common'; import { AuthService } from './auth.service'; import { LoginUserValue } from './dto/cats.request.dto'; import { Response } from 'express'; @Controller('auth') export class AuthController { constructor(private readonly authService: AuthService) {} @Post() async login(@Body() val: LoginUserValue, @Res() res: Response) { const result = await this.authService.login(val); //cookie에 토큰을 담아서 보내줌 다음과 같이 console.log(result.refreshToken); console.log('여기서 못나가네'); res.setHeader( 'Set-Cookie', `refreshToken=${result.refreshToken}; path=/; `, ); console.log('뭐야 여기오네?'); // res.setHeader( // 'Set-Cookie', // `refreshToken=${result.refreshToken}; path=/; domain=localhost; SameSite=None; Secure; HttpOnly`, // ); // res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000'); res.json({ accesstoken: result.accessToken }); } } 먼저, 저는 지금 그래프큐엘을 사용하지않고restAPI를 사용하며 진도를 따라가고 있습니다.질문드릴 코드는 위와같이 되어있습니다. 원래는 return을 해주고있었는데 res설정하고 쿠키세팅하고나니까 return이 안먹고 클라이언트에서는 무한대기에 빠집니다. 그래서 혹시나해서 res.json으로 하니까 응답이 또 정상적으로 가더라구요..그래서 일단 다음과 같이 코드를 수정해두고 원래대로 return을 사용하고있는데혹시 정석은 어떻게 해야하는지 알려주시면 감사하겠습니다.임시 수정 코드import { Body, Controller, Post, Req, Res } from '@nestjs/common'; import { AuthService } from './auth.service'; import { LoginUserValue } from './dto/cats.request.dto'; import { Response } from 'express'; @Controller('auth') export class AuthController { constructor(private readonly authService: AuthService) {} @Post() async login( @Body() val: LoginUserValue, @Res({ passthrough: true }) res: Response, ): Promise<any> { const result = await this.authService.login(val); //cookie에 토큰을 담아서 보내줌 다음과 같이 res.setHeader( 'Set-Cookie', `refreshToken=${result.refreshToken}; path=/; `, ); // res.setHeader( // 'Set-Cookie', // `refreshToken=${result.refreshToken}; path=/; domain=localhost; SameSite=None; Secure; HttpOnly`, // ); // res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000'); return { accesstoken: result.accessToken }; } }
-
해결됨하루만에 배우는 AWS REDIS
POST API Caching
현재 운영하는 API가 모두 POST로 이루어진 경우에는 Elasticache 도입이 무의미 할까요?POST 로 구성 된 API에서 활용 가능한 caching은 어떤게 있는지 궁금합니다.
-
해결됨실전! 스프링 데이터 JPA
isNew() 메서드의 구현체 문의
안녕하세요! isNew() 메서드의 구현체가 정확히 무엇인지 확인하고 싶어 질문드립니다!SimpleJpaRepository의 save() 메서드 내부에서 isNew() 메서드가 호출될 때,if (entityInformation.isNew(entity)) {처럼 호출되는데요, 이 때 isNew 가 org.springframework.data.repository.core.EntityInformation 인터페이스의 추상 메서드인 것을 확인했습니다.그런데 이 isNew 의 구현체가 여러개라서 하나씩 확인해보니 강의에서 설명해주신 내용이 추상 클래스 org.springframework.data.repository.core.support.AbstractEntityInformation 에 구현된 내용과 같더라고요.// AbstractEntityInformation.isNew() public boolean isNew(T entity) { ID id = getId(entity); Class<ID> idType = getIdType(); if (!idType.isPrimitive()) { return id == null; } if (id instanceof Number) { return ((Number) id).longValue() == 0L; } throw new IllegalArgumentException(String.format("Unsupported primitive id type %s", idType)); }그런데 AbstractEntityInformation 역시 추상 클래스이다 보니 정확한 구현체를 찾기가 힘든 상태입니다. 질문) SimpleJpaRepository의 save() 내부에서 사용되는 isNew() 의 구현체는 정확히 어떤 클래스인가요? 또, 이러한 구현체가 정확히 무엇인지 알 수 있는 방법이 있을까요?확인해주셔서 감사합니다. :D
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
error Command failed with exit code 1. 해당 에러에 대한 질문드립니다.
에러 메세지 입니다. 01-02-emotion 폴더를 생성하여 강의 내용과 똑같이 작성하여 yarn dev로 실행하였는데 오류가 발생이 되어서 질문을 드립니다 .ㅠㅠ 해당 오류로 구글 검색을 해보니 공유캐시 파일을 지우고 다시 설치해보라는 글이 있어서 해보았는데도 오류가 고쳐지지 않아서 질문을 드립니다. ㅠㅠ 해당 오류는 링크의 블로그를 보고 시도해보았습니다.https://chlolisher.tistory.com/174 ㅠㅠ 도와주세요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
질문이있습니다.
현 시점에서 nest공식문서 가보면어센틱케이션에 passport는 없어지고그냥 @nestjs/jwt만 있는것으로 바뀌어있고passport는recipes카테고리로 이동되어있고install 도 $ npm install --save @nestjs/passport passport passport-local $ npm install --save-dev @types/passport-local이렇게 나와있는것으로 보이는데그냥 위 passport따라가면되나요?
-
미해결운영체제 공룡책 강의
데드락 질문
28:10데드락은 상호배제 상태에서 일어나는데,오히려 lock과 unlock을 없애서 상호배제가 안되는 상황이된거 같습니다.혹시, 제가 잘못이해했다면 말씀해주세요!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
크레인 인형뽑기(카카오)에 대한 제 풀이 코드에 어떤 문제가 있는지 질문드립니다
다음과 같이 코드를 작성했는데, 테스트케이스 4, 5번이 틀린 것으로 나오네요. 제 코드에 어떤 문제가 있는지 이해가 되지 않아서 질문 드립니다. import java.util.*; import java.io.*; public class Main { public int solution(int[][] board, int[] moves) { int answer = 0; List<Integer> dollList = new ArrayList<>(); Stack<Integer> stack = new Stack<>(); for (int i = 0; i < moves.length; i++) { stack = new Stack<>(); for (int j = 0; j < board.length; j++) { if (board[j][moves[i] - 1] != 0) { stack.push(board[j][moves[i] - 1]); board[j][moves[i] - 1] = 0; break; } } if (stack.isEmpty()) { continue; } dollList.add(stack.pop()); // 바구니에 인형을 넣음 if (dollList.size() >= 2) { for (int j = 0; j < dollList.size() - 1; j++) { if (dollList.get(j) == dollList.get(j + 1)) { dollList.remove(dollList.get(j)); dollList.remove(dollList.get(j)); answer += 2; } } } } return answer; } public static void main(String[] args) throws IOException { Main main = new Main(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[][] board = new int[n][n]; for (int i = 0; i < n; i++) { StringTokenizer st = new StringTokenizer(br.readLine()); for (int j = 0; j < n; j++) { board[i][j] = Integer.parseInt(st.nextToken()); } } int m = Integer.parseInt(br.readLine()); int[] moves = new int[m]; StringTokenizer st = new StringTokenizer(br.readLine()); for (int i = 0; i < m; i++) { moves[i] = Integer.parseInt(st.nextToken()); } System.out.println(main.solution(board, moves)); } }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-O 코드 질문있습니다
안녕하십니까 큰돌님강의 보기 전에 문제를 풀어봤는데 조건문들이 좀 비효율적일까요 ??http://boj.kr/523daf3c22924bf99a5f46b5a6a8fd96
-
미해결[라즈베리파이] IoT 딥러닝 Computer Vision 실전 프로젝트
강의자료를 크리애플 홈페이지에서 찾을 수 없네요..
강의자료를 크리애플 홈페이지에서 찾을 수 없네요..강의자료를 받을 수 있는 곳을 상세히 설명해주세요..강의자료를 받을 수 있는 페이지 링크라도 달아주세요..IOT 라즈베리파이 관련 강의자료 부탁합니다..
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
동기, 비동기 처리
코드복습중에 비동기, 동기처리 관련하여 궁금한점이 생겨 질문합니다! const User = require('../models/user'); const bcrypt = require('bcrypt'); exports.join = async (req, res, next)=>{ const { nick, email, password } = req.body; try { const exUser = await User.findOne({where: {email}}); if(exUser){ return res.redirect('/join?error=exist') } const hash = await bcrypt.hash(password, 14); await User.create({ nick, email, password: hash, }); return res.redirect('/'); } catch(err){ console.error(err); next(err); } }위의 코드가 수업중에 작성하신 코드입니다 여기서 아래부분만 이처럼 await를 뺀 상태로 변경하였는데,const exUser = User.findOne({where: {email}});if(exUser)가 true값이 되어return res.redirect('/join?error=exist')으로 빠지게 되었습니다. 제가 이해하기로는 await가 붙은 비동기 처리들은 동기처리들이 완료되어 호출스택이 비기전까지는 task큐에서 대기하는 것으로 알고 있는데,위의 현상대로면 await가 붙은 아래 코드 2개가 먼저 실행되고const hash = await bcrypt.hash(password, 14); await User.create({ nick, email, password: hash, }); 이 코드가 실행된 것 같은데const exUser = User.findOne({where: {email}}); 왜 이런 현상이 발생하는지 궁금합니다!!! 감사합니다