묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨백엔드 개발자에 의한, 백엔드 개발자들을 위한 프론트엔드 강의 - 기본편
강의 누락
안녕하세요 Thymeleaf vs HTML + RestController 주제를 듣던 중 의아한 부분이 생겨 글을 작성하게 되었습니다.해당 강의에서 Thymeleaf 에 대한 설명을 진행하던 와중, 도중 강의가 갑자기 끝나는 듯한 느낌을 받았습니다.강의 페이지를 보니, 이후 설명되야 할 내용처럼 보이는 것을 발견했습니다. 혹시 중간에 강의가 누락된 것인지 확인 부탁드립니다.
-
해결됨독하게 시작하는 C 프로그래밍
scanf_s 연속 사용에 대해 질문 있습니다.
위 문제와 같이 scanf_s를 연속으로 사용할 때 궁금한 점이 있습니다.먼저 첫번째 입력으로 1을 입력하면 버퍼에 [1][\n] 이렇게 입력되고 1이 빠져나가면 [\n]이 버퍼에 남게 되는 걸로 이해하고 있습니다. 그렇다면 두번째 입력 때 [\n] [2] [\n] 이렇게 입력이 되는건가요?또한 만일 엔터가 맨 앞에 있다면 왜 scanf_s를 연속으로 쓸 때는 스킵이 안되는지와 get_s와 같이 쓰면 스킵이 되는지가 궁금합니다..!
-
미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]
저희 앱에서는 평달과 윤달을 구분할 필요가 없는 것일까요?
저희 앱에서는 평달과 윤달을 구분할 필요가 없나요?? 음력의 경우에요!!
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
스택과 불린을 이용해서 솔루션해봤는데 괜찮을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.강의를 듣기 전 풀어봤는데, 설명해주신 방법도 숙지하겠습니다.function solution(s) { let answer = ''; let stack = []; let contain = false for (let ele of s) { if (ele === '(') { contain = true stack.push(ele) } if (!contain) { answer += ele } if (ele === ')') { stack.pop() if (stack.length === 0) contain = false } } return answer }
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
계층형 테이블에 매핑된 엔티티 컬렉션을 fetch join으로 가져올 때 쿼리 개수 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]코드는 마지막에 첨부되어 있습니다.게시글 엔티티 Post가 게시글에 달린 댓글 엔티티 Comment의 컬렉션을 프로퍼티로 갖습니다. 댓글 엔티티 Comment는 COMMENT, REPLY 타입으로 구분되며, 프로퍼티로 parentComment와 replies를 갖습니다. COMMENT 타입은 parentComment == null이며, REPLY 타입은 replies == null입니다. Post.comments는 Comment의 타입을 고려하지 않고 모두 갖고 있습니다.위 상황에서 게시물 상세 정보를 가져올 때, comments를 fetch join하여 Post 엔티티를 가져와 댓글들을 타입 계층에 따라 분리하는 작업을 합니다. 이때 REPLY 타입의 replies에 접근하지 않습니다. COMMENT 타입의 replies에는 접근하며 해당 replies는 모두 같은 게시물에 속해있습니다.예상했던 쿼리의 개수는 1 혹은 (1 + COMMENT 타입 수) 였습니다. 애초에 둘 중 무엇인지 궁금해서 일을 진행했었습니다.테스트를 실행해보면, post.comments의 요소에 처음 접근할 때 REPLY 타입을 가져오는 쿼리가 발생합니다. 그런데 이후에 다른 COMMENT 타입에 접근할 때는 REPLY를 가져오는 쿼리가 발생하지 않습니다. 만약 Post의 COMMENT 타입 Comment.replies에 접근할 때 쿼리가 발생하는 거라면 COMMENT 타입의 개수만큼 발생해야 하는게 아닌가요? 제가 무엇을 놓치고 있는지 궁금합니다.논외로, Spring data JPA의 @Query를 통해 작성한 단순한 정적 쿼리가 계속 반복된다면 QeuryDSL로 옮겨 반복을 줄이는게 합리적일까요? 아니면 spring data jpa의 편리함을 유지하는게 합리적인가요? 감사합니다.public class Post extends BaseEntity { public static final int TITLE_MAX_LENGTH = 50; public static final int CONTENT_MAX_LENGTH = 10000; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "post_id", nullable = false, updatable = false) private Long id; @Column(name = "title", nullable = false, length = TITLE_MAX_LENGTH, updatable = false) private String title; @Column(name = "content", nullable = false, length = CONTENT_MAX_LENGTH) private String content; @Column(name = "hits", nullable = false) private Long hits; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "writer_id") private Member writer; @OneToMany(fetch = FetchType.LAZY, mappedBy = "post", orphanRemoval = true) @ToString.Exclude private List<Comment> comments = new ArrayList<>(); }public class Comment extends BaseDeleteEntity { public static final int CONTENT_LENGTH = 1000; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "comment_id", nullable = false) private Long id; @Column(name = "content", nullable = false, length = CONTENT_LENGTH) private String content; @Column(name = "type", nullable = false, updatable = false) private CommentType type; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "post_id", nullable = false, updatable = false) private Post post; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "writer") private Member writer; @OneToMany(fetch = FetchType.LAZY, mappedBy = "parent", orphanRemoval = true) private List<Comment> replies = new ArrayList<>(); @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_comment_id", updatable = false) @ToString.Exclude private Comment parent; } @Query(value = """ SELECT p FROM Post p LEFT JOIN FETCH p.writer AS w LEFT JOIN FETCH w.profile LEFT JOIN FETCH p.comments WHERE p.id = :postId """ ) Optional<Post> findPostById(@Param("postId") final Long id); @Autowired EntityManager em; @Autowired PostRepository postRepository; @Test public void 정상작동테스트_추가적인_쿼리_발생_x() throws Exception { //given Post post = PostTest.create("username", "nickname"); Member member = post.getWriter(); em.persist(member); em.persist(post); Long postId = post.getId(); int commentCount = 10; int replyCount = 2; createComment(post, member, commentCount, replyCount); em.flush(); em.clear(); //when int totalCommentCount = commentCount * (replyCount + 1); Post findPost = postRepository.findPostById(postId).get(); System.out.println(); //then for (Comment comment : findPost.getComments().stream().filter(Comment::isCommentType).toList()) { // 이때 REPLY 타입을 조회하는 쿼리가 1회 발 System.out.println("comment = " + comment); System.out.println("comment.getReplies().get(0) = " + comment.getReplies().get(0)); } Assertions.assertThat(post.getComments().size()).isEqualTo(totalCommentCount); }[테스트 실행 시 쿼리]2023-11-02T11:45:00.154+09:00 DEBUG 51844 --- [ main] org.hibernate.SQL :selectp1_0.post_id,c1_0.post_id,c1_0.comment_id,c1_0.content,c1_0.created_by,c1_0.created_date,c1_0.deleted_date,c1_0.is_deleted,c1_0.last_modified_by,c1_0.last_modified_date,c1_0.parent_comment_id,c1_0.type,c1_0.writer,p1_0.content,p1_0.created_by,p1_0.created_date,p1_0.hits,p1_0.last_modified_by,p1_0.last_modified_date,p1_0.title,w1_0.member_id,w1_0.created_by,w1_0.created_date,w1_0.last_modified_by,w1_0.last_modified_date,w1_0.login_id,w1_0.login_type,w1_0.profile_id,p2_0.profile_id,p2_0.created_by,p2_0.created_date,p2_0.last_modified_by,p2_0.last_modified_date,p2_0.nickname,w1_0.user_role,w1_0.social_login_id,w1_0.usernamefrompost p1_0left joinmember w1_0on w1_0.member_id=p1_0.writer_idleft joinprofile p2_0on p2_0.profile_id=w1_0.profile_idleft joincomment c1_0on p1_0.post_id=c1_0.post_idwherep1_0.post_id=?2023-11-02T11:45:00.162+09:00 INFO 51844 --- [ main] p6spy2023-11-02T11:45:01.221+09:00 DEBUG 51844 --- [ main] org.hibernate.SQL :selectr1_0.parent_comment_id,r1_0.comment_id,r1_0.content,r1_0.created_by,r1_0.created_date,r1_0.deleted_date,r1_0.is_deleted,r1_0.last_modified_by,r1_0.last_modified_date,r1_0.post_id,r1_0.type,r1_0.writerfromcomment r1_0wherearray_contains(?,r1_0.parent_comment_id)[반복되는 spring data jpa 쿼리]public interface PostRepository extends JpaRepository<Post, Long>, PostQueryRepository { /** * Post 반환 시 Member, Profile을 fetch join한다. ~ToOne 매핑관계에 대한 fetch join은 별명을 사용할 수 있고, 연계하여 fetch * join할 수 있다. * * @param id must not be {@literal null}. * @return */ @Query(value = """ SELECT p FROM Post p LEFT JOIN FETCH p.writer AS w LEFT JOIN FETCH w.profile LEFT JOIN FETCH p.comments WHERE p.id = :postId """ ) Optional<Post> findPostById(@Param("postId") final Long id); /** * Post를 페이징 처리하여 Page<Post>로 반환한다. 이때 Member와 Profile을 fetch join한다. * * @param pageable the pageable to request a paged result, * can be {@link Pageable#unpaged()}, * must not be {@literal null}. */ @Query(value = """ SELECT p FROM Post p LEFT JOIN FETCH p.writer AS w LEFT JOIN FETCH w.profile """, countQuery = "SELECT count(p) FROM Post p" ) @Override Page<Post> findAll(final Pageable pageable); /** * WriterId가 memberId와 같은 Post를 페이징 처리하여 Page<Post>로 반환한다. 이때 Member와 Profile을 fetch join한다. * * @param writerId writerId가 일치하는 Post들을 반환한다. * @param pageable 페이징 정보 */ @Query(value = """ SELECT p FROM Post p LEFT JOIN FETCH p.writer AS w LEFT JOIN FETCH w.profile WHERE w.id = :writerId """, countQuery = "SELECT count(p) FROM Post p WHERE p.writer.id = :writerId" ) Page<Post> findAllByWriterId(@Param("writerId") final Long writerId, final Pageable pageable); }
-
해결됨Spring Boot JWT Tutorial
8:45 spring security 3.1.5 설정 방법 (버전 안 맞춰서 안될때)
spring security 3.1.5 버전 방식입니다.기존에 implement 하지 않고 클래스를 @configuration 해서구성 파일로 인식하게 만들고 해당 메서드를 @bean 을 주입시켜 사용하는 방식입니다.처음 참조할 부분은 여기를 참조 하시면 됩니다. 처음 설정 방법 :: 3.1.5 방법 1SecurityConfig::SecurityFilterChain 메서드를 수정하기 @Bean public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity .csrf(AbstractHttpConfigurer::disable) .exceptionHandling((handling) -> handling.authenticationEntryPoint(jwtAuthenticationEntryPoint) .accessDeniedHandler(jwtAccessDeniedHandler) ) .headers((header) -> header.frameOptions( HeadersConfigurer.FrameOptionsConfig::sameOrigin ) ) .authorizeHttpRequests((registry) -> registry.requestMatchers("/api/hello").permitAll() .requestMatchers("/api/authentication").permitAll() .requestMatchers("/api/signup").permitAll() .anyRequest().authenticated() ); return httpSecurity.build(); } 방법 2JwtSecurityConfig에 메서드를 하나 추가 한다. public HttpSecurity configureAndReturn(HttpSecurity httpSecurity) { httpSecurity.addFilterBefore( new JwtFilter(tokenProvider), UsernamePasswordAuthenticationFilter.class ); return httpSecurity; }SecurityConfig::SecurityFilterChain 메서드를 수정하기@Bean public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { return new JwtSecurityConfig(tokenProvider).configureAndReturn( httpSecurity .csrf(AbstractHttpConfigurer::disable) .exceptionHandling((handling) -> handling.authenticationEntryPoint(jwtAuthenticationEntryPoint) .accessDeniedHandler(jwtAccessDeniedHandler) ) .headers((header) -> header.frameOptions( HeadersConfigurer.FrameOptionsConfig::sameOrigin ) ) .authorizeHttpRequests((registry) -> registry.requestMatchers("/api/hello").permitAll() .requestMatchers("/api/authentication").permitAll() .requestMatchers("/api/signup").permitAll() .anyRequest().authenticated() ) ).build(); } 개인적으로는 방법 1이 깔끔하다고 느낍니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션과 세션저장소의 개념구분
강의자료를 보던중에 혼동이 와서 질문드립니다..강의자료를 보면 세션을 생성하고, 신규 세션을 반환하고, 세션에 데이터를 보관하고.. 등등세션이라는 단어가 사용이 되는데요.. 하지만 이전에 세션 저장소라는 개념도 있어서 '세션'과 '세션저장소'의 구분이 잘 되지않습니다..다른 질문을 참고하니 HttpSession은 세션저장소이다 라고 답변주신것을 보긴했습니다. 그리고 session은 Map형태로 저장이 되서 세션저장소 내부에 있는 Map자체를 session이라고 생각했는데, 이 Map의 sessionId에 대응되는 값도 session이라고 부르는것인가요..?HttpSession = 세션저장소세션저장소내에 세션이 있다.세션 = 세션저장소 내에 있는 Map = 세션저장소 내에 있는 Map의 value이렇게 이해해도 되는것일까요..?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요. 강의를 보기전 제 스스로 풀어 보았는데, 어떤가요?
항상 감사합니다function solution(question) { let answer = ""; if (question.length > 100) return; const oddNumber = question.length % 2 === 1 ? true : false; const MiddleLength = Math.floor(question.length / 2); let count = 0; for (const z of question) { if (oddNumber) { if (MiddleLength === count) { answer += z; } } else { if (MiddleLength - 1 === count || MiddleLength === count) { answer += z; } } count++; } return answer; } console.log(solution("study")); //"u"
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
store.js와 각 컴포넌트 간 역할에 대해 질문드립니다
store.js는 mutations 속성에 DB(or localStorage)에 접근해서 실제로 데이터를 CRUD하는 함수를 정의하고, 각각의 컴포넌트들의 methods 속성에는 $store.commit을 통해 store.js로 상태들을 모아주는 역할을 하는 것이라 이해를 했습니다. 여기서 궁금한 부분은, 데이터를 가공하는 로직이 필요할 경우 각 컴포넌트의 methods에서 가공 후 store로 넘기는 방법일단 데이터를 다 받은 뒤 store의 mutations에서 가공&저장을 하는 방법저는 각각의 컴포넌트에서 가공한 뒤 가공된 데이터를 store로 넘기는 게 맞다고 생각이 되는데, 뭐가 더 나은 방법일지 궁금해서 문의드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
자동생성되는 th:field의 value를 th:value의 value로 덮어쓰기되는지 확인 문의
안녕하세요 강사님 강의듣고 이해안되는 부분이 있어서 질문 남깁니다.최초로 상품등록을 하면 컨트롤러에서 Get메서드형식인 아래의 컨트롤러가 호출이되면서 빈깡통의 Item 객체가 모델에 담겨서 addForm.html로 값이 넘기는것으로 알고있는데요 그래서 최초 등록폼에서 소스보기를 하면 상품명 ,가격,수량부분이 value 가 공백이 들어간것으로 이해했습니다. @GetMapping("/add") public String addForm(Model model) { model.addAttribute("item", new Item()); return "form/addForm"; }하지만 의문드 드는점이 등록지역의 value는 SEOUL이 들어갔습니다 답은 메서드단위의 resions의 값이 들어갔다는것을 알고있지만 이해가 되지 않는점이 addForm에 등록지역 부분에는 th:field부분에서ModelAttribute의 값인 ${resions}이아니고 선택변수인 {resions}가 들어갔으니 최초에는 값이 없으니 위의 상품명처럼 value가공백이 들어가야하는데 SEOUL로 들어가는 것이 이해가 안갑니다. th:field={resion}의 자동생성되는 value가 th:value의 ${resions}의 벨류로 덮어쓰기가 되는건가요? 긴글 읽어주셔서 감사합니다.
-
미해결앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해
안녕하세요, GCD 관련 질문드립니다..
안녕하세요, 앨런, Qos 부분을 수강하면서수업 자료에 있던 코드들을 이렇게 바꾸어서 실행해보았는데요...첫줄은 sync 라서 시작/완료까지 실행하고 task2, task4(비동기라서 완료까지 안 찍고 넘어가고), 그리고 task3 시작/완료 라고 이해를 했습니다. 제가 예상한 결과였고, 그렇게 출력이 되었어요. 근데 동일한 코드를 반복적으로 실행하면 그때마다 다른 결과가 나오는데.. 왜 그런지 모르겠어서 질문 남깁니다.. ㅠㅠ 어쩔때는 4가 먼저 실행되고어쩔때는 3이 먼저 실행되더라구요..왜 그렇게 순서가 바뀌는지가 가장 궁금하고..qos를 통해서 우선순위를 설정한다는 의미가 언제 어떻게 우선순위대로 실행되도록 한다는 것인지 이해를 못 한 것 같습니다...위 코드에서 userInteractiveQueue 가 defaultQueue.async(qos: .userInitiated)보다 우선순위가 높은 것이 실행을 먼저 하는 것은 아닌것 같은데.. 우선순위라는게 어떻게 반영이 되는것인지 감이 안 잡힙니다 ㅠㅠ 아니면 제가 쓸데없는 코드를 보면서 고민한건지.. 답변부탁드려요!!
-
해결됨스프링 시큐리티
웹기반 인가처리 실시간 DB 반영이 thread safe 한가? 질문
안녕하세요. 선생님.선생님 강의로 많이 배우고 있네요.UrlFilterInvocationSecurityMetadataSource 를 직접 구현하여 DB와 연동하는 것을 보여주셨는데.이 클래스에 Resouce 인가 설정을 위한 클래스의 멤버 변수로 LinkedHashMap<RequestMatcher, List<ConfigAttribute>> requestMap 을 사용하네요.만약 DB에 Resource, Role 인가 설정 변경 시 reload()가 불렸을 때 DB에서 모두 가져와 requestMap 에 put 하는데 이것이 multi thread 에 safe 한지요?만약 thread에 safe 하지 않다면 좋은 방법이 있는지요? lock을 쓰기에는 read 요청이 많아 부담스러울 것 같다는 느낌이 있네요.강의에서 Role 추가 시 실시간 설정 반영은 하지 않았지만 RoleHierarchy 또한 마찬가지 인 것 같아요.운영 시 거의 변경이 안되기 때문에 그냥 놔두는게 가장 좋은 방법인지? 선생님의 의견을 알고 싶어요.감사합니다.
-
해결됨즐거운 자바
static이 클라스에 부여 되었을 때
부부개발단 단톡방 : https://open.kakao.com/o/gcbnd3Ie클라스에 Static이 부여하지 않고 메서드에 static이 부여되었을 때 생성자를 사용하지 않아도 된다고 하셨는데 클라스에 자체에 static을 부여하는 경우가 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
상관관계 오류
안녕하세요. 사내 구글 드라이브 접속이 불가하여주피터노트북으로 실습 진행 중인데,df.corr() 실행 시 아래와 같은 오류가 발생합니다. 찾아보니 pandas 버전에 따른 오류일 가능성이 있다는 글을 봤는데, 확인 부탁드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
템플릿 레이아웃2 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]replace 할때 html tag 릴 기준으로 section을 넘기는거를 혹시 div Tag 가 가능한지 해봤더니 가능하더라고요. 근데 div tag 안에 또다른 div 태그가 있는데 최상위 div tag 전체를 넘기는거 같습니다. 가독성으로 혹시 div tag 의 특정 name 이 붙은 tag 를 넘기는게 가능할까요?ex)<div class="test1")><div class ="test2"></div><div>이런식일때 test1 tag 나 test2 태그중에 어떤 레벨을 넘길지 정할수 있는건가요? *추가로 layoutExtendMain 에서 layoutFile 한개를 불러왔는데 혹시 layoutFile2처럼 여러개도 호출가능한건가요? 답변 미리 감사합니다^^
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실행은 되는데 정지하면 오류가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 실행을 하고 난 후 정지를 하면 이런 오류가 뜹니다그래서 저와 같은 문제가 있는질문이 있는지 찾아보고 실행은 잘 되는데 멈출때마다 에러 메세지가 떠요 - 인프런 | 질문 & 답변 (inflearn.com)이 게시글에서 말씀해주신 링크대로 설정을 했더니 tomcat이 실행이 되지 않더라구요 이거 발견하고 나서 그래서 다시 프로젝트 설치해서 실행한 상태인데 여전히 멈추면 에러가 뜹니다... 어떻게 해야 하나요..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 분리
작업형2 에서 심장마비 확률 문제였는데요여기서 데이터 전처리를 할때 X_train.drop('id' , axis =1)X_test.pop('id)' 를 하고 데이터 분리할때 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train.drop('output', axis=1), train['output'], test_size=0.15, random_state=2022)이렇게 하신다고 했는데 위에서는 id를 드롭하고 분리할대는 'output'을 drop 하는건가요? 그리고 test는 왜 분리 하지 않는지 궁금합니다
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
프로젝트를 만들고 실행하면 에러가 떠요...
지금 프로젝트를 만들고 실행을 하면 An issue was found when checking AAR metadata: 1. Dependency 'androidx.activity:activity:1.8.0' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Recommended action: Update this project to use a newer compileSdk of at least 34, for example 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on).이런 에러가 뜸니다...항상 계속 만드는데도 계속 에러가 떠서 강의를 따라갈수 없어요...어떻게 해야 될까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
Postman Error: read ECONNRESET
이렇게 나옵니다ㅜㅜ 왜 연결이 안되는 걸까요 런스타트는 잘 됩니다. ㅜㅜ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
Need Summary 부분 질문있습니다!
먼저FetchData.razor 에서 <EditForm Model="_addForecast" OnInvalidSubmit="SaveForecast"> @* Form Validation 기능 ON*@ <DataAnnotationsValidator /> @* 에러가 있으면 메시지 상세 출력*@ <ValidationSummary /> <label for="TemperatureC">TemperatureC</label> <InputNumber class="form-control" placeholder="TemperatureC" @bind-Value="_addForecast.TemperatureC" /> <label for="Summary">Summary</label> <InputText class="form-control" placeholder="Summary" @bind-Value="_addForecast.Summary" /> <br /> <button class="btn btn-primary" type="submit">Save</button> </EditForm>WeatherForecast에서 public class WeatherForecast { public DateTime Date { get; set; } [Required(ErrorMessage = "Need TemperatureC!")] [Range(typeof(int),"-100","100")] public int TemperatureC { get; set; } public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); [Required(ErrorMessage = "Need Summary!")] [StringLength(10, MinimumLength = 2, ErrorMessage = "2~10")] public string Summary { get; set; } } 이렇게 해주었는데Need Summary가 뜨지 않는데 이유를 알수 있을까요?