묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
활용 앱71강 질문
강의를 보고 커스텀 델리게이트를 사용하는 코드로 변경을 한 뒤 실행을 하였습니다. 회원 목록을 추가하고 save 버튼을 누르면 메인 화면 조커 밑에 새로운 회원 목록이 생겨야 하는데 생기지가 않습니다.. 다만 새로 다시 추가를 눌렀을 때 멤버번호가 올라가는 것으로 봐서는 배열에는 추가가 된 거 같은데 어느 부분이 빠져서 메인 페이지에 추가가 안 될까요 ㅠㅠ
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
인텔리J 플러그인이 궁금합니다
강의 중간 중간에 호돌맨님께서 빌드 후 테스트 하고나면 캡쳐화면처럼 방금 전에 수행한 후 line by line 으로 각 변수의 사이즈, 값, 타입들이 나오더라고요.신기한 플러그인 같은데 혹시 어떤 플러그인일까요??감사합니다.
-
미해결대세는 쿠버네티스 (초급~중급편)
volume 관련 질문
PV-PVC 관련하여 몇 가지 문의 드립니다. PV 와 PVC 생성 시 엑세스 모드가 서로 다른상태라면 PV와 PVC가 연결이 안되는 것인가요?PVC 생성 시 별도이 PV의 이름을 지정하지 않는것으로 보아 엑세스 모드와 용량으로 판별하여 PV와 연결이 되게 되나요? 만약 엑세스모드와 용량이 같은 여러 PV가 존재한다면 PVC는 생성 시 어떤 기준으로 PV와 연결되게 되나요?실습은 PV를 특정 노드에서 만들었기 때문에 해당 노드에서 생성된 Pod만 연결이 가능하고 다른 노드에서 생성된 pod는 pvc 연결이 불가능한 부분이 맞나요? 아니면 pvc 연결이기 때문에 다른 노드에서 생성된 pod도 볼륨 지정이 가능한가요?노드에서 pv를 만든것이 아닌 클라우드스토리지(ex : Azure에 Blob 또는 AWS에 S3)로 만들 경우 Pod에 노드 위치와 상관없이 볼륨 연결이 가능할까요?쿠버네티스가 처음이라.. 질문이 많네요. 전문가가 보아 이상한 질문일 수도 있지만 답변 부탁 드립니다.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
토픽 생성시 파티션이 배치되는 방법
안녕하세요 강의 잘보고있습니다."토픽 생성시 파티션이 배치되는 방법" 설명중파티션이 5개인 토픽을 생성했을 경우 0번 브로커부터 시작하여 round-robin방식으로 리더 파티션들이 생성되어 네트워크 통신을 골고루 가능하는 부분에서 프로듀서와 컨슈머는 리더 브로커만 통신하는데 파티션이 0번부터 2번까지 골고루 생성되면 컨슈머는 리더 브로커뿐만 아니라 팔로우 브로커와도 통신을 하게되는게 아닌가요?!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
useCreateIndex 지원하지 않음. 옵션에서 빼세용
useCreateIndex 지원하지 않음. 옵션에서 빼세용
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
WinSCP 로그인 설정 관련해서
선생님 안녕하세요. windSCP 로그인 설정 관련해서 오류가 발생하여 문의 드립니다. 4분 29분에 나오는 다운로드받은 키파일을 업로드하려고 했더니, 아래와 같은 에러메시지가 나옵니다.어떻게 해결할 수 있을까요? < 경고 >개인키 파일 '~~ .pem'가 존재하지 않거나 열수 없습니다. 시스템 오류입니다. 오류코드: 5액세스가 거부되었습니다
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
Functional API
Functional API 이용해서 model.summary 보려니까 boundmethod model 이라고 뜨는데 요약보려면 어떻게해야하나요?
-
미해결빠르게 git - 핵심만 골라 배우는 Git/Github
git checkout 과 git switch/restore
안녕하세요.git checkout이 git switch, git restore로 대체된 것으로 나오는데, 어떤 상황에서 git switch나 git restore를 써야하는지 그 차이에 대해서 설명을 해주실 수 있을까요?#차이점1checkout: Switch branches or restore working tree filesswitch: Switch branchesrestore: Restore working tree files #차이점2switch --- local 에 있는 브랜치로만 이동 가능checkout --- remote에 있는 브랜치로도 이동 가능 #referencehttps://git-scm.com/docs/git-checkouthttps://git-scm.com/docs/git-switchhttps://git-scm.com/docs/git-restore 감사합니다.
-
미해결실전! Querydsl
querydsl Mssql 연동
현업에서 사용하기위해mssql이랑 querydsl을 같이 설정하려고 하는데mssql querydsl 따로 프로젝트 만들어서 세팅하면 정상동작하는데요 합쳤을때 compileQuerydsl을 실행하면 에러가 나는데 왜 그런지 모르겠습니다.Unable to load class 'com.mysema.codegen.model.Type'.오류메시지입니다.plugins { id 'org.springframework.boot' version '2.7.5' id 'io.spring.dependency-management' version '1.0.15.RELEASE' //querydsl 추가 id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' id 'java' } group = 'stury' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } querydsl.extendsFrom compileClasspath } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.h2database:h2:2.1.214' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //배포용 implementation 'org.springframework.boot:spring-boot-starter-data-jdbc' runtimeOnly 'com.mysql:mysql-connector-j' implementation group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '11.2.1.jre8' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.8.1' //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa' implementation 'com.querydsl:querydsl-apt' // annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } tasks.named('test') { useJUnitPlatform() } //querydsl 추가 시작 def querydslDir = "$buildDir/generated/querydsl" querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } compileQuerydsl{ options.annotationProcessorPath = configurations.querydsl } //Querydsl 추가, 자동 생성된 Q클래스 gradle clean으로 제거 clean { delete file('src/main/generated') } //querydsl 추가 끝
-
미해결스프링 시큐리티
쓰레드 생명 주기?
안녕하세요.강사님의 시큐리티 강의를 재밌게 듣고 있는 수강생입니다.이게 맞게 질문드리는건진 모르겠는데,쓰레드 로컬의 생명주기는 어떻게 되는걸까요? 몇가지 질문을 드리자면..제가 스프링을 학습해보면서 사용자가 서버에 접속하면 서블릿 컨테이너의 쓰레드 풀에서 쓰레드 하나를 할당받아 사용하는 걸로 알고 있는데, 시큐리티에서 사용되는 쓰레드가 풀에서 받은 쓰레드랑 동일한 것일까요?클라이언트는 인증이 완료되고, DispatcherServlet까지 거쳐 정상적인 응답을 받으면 쓰레드를 반환하지 않는지요? 쓰레드를 반환하면 컨텍스트 정보가 다 날라갈 것이라 생각했는데, 시간 지나도 로그인 유지가 잘 되는거 같아 의아합니다.톰캣의 쓰레드 풀 설정을 보통 몇십개에서 몇백개 사이로 하던데, 동시 접속자 수가 많아져 쓰레드 개수가 부족하면 인증 정보가 SecurityContext에 어떻게 관리될지가 궁금합니다.제가 아는 정보가 좀 짬뽕되어 맞게 질문드리는 건진 모르겠으니 강사님의 소중한 고견 좀 부탁드리겠습니다. 감사합니다!
-
미해결스프링 시큐리티
인자를 두개 넘기게 할수 있는 방법있을까요??
[spring][spring security] 기존에는1)Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken); ------> 2) public class CustomAuthenticationProvider implements AuthenticationProvider authenticate(authenticationToken) 메소드 ------> 3)public class PrincipalDetailService implements UserDetailsService 1)을 호출하면 2)클래스와 3) 클래스가 사용됩니다.------------------------------------------------------------------------저는 여기서 !!!! 인자를 2개 넘기고 싶습니다.1)Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken, "인자 추가")------> 2) public class CustomAuthenticationProvider implements AuthenticationProvider의 authenticate (authenticationToken, "인자 추가") 메소드 하면 에러가 납니다. 이미 security가 지원하는 AuthenticationProvider을 받아서 쓰는 거라 인자 추가가 안되는 것 같습니다... 스 할 수 있는 방법이나 아이디어가 있으실까요?? 어떤 아이디어도 좋습니다 !참고로) AuthenticationProvider는 읽기 전용이라 수정이 안되기도 하고, spring이 제가 만든 AuthenticationProvider 사용하지 않습니다...!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
엔티티의 필드가 많을 때 업데이트 방법?
API 개발 기본 - 회원 수정 API해당 강의 시리즈를 들으며 전 강의부터 생겼던 궁금한 사항에 대해 질문을 드립니다. 예제의 경우는 최대한 간단하게 간소화시킨 엔티티를 예시로 들었지만, 필드가 많은 엔티티의 경우에는 어떤 방식으로 업데이트를 하는지 감이 잡히질 않네요. // java @RequestMapping(value = "/v1/edit/{memberId}", method = RequestMethod.PUT) public EditMemberResponse editMemberV1(@PathVariable Long memberId, @RequestBody @Valid EditMemberRequest request) { memberService.update(memberId, request.getName()); ... return new EditMemberResponse(member); }강의 내용 중 위와 같이 업데이트 파라미터에 DTO 필드를 받아 업데이트 하도록 서비스를 작성하셨는데, 단순히 이름만 있는 엔티티 클래스가 아닌 필드가 굉장히 많은 엔티티의 경우에는 어떤식으로 업데이트 처리하는 것이 효율적일지 궁금해서 질문을 드립니다. @Entity public class Temp { @Id @GeneratedValue private Long id; private String field01; private String field02; // ...무수히 많은 필드들 private String field66; private String field67; } 예를들어, 위와 같은 Temp 클래스의 경우를 업데이트 하기 위해 앞서 설명한 방식으로 업데이트 기능을 서비스계층에 구현한다면 아래와 같이 실질적으로 사용이 불가능할정도로 가독성과 생산성이 떨어졌습니다.// java tempService.update( editTempRequest.getField01(), editTempRequest.getField02(), editTempRequest.getField03(), editTempRequest.getField04(), ..., editTempRequest.getField67() ); 아래와 같이 서비스 계층에 EditTempRequest DTO 계층 클래스를 직접 넘기는 방법도 생각을 해보았습니다만, 서비스 계층에서 DTO 클래스를 이용하기 위해 컨트롤러 계층에서 이너 클래스로 선언된 DTO를 별도의 public 클래스로 선언해주어야 되므로 별도의 자바 파일과 패키지를 구성하게 되어 불필요한 복잡도가 증가하는 문제가 발생했습니다. 또한, 단순히 요청, 응답을 위해 데이터를 담는 목적으로 사용되어야 하는 DTO 클래스의 역할과 책임이 확장되는 문제도 생겼습니다.// java import com.wahhahaha.controller.dto.editTempRequest; ... tempService.update( editTempRequest ); 클라이언트 측에서 수정 API를 호출하기 전에 조회 API를 우선 호출하여 각 필드 정보를 가진 상태로 전체 필드를 이용한다면 merge 업데이트로 쉽게 해결이 가능하겠다라는 생각을 해보긴 했지만 merge는 가급적 이용하지 않는 편이 좋다는 전 강의 내용이 있어 혼란스럽네요.
-
미해결디지털 포렌식 전문가 2급 실기 과정
디지털포렌식 2급 실기 16회,17회 기출
안녕하세요디지털포렌식 2급 실기 16회,17회 기출 강의는 없고 18회만 올라와 있는데 강의 계획 있으신가요?
-
해결됨코어 자바스크립트
선생님 그러면 섹션 0만 봐도 무방한가요!?
섹션1과 섹션2는 참고만 해달라고 되어있기도 하고 내용이 겹치는 부분이 있어서요!
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
hibernate 버전
안녕하세요 영한님, 서포터즈님들이전 Spring Data JPA에서 hibernate 버전으로 인해서 % like 연산이 제대로 동작하지 않아서 버전을 바꿔줬었습니다.그런데 이번 강의에서 hibernate 버전을 변경하지 않아도 테스트가 제대로 동작을 했습니다.제가 알고 있는 바로는 querydsl은 jpql을 사용하기 쉽게, 컴파일 타임 때 에러를 잡을 수 있게 도와주므로 결국 querydsl -> jpql -> jpa -> hibernate 요렇게 진행방식(?)이 된다고 생각했습니다.그러면 저번에 spring data jpa에서 제대로 테스트 되지 않았던 findItem이 querydsl 을 사용할 때도 안되야하지 않나라는 생각이 들어서 질문드립니다감사합니다
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
XSS를 c:out 말고 필터로 처리하는 방법은 없나요?
XSS를 c:out 말고 필터로 처리하는 방법은 없나요?
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
강의 순서
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.알고리즘 개선하기하고 강의 순서가 뒤바뀐 것 같습니다. 순서 정정이 되나요?
-
미해결배달앱 클론코딩 [with React Native]
안드로이드 애뮬레이터 빌드 중
안녕하세요 강의 듣다가 여쭤볼게 있어 질문올립니다. npm i react-native-screens를 하고 난후 안드로이드 스튜디오에서 Sync Project with Gradle Files를 통해 Sync를 하는 과정에서 Event log에 Duplicate content roots detected: Path [C:/react-native/app/node_modules/react-native-screens/android/build/generated/source/codegen/java] of module [app.react-native-screens.main] was removed from modules [app.react-native-screens.main] 이런 메시지가 나오는데 없애는 해결방법은 없을 까요?
-
미해결홍정모의 따라하며 배우는 C언어
2:09초 디버깅 해보는데 도와주세요
Buffer값을 상상하면서 디버깅 해보고 있는데 어느 방식으로 동작하는지 모르겠습니다.입력 : A 3 3 Buffer : [' ', \n] c : 'A' rows : 3 cols : 3입력: B 1 2 Buffer : [\n, B, 1, 2, \n] c : ' ' rows : 3 cols : 3Buffer에서 ' ' 가져와서 c가 ' ' 것은 알겠지만rows와 cols 값이 3인지 이해가 안됩니다.입력 : Buffer : [B, 1, 2, \n] c : 'B' rows : 1 cols : 2왜 입력을 받지 않는지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MVC패턴 적용 동영상 중 똑같이 했는데 에러페이지가 떠서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.MVC패턴 - 적용15분 07초 의 내용인데요.. 똑같이 작성 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 성공 <ul> <li>id= <%=((Member)request.getAttribute("member")).getId()%> </li> <li>username= <%=((Member)request.getAttribute("member")).getUsername()%> </li> <li>age= <%=((Member)request.getAttribute("member")).getAge()%> </li> </ul> <a href="/index.html">메인</a> </body> </html> 에러페이지가 나와요 ?? 몇번을 확인해봐도 15분 07초 내용과 똑같이 작성했는데 그러네요..그런데 ${ } 로 작성해보면 또 아래와같이 재대로 나와요<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 성공 <ul> <li>id= ${member.id} </li> <li>username= ${member.username} </li> <li>age= ${member.age} </li> </ul> <a href="/index.html">메인</a> </body> </html>질문 : 위에 request.getAttribute로 가져올때 분명 강사님은 제대로 실행했는데 전 왜 똑같이 따라했는데 안되고 ${ } 방법으로 했을때만 제대로 실행될가요??