[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] (컨트롤러) @PostMapping("/add") public String addItemV6(Item item, RedirectAttributes redirectAttributes){ Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId",savedItem.getId()); redirectAttributes.addAttribute("status", true); //PRG (Post / Redirect / Get) 으로 문제를 해결 return "redirect:/basic/items/{itemId}"; } (html 타임리프 부분) <h2 th:if="${param.status}==true" th:text="'저장 완료!'"></h2> <h2 th:if="${#bools.isTrue(param.status)}" th:text="'저장 완료2!'"></h2> (요청 URL) http://localhost:8080/basic/items/1?status http://localhost:8080/basic/items/1?status=true 수업에 보면 redirectAttribute에서 파라미터를 설정해줘서 status=true가 쿼리 스트링으로 넘어가는걸 확인했습니다. 여기에서 실험정신이 들어서 status=true3 이라던가, status=false로 직접 url을 입력해서 요청했는데 제가 생각하는 bool true 가 아닌데도 true 처리가 되어서 저장완료와 저장완료2 라는 문구가 나오게 됩니다. 타임리프에서는 어떻게 처리가 되길래 쿼리스트링이 false 여도 저장완료가 나오게 되는건지 궁금합니다.. 아니면 제가 어디선가 잘못 친건지 잘 모르겠습니다
변수 L이 level을 나타내는 것 같은데요. 이 문제에서의 L은 level이 아닌, 인덱스로서의 의미로 작용하는 것 같습니다. level과 인덱스의 구분 개념이 헷갈리는데, 혹시 명확하게 잡아주실 수 있으실까해서 질문 남깁니다! 트리에서는 depth라는 용어를 사용하고 1부터 시작한다. 그래프에서는 level이라는 용어를 사용하고 0부터 시작한다. 라고 알고 있는데, 제가 알고 있는 개념이 맞는 것인지 궁금합니다!
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요 강사님~ 강의 너무 재밌게 잘 보고 있습니다. 강의중에 User 리팩토링 과정에서 userLoanHistories를 주생성자에 선언하셨는데 @Entity class User( @Column(nullable = false) var name: String, val age: Int?, @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, ) { // 클래스 바디로 내려도 되나요? @OneToMany(mappedBy = "user", cascade = [CascadeType.ALL], orphanRemoval = true) val userLoanHistories: MutableList<UserLoanHistory> = mutableListOf() (...) } 기존 자바코드에서는 이 컬랙션은 내부적으로 사용될뿐 getter로 접근하는 부분이 없기에 굳이 주생성자에 선언하는 것보다 클래스 바디로 내리는게 뭔가 더 자연스럽지 않나 하여 질문드렸습니다..!
Generic in Function (함수에서 제너릭 사용하기) 강의 내용에서의 질문입니다. class Car { brand: string; codeName: string; constructor(brand: string, codeName: string) { this.brand = brand; this.codeName = codeName; } } function instantiator<T extends { new(...args: any[]): {} }>(classObject: T, ...args: any[]) { return new classObject(...args); } console.log(instantiator(Car, 'BMW', 1111)); Car의 경우 생성자의 codeName 인자의 타입이 string인데 ...args의 타입을 any[]로 지정했기 때문에 instantiator(Car, 'BMW', 1111)에서 codeName에 number값을 넣어도 오류가 발생하지 않았습니다. 물론 단순히 할당하기만 하는 코드이기 때문에 런타임에서도 오류가 발생하지는 않을 것 입니다. 좀 더 정확한 타입 체킹을 할 수 있도록 위 케이스에서 클래스 생성자의 인자 타입까지 반영해서 체크하는 instantiator를 작성할 수 있을까요?
Switch가 경로선택 (인터페이스 선택후 스위칭) 작업을 한다고 하셨는데, 이때 예시로 든 L3의 경우 라우팅 테이블이 존재해서 이걸 참고해서 경로를 설정하는걸로 이해했습니다. 그런데 뒤에 메트릭값이 낮은쪽으로 경로가 결정된다는 개념이나와서 조금 헷갈립니다. 라우팅테이블도 참고하고 메트릭값도 참고해서 최적의 경로를 찾는건가요 ?
늘 좋은 강의 주셔서 감사드립니다. 잘 따라가다가,, Bad state: GetIt: Object/factory with type LocationPermissionHandler is not registered inside GetIt. 해당 에러가 떠서 로케이션퍼미션핸들러 주입과 관련해서 확인을 해도 문제가 없는데.. 헤매고 있습니다. 혹시 예제 소스도 같이 공유가 가능하실까요? 잘못된 부분들을 찾아보고 싶습니다.
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
먼저 좋은 강의 제공해주신 강사님께 감사의 말씀 드립니디. 12분 9초 질문드립니다. 강의에서 'NoneType' object has no attribute 'get_text' 해당 오류가 나온 이유가 list_item안에 단순히 뭐가 있냐 없냐를 따지는게 아니라 list_item안에 뭐가 있더라도 span subject_fixed 가 없으면 해당 오류가 뜨는거아닌가요? 수업시간에 강사님께서 말씀주신걸로 이해해 보면 list_item에 span subject_fixed가 아닌 어떤것이 있기만 하면 넘어가는 식으로 하셔서 헷갈려서 문의드립니다 ㅠ
안녕하세요 @JoinTable 사용 중 궁금증이 생겨서 질문 남깁니다. 연습중에 course와 category를 다대다로 연결하기 위해 @JoinTable을 사용했습니다. 추가적인 필드가 필요없다 생각해서 우선 다대다 관계를 풀어주는 엔티티를 만들지 않고 @JoinTable을 사용했습니다. 여기서 질문 입니다. 검색을 해본 결과 @JoinTable은 들어온 fk를 복합키로 사용한다고 보았습니다. 그렇다면 제 생각에는 예를들면 @JoinTable인 course_category에 (course_id = 1 , category_id = 1)인 데이터가 존재하면 (course_id = 1 , category_id = 1)라는 데이터가 중복될 수 없다고 생각했습니다. 하지만 중복된 데이터가 저장되는 것이 가능했습니다. 이 이유가 왜인지 궁금합니다!! @ManyToMany @JoinTable(name = "COURSE_CATEGORY", joinColumns = @JoinColumn(name = "course_id"), inverseJoinColumns = @JoinColumn(name = "category_id")) private List<Category> categoryList = new ArrayList<>(); @Id 필드를 사용하기 위해 category_course 엔티티를 따로 만드는 방법으로 수정 중에 있는데 위의 질문 내용을 짚고 넘어가고 싶어서 질문 남깁니다!
[리뉴얼] 처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 캐글 문제 풀며 정리하기) [데이터분석/과학 Part2]
다르게 적용해보는 Feature Engineering2 강의의 15:13 부분에서 질문입니다 강의에서는 mean_survival_rate = np.mean(df_train['Survived']) 와 같이 df_train 데이터프레임 Survived 컬럼의 값에 대해 평균을 구하고 이를 생존할 확률 이라고 정의하였습니다. 저는 Survived 컬럼의 값은 0과 1로만 이루어져 0은 사망, 1은 생존 이라는 의미를 나타내는 명목 척도로 이해하였는데요, 이에 대해 평균을 내면서 값을 구하는 것이 확률로써의 의미를 가질 수 있다는 것이 조금 이해가 되지 않습니다. 제가 잘못 받아들이고 있는 것인지 좀 더 보충 설명 해주시면 너무 감사할 것 같습니다!
안녕하세요 queryDsl의 기본 문법에 대해서 듣고 있는데요. 현재 기준, fetchResults(), fetchCount() 가 deprecated 되었네요.(자바11, springboot 2.7 버전에 맞는 queryDsl) 강의 끝부분에서 말씀하신, 복잡한 페이징 & 쿼리 부분에서는 coun와 select 쿼리가 다르니까 따로 작성해서 해야된다는 말씀 것과 연관되어서 그런 것 맞을까요? 그러면 @Deprecated 된 현재는 fetchResults(), fetchCount() 는 사용을 지양하고 별개의 쿼리로 각각의 값들을 얻어 조합해서 response 해주는 것이 맞죠?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/9be2e49bafe64797b19ed75db1b6ac7c 재귀로 이 문제를 구현해봤는데 시간 초과가 발생하였습니다. 어떤 부분에서 시간초과가 발생하였는지와 개선할 점에 대해 알려주셨으면 좋겠습니다. 또한 코드 자체는 맞은것 같은데 혹시 반례가 있다면 알려주시면 감사하겠습니다.
안녕하세요 선생님, int 초기화값에 관해 궁금한 부분이 생겨 질문을 드립니다. int형 INF를 1e9로 초기화하는 기본적인 이유는 이해하였습니다. - INF끼리 더했을 때 범위가 넘어가는 것 등을 방지할 수 있다는 것과 - 이상한 문제가 아니라면 1e9로 초기화해도 풀린다는 것 그러나 만약 면접에서 1e9로 초기화한 이유를 질문받는다면 제대로 된 이유를 대답하지 못할 것 같습니다. 위의 두가지 대답은 풀이의 편의를 위해 1e9 이하의 답이 나올 것이라는 자체적인 판단 하에 마음대로 설정했다고 보일 듯 합니다. 문제에서 1e9를 넘어가는 답이 나오지 않을거라고 명시한 적이 없는데 왜 마음대로 1e9를 한계선으로 설정했냐는 질문을 받는다면 어떻게 대답하는 것이 맞을까요? 이런 질문은 들어오지 않는다고 봐야할까요?
강사님 수업 강의 모두 결제해서 틈틈히 잘보고있는 개발자입니다 :) 코테 강의 시청하다가 혹시 cs강의 노션에 pdf파일 만들어주신거처럼 개발자취업비밀노트 코딩테스트 이렇게 2개의 노션으로 공유해준 사이트에도 각각 pdf파일로 올려주실생각은 없으실까요ㅠ? ipad에 넣어서 밑줄치면서 공부하기가 편했던 기억이 있어서 궁금합니다! 만약 있으시면 일정도 알 수 있을까요!! :)
[리뉴얼] 처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 캐글 문제 풀며 정리하기) [데이터분석/과학 Part2]
다르게 적용해보는 Feature Engineering2 강의의 15:11 부분부터 궁금한 점이 있어 질문 올립니다. 해당 강의에서는 다음과 같이 2개의 리스트를 작성하였는데요 family_survival_rate = list() family_survival_rate_NA = list() 동승자가 있는지/없는지를 기준으로 2개의 리스트에 값을 각각 넣어준다는 전체적인 과정은 이해했지만, 사실 family_survival_rate_NA 리스트는 어떤 이유로 존재하는 것인지에 대한 설명이 조금 필요한 것 같습니다. family_survival_rate = list() mean_survival_rate = np.mean(df_train['Survived']) # 0.3838383838383838 for i in range(len(df_all)): if df_all['Family_Name'][i] in family_rates: # 동승자가 있는 경우 family_survival_rate.append(family_rates[df_all['Family_Name'][i]]) # family_rates[df_all['Family_Name'][i]] -> family_rates 딕셔너리에서 위의 이름들을 키 값으로 하고, 이에 해당하는 Survived 값을 찾음 else: # 동승자가 없는 경우 family_survival_rate.append(mean_survival_rate) 동승자가 있으면 family_survival_rate 리스트에 Survived 컬럼의 생존 확률을 넣고, 동승자가 없으면 family_survival_rate 리스트에 생존 확률의 평균값을 넣어주면 충분한 것 아닌가 하는 생각이 드는데요, family_survival_rate_NA 리스트가 어떤 용도로 사용되는 것인지, 그리고 왜 값은 0과 1만을 넣는 것인지 조금 더 설명해 주시면 감사할 것 같습니다!!
7번 문제 (영어단어복구)에서 gets를 사용하였는데 gets를 사용하면 오류가 떠서 사용을 못하게 되어서 찾아보니 gets가 위험하여 fgets나 gets_s를 사용하라고 하던데 fgets를 사용하니 개행문자까지 들어가서 for(i=0; arr[i]!='\n'; i++) 이렇게 사용하여 풀었는데 혹시 공백이 포함된 문자열을 입력받을때 다른 좋은 방법이 있을까 질문드립니다! 그리고 대문자를 소문자 변환하여 다른 새 배열에 넣고 한번에 출력하셨는데 혹시 for문 안에서 해당될때마다 문자 하나씩 출력하는것과 성능 차이가 있을까요? 감사합니다