묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨배달앱 클론코딩 [with React Native]
푸시알림에 관하여 질문있습니다!
안녕하세요 제로초님 fcm푸시알림에 대하여 질문있습니다. 강좌에서 푸시알림을 보내면 백그라운드 작업표시줄에만 푸시 알림이 오잖아요? 이런식으로요 그런데 저는 이런식으로 알림이 오게 하고싶습니다. 카톡이나 쿠팡 다른 앱들의 푸시알림은 이렇게 통일 되어서 오더라구요? 그래서 로컬 notification이랑 합쳐서 사용해봤더니 전혀 다른 디자인의 알림이 왔습니다. 그래서 이방법은 아닌것 같았구요. 구글에 검색해보니 저렇게 오게 하려면 push permission을 받아야 한대서 react-native-permissions 라이브러리에 서 찾아보니 안드로이드는 push notification을 받을 수 없다고 나오더라구요... 구글에 검색한 결과 의견이 다 다르게 나와 무엇이 맞는것인지 잘모르겠습니다. 혹시 백그라운드에서 저렇게 카톡이나 쿠팡알림 처럼 알림이 오게하려면 어떤것을 사용해야하나요?
-
미해결[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
버전
myweb 버전이 영상이 나올대로 하니깐 오류가 납니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
요즘은 장기 로그인 유지를 많이 하는 거 같은데 맞나요?
원칙적으론 보안에 위협이 되겠지만 배민이나 쿠팡이나 등등 쇼핑 서비스를 보면 로그아웃을 하지 않는 이상 로그인이 유지시키는 것 같은데 아무래도 편의성 때문에 그렇겠죠? 그런 큰 서비스들은 회원 수만 몇천만일텐데 이런 경우도 다 메모리에 저장하고 있는 것인가요? 위와 같은 초대형의 사례들에선 세션 유지관리의 개념과 철학이 아예 근본부터 다를 것 같은데 어떤 식으로 관리 되는 것인지 궁금합니다. 아니면 그런 거 없이 동일한 건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
multi db 관리
안녕하세요. 강의 잘 들었습니다. 혹시 main yml에서는 mySql을 쓰고, test yml에서는 강의에서처럼 testDB로 따로 관리할 수 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
라이브러리 관련 질문입니다.
김영한 선생님의 라이브러리 살펴보기 강의에서 맨 끝 오른쪽 메뉴바로 gradle을 볼 때 jpashop > Source Sets > main > Dependencies 으로 라이브러리를 확인하시는데 전 Source Sets의 메뉴가 없어서요.. 설치가 잘못된건가요? 스프링부트 2.6.4로 써도 괜찮은거죠 ?!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
타임리프 파트를 건너뛰어도 괜찮을까요?
템플릿 관련 지식은 필요없을 것 같아 건너뛰려고 합니다. 타임리프 관련 1,2장을 스킵해도 강의 진행에 지장 없을지 궁금합니다. 추후 템플릿 등장 시 강의자료애서 복사 붙여넣기를 통해 해결할 예정입니다.
-
미해결
JPA의 DB조회에 대해서 질문드립니다.
안녕하세요. 스프링JPA로 블로그 게시판을 만들고 있습니다. 복잡한 기능 말고 게시판만 하나 만들어 보고 심층공부를 들어갈려고 하는중입니다. -------------------------------------------------------------------------------------------------------------------- 일단 DB는 이렇게 구성돼 있고 BLOGLIST로 게시판 목록을 관리하기 위해 BLOG_NUM에 외래키를 주고 테이블을 따로 만들어서 조인했습니다. -------------------------------------------------------------------------------------------------------------------- 그리고 엔티티를 각각 만들고 다대일 연결까지 성공해서 데이터 조회까지 됩니다. @Entity(name = "BLOG") @Getter @Setter @ToString @RequiredArgsConstructor public class Blog { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="CON_NUM") private Integer con_num; @ManyToOne @JoinColumn(name = "BLOG_NUM", referencedColumnName = "BLOG_NUM") //referencedColumnName = "BLOG_NUM"~~ 은 어떤 컬럼과 연결이 됐는지 지정. private BlogList blogObj; @Column(name="CON_TITLE") private String title; @Column(name="CON_CONTENT") private String content; @Column(name ="CON_WRITEDATE") private Date writeDate; } @Entity(name = "BLOGLIST") @Getter @Setter @ToString @RequiredArgsConstructor public class BlogList { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "BLOG_NUM") private Integer blogNum; @Column(name = "BLOG_NAME") private String blogName; } ---------------------------------------------------------------------------------------------------------------------- 이런식으로 BLOGLIST테이블의 항목까지 출력을 할 수 있었습니다. 여기서부터 문제입니다. SELECT * FROM BLOG WHERE=BLOG_NUM=? 이러한 쿼리를 실행시켜서 블로그의 메뉴에서 각각의 항목을 눌렀을 때 각각의 내용을 출력하려고 합니다. ------------------------------------------------------------ 그래서 제가 시도한것은 1. 레파지토리에서 아래 주석된 메소드로 조회메소드를 만들고 public interface BlogRepository extends JpaRepository<Blog, Integer>{ List<Blog> findByTitleContaining(String searchWord); //List<Blog> findByBlogObj(Integer blogNum); } 컨트롤러에서 이런식으로 조회를 시도 해보았으나 잘 되지 않았습니다. // 게시판별 리스트 @GetMapping("/contest") public String testList(Integer blogNum, Model model){ model.addAttribute("list", blogRepository.findByBlogObj(blogNum)); return "/layouts/conList"; } ---------------------------------------------------------- 그래서 2번으로 시도한 것이 리파지토리에 쿼리 직접 넣는 것이었습니다. @Query(value = "SELECT * FROM BLOG B WHERE B.BLOG_NUM = ?", nativeQuery = true) //true는 SQL, false는 JPQLList<Blog> findAllByBlogNum(Integer BlogNum); @GetMapping("test")public String findBlog(Integer BlogNum, Model model){ System.out.println("파람:" + BlogNum); List<Blog> blog = blogRepository.findByBlogObj(BlogNum); model.addAttribute(blog); return "/layouts/conList";} 이 방식은 이렇게 파라미터를 보냈으나 Null값이 뜨고 파라미터를 가져오지 못하네요. ------------------------------- 아무래도 엔티티 설계에 제가 이해가 부족해서 그런것 같은데 엔티티에 어느 부분을 손을 보아야 제가 원하는 조회를 할수 있을까요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
mixin에서 기존 fetch내용을 주석처리 해야 하나요?
영상의 진행과 제 실행결과가 좀 달라 질문드립니다. 영상 내용에서, /news 라우트에 beforeEnter() 안에 fetch 하는 내용을 집어넣으면서, ListMixin안에 있던 fetch하는 코드를 제거하신 건지 아닌지 영상에서는 명확하지가 않습니다. 영상 속에서는 웹페이지가 ask->news로 라우트를 변경할 때는 아무것도 변화가 없고, ask->jobs로 라우트를 변경할 때는 잘 변경됩니다. 영상 속에서 ListMixin의 fetch하는 코드를 제거한 건지 그대로 두고 진행한 건지 헷갈려서 저는 두 가지 모두로 진행해봤는데요, 어느 경우에도 영상과 같은 결과가 나오지 않았습니다. 우선 내비게이션 가드는 위와 같이 news에만 적용한 상태이고, ask와 job는 건들지 않았습니다. next();를 끝에 첨가하지 않은 상태입니다. 1. ListMixin의 fetch하는 코드를 제거하지 않은 경우 위와 같이, ask-> news로 넘어갈 때 news 컴포넌트는 로딩이 되지 않지만(여전히 ask가 검정색입니다.) 아래의 list-item은 news 를 fetch한 결과대로 바뀌어 있습니다. 영상 속에서는 아예 ask가 로딩되어 있을 때 모습 그대로였는데 말이죠. 제 생각에는 next(); 가 없어 아직 news 라우트로 넘어가진 않았지만 그 앞의 fetch()는 이미 진행이 되어 store의 list의 내용이 변경이 되었기 때문에 그것이 바로 반영된 것인 것 같습니다. ask->jobs로 넘어갈 때는 영상과 동일합니다. 2. ListMixin에서 fetch하는 코드를 제거한 경우 ㅇ ask->news로 넘어갈 때는 영상과 동일하게 아예 ask일때 모습그대로 변화가 없지만, 위 사진과 같이 ask->job로 넘어갈 때는 라우트는 완전 jobs로 변경이 되었지만, list-item들이 여전히 ask의 것입니다. beforeEnter는 routes/index.js에서 /news에만 적용되어있고, ListMixin에서조차 fetch하는 코드가 사라져서 jobs의 정보를 불러오지 못해 store.state.list의 내용이 바뀌지 않은 것이라고 생각했습니다. 그러나 영상에서는 ask->jobs로 넘어갈 때는 아무런 문제가 없죠. 정리하면, 영상 내에서와 같은 상황이 도저히 안 만들어집니다. ListMixin 속 fetch하는 코드를 없애지 않은 경우와 없앤 경우 둘다 시도해보아도 영상과 같은 상황은 나오지 않았습니다. 왜인지 알려주시면 감사하겠습니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
lombok 관련 질문드립니다.
intellij에서 lombok을 설치하여 어노테이션설치 활성화까지 체크 후 시도 해봤으나 되지 않습니다. 다른 클래스에서는 lombok 이 적용 되어 잘 되는데 첫번째 이미지에서는 왜 실행이 되지 않을까요? 해결 방법이 궁금합니다. 다른 클래스 화면의 이미지까지 첨부하여 올리겠습니다. 참고 부탁드립니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
강의를 거의 다 듣고 처음으로 백준 문제를 풀어봤는데 메모리 초과 문제가 발생했습니다
강의를 거의 다 듣고 처음으로 백준 문제를 풀어봤는데 dev c++에서는 잘 돌아가는데 왜 백준에서는 메모리초과가 뜨는지 모르겠습니다 ㅠㅠㅠ (모든 예제 입력에 맞는 출력이 나왔습니다) 1043 거짓말 문제이고(https://www.acmicpc.net/problem/1043), 강의에서 알려주신 인접리스트를 사용해서 문제를 풀어봤는데 왜 메모리 초과가 뜬걸까요?ㅠㅠㅠ 메모리 제한이 128MB인데, 혹시 dev c++에서 메모리 사용량을 확인할 수 있는 방법이 있나요? #include<bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); freopen("input.txt", "rt", stdin); int n, m, warning, party, i, j, a, b, flag, cnt=0; cin>>n>>m; vector<int> warnings(n+1, 0), tmp[n+1]; cin>>a; if(a==0) { cout<<m; return 0; } for(i=0; i<a; i++) { cin>>b; warnings[b] = 1; } for(i=0; i<m; i++) { cin>>a; flag = 1; for(j=0; j<a; j++) { cin>>b; tmp[i].push_back(b); if(warnings[b] == 1) flag = 0; } if(flag == 0) { for(j=0; j<tmp[i].size(); j++) { warnings[tmp[i][j]] = 1; } } } for(i=0; i<m; i++) { flag = 1; for(j=0; j<a; j++) { if(warnings[tmp[i][j]] == 1) { flag = 0; break; } } if(flag == 1) cnt++; } cout<<cnt; return 0; }
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
map, return 등 사용할때 문의 사항입니다
안녕하세요 수강중 문의 사항이 있습니다 emotionList.map을 사용 할 경우 emotionList.map((it) => { // 내용 }) 이런식으로 {} //중괄호를 사용하는것으로 알고 있는데 여기서는 () //소괄호를 사용하고 있습니다 이둘의 차이점을 알고 싶습니다 return 문에도 () <-- 이 소괄호는 넣어줘야 하는건가요?? 사용을 안해도 동작은 정상적으로 잘 됩니다 (생략가능한건가요?)
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
res.status(200) 또는 400
안녕하세요 강사님. 강의 잘 듣고 있습니다! 궁금한 점이 하나 있어서 여쭤보려고 합니다. 조건문에 따라 각각 res를 이용해서 json형식으로 결과를 나타내고 있었는데 신호가 잘 도착했을 때 res.json({... 또는 res.status(200).json({... 이런 형식이고 실패할 때는 res.json({... 또는 res.status(400).json({... 이런 형식이던데 어떨 때 status()를 표시하거나 표시하지 않아야 하나요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃 권한 요청드립니다
- 인프런 아이디 : realkoy@gmail.com - 인프런 이메일 : realkoy@gmail.com - 깃헙 아이디 : realkoy@gmail.com - 깃헙 Username : realkoy
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트 코드 @AfterEach에서 다르게 하면 안되나요?
강의에서는 MemoryMemberRepository 클래스에서 map을 싹 비우는 기능을 추가하여 이 메서드를 호출하는 방식했는데 그거 말고 repository = new MemoryMemberRepository(); 로 기존 객체는 버리고 새로운 객체를 생성하는 방식으로 새로운 테스트를 하면 안되나요? 안되면 왜 안되는지도 궁금합니다. 제가 해보니까 노란색이 뜹니다.
-
미해결스프링부트 시큐리티 & JWT 강의
세션
11 : 28초 쯤에 authentication 을 세션에 저장한다고 하셨는데 securityConfig에 세션정책에 STATELESS 해도 상관이 없는건가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
강의자료 수정사항
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 33페이지 실패 요청 로그 아래 설명에서 ItemSaveForm 인데 Item 으로 작성되었습니다.
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
3:00 부분부터 오류가 생기는데 어떻게 해결해야 할까요?
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. 새로운 크로스 플랫폼 PowerShell 사용 https://aka.ms/pscore6 PS C:\Users\User\git\backfront\backend> npm run dev > backend@0.0.0 dev > nodemon ./bin/www [nodemon] 2.0.15 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js,mjs,json [nodemon] starting `node ./bin/www` Not all input has been taken into account at your final specification. Here's the report: YAMLSemanticError: Map keys must be unique; "description" is repeated at line 1, column 1: /api/hello: ^^^^^^^^^^^…
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
선생님 이어서 질문드리고 싶습니다
선생님 안녕하세요주말에도 많은 질문을 받아주셔서 정말 고맙습니다 지난 질문과 이어서 드리고 싶습니다await 질문드립니다 - 인프런 | 질문 & 답변 (inflearn.com) 타이머를 20초로 두고 async 구문을 가르쳐주신 promise 구문으로 바꿔주니 아..! 싶었던 게 호출스택을 전부 비워준 다음 20초 뒤에, 태스크큐의 resolve( )를 실행시켜줄 차례가 오면 이렇게 다시 resolve( )가 실행될 여건이 되도록필요한 호출스택들을 복원시켜주는 구조였군요!!!정말 감사합니다.. 그런데 궁금한 점이 있습니다setTimeout( )과 resolve( )는 왜 호출스택에서anonymous 라는 이름으로 쌓인건지 질문드리고 싶습니다
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
타이타닉 생존자 예측에서 나이대별 생존자에 대한 barplot 관련 질문
안녕하세요, 강사님! 타이타닉 생존자 예측 의를 보면서 실습하다가 문득 궁금한 점이 있어서 질문 드립니다. 저는 강의 내용과 조금 다르게, 나이를 10 단위로 끊어서 10, 20, 30, ... , 100으로 카테고리를 나누어서 해보았습니다. titanic_df['AgeCategory'] = np.digitize(titanic_df['Age'], [0,10,20,30,40,50,60,70,80,90,100]) 수업 내용 중에 강사님께서 6~12세 사이의 여자 어린이들이 많이 희생되어서 안타깝다고 하셨는데... 제가 10살 단위로 끊어서 해보았을 때의 결과로 그려보면 딱히 그래 보이지가 않거든요. 그리고 지금 위의 막대그래프를 보면 y축 survived가 0~1로 정규화되어 표현되는 것 같은데... 저건 어떻게 해석해야 하는지요? 남녀 성별을 합쳤을 때 0~10세 사이 어린이들 남녀 비율을 합치면 1이 넘고,... 각 연령대 별 인원 수가 가장 큰 것을 1로 가정하여 Normalize된 값인건지... 궁금합니다. 가르쳐 주세요~
-
미해결스프링 핵심 원리 - 고급편
어드바이저 종류의 실행 순서 질문입니다.
스프링 AOP 구현6 - 어드바이스의 종류 마지막 내용 질문입니다. 어드바이스 실행 순서에서 - 실행 순서: @Around , @Before , @After , @AfterReturning , @AfterThrowing 위와 같이 나와 있는데 그 바로 아래에는 이런 내용이더라구요. - 어드바이스가 적용되는 순서는 이렇게 적용되지만, 호출 순서와 리턴 순서는 반대라는 점을 알아두자.이게 무슨 의미일까요? 실행 순서랑 호출 순서가 다른건가요?