묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Manager.Input.KeyAction += Onkeyboard;
PlayerController의 void Start 부분에Managers.Input.KeyAction -= OnkeyboardManagers.Input.KeyAction += Onkeyboard 문장이 헷갈립니다 ㅜOnKeyboard가 이벤트 핸들러의 역할을 하는건가요?온라인에 나와있는 이벤트 핸들러의 문법이랑 조금 다른것 같은데 이렇게 사용해도 상관없는건가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
서블릿 컨테이너 / WAS 차이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.다른 분들이 질문하셨던 내용이지만 아직도 이해가 잘 되지 않아 잘문드립니다제가 알기로는 was, 웹 애플리케이션 서버는 웹 서버 + 서블릿 컨테이너로 구성되어 있다고 알고 있습니다.또, 한편으로는 톰캣처럼 서블릿을 지원하는 was를 서블릿 컨테이너라고 알고 있습니다.그렇다면 결국 was와 서블릿 컨테이너의 의미가 중복되는 것 아닌가요?was는 웹 서버와 서블릿 컨테이너로 구성되어 있고, 이 중 서블릿 컨테이너는 또 서블릿을 지원하는 was라는 건가? 싶어서 질문드립니다.그리고 영한 님이 주신 자료에서는 웹 애플리케이션 구성이 웹 애플리케이션 서버와 서블릿 컨테이너로 나뉘어 있는데, 아래쪽 웹 애플리케이션 서버를 웹 서버로 수정하여 인식하면 될까요?마지막으로 전체적인 흐름을 본다고 할 때1) 사용자가 localhost:8080/hello 호출2) 서블릿 컨테이너에서 request, response 객체를 만들어줌 (그림에는 아래쪽 웹 애플리케이션 서버에서 만들어지는데, 웹 애플리케이션 서버를 웹 서버로 고친다면 웹 서버에서 만들어지는 건가요..?)3) 서블릿 컨테이너 안에 있는 쓰레드가 request, response를 인자로 하여 서블릿 객체 호출4) request 객체를 이용해 로직 수행5) 응답 결과를 response에 담고 서블릿 컨테이너에 전달6) 서블릿 컨테이너가 응답 메시지 생성 후 클라이언트에게 전달이 흐름으로 이해하면 될 지 궁금합니다..😭
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
max 64 keys allowed
팀프로젝트하면서 속도가 늦춰질까봐 잘 돌아가도록 구현에만 초점에 두고 최적화에 전혀 신경 안썻더니 서버가 재시작될 때마다 조금씩 속도가 늦춰지다가 결국엔 저 오류가 뜹니다원인은 mysql의 기본키 제한인 64개가 넘어서인 것으로 파악은 됐는데해결해보려했지만 끝내 해결 방법을 찾지 못해 질문글 올립니다..제 생각으로는 오류가 날거면 서버가 처음 시작할 때 오류가 발생해야된다고 생각되는데서버 처음 시작할 땐 오류가 안나고 재시작을 반복해야 64개 넘었다는 오류가 발생합니다 서버켜지는속도 처음 3초 >> 5초 >> 7초 >> 9초 >> ... 점점 느려지다가 위와 같은 오류 발생
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
joinColumn, referencedColumnName
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예![질문 내용]JPA 기본키를 생성할 때 향후 비즈니스 모델이 변경될 것을 대비해서 비즈니스에 의존적이지 않은 대리 키(ex. Index) 를 사용해서 관리를 한다고 들었습니다.그런데 예를 들어서 학생과 학교라는 테이블이 있고학생이 ManyToOne이라고 할때 School을 조인해서 외래키를 가지게 될텐데, 실제로 JoinColumn을 통해서 매핑을 하게되면 실제 DB에 값을 확인했을 때 외래키에 값에는 당연히 해당 인덱스 값이 저장이 되게되고, 나중에 학생 테이블의 데이터를 확인할 때 이 인덱스가 어떤 학교의 이름이었지? 하고 확인을 두 번 해야되는 경우가 있어서 학교 이름을 unique로 설정하고 referencedColumnName으로 해당 학교이름을 가져오는 식으로 구성하면 한 번에 보여서 이렇게 하는게 더 좋은건가? 싶더라구요. 그래서 보통 실제로는 어떻게 하는지 궁금해서 여쭤봅니다!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕 하세요~~
강의 마다 빅오 표기법도 같이 넣어주셨으면 좋겠습니다^^
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
값타입과 상속
안녕하세요 강의 너무 잘 듣고 있습니다!값 타입을 배우고 나서 궁금증이 생겼습니다. 앞서 배운 @MappedSuperclass가 적용된BaseEntity를 사용하는 것과값 타입을 사용하는 것이 비슷하게 느껴졌는데,제 생각엔 값 타입을 사용하는 편이 더 낫다고 생각되는데..구분해서 사용할 수 있는 개념들인가요??BaseEntity 를 처음 배웠을 때부터 상속으로 하면 느낌상 어떤 제약이 생기는 듯한 기분을 지울 수가 없네요..
-
해결됨Vue.js + TypeScript 완벽 가이드
2022-10-06 두번째 프로젝트 Repo 권한 요청 드립니다.
seokho.j0308@gmail.com입니다.
-
해결됨ASP.NET core Blazor 디테일 강의 - 초급편
재질문
어제 질문드렸는데 navigationmanager로 해결이 안되어 다시 질문 남깁니다현재 저는 stream형식으로 데이터를 받아오는 코드를 구현하고 있고 이를 업데이트하기 위해 await InvokeAsync(StateHasChanged); 라는 코드를 사용하고 있습니다.평상시에는 StateHasChanged가 잘 동작하기에 생명주기 함수에만 넣어야하는 함수는 아닌 것 같습니다..오직 문제는 다른 페이지로 전환했다 돌아왔을 시 StateHasChanged가 동작하지 않습니다. (디버깅으로 확인한 결과 평소에는 StateHasChanged 이후에 html 코드쪽으로 가서 업데이트 작업이 진행되는데 문제의 경우에는 html로 가지않고 바로 넘어가버림)(수정된 내용을 찾지 못하는걸까요??)데이터는 정상적으로 들어간게 디버깅을 통해서도 확인되었고 또 이벤트 (아무런 기능없는 버튼 클릭, 다시 다른페이지로 이동했다 돌아옴) 가 발생하면 정상적으로 모든 데이터가 출력됩니다.오직 다른페이지로 넘어갔다 돌아왔을 시 "실시간으로 업데이트해주는 기능" 만 동작을 멈춤니다.검색한 바로는 비동기 활용 시 쓰레드가 달라져 싱크가 안맞는 문제가 있는거같기도한데...(SynchronizationContext, ExecutionContext)제 생각에는 이게 가장 그럴듯해 보이더라구요 async 사용하면서 쓰레드가 달라져서 StateHasChanged()가 변경된 부분을 인식 못한다는게 맞을까요?버튼을 누르는 것과 StateHasChanged 를 호출하는 것 둘 사이에 무슨 차이점이 있길래 하나만 동작하는걸까요 Blazor (Client-side) StateHasChanged() not updating page - coder-solution-es.com해당 주소의 방법으로 임시적으로 돌아가게는 구현했습니다.아무것도 없는 refresh 페이지를 만들고 init에서 바로 NavigateTo를 활용해 원하는 주소로 돌아가게 구현하는 방식입니다. 이렇게 하면 페이지가 전환되더라도 실시간으로 업데이트가 됩니다...하지만 매번 반복문마다 저 NavigateTo를 하는건 아무리 봐도 해당 방법은 쓸데없는 동작이 많아( 깜빡임도 발생합니다) 임시 방편으로만 쓸만한거같은데 혹시 저 임시방편 해결책을 통해 저의 근본적인 문제가 무었인지 알 수 있을까요...? 최대한 자세히 제 상황을 알려드리려 하다보니 질문이 길어져서 죄송합니다...
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
9분54초쯤
9분54초쯤 erd보면 item에서 category_item을 일대다로 보고있는데 여기서 아이템은 무조건 카테고리가 필수아닌가요? 그러면 optionality대신 mandatory가 들어가야 하는거 아닌가요? 카테고리가 없는 상품이 없지 않나요?
-
미해결Nuxt.js 시작하기
image 자료 관련하여
안영하십니까 ?강의내용에 직접적인 관련은 약간 벗어난 질문을 드립니다image자료 관련해서image자료가 public 폴더 내에 있다면 img tag의 src 속성에 경로를 입력하면 보안에 취약하지 않는데서버의 특정폴더(public가 아닌)에 imge자료가 있을경우img tag의 src에 경로를 표시하면 보안에 취약 할것 같아 사용이 어려울것 같습니다이런경우는 어떤 방법으로 하나요 ?
-
해결됨디자인 시스템 with 피그마
피그마 토큰과 로컬에서의 적용 충돌?
로컬에도 스타일이 있고피그마 토큰에도 있을때로컬에서 typography 중 스타일 선택한후토큰에서는 선택했을때 바뀌지 않는데 토큰으로는 정리를 하고 실제로 사용할땐 싱크만 맞춘후로컬이나 토큰 둘중에 한곳에서만 사용해나 하나요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
하이퍼 옵트 TPE
안녕하세요. 강의 잘 듣고 있습니다 :)HyperOpt 기본 실습 8분 05초에서 하이퍼 옵트는 가우시안 최적화 방식이 아닌 TRE 방식으로 최적화를 한다고 하시는데 TPE 방식이 어떤 방식인지 대략적으로 알고 싶습니다. 답변 부탁드립니다.감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Getter,Setter에러
lombok 플러긴에서 인스톨했습니다!package jpabook.jpashop.domain; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name="member_id") private Long id; private String username; @Embedded private Address address; @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>(); } package jpabook.jpashop.service; import jpabook.jpashop.domain.Member; import jpabook.jpashop.repository.MemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service @Transactional(readOnly= true) @RequiredArgsConstructor public class MemberService { private final MemberRepository memberRepository; /* 회원가입 */ @Transactional public Long join(Member member) { validateDuplicateMember(member);//중복 회원 검증 memberRepository.save(member); return member.getId(); } private void validateDuplicateMember(Member member) { //Exception List<Member> findMembers = memberRepository.findByName(member.getName()); if(!findMembers.isEmpty()) { throw new IllegalAccessException("이미 존재하는 회원입니다."); } } /* 전체회원조회 */ public List<Member> findMembers() { return memberRepository.findAll(); } public Member findOne(Long memberId) { return memberRepository.findOne(memberId); } }
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
텍스트 붙여넣기 할 때
저는 글자의 속성값(볼드, 폰트 종류)까지 붙여 넣기 되던데 글자값만 복사하는 방법이 따로 있나요? 강사님은 텍스트 내용만 붙여 넣기 되는 듯 한데 저도 텍스트 상자 안으로 들어가서 붙여넣기 해도 속성 값까지 복사가 되네요...
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 프로젝트 생성 버전변경 문제
스프링 프로젝트 생성할때 스피링부트 버전이 영상과 다른데 어떤 버전으로 생성해야 할까요? 일단 순서상으로는 2.7.4로 하는게 맞는거 같아 그걸로 했는데 문제가 없을까요?1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃허브 권한요청 드립니다!
인프런 아이디: 355833@naver.com인프런 이메일: 355833@naver.com깃허브 아이디: 355833@naver.com깃허브 Username: YeKata
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Dto의 위치2
강사님이 커뮤니티게시판에 dto관련 위치에 대해 쓰신 글을 공부했습니다. 결론적으로는 dto를 사용하는 위치에 두는 것이 맞다라고 이해를 했습니다.그런데 이번 강의 rest api를 구현하시면서 dto를 컨트롤러에 내부클래스에 두었습니다.이번 강의에서 사용하는 dto는 화면에 의존적이기때문에 저도 컨트롤러에 두는 것이 맞다고 생각합니다.여기서 질문입니다. 여기서 강사님께서 엔티티 조회방식으로 우선 접근을 하라고 권장하셨습니다.그런데 강의대로 한다면 컨트롤러에 dto관련 내부 클래스가 너무 많아질텐데그럴 경우에는 controller에 따로 dto페키지를 만드는 것이 좋은 선택인지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
빈 생명주기 의존관계주입과 초기화 시점 질문
안녕하세요:) 강의 잘 듣고있습니다. 수강 중 궁금한 점이 생겨 질문드립니다! NetworkClient 클래스와 BeanLifeCycleTest 클래스에서 의존관계 주입과 초기화에 관한 질문입니다. 제가 생각하는 게 맞나 의문이 들어 제 생각을 적어봤습니다. <BeanLifeCycleTest 클래스, lifeCycleTest() 테스트> ConfigurableApplicationContext ac = new AnnotationConfigApplicationContext(LifeCycleConfig.class) 1. 테스트 코드에서 ac라는 스프링 컨테이너를 생성한다. 스프링컨테이너를 생성할 때 구성정보로 LifeCycleConfig.class를 지정해줬다.@Configurationstatic class LifeCycleConfig {@Beanpublic NetworkClient networkClient() {NetworkClient networkClient = new NetworkClient();networkClient.setUrl("http://hello-spring.dev");return networkClient;} }2. LifeCycleConfig.class에 있는 @Bean이 붙은 메서드들을 스프링 컨테이너에 빈으로 저장한다. networkClient라는 이름을 가진 빈이 생성된다.2-1. networkClient라는 빈에서 NetworkClient 타입의 객체networkClient 가 생성된다.2-2. 객체가 생성됨과 동시에 NetworkClient() 생성자를 호출해 맨 처음 "생성자 호출, url = null이" 출력된다.2-3 NetworkClient 타입인 networkClient에 setUrl("http://hello-spring.dev") 을 통해 url에 값을 저장한다.3. https://www.inflearn.com/questions/653260 위 글을 살펴보면 답변에서의존관계 주입이 setUrl() 다음에 이뤄진다고 하셨는데,,, setUrl() 호출 다음이면 위의 제 생각 중 2-3번 다음인가요,,,? 의존관계 주입 방법에 생성자를 통한 주입이 있으므로 생성자 호출 시 의존관계 주입이 이뤄지는 건가요,,,? 아님 스프링 컨테이너에 빈이 생성되면서 의존관계 주입이 일어난다. 크게 생각하면 되는건가요,,? 어디서 일어나는 건지 질문드립니다. 4. "스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료된다. 따라서 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 한다." 의존관계 주입이 완료되면 초기화 작업이 이루어진다고 수업 자료에 나와있는데요,초기화란 객체를 선언하고 값을 최초로 할당하는 것이라고 알고있습니다.그럼 위의 코드에서는 객체 생성, 즉 생성자 호출 후 setUrl()로 값을 주입하는 게 초기화 작업이 맞을까요..? 만약 맞다면 결론적으로 NetworkClient networkClient = new NetworkClient(); -> 의존관계 주입networkClient.setUrl("http://hello-spring.dev"); -> 초기화 작업이게 맞는건가요,,?이렇게 되면 3번에 언급되었던 게시글 답변 중, 스프링 컨테이너 실행 -> 스프링 빈으로 등록 -> setUrl() 호출 -> 의존관계 주입 -> 초기화 이 순서에 의문이 생기게 되는데 어떤 순서가 정확한지 질문드립니다!!
-
해결됨[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
자바스크립트 반복문(for) 질문
안녕하세요 제로초님 자바스크립트 반복문(for) 강좌에서 for(;;)를 실행하면 무한 반복이 된다고 하셨습니다. 그런데 제 브라우저에 for(;;)를 넣은면 이렇게 실행됩니다. 이 자체로 실행됬나요?
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Auditing 관련해서 궁금한게있습니다!
안녕하세요! 질 좋은 강의 잘 보고 있습니다!해당 강의를 듣기전에는 BaseTimeEntity를 추상클래스로 생성해 필드값으로 createTime, modifiedTime 등을 생성하고, 사용하고 싶은 클래스(ex. Member, Post ) 에 extends 해서 사용하는 방법으로 알고 있었습니다. 강의에서는 AuditorAware 인터페이스를 상속받아 구현하고 있는데, 위와 같은 방법이랑 차이점이 있을까요??차이점이 있다면, 장단점이 어떤게 있는지 궁금합니다.