묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결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 밑에 두는게 맞는지?답변 주시면 정말 큰 도움이 될 것 같습니다.감사합니다!
-
미해결파이썬 무료 강의 (활용편2) - GUI 프로그래밍 (4시간)
zip 사용시 질문
x = [1,2,3,4]y = [5,6,7,8] 두개의 리스트를 zip 하면,zip(x,y)반환값은 zip 오브젝트 인데요,프린트 하면,print(list(zip(x,y)))출력 : [(1,5), (2,6), (3,7), (4,8)]list로 형 변환 후 출력이 되는데요,아래와 같이 값 할당 시에는 왜 list로 형 변환 하지 않아도 되는지 궁금합니다.z, c, d, h = zip(x,y)저는 zip(x,y)가 zip 오브젝트이기 때문에 z, c, d, h에 값 할당을 위해서는 list(zip(x,y)) 변환 후해야한다고 생각했거든요.그런데 변환 안하고 할당해도 정상적으로 z, c, d, h가 튜블형으로 잘 출력이 되더라구요.
-
미해결뉴욕 프로덕트 디자이너가 알려주는, 입문자를 위한 UX디자인 개론
과제 - 마이리얼트립, 여기어때
안녕하세요 멘토님, 일관성과 행동유도성의 원칙을 기준으로 살펴본 앱사례입니다. 마이리얼트립Good상단영역부터 하단까지 모두 가로형태로 롤링되는 레이아웃을 가지고 있어, 일관되고 편안한 ux를 제공하고 있다고 보여집니다.상단영역에 "격리없는 여행지>", "더보기>",최상단 배너에 "자세히"라는 문구로 click을 유도하고 있는 부분, shot-cut icon이 다소 많은데, 더보기로 하위 항목은 기호에 따라 접거나 펼칠수 있는게 상단 공간을 우선순위에 따라 효율적으로 배치한것처럼 보여 좋은 케이스라고 생각합니다.또한 CTA방향도 아래로 표기한것도 고객이 화면 움직임을 예측할 수 있어 좋은 디자인이라고 생각됩니다. 하지만 펼친뒤에 다시 접을수있는 기능이 없는건 살짝 아쉬운 부분인것같아요! 마이리얼트립은 원하는 여행상품이나 호텔, 항공 등을 검색하기위한 서비스로, 가장 상단에 도시나 상품 검색영역이 크게 자리를 잡아, 검색행동을 유도하고 검색 행위를 편하게 할 수 있도록 디자인된것 같습니다. Bad반면, CTA를 배치한것은 행동을 유도해 좋은 케이스라고 보여지지만, ">"만 표기된 경우, "자세히"라고 표기된 경우, "더보기>"로 표기된 경우와 같이 표현이 다양해 이 부분에서는 일관성이 부족한것으로 느껴집니다. 앱사용성 관점에서 볼수있는 항목인지는 모르겠지만, 하단 우측롤링 영역을 보면 "최근 본 상품과 함께 보면 좋을 상품", "최근 본 상품과 비슷한 상품", 최근 본 상품과 함께 구매한 상품", 최근 본 상품과 연관된 테마상품" 이렇게 비슷한 테마로 여러 항목이 노출되는것을 볼 수 있습니다. 만약 정말 고객이 최근 본 상품과 비슷한 상품을 보려는 목적을 가지고 있었다고해도, 이 중에 어떤것을 선택할지 굉장히 고객으로 하여금 생각하게 만드는 배치라는 생각이 듭니다. 비슷한 여행앱으로 여기어때 케이스를 찾아보았는데요.여기어때Good: 보통은 가장 상단 배너영역에 여러가지 프로모션, 서비스에서 가장 강조하고싶은 부분을 넣는것이 일반적인데, 상단에 카테고리를 분류해 고객으로 하여금 원하는 항목에 바로 들어가 검색할 수 있게 아이콘을 배치한것이 색다르게 느껴집니다. 일반적인 레이아웃은 아니지만 사용자로 하여금 새롭게 학습을 유도할정도의 새로운 배치는 아니라고 생각되어 good case에 넣었는데, 보통 내부 데이터를 통해 검색구매비중이 높다는것을 확인해 카테고리를 상단배치한것이 아닌가 하는 생각이 듭니다.Bad다양한 서비스를 상단에 short-cut icon으로 제공해 분류해놓은것은 좋았지만, 아이콘 중 하나인 맛집은 불필요한 항목이지 않을까 싶습니다. 여기어때는 여행 뿐 아니라 다양한 일상속 레저, 액티비티를 검색하고 이용할 수 있게하는 서비스인데, 검색버튼이 하단에 위치해 다소 가시성이 떨어지는것도 아쉬운 부분입니다.Shot-cut icon에서 해외항공, 해외숙소 아이콘이 신규추가된것으로 보이는데, 해외숙소에 해외항공과 마찬가지로 비행기 아이콘이 포함되어 있어 아이콘만 보았을 때는 고객에게 혼선을 줄 수 있는 디자인인것 같습니다. 쿠폰, 룰렛, 이벤트 3가지 비슷한 성격의 항목은 이벤트나 혜택으로 통일해 랜딩한다면 공간낭비를 줄일 수 있을것같습니다.여기어때도 마찬가지로 중간부분에 더보기> 만 사용하기도하고, 특가호텔 더보기> 를 사용하기도 하는데, cta문구가 통일되지 않아보입니다. 가장 하단에 취향대로 맛집어때? 는 비즈니스상 필요한 부분일지 모르겠지만 "더파티 부산단독특가>", "무한등심vs조개창고>" 배너부분도 Mass를 대상으로한 큐레이션처럼 느껴지지 않고, 그렇다고해서 지역이나 개인취향을 고려하지 않은 큐레이션이라고 생각해 공간을 낭비하고 있다고 생각합니다.다른 여행앱으로 트리플도 살펴보았는데, 트리플 앱도 마찬가지로 good&bad case로 보이는것들이 있었습니다. 한가지 앱에서 good/bad케이스를 모두 찾아볼 수 있었고, 모든 사용자를 만족시키기는 어려운 부분이라는 생각이 듭니다. 하지만 강의때 말씀주신것처럼 레이아웃이나 메세지에 일관성이나 통일성이 있고, 서비스 이용을 용이하게 유도하고, 무엇보다 우리 앱을 켜고 사용하는 고객이 가장 필요로 하는것이 무엇일지에 집중해서 디자인하는것이 중요하다는것을 과제를 하면서 다시한번 느낄 수 있었습니다. 감사합니다^^
-
미해결AWS(Amazon Web Service) 입문자를 위한 강의
index.html 생성 후 홈페이지가 안나타나요
putty에서 index.html 작성 후 chrome에 제 퍼블릭 IPv4 주소를 입력하면 사이트에 연결 할 수 없다고 나오는데 왜그러는 건가요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
파일 이름에 뛰어쓰기가 있으면
만약 패키지 이름을 'sub' 이 아닌 'example example' 이라고 하고 import 할려면 문제가 생기네요. 뛰어쓰기는 적용이 안되는건가요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
테스트 application.properties가 로드되지 않습니다.
안녕하세요! src/test/resources 하위에 있는 application.properties 에서 데이터소스 URL을 testcase로 정의했는데, 테스트 케이스를 실행하면, src/main/resources 하위에 있는 application.properties를 읽어 들이는 것 같습니다. 이 문제로, local 프로파일이 빈으로 등록되고, 데이터 소스 URL도 test로 되는데 어떻게 해결하면 되나요??
-
미해결Spring Boot JWT Tutorial
3강 0:50~ Secret 키 관련 문의
3강 0:50에 나오는 시크릿 키는 특정 문자열을 Base 64로 인코딩한 것이라고 말씀해주셨습니다. 이 특정 문자열이라는 것은 총 길이 64바이트 이상의 문자열이면 되는 것일까요..?
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
개인프로젝트 질문입니다! ㅜ
안녕하세요갭틴판교님 강의 듣고 현재 개인 프로젝트를 만들어서 정적웹으로 배포까지 했는데요. 로컬에서 잘 불러와지던 공공데이터가 배포한 웹에서는 안불러와집니다ㅜ 웹호스팅은 aws s3로 했고 도메인은 가비아에서 사서 연결했습니다. http://today-weather.shop/이거인데요. url에 이상이 없는데 404가 뜨네요 원인이 무엇일까요? 그리고 정적웹에서는 open api를 쓰지 못하는 건가요?