묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결UX/UI 시작하기 : Figma 입문 (Inflearn Original)
프레임 VS 그룹
프레임을 사용할 때와 그룹을 사용할 때 차이점이 무엇인가요? 각각 사용방법에 대한 예시가 있었으면 좋겠습니다. ㅠㅠ 카드 모양의 경우 그룹으로 해도 상관이 없지 않나 싶어서요
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
MySQL과 Redis의 성능에 관하여 문의드립니다.
MySQL의 특징으로 어느 정도의 트레픽까지는 문제없이 활용 가능하다라고 설명해주셨는데 어느 정도를 수치로 말씀해주실 수 있을까요?그리고 Redis가 MySQL보다 절대적으로 성능이 뛰어난지, 아니면 특정 트래픽 이상부터 성능이 뛰어난게 체감이 되는건지도 궁금합니다.그리고 성능이라고 표현하신게 비용 대비 퍼포먼스인지, 속도만 놓고봤을 때 더 빠르다인지 모호한 감이 있어서 구체적으로 말씀해주시면 정말 감사하겠습니다.좋은 강의 촬영해주셔서 감사합니다. 다음 강의도 기대하고 있겠습니다!
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
혹시 강의 듣다 의문인데 앞에 강의 내용중 설명 주셨다하셨는데 제가 못찾겠어서...
search_type=title&keyword=test 에서 아래는 제 상상속 쿼리 select * from members where title='test' 칼럼='벨류' 형태인데 칼럼 위치에도 'ti' 'tle' 을 사용해도 되는건가요 ? 생각해보니 and 'a'='a' 도 되니까 칼럼 위치가 무조건 칼럼만 와야하는건 아니니까.... select * from members where 'test'='test' select * from members where 'te' 'st'='test' 이걸로 반응을 파악한건가 생각이되는데 혹시 몇강이였는지 짚어주실 수 있으신가요 바쁘신데 죄송합니다 ㅠ
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
redis 라이브러리별 케이스에 관하여 문의 드립니다
redis를 활용한 사례를 처음 접하여서 강의 중 말씀해주신 '재시도가 필요하지 않은 경우', '재시도가 필요한 경우'가 명확히 떠오르지 않습니다 괜찮으시다면 간단한 예를 들어서 설명해주시면 감사하겠습니다
-
미해결
react 오류가 납니다.
따라하며 배우는 노드, 리액트 시리즈 -쇼핑몰 사이트 말들기 를 듣고있는 수강생입니다.FileUpload.js를 작성하는도중 아래 오류가 납니다. react 버젼과 reactdom버전이 같은걸 확인하고 github 소스를 가져와 써서 오타일 확률도 없는데 어떤 오류일까요 ㅜㅜ
-
미해결스프링 핵심 원리 - 기본편
MemberApp 실행
회원 도메인 실행과 테스트 부분에서 MemberApp 클래스에 public static void main(String args[]) 를 만들고 여기서 실행하는 것은 이해했습니다.그런데 기존의 CoreApplication 에도 메인 메서드가 있어서 프로젝트에 메인 메서드가 2개이고 이렇게 프로젝트가 구성이 되어도 실행하는데 문제가 없는건가요??
-
미해결Vue.js 시작하기 - Age of Vue.js
에러질문드립니다
두 번째 사진 맨 아래 부분에 npm, node 버전이 있습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
다수의 개발자가 같이 협업할 때에 궁금한 점이 있습니다.
안녕하세요!먼저 강의 너무너무 잘 보고 있습니다!공부를 하다가 갑자기 궁금한게 생겼는데,여러 개발자와 협업해야하는 환경이 될 때같은 서비스를 개발 할 시 개발 환경이 어찌 되는지 알고 싶습니다.Q1. 같은 서비스 개발 할 때에 디스커버리 서버와 APIGateway를 각자 개발자가 켜놓고 연관 된 서비스들도 다 실행 한 뒤에 개발을 하는지..Q2. 아니라면 APIGateway를 공용으로 사용시 따로 환경세팅이 있을까요?APIGateway를 공유하고 같은 서비스를 켜놓고 개발을 진행시 프론트에서 서비스 API등 호출 할 때에 제가 아닌 다른분의 서비스에 들어가면 어쩌지? 하는의문에서 시작되었습니다.너무너무 궁금합니다..강의는 너무 잘 보고 있고 다음강의도 기대하겠습니다!감사합니다.
-
미해결쉽고 빠르게 익히는 Power BI 심화 2 (데이터 모델링)
필터 문의
선생님 안녕하세요. 아래 엑셀 예시와 같이 BI 데이터 창에서 "날짜 1"보다 큰 "날짜 2"의 데이터만 추출하는 열을 추가하고 싶습니다. Calculate 및 Filter 함수를 적용하려고 고민을 해봤으나.. 어떻게 필수함수를 적용해야될지 잘 모르겠네요.. ㅠㅠ 또는 BI 데이터환경 말고 레포트 화면에서의 Table 시각개체에서 바로 필터(수식적용)를 적용할 수는 없을까요? 엑셀의 고급필터와 같은 기능이요!
-
미해결[유니티6] 따라하면서 배우는 하이퍼캐주얼게임 시리즈 03
소스코드 제공해줄 수 있나요?
소스코드 제공 부탁드릴게요. 초보자인데 이제 좀 게임 만드는거나 코딩에 눈을 떴는데 완성된 소스코드 보면서 스크립트랑 유니티 안의 오브젝트들 넘나들면서 구조 분석하면서 모르는거 강의 보면서 내용들을 이해하고 싶은데 자료를 다운해보니 그냥 스크립트랑 pdf, 리소스만 있어서 결국은 직접 강의 다 보면서 전부 써야되는 불편함이 있네요... 이게 초보자 입장에서 이렇게 강의보고 직접 따라 줄줄 쓰면서 공부해도 오류가 있을수 있고 또 이렇게 열심히 하루종일 해서 다 작성해서 완성해도 파일들을 날려먹거나 유니티 허브에서 이것저것 만지고 버전업하고 기타등등하면 이전것이 못써버리는 경우도 있어서.... 원본 소스코드 꼭 필요합니다.... 인프런 게임 강의 중 소프트캠프스 강의도 소스코드 제공되서 유용하게 보았고 제주캠퍼스도 얘기해서 제공 받았고 최근 루키스강사의 앤트컴퍼니 강의의 소스코드도 유용하게 보고 있어요. 이건 아직 실력부족이라서 저한테 넘 어렵고... 고박사님꺼 시리즈 1 공부할떄 애써 썼는데 중간에 잘 안되거나 시간 많이 지나고 버전들 업그레이드 하면서 리스트 많아져서 지우다가 없어지거나 잘못되면 그냥 진이 빠지게 된 경우가 있었는데 소스코드가 없으면 이리 힘들게 되어요..ㅠㅠ 시리즈1도 수강했었는데 이것도 제공 부탁드립니다. 결국 따라하다가 너무 지쳐버리거나 파일 날라가거나 무언가 잘못되면 너무 시간낭비가 되더라구요.. 요즘은 완성된 소스코드를 분석하면서 제가 직접 만들어가는게 잘 맞는거 같아요.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
webdriver_manager 모듈이 인식이 안되는것 같아요
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # 크롬 드라이버 자동 업데이트 from webdriver_manager.chrome import ChromeDriverManager service = Service(executable_path=ChromeDriverManager().install())위와 같이 코딩하고 실행하면 Traceback (most recent call last): File "c:\Users\omonge\Desktop\파이썬공부\desktop\requests_1.py", line 7, in <module> from webdriver_manager.chrome import ChromeDriverManagerModuleNotFoundError: No module named 'webdriver_manager'위와 같이 모듈이 없다고 하면서 오류가 발생하는데요. pip install webdriver_manager 라이브러리 설치도 했고 pip list 에도 webdriver-manager 3.8.3설치가 된 것으로 나오는데요. 라이브러리 설치 인식이 안되는걸까요?검색해보고 컴퓨터도 껐다 켜보고.. 했는데요. 계속 인식이 안되는것 같아요 ㅠ윈도우10 입니다.
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
글 수정 오류 질문드립니다.
ㄷ원래 잘 되었다가. 이번 챕터진행하고 확인해보니 안되고 있습니다. console.log 찍어서 값 잘 변경되는지 확인했고 컨트롤러에서 dto를 찍으니 전부 널 값이 들어가있는데 ajax에 문제가 있는 건가요?
-
미해결더 자바, Java 8
orElseThrow()
optional이 널체크를 안해서 발생하는 nullPointException을 피하기 위함이라고 생각햇는데, orElseThrow()로 예외를 발생시키면 굳이 Optional을 쓸 필요가 없는게 아닌지 헷갈리네요.. orElseThrow를 쓰는 이유가 있을까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
500에러 질문
제로초님 깃헙코드 보고 리액트쿼리로 공부하다가 DM 보내는 로직에서 500에러가 떳습니다~!! api 문서대로 요청보냈고, 분명 서버쪽은 문제가 없을텐데 싶어서 며칠 째 고민하다 질문드려요!!! NaN으로 뜨는 부분이 백엔드 코드에서 콘솔 찍어보니까 req.query.perPage 이게 언디파인드로 전달 되더라구요. 근데 저는 perPage를 제로초님처럼 20으로 고정해서 전달하고 있는데 언디파인드로 뜨는게 이상하더라구요.ㅜㅜ +) 그리고 뮤테이션 쿼리키를 ["workspace", workspace, "dm", id, "chat"] 이렇게 주신 이유가 궁금해요!! 제가 공식문서 읽고 이해한게 배열로 줄 경우 첫번째 값이 캐싱할 때 쓰이는 이름이고 그 위에있는 애들은 mutation 안에서 사용될 외부 값을 넣어준다고 이해했었거든요!! 근데 dm 이나 chat은 사용되지 않는 것 같아서요!!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
임시 객체 질문
swap함수를 설명하시면서 임시벡터라는 말이 나왔는데 임시 벡터라는 말이 class Knight{public: Knight() { cout << "Knight()" << endl; }public: int _a = 10;}; int main(){ Knight k1; // 스택에 생성 int value = Knight()._a; // 임시 객체? return 0;} 이런 클래스가 있을 경우 main함수안에서 Knight k1; 해주면 Knight의 객체가 스택에 생성된 것이고 다시 main함수 내에서 int value = Knight()._a; 를 해준다는 말이 객체라는 것이 어떤 클래스와 같은 '설계도'의 오브젝트)객체)인데 이 객체를 만들면 설계도의 '생성자' 함수가 호출이 된다. 질문1. 생성자 함수를 호출을 어떻게든 한다면은 '객체'를 만들 수 있다는 말인가요? 이말이 맞다면 public:을 열러있는 Knight의 생성자를 강제?로 호출하여 객체를 만드는데 그 객체의 멤버 변수인 _a를 value에 대입해준다. 근데 Knight() 생성자만 호출하고 다른 객체 변수에(Knight타입의 변수) 할당하지 않아서 사용되지 않는 메모리라 컴파일러가 알아서 소멸자를 호출 시키기 때문에 '임시객체'라고 하는 것인가요? 강의에서는 그냥 벡터이기때문에 임시 벡터라고 한간가요?
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
./하고 . 중에 ./가 좋은 방법인 이유는 무엇인가요?
강의 중에 docker build ./ 하고 docker build . 둘다 현재 디렉토리에 있는 도커 파일을 이미지로 만들어주는 명령어라고 하셧는데 docker build ./ 가 더 좋은 방법이라고 하신 이유가 무엇인가요 ? . 보다는 ./ 로 표현하는게 더 확실한 표현이라 그런가요?
-
미해결
김영한님 로드맵 관련 질문
안녕하세요 자바 지식은 알고 있는데 김영한님의 스프링부트 로드맵부터 들을지 스프링 로드맵부터 들을지 모르겠습니다. 10월달부터 회사에서 스프링부트를 쓰는데 우선순위를 어디에 둬야할지요.... 답변 부탁드립니다
-
미해결스프링부트 시큐리티 & JWT 강의
강사님 전체 로직 질문있습니다! 맞는지 확인해주세요ㅎㅎ
안녕하세요 강사님! 저같은 초보자 눈높이에 맞게 잘 알려주셔서 너무 감사합니다ㅎㅎ이제 마지막강의를 완료하였는데요..약간 헷갈리는 부분이 존재하여 이렇게 글남깁니다.로그인을 완료하고 1차요청이 끝나면 클라이언트는 토큰을 부여받습니다.그후 클라이언트가 토큰을 가지고 두번째 request를 시도하는경우에,어떻게 인증 절차의 메소드들을 무시하고 바로 인가 절차로 거치는지 Security의 내부동작방식이 궁금하여 강의도 다시듣고 웹서칭도 해보았습니다.아래는 제가 공부해보고 간략하게 정리한 내용입니다.제가 이해한 내용이 맞나요??1.사용자가 http request. 2-1.로그인 요청이라면 (UsernamePasswordAuthenticationFilter를 상속한) AuthenticationFilter가 attemptAuthentication()를 실행되고 그 후 successfulAuthentication()을 실행된다. 해당 과정에서 토큰을 만들고 해당 토큰을 response 헤더에 담아준다. 2-2.이미 토큰을 발급받아 같이 요청한 상태라면, (UsernamePasswordAuthenticationFilter를상속한) AuthenticationFilter에서 아무런 동작없이 바로 인가처리로 이어진다. (BasicAuthenticationFilter를 상속한 AuthorizationFilter) 3.BasicAuthenticationFilter를 상속한 AuthorizationFilter에서 받은 토큰을 parse하여 해당 Id가 db에 저장되어 있는지 확인한다.그후 존재한다면,해당 유저정보와 해당 유저의 권한이 담긴 토큰을 SecurityContextHolder를 사용하여 세션값에 저장한다.(권한 부여) Ex) SecurityContextHolder.getContext().setAuthentication(authentication);
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
실습진행중에 질문 드립니다.!
먼저 좋은 강의에 너무 감사 말씀드립니다. 아래에 getMemberId()는 entity에 식별자 값입니다. 이처럼 엔티티 식별자 값으로 구현하는것이nickname 혹은 email로 구현하는것과 비교해서 보안같은 것에 문제가 있을까 질문드립니다.개인적으로 고민해봤을때 URL에 파라미터로 nickname이나 Email보다는 식별자가 좀 더 안전할거 같기도하고또 이 식별자값도 UUID같은걸로 감추는건 어떨지 질문드립니다 감사합니다. @Getterpublic class MemberAccount extends User { private Member member; public MemberAccount(Member member) { super(member.getMemberId().toString(), member.getPassword(), List.of(new SimpleGrantedAuthority("ROLE_USER"))); this.member = member; }}
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
DTO를 이용해서 변경감지를 이런 식으로 하는지 검토 부탁드려요!
안녕하세요, 강의에는 나오지 않았지만 변경감지를 병합보다 추천하셔서 DTO를 사용해서 한 번 짜보았는데 봐주실 수 있나요? ```java package jpabook.jpashop.service;import lombok.Getter;import lombok.Setter;@Getter @Setterpublic class UpdateItemDto { private Long id; private String name; private int price; private int stockQuantity; private String author; private String isbn;}```일단 UpdateItemDto는 간단히 Getter, Setter만으로 구성했습니다. @PostMapping("items/{itemId}/edit")public String updateItem(@PathVariable("itemId") Long itemId, @ModelAttribute("form") BookForm form) { UpdateItemDto updateItemDto = new UpdateItemDto(); updateItemDto.setId(form.getId()); updateItemDto.setName(form.getName()); updateItemDto.setPrice(form.getPrice()); updateItemDto.setStockQuantity(form.getStockQuantity()); updateItemDto.setAuthor(form.getAuthor()); updateItemDto.setIsbn(form.getIsbn()); itemService.updateItem(itemId, updateItemDto); return "redirect:/items";}위 코드는 ItemController 안의 updateItem 메소드입니다.@Transactionalpublic void updateItem(Long itemId, UpdateItemDto updateItemDto) { Item findItem = itemRepository.findOne(itemId); //findItem으로 찾아온 값은 영속상태 findItem.change(updateItemDto);}위 코드는 ItemService 클래스의 updateItem 메소드입니다. public void change(UpdateItemDto updateItemDto) {// if (updateItemDto.getId() != null) {// this.id = updateItemDto.getId();// } if (updateItemDto.getName().length() != 0) { this.name = updateItemDto.getName(); }// if (updateItemDto.getPrice() != null) {// this.price = updateItemDto.getPrice();// }// if (updateItemDto.getStockQuantity() != null) {// this.stockQuantity = updateItemDto.getStockQuantity();// } this.price = updateItemDto.getPrice(); this.stockQuantity = updateItemDto.getStockQuantity();// if (updateItemDto.getAuthor() != null) {// this.author = updateItemDto.getAuthor();// }// if (updateItemDto.getIsbn() != null) {// this.isbn = updateItemDto.getIsbn();// } }마지막으로 Item 클래스의 change 메소드입니다.Book의 상위 클래스이기 때문에 author과 isbn 필드가 없어서 이 change 메소드를 Book 클래스 내로 옮겨야 하는지 고민을 했습니다.그러나 그렇게 진행하면 부수적인 문제가 너무 많이 생겨 그냥 Item 클래스 내에 남기고 author와 isbn을 수정하는 기능은 없앴습니다.id는 바꿀 필요가 없다고 생각하여 기능을 뺐습니다. Form에도 id를 수정하는 란은 없는데기존에 영한 님이 강의하실 때 ItemController 내에서 book.setId(form.getId)); 하셨는데 잘못된 부분인 것 같습니다.name같은 경우 String이라 웹 상에서 수정을 할 때 빈 칸으로 두면 null보다 empty string으로 받는 것 같아서updateItemDto.getName() != null 조건에 안 걸리는 것 같더라구요. 그래서 빈 칸을 empty string을 찾는 식으로짰습니다. 마지막으로 price와 stockQuantity는 int라서 != null 조건을 걸수가없는데웹 상에서 빈 칸일 때 이전 price와 stockQuantity를 유지하는 방법을 여쭤보고 싶습니다.결론적으로 제 질문은:1. UpdateItemDto의 경우 controller 패키지의 BookForm과 이름 외에 똑같은데 그래도 DTO 클래스를 따로 만드는데 의의가 있는건가요?2. ItemController 내에서 어설프게 Entity를 생성하지 말라고 하셨는데 DTO 객체를 생성하는 것은 괜찮은가요?3. 전반적으로 이런 방식으로 변경감지를 하는건지가 궁금합니다.4. change 메소드를 Item 밑에 두는게 맞는지 Book 밑에 두는게 맞는지?답변 주시면 정말 큰 도움이 될 것 같습니다.감사합니다!