묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberRepository repository = new MemoryMemberRepository(); 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] MemoryMemberRepositoryTest 클래스에서 MemberRepository repository = new MemoryMemberRepository(); 해당 부분에 질문이 있습니다. 해당 인스턴스 자료형을 MemberRepository 라는 인터페이스로 한 이유가 있는지 궁금합니다. 마지막에 afterEach() 작성할 때 MemoryMemberRepository 로 자료형을 바꾸던데 처음부터 이렇게 썼으면 됐지 않나요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
gcc 설치 과정 오류
안녕하세요 맛비님 영상과 가이드를 보면서 리눅스 환경을 설치중에 있습니다. 영상에서 13분 경 vivado bin 파일을 옮기고 나서 gcc 설치 커맨드를 입력했는데 첨부 사진과 같이 에러가 나오는 상황입니다. 이 경우에는 어떻게 해결을 하면 좋을 지 질문드립니다.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
display:flex하면 h태그랑 p태그가 같은 줄로 붙어버려요
강의 2:00부분에서 display:flex 이거 적용하면 선생님꺼랑 다르게 되요 .hexagon .caption { position: absolute; width: inherit; height: inherit; color: #fff; transition: 0.5s; display: flex; } 이런식으로 h태그랑 p태그가 나란히 배치되어 버려요. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="frame"> <div class="hexagon"> <div class="shape"> <div class="caption"> <h2>Photographer</h2> <p> As in other arts, the definitions of amateur and professional are not entirely categorical. </p> </div> <img src="images/artist-01.jpg"> </div> </div> <div class="hexagon"> <div class="shape"> <div class="caption"> <h2>Musician</h2> <p> A composer is a musician who creates musical compositions. </p> </div> <img src="images/artist-02.jpg"> </div> </div> <div class="hexagon"> <div class="shape"> <div class="caption"> <h2>Sculptor</h2> <p> Sculpture is the branch of the visual arts that operates in three dimensions.. </p> </div> <img src="images/artist-03.jpg"> </div> </div> </div> </body> </html> /* Google Web Font */ @import url('https://fonts.googleapis.com/css?family=Montserrat:300,400,500&display=swap'); *{ box-sizing: border-box; } body { font-family: 'Montserrat', sans-serif; margin: 0; padding: 0; color: #333; display: flex; justify-content: center; align-items: center; height: 100vh; } a{ text-decoration: none; color: inherit; } .frame { display: flex; gap: 40px; } .hexagon { width: 400px; height: 450px; position: relative; } .shape { clip-path: polygon(50% 0, 100% 30%, 100% 70%, 50% 100%, 0 70%, 0 30%); width: inherit; height: inherit; position: absolute; } .shape img { width: inherit; height: inherit; object-fit: cover; object-position: right; } .hexagon .caption { position: absolute; width: inherit; height: inherit; color: #fff; transition: 0.5s; display: flex; } 뭘 잘못한걸까요 ㅠㅠ
-
미해결초보를 위한 도커 안내서
5678/5678
5678 포트로 하시코프5678 연결하는 부분에서는 제가 5678로 연결을 시키고 curl을 치면 오류가 이렇게 나오는데 ㅜㅜ 이건 어떻게 된건가요??
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
한번만 더 질문드립니다 ㅠㅠ
void* pointer = malloc (sizeof (Monster)); Monster& m1 = *( ( Monster* ) pointer ); m1._hp = 100; m1._attack = 10; m1._mp = 5; free (pointer); 이런식으로 해도 작동이 되는데 혹시 제가 이해한게 맞는건지 정확하게 이해 한듯 느낌이 팍 왔는데 확인할 방법이 없어서 이렇게 질문드려봅니다 일단 pointer 이부분이 반환값이 void 형 주소값을 반환받는건데 Monster 이부분은 클레스 타입이므로 Monster클레스 타입의 주소값을 Monster*로 포인터를 만들어 줬는데 이 주소값과 pointer 주소값이 서로 만들어진 형식이 한쪽은 void 고 한쪽은 class 이므로 Monster* m1 = (Monster*) pointer 이런식으로 하는이유가 pointer 가 void 형식의 주소값인건 아는데 지금은 Monster*값을 쓸꺼야 하고 괄호를 열어서 (Monster*)이라는걸로 확인시켜 줬기 때문에 Monster* m1에 정상적으로 이식이 된거고 여기서 참조 형태로 바꾸고 싶어서 Monster& m1으로 바꿨으니 void로 주소값을 반환 하는 pointer 가 참조형태로 탈바꿈? 하기 위해서 앞에 *을 하나 더 찍는방식으로 참조 타입으로 이식 됬다 라고 판단 되는데 그럼 처음 답변해주셨던 (Monster&)*((Monster*)pointer ) 이분부분에서 굳이 (Monster&)이부분은 삭제해도 어차피 (Monster*)이부분에서 class 탑입으로 바꾸겠다고 했으니 생략이 가능한게 아닌지 위에 코드도 동일하게 주소랑 값들이 다 나오는데 혹시 제가 착각하고 있는게 있는지 ......아니면 정상적으로 제가 생각한게 맞는지 궁금합니다 ㅠㅠ 질문이 길어져서 죄송합니다 열심히 공부해서 꼭 게임한번 만들어 보고 싶어서 문법 열심히 공부하는데 시골이라 학원도 없고 오직 온라인으로 밖에 공부할수 없는 이 슬픈 현실이 너무 절 괴롭게 합니다 ..... 소중한 시간을 항상 내주시는거에 대해 정말 감사드립니다
-
미해결스프링 배치
JobParametersIncrementer 문의드립니다.
안녕하세요. 컨트롤러 만들어서 jobLauncher.run 으로 job 을 실행시키는 방식으로 개발 중에 있는데요. 컨트롤러 안에서 JobParameter 생성해서 run 의 인자로 셋팅을 했는데 이렇게 개발을 하니 강의대로 CustomJobParameterIncrementer 를 설정해도 Incrementer 가 적용되지 않는 거 같습니다. Job 최초 실행 시, execution_params DB 테이블에 Incrementer 에서 생성한 파라미터가 기록되지도 않고 두번 실행하면 중복 오류가 발생하고 있고요. 확인 좀 부탁드립니다.
-
미해결Vue.js + TypeScript 완벽 가이드
2번째프로젝트 깃헙 권한요청
github id : pittachan 인프런 아이디 : gusdbsehd@gmail.com 부탁드립니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
기능테스트시, setName() 등 메서드 오류
기능테스트시 아래에 빨강 음영부분에 의해 진행이 되질 않습니다. 해당 문제는 상속문제라 생각하여, 해당 코드를 아래에 올렸습니다. 왜 Item. Book class의 변수에 관한 메서드가 문제가 되는지 조언 부탁드립니다. package jpabook.jpashop.service;import jpabook.jpashop.domain.Address;import jpabook.jpashop.domain.Member;import jpabook.jpashop.domain.Order;import jpabook.jpashop.domain.OrderStatus;import jpabook.jpashop.domain.item.Item;import jpabook.jpashop.exception.NotEnoughStockException;import jpabook.jpashop.repository.OrderRepository;import org.junit.Assert;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.context.annotation.EnableMBeanExport;import org.springframework.test.context.junit4.SpringRunner;import org.springframework.transaction.annotation.Transactional;import javax.persistence.EntityManager;import java.awt.print.Book;import static org.junit.Assert.*;@RunWith(SpringRunner.class)@SpringBootTest@Transactionalpublic class OrderServiceTest { @Autowired EntityManager em; @Autowired OrderService orderService; @Autowired OrderRepository orderRepository; /** * 상품 주문 */ @Test public void order() { // given Member member = createMember(); Book book = createBook("시골 JPA", 10000, 10); int orderCount = 2; // when Long orderId = orderService.order(member.getId(), book.getId(), orderCount); // then Order getOrder = orderRepository.findOne(orderId); assertEquals("상품 주문시 상태는 ORDER", OrderStatus.ORDER, getOrder.getStatus()); assertEquals("주문한 상품 종류 수가 정확해야 한다.", 1, getOrder.getOrderItems().size()); assertEquals("주문 가격은 가격 * 수량이다.", 1000 * orderCount, getOrder.getTotalPrice()); assertEquals("주문 수량만큼 재고가 줄어야 한다.", 8, book.getStockQuantity()); } /** * 주문취소 */ @Test public void cancelOrder() { Member member = createMember(); Book item = createBook("시골 JPA", 10000, 10); int orderCount = 2; Long orderId = orderService.order(member.getId(), item.getId(), orderCount); orderService.cancelOrder(orderId); Order getOrder = orderRepository.findOne(orderId); assertEquals("주문 취소시 상태는 CANCEL 이다.", OrderStatus.CANCEL, getOrder.getStatus()); assertEquals("주문이 취소된 상품은 그만큼 재고가 증가해야한다.", 10, item.getStockQuantity()); } /** * 재고수량 초과 */ @Test(expected = NotEnoughStockException.class) public void 상품주문_재고수량초과() throws Exception{ // given Member member = createMember(); Item item = createBook("시골 JPA", 10000, 10); int orderCount = 11; // when orderService.order(member.getId(), item.getId(), orderCount); // then fail("재고 수량 부족 예외가 발생해야 한다."); } private Book createBook(String name, int price, int stockQuantity) { Book book = new Book(); book.setName(name); book.setPrice(price); book.setStockQuantity(stockQuantity); em.persist(book); return book; } private Member createMember() { Member member = new Member(); member.setName("회원1"); member.setAddress(new Address("서울", "강가", "123-123")); em.persist(member); return member; } package jpabook.jpashop.domain.item;import jpabook.jpashop.domain.Category;import jpabook.jpashop.exception.NotEnoughStockException;import lombok.Getter;import lombok.Setter;import javax.persistence.*;import java.util.ArrayList;import java.util.List;@Entity@Inheritance(strategy = InheritanceType.SINGLE_TABLE)@DiscriminatorColumn(name = "dtype")@Getter @Setterpublic abstract class Item { @Id @GeneratedValue @Column(name = "item_id") private Long id; private String name; private int price; private int stockQuantity; @ManyToMany(mappedBy = "items") private List<Category> categories = new ArrayList<>(); // == 비즈니스 로직 == // // stockQuantity의 경우, Item 엔티티 내에만 있으므로 해당 클래스에서 비즈니스 로직을 설정(엔티티 주도 설계) /** * 재고 수량 증가* * */ public void addStock(int quantity){ this.stockQuantity += quantity; } /** * 재고 수량 감소* * */ public void removeStock(int quantity){ int restStock = this.stockQuantity - quantity; if(restStock<0){ throw new NotEnoughStockException("need more stock"); } this.stockQuantity = restStock; }} package jpabook.jpashop.domain.item;import lombok.Getter;import lombok.Setter;import javax.persistence.DiscriminatorValue;import javax.persistence.Entity;@Entity@DiscriminatorValue("B")@Getter @Setterpublic class Book extends Item{ private String author; private String isbn;}
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
디버그 후 콘솔창 바로 꺼짐 현상
처음에는 잘됬는데 비쥬얼스튜디오 업데이트 후 디버그 한다음 계속 콘솔창이 바로 꺼져버립니다 ㅠㅠ 혹시 업데이트 문제가 아니면 뭐가 문제일까요? 이창을 닫으려면 아무키나 누르세요.... 이런식으로 기다리게 하는 방법이 없을까요? visual studio 2019 v16.11.5입니다
-
미해결
npm i error
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.ㅣ이러한 에러가 뜨는데 해결법좀 부탁드립니다..
-
해결됨초보자도 할 수 있는 웹 취약점 진단(주요정보통신기반시설)
강의가 곧 새로 리뉴얼이 되는건가요?
안녕하세요. 강사님. 일전에 구매해놓고 이제야 수강을 시작하려고 하는 수강생입니다. 다만 강의평들이랑 강의리스트, 새소식 등을 보면 강의가 리뉴얼 계획에 있고, 몇몇 강의등은 삭제된 상태로 보입니다. 삭제된 영상들을 무시하고 남은 영상등만 수강하면 되는 걸까요? 아니면 새로 리뉴얼 계획이 있으셔서 그 리뉴얼을 기다리면 될까요?
-
미해결파이썬 웹 개발(Flask, SQLAlchemy 이용)
공유 템플릿
공유 템플릿은 어디서 다운받을 수 있나요?
-
미해결하울의 안드로이드 인스타그램 클론 만들기
3강에서 startActivityForResult 사용불가 문제
안녕하세요. 3강에서 쓰는 startActivityForResult와 onActivityResult는 이제 안드로이드 스튜디오에서 못쓰게 하는데 어떻게 해야 할까요? ㅠㅠ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
new / delete 던 malloc / free 던 *말구 &값으로 넘기는법은 없는건가요?
class Monster { public: int _hp; int _attack; int _mp; }; void* pointer = malloc (sizeof (Monster)); Monster* m1 = (Monster*) pointer ; m1->_hp = 100; m1->_attack = 10; m1->_mp = 5; free (pointer); 요기서 포인터 부분을 전부 void* pointer = malloc (sizeof (Monster)); Monster& m1 = (Monster&) pointer ; m1._hp = 100; m1._attack = 10; m1._mp = 5; free (pointer); return 0; 이런식으로 바꿔줬습니다 메모리까지는 정상적으로 할당 하는듯 보이는데 마지막 free에서 예외가 발생했다고 정지가 되버리네요 혹시 여기서 &방식으로 참조방식으로 만들수는 없는건가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요 createQuery 질문입니다.
안녕하세요! 혹시 이부분에서 member의 이름만 가져오고 싶을때 밑에서처럼 for문 안돌리고 em.createQuery("select m.name from Member as m", Member.class).getResultList(); 이런식으론 불가능한건가요?
-
미해결[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
httpie 관련 질문드립니다.
vsc에서 login_test.py 실행한 후, 명령 프롬프트에서 http GET http://0.0.0.0:8080/login을 입력하면 아래와 같이 나옵니다. http GET http://localhost:8080/login로 입력하면 제대로된 결과가 나오는데, 왜 0.0.0.0을 사용하면 그렇지 않은지 여쭈어보고 싶습니다. 이전 강의에서 주피터 노트북으로 실습할 때는 127.0.0.1만 된 경우가 있었습니다. localhost, 0.0.0.0, 127.0.0.1이 모두 같은것이라 배웠는데 왜 상황에 따라 몇개만 되는건지 궁금합니다.
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
코드 한번 봐주시면 감사하겠습니다!
#include <iostream> #include <vector> #include <string> using namespace std; int main() { bool flag = false; int cnt = 0; string s,res,tmp,scnt="0"; cin >> s; for (int i = 0; i < s.size(); i++) { if (flag) { while (s.at(i) != ')') { tmp += s.at(i); i++; } } if (s.at(i) == '(') { cnt = stoi(scnt); flag = true; if (cnt == 0) cnt = 1; } else if (s.at(i) == ')') { for (int j = 0; j < cnt; j++) { res += tmp; } tmp = '\0'; scnt = '0'; flag = false; cnt = 0; } else scnt += s.at(i); } cout << res; return 0; } 테스트케이스로 확인해보면 다 정답이랑 같게 나오는데 wrong answer이라고 나오고 채점 페이지를 이용하면 계속 로딩화면만 나옵니다,,,,
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
워크벤치에서 작성
cmd에서 말고 워크벤치에서 작성하려는데요,create table comments ( ... ); 하고 뒤에 comment = "댓글" defautl carset = uff8mb4 engine = InnoDB; 이건 어찌 치나요..?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
SET_LIST가 안나옵니다;;
강의와 다른 것이라고 route 폴더명이 router라는 것입니다.. 뭐가 문제일까요...
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
vectorized에 대해서 좀 더 다뤄주셨으면 좋겠습니다.
오리엔테이션에서 한 번 나오고 말 줄 알아서 대충 넘겼는데 이번 강의에도 나오고 느낌 상 후에 또 나올 것 같네요. 정보를 좀 찾아봤지만 vectorized에 대한 정보량 자체가 별로 없고 이해하기 어려운 설명들 뿐이네요. 사실 이런 부분에 대해서 제대로 된 구글링을 할 줄 아는 실력이라면 인강도 필요없이 구글링만으로 기초적인 퀀트 프로그래밍이 가능할 겁니다. 돈 내고 인강 듣는 사람들은 되도록 적게 돌아가면서 시간을 최대한 아끼고 싶다는 생각이 큽니다. 결론은 괜찮은 정보가 있으면 링크라도 부탁드리겠습니다.