묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
에러가 발생했는데 뭐가 문제인지 모르겠습니다.
한번만 봐주십시요ㅠ
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO를 Result<T>에 담아서 반환할 때의 제너릭 표기 여부
안녕하세요DTO를 직접 반환하지 않고 Result로 감싸서 반환하는 것을 구현하는 도중 궁금한 점이 생겼습니다. 일단 코드는 다음과 같습니다./** * DTO를 감싸서 반환하는 클래스 * 반환에 성공하면 status에는 "success", data에는 DTO, error에는 null이 담긴다 * 예외가 발생하면 status에는 "fail", data에는 null, error에는 errorCode가 담긴다 */ @NoArgsConstructor @Getter public class Result<T> { private String status; private T data; private ErrorDTO error; public Result(String status, T data, ErrorDTO error) { this.status = status; this.data = data; this.error = error; } } @PostMapping("/save") public ResponseEntity<Result<UserDTO>> save(@RequestBody @Validated UserDTO userDTO, BindingResult bindingResult) { if (bindingResult.hasErrors()) { for (ObjectError error : bindingResult.getAllErrors()) { return ResponseEntity.ok().body(ResultUtils.fail(error.getCode(), error.getDefaultMessage())); } } UserDTO savedUserDTO = userService.save(userDTO); return ResponseEntity.ok().body(ResultUtils.success(savedUserDTO)); }public class ResultUtils { private static final String SUCCESS = "success"; private static final String FAIL = "fail"; public static <T> Result<T> success(T data) { return new Result<>(SUCCESS, data, null); } // 이 메서드의 제너릭 표기도 어떻게 해야할지...? public static Result fail(String errorCode, String message) { return new Result(FAIL, null, new ErrorDTO(errorCode, message)); } } 이렇듯 예외가 발생한 경우에 data에는 null을 담아서 반환하고 싶으면, 예외 발생 여부에 따라 Result<T>의 T가 userDTO이기도 하고 null의 2가지...? 인 느낌이 드는데 그럼 public ResponseEntity<Result<UserDTO>> save처럼 메서드 선언부에서 Result의 제너릭을 표기하는 의미가 있을까요? Result로 적는 것이 좋을지 그래도 userDTO를 명시해 줘야할지가 궁금합니다. 추가로 userDTO 단건일시에는 제너릭이 그다지 복잡하지 않지만 만약 DTO에 페이징 기능을 더하여 반환하고자 한다면 Result<Page<UserDTO>> 처럼 제너릭 안에 제너릭이 있게 될텐데 이러한 경우에도 그냥 제너릭을 생략하는 것이 좋을지 궁금합니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그아웃시 쿠키 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 로그아웃을 하면 개발자 도구에서 네트워크 탭에 헤더에는 Max-Age = 0 이라고 표기가 되는데, 애플리케이션 탭에는 쿠키가 제거되지 않고 Expires에 세션이라고 뜹니다. 크롬 브라우저 설정도 찾아봤는데 해결이 되지 않습니다. 무엇이 문제인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MemberRepository 싱글톤 객체 생성 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이전 강의를 들었는데도 이해가 잘 안돼 질문을 남깁니다위의 코드에서 싱글톤을 구현했다는 부분이 잘 이해가 되지 않습니다. 저는MemberRepository 클래스 안에private static final MemberRepository instance = new MemberRepository();라고 선언을 한 뒤에 다른 클래스에서 MemberRepository memberRepository = MemberRepository.getInstance();라고 사용을 한다면 memberRepository 변수와instance 변수는 "같은 객체를 참조"하기 때문에 싱글톤이 된다.라고 이해했습니다.이때, 이해가 안되는 부분이 public class MemberRepository { private static Map<Long,Member> store = new HashMap<>(); private static Long sequence=0L; //싱글톤 구현을 위해 instance를 사용 private static final MemberRepository instance = new MemberRepository(); //getInstance는 MemberRepository를 조회하는 함수. // public static MemberRepository getInstance(){ return instance; } //싱글톤으로 만들 땐, 아무나 생성하지 못하도록 생성자를 private로 설정해서 막아줘야 한다. private MemberRepository(){ }라고 작성한 부분이 어떤 원리로 싱글톤을 보장하게 되는건가요?설명 부탁드립니다항상 친절한 답변 감사합니다.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@OneToOne(mappedBy)의 쿼리 최적화 방법
안녕하세요!OneToOne(mappedBy = ...)와 관련한 질문을 드립니다.위와 같이 mappedBy로 되어있는 엔티티를 조회하게 되면, LAZY로 설정하여도 반드시 즉시로딩됩니다. 또한, default_batch_fetch_size도 적용되지 않아 반드시 N+1문제가 발생하는 것으로 알고있습니다.여기서 생기는 고민이, 특정 엔티티의 목록을 조회하는 로직을 구현할 때 엔티티를 select절에 넣는것에 대해서 조금 조심스럽습니다. (단건 조회는 즉시로딩이 발생해도 상대적으로 문제의 심각도가 적음)현재 목록을 조회하려는 엔티티에 OneToOne(mappedBy = ..)가 없다면, 엔티티의 목록을 조회해도 N+1 문제와 무관합니다. 하지만, 미래에 추가가 된다면 성능에 문제가 없던 것들도 N+1문제가 생길 수 있습니다.이에 대한 한 가지 해결방법은 Querydsl의 Projection을 사용하는 방법이 있습니다. 이는 결국 select절을 입력해줘야하며 지연로딩과 @BatchSize을 통해 해결하는게 아니기 때문에, 더 복잡한 조인 쿼리를 작성해야할 수도 있습니다. 이로 인해 생산성도 낮아질 수도 있습니다. 정리하자면,select 절에 entity --> 다른 필드를 지연로딩 처리하여 더 쉽게 데이터를 찾지만, 미래에 발생할 수 있는 N+1문제를 어쩔 수 없이 수용한다.select절에 Dto Projection --> 조인 쿼리를 다 작성해야한다. Projection을 기입해야한다. 하지만, @OneToOne(mappedBy)가 추가되어도 쿼리 성능에는 문제가 없다.양쪽의 트레이드 오프가 있는 것 같습니다. 현업에서는 어떠한 방법을 이용하나요? (추가적으로, mappedBy를 이용하지 않거나 하이버네이트에서 제공하는 바이트코드 조작 방법도 있네요)
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
공지사항부분이 왜올라가져서 안보일까요 ?? 뭐가문제일까요 ㅠㅠㅠ???ㅠㅠ
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>c실전연습</title> <link rel="stylesheet" href="css/c.css"> </head> <div class="container"> <div class="left"> <header> <div class="header-logo"> <a href="#none"><img src="images/header-logo.png" alt="header-logo"></a> </div> <div class="navi"> <ul class="menu"> <li> <a href="#none">축제소개</a> <div class="sub-menu"> <a href="#none">초대의 글</a> <a href="#none">축제개요</a> <a href="#none">축제연혁</a> <a href="#none">오시는길</a> </div> </li> <li> <a href="#none">행사안내</a> <div class="sub-menu"> <a href="#none">셔틀버스안내</a> <a href="#none">행사안내</a> <a href="#none">행사일정</a> <a href="#none">소공연장</a> </div> </li> <li> <a href="#none">홍보마당</a> <div class="sub-menu"> <a href="#none">축제소식</a> <a href="#none">보도자료</a> <a href="#none">음식레시피</a> </div> </li> <li> <a href="#none">참여마당</a> <div class="sub-menu"> <a href="#none">참가후기</a> <a href="#none">연꽃갤러리</a> <a href="#none">포토갤러리</a> </div> </li> </ul> </div> </header> </div> <div class="right"> <div class="slide"> <div> <a href="#none"><img src="images/slider01-c.jpg" alt="slider01"></a> <a href="#none"><img src="images/slider02-c.jpg" alt="slider02"></a> <a href="#none"><img src="images/slider03-c.jpg" alt="slider03"></a> </div> </div> <div class="items"> <div class="news"> <div class="tab-inner"> <div class="btn"> <span>공지사항</span> </div> <div class="tab1"> <a href="#none"> 운영위원장 후보자 추천을 받고 있습니다. <b>2020.01.09</b></a> </div> </div> </div> <div class="gallery"></div> <div class="shortcut"> <a href="#none"><img src="images/shortcut-c.jpg" alt=""></a> </div> </div> <footer> <div class="copyright"> 상호 : (주)이스타컴퍼니 | 대표자 : 최종윤 | 개인정보관리책임자 : 이주현 부장 <br> 사업장주소 : 인천광역시 중구 개항로 6층 (주)이스타컴퍼니 </div> <div class="sns"> <div> <a href="#none"><img src="images/sns1.png" alt="facebook"></a> <a href="#none"><img src="images/sns2.png" alt="tiwtter"></a> <a href="#none"><img src="images/sns3.png" alt="instagram"></a> </div> <div> <select> <option value="">familysite</option> <option value="">여주군청 홈페이지</option> <option value="">한국관광공사</option> <option value="">여행자보험가입</option> </select> </div> </div> </footer> </div> </div> <body> <script src="js/jquery-1.12.4.js"></script> <script src="js/custom.js"></script> </body> </html> @charset "UTF-8"; body{ margin: 0; background-color: #fff; color: #333333; } a{ list-style: none; color: #333333; } .container{ width: 1000px; border: 1px solid #000; display: flex; } .container > div{ } .left{ width: 200px; } .right{ width: 800px; } header{} header > div{ } .header-logo{ height: 100px; line-height: 130px; } .navi{ height: 400px; } .slide{} .slide > div{ border: 1px solid #000; height: 350px; } .items{ display: flex; } .items > div{ height: 200px; border: 1px solid #000; } .news{ width: 300px; } .gallery{ width: 300px; } .shortcut{ width: 200px; } footer{ display: flex; } footer > div{ height: 100px; text-align: center; } .copyright{ width: 800px; padding-top: 30px; box-sizing: border-box; text-align: center; } .sns{ width: 200px; } .sns div{ height: 50px; box-sizing: border-box; } .sns div:nth-child(1){ padding-top: 15px; } .sns div:nth-child(2){ padding-top: 10px; box-sizing: border-box; } /*slide*/ .slide{ position: relative; width: 800px; height: 300px; } .slide >div{ } .slide >div a{ font-size: 0; width: 2400px; position: absolute; top: 0; left: 0; animation: slide 10s linear infinite; visibility: hidden; } .slide >div a:nth-child(1){ animation-delay: 0s; } .slide >div a:nth-child(2){ animation-delay: 3.5s; } .slide >div a:nth-child(3){ animation-delay: 7s; } @keyframes slide{ 0%{ opacity: 0; } 5%{ opacity: 1; visibility: visible; } 35%{ opacity: 1; } 40%{ opacity: 0; } 100%{ opacity: 0; } } /*navigation*/ .menu{ list-style: none; padding: 0; width: 90%; margin: auto; position: relative; } .menu li{ padding: 2px; text-align: center; } .menu li > a{ display: block; border: 1px solid #000; padding: 4px; text-decoration: none; transition: 0.5s; } .menu li:hover > a{ background-color: #000; color: #fff; } .sub-menu{ display: none; border: 1px solid #000; } .sub-menu a{ display: block; text-decoration: none; padding: 5px; transition: 0.5s; } .sub-menu a:hover{ background-color: #000; color: #fff; }사진처럼 공지사항부분이 위에서 슬라이더에 가렸는데 뭐때문에 가린건지요 ,,, 크기값이안맞아서 그런지 display:flex 를 써서 영향이 있는지 뭐때문에 그런지 궁금합니다 !ㅜ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
간단한 private 사용 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]접근 제어자 private를 사용하는 이유는해당 클래스의 내부에서만 사용할 수 있도록 하는 것으로 알고 있습니다.하지만 Member 클래스는 접근 제어자가 public이기 때문에Member 인스턴스 객체를 만들면 각 객체의 id,username,age에는 접근할 수 있는 것으로 이해하고 있는데요이때, id,username,age 등의 변수를 private로 사용하는 이유는Member 객체의 id,username,age 등의 변수에 접근해서 "조회"는 가능하게 하고 , "수정"은 불가능하게 하기 위함이다.아니면private를 사용한 이유는 메소드를 통한 간접 접근(데이터 조회, 수정 둘 다 가능)을 하게 함으로써, 데이터 보호를 목적으로 하는 것인가요?어떻게 이해하면 옳게 이해한 것인가요?항상 친절한 답변 감사합니다.
-
해결됨실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
Recording Rules에 label matcher 활용하기
안녕하세요. 강의 잘 듣고 있습니다!혹시 Recording Rules에 label matcher를 동적으로 사용하는 방법도 있을까요?(실무에 적용하려면 필요한 방법 같아 질문드립니다.)label에 대한 value들이 매우 많은 상황이라면 expr은 거의 동일하기 때문에 여러 rule를 생성하는 것은 옳지 않은 것 같습니다.예를들어 아래와 같은 방식입니다.record : container:memory_working_set:topk3{pod=~"$pod"}expr : topk(3, sum(container_memory_working_set_bytes{pod=~"$pod"}/1024/1024) by (pod))
-
해결됨실전! Querydsl
컨트롤러의 파라미터로 Pageable를 직접 받을까요 혹은 page, size, sort등을 따로 받을까요?
안녕하세요!컨트롤러의 파라미터로 Pageable을 직접 받을 수 있으나 @PageableDefault로는 1가지 기준으로만 정렬이 가능한 것 같은 제약사항이 있는 것으로 알고 있습니다.@SortDefault로 여러개의 정렬 조건을 추가할 수 있다고는 하나 파라미터에 어노테이션이 너무 많아지나..? 싶기도 합니다.또 만약 page라는 변수명이아니라 pageNo처럼 다른 변수명을 사용할 때의 유연성을 위해서라도 Pageable 인터페이스로 직접 받기보다는 페이징의 각 요소를 받아서 PageRequest 객체를 따로 생성하는 것이 더 나을까요?토이프로젝트보다 훨씬 복잡한 상황의 현업환경에서는 어떤 방식이 더 자주 사용되는지 궁금합니다!
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
node server.js 실행 시 오류 발생
Express에서 데이터 처리하기 강의 수강 중에 생긴 오류 입니다. 이후에 포스트맨에서 body 수정 후 send 시에도 Error: connect ECONNREFUSED이 오류가 떳습니다.index.js를 실행 후에 웹 브라우저에 http://localhost:8080/products 입력하면 [{"name":"농구공","price":5000}] 이렇게 웹 화면에 뜨면서 node:events:492 thorw er;도 같이 뜨면서 서버 에러가 납니다 database.sqlite3을 vs코드 열었을 때는 위 사진처럼 뜨고sqllite로 열었을 때는 읽을 수 없다고 뜹니다
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
17분 20초 경 예외체크 질문입니다.
너무 많은 데이터를 보내면 안되기 때문에 예외 체크를 하여 빠져나온다고 하셨는데, 왜 그렇게 하는 지 알 수 있을까요??ex) 굉장히 많은 아이템을 가지고 있는 캐릭터의 정보를 보낸다고 가정할 때, 컨텐츠 쪽에서 SendBuffer의 버퍼 사이즈를 초과할 것을 예상하여 여러개의 SendBuffer로 쪼개서 ReigisterSend 하는 곳으로 넘겨줄텐데 왜 한번 더 예외체크를 해야되는 지 헷갈립니다.
-
해결됨파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
메세지 리액션 : 좋아요. 질문 드립니다.
좋아요 구현을 위해 append_message 함수에서 icon 생성 시 addEventListener를 등록하였습니다.append_message(message, pk , sender, time, img){ const like_icon = document.createElement('i'); like_icon.id = `like-icon-${pk}`; like_icon.className = 'fa-regular fa-heart'; like_icon.addEventListener('click', () => {this.like_msg(pk)}); ... }like_msg에서 removeEventLister를 통해 기존에 등록된 click를 해제하고 새로운 이벤트를 등록하였습니다.like_msg(pk){ const like_icon = document.querySelector(`#like-icon-${pk}`); like_icon.removeEventListener('click', () => {this.like_msg(pk)}); like_icon.addEventListener('click', () => {this.dislike_msg(pk)}); this.ws.send(JSON.stringify({ type : 'chat.message.like', pk : pk })) }사진과 같이 좋아요는 잘 작동합니다.다시 dislike를 하려면 계속 like_msg 이벤트가 동작합니다.like_icon을 통해서 하트를 변경하였습니다.case 'chat.message.like': this.like_icon(pk, cnt); break;event를 삭제하는 시점이 잘 못된것일까요? 제대로 삭제가 안 되더라구요. like_icon에서도 removeEventListener를 실행했었는데 동일한 결과가 나왔습니다. 어떤 시점에서 이벤트 리스너를 해제해야 할까요?
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
코루틴 Ex2 관련 질문 드립니다.
안녕하세요. 강의 감사히 잘 듣고 있는 수강생입니다.코루틴 Ex2 관련 내용 중 궁금한 점이 있어 질문 드립니다.def coroutine2(x): print('>>> coroutine started : {}'.format(x)) y = yield x print('>>> coroutine received : {}'.format(y)) z = yield x + y print('>>> coroutine received : {}'.format(x+y)) print('>>> coroutine received : {}'.format(z)) cr3 = coroutine2(10) from inspect import getgeneratorstate print(getgeneratorstate(cr3)) # 상태 체크 print(next(cr3)) print(getgeneratorstate(cr3)) cr3.send(100) print(getgeneratorstate(cr3)) cr3.send(30) 위 코드를 실행하면GEN_CREATED>>> coroutine started : 1010GEN_SUSPENDED>>> coroutine received : 100GEN_SUSPENDED>>> coroutine received : 110>>> coroutine received : 30 결과가 이처럼 나오는데, 두번째 GEN_SUSPENDED 이후가 이해가 잘 가지 않습니다.첫 번째 cr3.send(100)은 y = yield x 의 x에 100을 넣어서 y의 print 문에서 received : 100이 나온 것으로 생각했는데,두 번째 cr3.send(30)은 z = yield x + y의 x에 30을 넣는다고 생각하여 z의 print문(마지막 부분)이 130이 나와야 할 것 같은데 30이 나와서 혼란스럽습니다. z = yield x + y 에 suspended 상태일 때send를 통해서 서브루틴으로 값을 보내면 x와 y 값에 상관 없이 그냥 z에 30을 넣는 것인가요?z = yield x + y 대신에z = yield x 를 넣어도 결과는 동일한 것 같은데 어떤 차이가 있는지 궁금합니다.메인루틴에서 받는 것만 달라지는 걸까요?그리고 print(cr3.send(30)) 과 같은 형태로 서브루틴에서 메인루틴으로 준 것을 볼 수 있다고 하셨는데, print 말고 제가 직접 그 값을 쓰려면 어떻게 해야 하는지도 여쭤봅니다.감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-L 질문입니다.
http://boj.kr/8eb2af8984ed4372953a94ed5a6b5d48 처음부터 복잡하게 스크립트를 작성하는건 피하고싶기도 하고, 클래스 구조 설계도 연습해볼겸 Time이라는 클래스를 써서 구현했습니다.팀ID와 득점시간을 받아서 히스토리에 추가합니다.현재 동점일 때 승리 중이었던 팀의 누적 시간에 현재 득점시간 - 승리시작시간을 더합니다.현재 우위일 때 승리시작시간이 초기화 되어있을 경우 자신의 ID와 현재 시간을 기록합니다.while이 모두 끝나고(경기가 끝나고) 승리 중이었던 팀의 누적 시간에 48:00 - 승리시작시간을 더합니다. 여전히 private TC에서 막히네요..
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
회원가입할 때 POST요청에 대한 응답이 500에러가 뜹니다.
다른 질문글들을 살펴보니 .env파일 설정이 안되어 있거나 back 서버를 구동하지 않은 상태에서 에러가 나던데 저는 .env파일과 back서버 모두 구동을 했음에도 에러가 뜹니다. 제가 했던 설정 중 일반적인 설정과 다른 경우는 1장에서 db를 생성하고 만들었을 때 mysql비밀번호가 있음에도 도저히 인식하지 못해 설정파일에 변수명이 아닌 직접 비밀번호를 입력한 경우를 제외하곤 강의에서 설명한 설정 그대로 수행했습니다. 어떤게 문제일까요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
스파크에 대해
안녕하세요 강사님!먼저 좋은 강의 만들어주셔서 진심으로 감사드립니다. 다름이 아니라 궁금한 점이 있는데요,많은 사람들이 이야기하는 것이 hadoop과 스파크에 대한 비교인데요. 스파크의 인메모리 처리를 통한 속도 향상으로 인해 하둡을 넘어섰다(?) 이런 얘기가 많이 있는 것 같습니다. 그런데 본 강의에서는 스파크가 하이브와 비교되고 sql 언어를 맵리듀스로 처리하게 해주는 용도로 설명해주신 것으로 이해했습니다. 스파크는 하둡과 같은 데이터베이스가 아닌것인지 궁금합니다!
-
미해결
스프링 JPA 사용
DTO와 DAO를 만들지 않고 프로젝트를 만들 수 있는데 혹시 만들어서 하는 것을 추천하시나요?아니면 사용하지 않는 추세인가요? 실무에서는 어떻게 구성해서 만드는지 궁금합니다!
-
미해결스프링 시큐리티
스프링 시큐리티 6.0 이상에서 securityfilterchain의 requestMatcher
강의 2-2 필터 초기화와 다중 보안 설정을 시큐리티 6.0 버전 이상으로 따라 하던 중에 다른 결과가 나와서 질문 드립니다configuration은 위와 같이 설정하였고 처음에는 영상에서 처럼 Order(0)과 Order(1)을 지정 하여 실행하였습니다.제 생각으로는 6.0이상 버전에서는 사용할 수 없는 antMacher대신 requestMatchers를 사용하여 requestMatcher가 1번첫번째 필터체인은 "admin/**" 두번 째 체인은 any request가 될 것이라고 생각했지만 디버깅 해보니 둘 다 any request가 나와 루트로 접속했을 때 첫번째 필터체인이 생성되어 루트로 가는 것이 아닌 basic login form이 나왔습니다.그래서 디버깅 중 위와 같이 뜨는 것이 보여 애초에 등록이 잘못 된 건가 싶기도 했는데 영상에서처럼 filters를 확인해보면 첫번 째는 httpbasic와 같이 등록된 12개의 필터, 두번 째는 formlogin과 같이 등록된 14개의 필터로 각각 알맞게 등록되어 있었습니다.어째서 두 개 모두 다 위 필터들은 정상적으로 등록이 되었는데 requestMatcher는 둘 다 any request 인걸까요? 6.0 이후 버전에서는 requestMatcher를 바꾸려면 다른 방법을 써야 하는 것일까요? 도움 주시면 감사하겠습니다 ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
errorPage500Api ex null
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ex에 null값이 들어오는데 무엇이 문제일까요,..?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
CRC 와 CheckSum의 차이가 잘 이해가 안됩니다.
CRC(중복순환 검사)를 하기위해 CheckSum이란것이 필요한건가요???구글 검색을 해보면 서로 각기 다른 검사 방법이라 써놓은 글도 있고해서 궁금해서 질문드립니다.