묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
섹션 7 - 24강
저는 오토레이아웃을 잡을 때 강의를 참고하면서 Snapkit, Then 라이브러리를 적용해 만들고 있는데 Snapkit을 사용할 경우 어떤 방식으로 레이아웃을 변경 해야할까요 ?
-
해결됨Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
vbase-3 탭 자동완성이 안되는데..
스니펫 설치하고 vueinit 입력하고 탭하면 자동완성이 되는데 강사님처럼 vbase-3 탭은 안되더라구요 이유가 뭘까요 ㅠ
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
활용 - 2) 텍스트필드 / 델리게이트 패턴 개념 질문
안녕하세요 앨런님 델리게이트 패턴 관련해서 궁금한게 있어서 질문 드려봅니다.1.텍스트필드 delegate에 ViewController 인스턴스 등록2.View 인스턴스는 UITextFieldDelegate 프로토콜 채택3.텍스트필드에서 실제 이벤트 발생시 등록된 delegate의 메서드를 호출(아마 호출된 메서드의 반환값을 이용하여 허용 또는 금지를 시킬것같은데 잘은 모르겠습니다.)4.ViewController 클래스에서는 필요한 논리를 작성하거나 Bool 형식으로 값을 리턴하여 텍스트필드를 제어UITextFieldDelegate 프로토콜을 채택하고 사용하면 되기에해당 메서드의 구현부는 공개할 필요가 없음.제가 이해한것이 맞는지 판단이 안서서 질문 남겨봅니다.
-
미해결언리얼 엔진4 입문 (C++ 기반)
안녕하세요 비쥬얼스튜디오에서 빌드하면 출력되는 에러인데요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.오류 MSB3073 "D:\UE5\UE_5.2\Engine\Build\BatchFiles\Build.bat StarEditor Win64 Development -Project="D:\UEPro\Starrail\Star.uproject" -WaitMutex -FromMsBuild" 명령이 종료되었습니다(코드: 6). Star C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44 라는 에러문구가 출력되서 질문드립니다.검색을 해보니 UPROPERTY()에 오타가있다.컴파일 경로가 길다.Window SDK업데이트를 해야한다 등 여러가지 답변이 있어서 하나씩 적용을 해봤지만 코드 수정 이후 빌드를 하면 위 에러가 출력되는데 원인 알 수 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
이거 우류나네요... 똑같이썼는데요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. package hello.hellospring.service;import hello.hellospring.domain.Member;import hello.hellospring.repository.MemoryMemberRepository;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import static org.assertj.core.api.Assertions.*;import static org.junit.jupiter.api.Assertions.*;import static org.junit.jupiter.api.Assertions.*;class MemberServiceTest {MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach() {memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); }@AfterEach public void afterEach() {memberRepository.clearStore(); }@Test public void 회원가입() throws Exception {//Given Member member = new Member(); member.setName("hello");//When Long saveId = memberService.join(member);//Then Member findMember = memberRepository.findById(saveId).get(); assertEquals(member.getName(), findMember.getName()); }@Test public void 중복_회원_예외() throws Exception {//Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring");//when memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); }} 이거 계속 오류나는데 왜그럴까요.org.opentest4j.AssertionFailedError: Expected java.lang.IllegalStateException to be thrown, but nothing was thrown. 이렇게 떠요
-
미해결풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기
grahpqlFetcher 설명가능할까요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. export const graphqlFetcher = <T>(query: RequestDocument, variables = {}) => request<T>(BASE_URL, query, variables) 이 코드 에서 <T> 이 타입에 대한 것과query: RequestDocument, variables = {}여기 부분이 뜻하는 것과request<T>(BASE_URL, query, variables여기 부분이 뜻하는 의미를 알고 싶습니다 .ㅠㅠgrahpql이 처음이라 구글링해서 봐도 잘 모르겠어요.. 그리고 혹시 그럼 지금은 graphql을 쓰는 거고, 이전 영상에서 fake api 불러올 때는 rest api 사용한 게 맞나요??알려주시면 감사드립니다!
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
React -Router 사용에 관해서
안녕하세요 선생님! netflix 강의 너무 잘들었습니다! 듣고나서 혼자 이것저것 만들어보는데 , react router 사용을 하다보니 1. index.js 에서 App 을 BrowserRouter로 래핑하는 방법2. 특정 컴포넌트에서 BrowserRouter로 감싸서 따로 쓰는경우가 있는 것 같더라고요. 두가지 차이점을 정확히 모르겠습니다. chat gpt는 개발자가 개발하는 과정에서 선택하는 부분이라고 되어 있는데, 그 선택하는 이유를 잘 모르겠습니다. 하지만 <App> 컴포넌트를 감싸지 않고 다른 컴포넌트에서 <BrowserRouter>를 사용하는 것은 특정 컴포넌트 또는 컴포넌트 그룹에 대한 라우팅을 독립적으로 구성하고 싶을 때 사용될 수 있습니다. 이렇게 하면 라우팅 로직이 특정 컴포넌트에 한정되며, 애플리케이션의 다른 부분과 격리될 수 있습니다. 예를 들어, <App> 컴포넌트의 하위 컴포넌트 중에서만 특정 라우팅이 필요한 경우 해당 컴포넌트 내에서 <BrowserRouter>를 사용하여 독립적인 라우팅을 구성할 수 있습니다.이런식으로 대답이 오는데 이해가 잘 가질 않네요. 혹시 검색 키워드나, 참고할만한 글이 있을까 해서 글 남깁니다. 감사합니다~
-
미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
배포 문제
안녕하세요 강사님. 강의를 듣고 배포중에 에러가 났습니다.AWS의 Lightsail react 인스턴스와 django 인스턴스를 하나씩 만들어서 배포하는 중 서버와 API통신은 되지만 Socket통신이 되지않고 있습니다.WebSocket connection to 'ws://{path}/ws/chat/' failed 와 같은 에러가 나타는데 혹시 네트워크 설정이나 따로 해줘야할 설정같은게 있을까요??
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
d-day 코드오류
강의보면서 그대로 작성했는데 targetDate 부분이 오류가 납니다. 여기서 안되니까 remaining 에서도 오류나고..콘솔 찍으면 NaN 만 출력이 되네요ㅠㅠ 왜그럴까요? <script> const dateFormMaker = function () { const inputYear = document.querySelector("#target-year-input").value; const inputMonth = document.querySelector("#target-month-input").value; const inputDate = document.querySelector("#target-date-input").value; const dateFormat = `${inputYear}-${inputMonth}-${inputDate}`; return dateFormat; }; const counterMaker = function () { const targetDateInput = dateFormMaker(); const nowDate = new Date(); const targetDate = new Date(targetDateInput).setHours(0,0,0,0); /* error */ const remaining = (targetDate - nowDate) / 1000; const remainingDate = Math.floor(remaining / 3600 / 24); const remainingHours = Math.floor(remaining / 3600) % 24; const remainingMin = Math.floor(remaining / 60) % 60; const remainingSec = Math.floor(remaining) % 60; console.log(remainingDate, remainingHours, remainingMin, remainingSec); console.log(targetDate); }; </script>
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
assertThat import 문제
assertThat import 안되는 문제선생님 안녕하세요. 이번에 새로 수강하고 있는 수강생입니다.프로젝트 다운 받고 실행을 시켜려고 하는데 실행이 안돼서 따로 설정해서 돌리고 있습니다.Junit5까지는 진행했지만 assertThat 코드를 호출하는 진도에서 실행이 안되고 있습니다.혹시 어떤 방법으로 해결 할 수 있을까요? 찾아도 안나오네요 ㅠㅜbuild.gradle.kts 파일입니다import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.springframework.boot") version "3.0.6" id("io.spring.dependency-management") version "1.1.0" id("java") id("org.jetbrains.kotlin.plugin.jpa") version "1.7.22" // id("org.jetbrains.kotlin.plugin.spring") version "1.7.22" id("org.jetbrains.kotlin.kapt") version "1.7.22" kotlin("jvm") version "1.7.22" kotlin("plugin.spring") version "1.7.22" } group = "com.example.kotlin" version = "0.0.1-SNAPSHOT" java.sourceCompatibility = JavaVersion.VERSION_17 configurations { compileOnly { extendsFrom(configurations.annotationProcessor.get()) } } repositories { mavenCentral() } dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-reflect:1.7.22") implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.13.3") implementation("org.junit.jupiter:junit-jupiter:5.8.1") implementation("com.querydsl:querydsl-jpa:5.0.0") kapt("com.querydsl:querydsl-apt:5.0.0:jpa") kapt("org.springframework.boot:spring-boot-configuration-processor") runtimeOnly("com.h2database:h2") testImplementation("org.assertj:assertj-core:3.21.0") implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web-services") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") developmentOnly("org.springframework.boot:spring-boot-devtools") annotationProcessor("org.springframework.boot:spring-boot-configuration-processor") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation(kotlin("test")) } tasks { test { useJUnitPlatform() } withType<KotlinCompile> { kotlinOptions { freeCompilerArgs = listOf("-Xjsr305=strict") jvmTarget = "17" } } withType<Test> { useJUnitPlatform() } }
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
시간복잡도 질문
일반적으로 알려진 시간복잡도에 따르면 input 값이 200000 정도일 경우 O(nlogn) ~ O(n) 사이의 시간복잡도에 해당한다고 생각하였는데, 이중 for문을 사용해도 시간 초과가 일어나지 않는 원인이 무엇인지 궁금합니다.
-
해결됨호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
인터셉터 활용?
안녕하세요 호돌맨님!JWT 관련 강의에서 ArgumentResolver를 활용해 토큰 검증을 하고 사용자 정보를 추출해 반환하셨는데, 만약 프로젝트를 진행할 때 로그인을 해야 모든 URL에 접근할 수 있다고 한다면 아래 코드처럼 인터셉터에서 토큰 검증을 하고 ArgumentResolver에선 별다른 검증 없이 subject만 추출해서 반환해도 문제가 없을까요? 혹시 제가 접근 자체를 잘못하고 있다면 알려주시면 감사하겠습니다@Slf4j @RequiredArgsConstructor public class LoginCheckInterceptor implements HandlerInterceptor { private final JwtService jwtService; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { String requestURI = request.getRequestURI(); log.info("인증 체크 인터셉터 실행 {}", requestURI); String accessToken = request.getHeader("Authorization"); jwtService.validateAccessToken(accessToken); try { jwtService.getSubject(accessToken); } catch (JwtException e) { throw new Unauthorized(); } return true; } } @RequiredArgsConstructor public class JwtArgumentResolver implements HandlerMethodArgumentResolver { private final JwtService jwtService; @Override public boolean supportsParameter(MethodParameter parameter) { boolean hasLoginAnnotation = parameter.hasParameterAnnotation(Login.class); boolean hasLoginType = LoginUser.class.isAssignableFrom(parameter.getParameterType()); return hasLoginAnnotation && hasLoginType; } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { String accessToken = webRequest.getHeader("Authorization"); Long userId = jwtService.getSubject(accessToken); log.info("userId = {}", userId); return new LoginUser(userId); } }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원가입 눌러도 반응이 없어요. 도와주세요 ㅠ
연동을 다해놨는데, 스프링 실행할때 에러가 나네요.. 이유를 못찾겠습니다.구글 드라이브에 올릴게요강의는 회원등록 4분46초 부분 하고 있었습니다. https://drive.google.com/file/d/1Xes5ztWKL5s4NDre1bSuGeL2t-tbnJIO/view?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원목록 white label error (500) java.lang.NullPointerException
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 회원목록 조회시Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Wed May 31 00:06:03 KST 2023There was an unexpected error (type=Internal Server Error, status=500).No message availablejava.lang.NullPointerException at hello.hellospring.controller.MemberController.list(MemberController.java:40) 라고 뜨며 아래는 MemberController 코드입니다 package hello.hellospring.controller; import hello.hellospring.domain.Member; import hello.hellospring.service.MemberService; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } @GetMapping("/members/new") public String createForm() { return "members/createMemberForm"; } @PostMapping("/members/new") public String create(MemberForm form) { Member member = new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; } @GetMapping("/members") private String list(Model model) { List<Member> members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberList"; } }
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
41강 아이디 중복확인 Ajax 질문이 있습니다
안녕하세요 선생님41강 아이디 중복확인 섹션에서 Interface인 MemberMapper.java 에서public Member registerCheck(String memID);위처럼 선언해주었고,MemberMapper.xml 에서<select id="registerCheck" resultType="srv.ges.entity.Member">SELECT * FROM mem_tbl WHERE memID = #{memID} </select>위처럼 select문에 resultType만 작성하셨는데,'memID'를 Parameter로 넘기니 ParameterType도 작성해야 하는 것 아닌가요?
-
미해결차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원
Object Detection (fasterrcnn) 공지해주신 소스의 오류 수정 부탁드립니다.
안녕하세요일전에 공지해주신 아래 파일에서 에러가 나는데 수정 좀 부탁 드립니다.1강_TF2_Detection_Model_ZOO_example_fasterrcnn_pedestrian_dataset_2022_11_11.ipynbhttps://colab.research.google.com/drive/1LIMGUFJtCWw3gdgWh3T2aorR4AwogyPS?usp=sharing 죄송합니만 개인 사정상 다소 급하오니 선처 부탁드립니다!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
방향성에 대한 강의
마지막 멘트하실 때 앞으로 뭘 더 공부하고 어떻게 공부하면 좋을지 알려주신다고 하셨는데 그것에 대한 강의는 없는 건가요? 완강했습니다! 감사합니다~
-
미해결따라하며 배우는 NestJS
NotFoundException
컨트롤러와 서비스에 NotFoundException을 둘다 작성하셨는데 혹시 필요없는 로직이 아닌지 생각됩니다.컨트롤러에서 데이터를 받았는데 서비스로 데이터가 안넘어 갈일은 없다고 생각되서요꼭 필요한 코드인지 의문입니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 AOP주의사항 - 해결방법 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]영한님께서 이번 강의에서 트랜잭션 프록시 객체에서 외부메서드를 호출하고, 진짜 객체의 외부 메서드에서 자기 자신의 내부 메서드를 호출할 때 내부 메서드에는 @Transactional을 설정해도 트랜잭션이 적용되지 않는 점 이해 했습니다. 강의에서 이 부분을 해결하기 위해 별도의 클래스를 만들고, Bean으로 주입(이 경우 프록시객체가 Bean으로 등록)해서 프록시 객체가 @Transactional 메서드를 호출하는 방식으로 해결하는 점도 이해했습니다. 스프링 MVC강의에서 빈 스코프 문제(프로토타입과 싱글톤 Bean을 같이 사용할 때 문제점)을 해결하기 위해 Dependency Lookup을 사용하신 방법이 떠올라 V3테스트코드를 작성해보았습니다. @Slf4j @SpringBootTest public class InternalCallV3Test { @Autowired CallServie callServie; @Test void printProxy() { log.info("callService class={}", callServie.getClass()); } @Test void internalCall() { callServie.internal(); } @Test void externalCall() { callServie.external(); } @TestConfiguration static class InternalCallV1TestConfig { @Bean CallServie callServie() { return new CallServie(); } } @Slf4j static class CallServie { @Autowired private ObjectProvider<CallServie> selfProvider; public void external() { log.info("call external"); printTxInfo(); CallServie self = selfProvider.getObject(); log.info("self class={}", self.getClass()); self.internal(); } @Transactional public void internal() { log.info("call internal"); printTxInfo(); } private void printTxInfo() { boolean txActive = TransactionSynchronizationManager.isActualTransactionActive(); log.info("tx active={}", txActive); boolean readOnly = TransactionSynchronizationManager.isCurrentTransactionReadOnly(); log.info("tx readOnly={}", readOnly); } } } 실행 결과는 다음과 같습니다.DL을 이용해서 스프링 컨테이너에서 프록시를 가져와서, 프록시의 메서드를 호출하면 트랜잭션이 적용되는 것 처럼 보입니다. 질문1) 이 방법으로 트랜잭션이 적용되는게 맞을까요?2) 이 방법을 혹시 스프링-고급편에서 다루나요?3) 1번 질문이 맞다면 클래스를 새로 만들고, 메서드를 옮기는 비용보다 DL로 프록시객체를 찾아오는 비용이 더 쌀 것 같은데, 둘 중 어느 방법이 선호되는 편인가요?
-
미해결[LG유플러스] 앱 만들기 초급 과정 (Flutter)
flutter doctor 실행 중 Xcode 오류
이렇게 Xcode 에러가 떠서 CocoaPods를 install 하려고 했으나, 버전이 안맞는다는 메시지가 뜨는데요. 여기서부터 구글링을 해도 해결방법을 모르겠습니다.ㅜㅜ