웨더 옵저베이션 문제에 대해 이렇게 답을 구했는데 이전 강의에서 말씀해주신대로 where city like 에 in을 삽입해서 간단히 쓸 수는 없는지 궁금합니다. 여러군데에 in을 조합하여 쿼리를 짜봤는데 나오지가 않아서요 ㅜ SELECT DISTINCT CITY FROM STATION WHERE CITY LIKE 'i%' OR CITY LIKE 'e%' OR CITY LIKE 'a%' OR CITY LIKE 'o%' OR CITY LIKE 'u%'
안녕하세요! useReduce를 사용하고 최적화를 한 단계에서 onReduce() 함수가 어떻게 최적화 되는지 원리에 의문이 생겨 질문 드립니다. const [data, dispatch] = useReducer(reducer, []); //reducer 생략 case "REMOVE": return state.filter((it) => it.id !== action.targetId); 해당 코드에서 REMOVE를 실행하면 data 배열이 새로운 배열로 업데이트가 됨 -> 2. 그러면 data를 prop으로 받고 있는 DiaryList.js에서 이를 감지하고 처음부터 끝까지 DiaryItem.js를 다시 생성함. ->3. 그런데 DiaryItem은 React.memo로 prop를 비교하는데, 얕은 비교를 하기에 data에 새로 생성된 배열과는 주소가 달라 새로운 컴포넌트를 다시 생성. 이 되어야 하지 않을까요? 혹시 저의 논리에서 어디 부분이 잘못되었는지 모르겠어서 질문합니다... ㅠ
안녕하세요! 강의 재밌게 잘 보고 있습니다 :D scroll-timeline.js 파일은 어디서 가져오신 건가요? 세팅부터 혼자서 해보려고 했는데 scroll-timeline 저장소 여기서 아무리 찾아봐도 안 보이네요..! Usage에 보면 import를 dist 폴더에서 scroll-timeline.js를 가져오는 것 같은데 dist 폴더도 안 보이고 src 폴더에 scroll-timeline-base.js도 아닌 것 같아서 질문 남깁니다..! 또, scrollOffsets에 넣는 옵션들은 어떻게 확인하나요? README에는 new CSSUnitValue 이것밖에 안 보이는데 강의에서는 target, edge, threshold 속성들도 쓰셔서 어디서 확인하고 쓰시는지 너무 궁금합니다..!
실무에서 자주 사용하는 명령어_네트워크 관련 명령어 에서 Network Interface를 확인하는 명령어를 알려주셨습니다. CentOs : /etc/sysconfig/network-scripts/ Ubuntu : /etc/network/interfaces 하지만 AWS EC2 Ubuntu@20.04에서는 netplan 모듈 로 Network Interface 설정이 관리되고 있습니다. 따라서, /etc/netplan 하위에 있는 *.yml 파일을 보면 해당 설정을 볼 수 있습니다! 아래와 같은 이름으로 있습니다. 01-network.yaml 10-wifi.yaml 50-cloud-init.yaml (Linux 배포판 공급사에 따라서 조금 다를 수 있을 것 같습니다...)
package inflearn.ch03; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /* 5. 연속된 자연수의 합(투 포인터) */ public class Problem_5 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] array = new int[N]; for(int i = 0; i < N; i++){ array[i] = i+1; } solution(N,array); } public static void solution(int N, int[] array){ int start = 0; int end = 0; int sum = 0; int count = 0; while (end < N-1){ sum += array[end++]; if(sum == N){ count++; } while (sum >= N){ sum -= array[start++]; if(sum == N){ count++; } } } System.out.println(count); } } 강의와 다르게 범위를 줄이지 않고 while 문으로 사용해서 정답 통과를 했는데 나중에 범위가 커지면 문제가 발생할 수 있을까요?
크롬 버전 15입니다. 네이버 쇼핑 클릭까지는 됩니다. 네이버 쇼핑 접속 후에 쇼핑 검색창 selector을 하고 싶은데 네이버 쇼핑이 많이 바껴 selector이름?이 무엇인지 잘 모르겠어요 ㅠ.. 혹시 현재 네이버 쇼핑의 검색창이 무엇인지 알수 있을 까요? 오른쪽 마우스>copy>copy selector 클릭하면 #gnb-gnb > div._gnb_header_area_150KE > div > div._gnbLogo_gnb_logo_3eIAf > div > div._gnbSearch_gnb_search_3O1L2 > form > div._gnbSearch_inner_2Zksb > div > input 이렇게 나옵니다.
안녕하세요. 강의 중에 해결이 되지 않아서 올립니다. 해당 jenkins 컨테이너에 들어가서 jdk 전역변수 위치 확인 및 해당 경로에 jdk가 설치되어있는지 확인하면 잘 되어있는 것을 알 수 있습니다. 위에 비슷한 상황으로 올리신 분이 있어 확인해보니 위와 같이 tools에서 설정 및 해당 경로에 java가 있으면 된다는 분이 있어 시도 해 봤으나 동일하게 아래와 같이 jdk를 찾을 수 없다는 에러가 발생합니다.. Thread.run ( Thread.java:829 ) WARNING: LinkageError while performing UserRequest:hudson.maven.Maven3Builder@40f17c43 java.lang.UnsatisfiedLinkError: /opt/java/openjdk/lib/libawt_xawt.so: libXext.so .6: cannot open shared object file: No such file or directory winodw os를 사용중이라서 해당 컨테이너를 나오면 위와 같이 환경변수 설정이 되어있는데 컨테이너 밖에서도 opt/java/openjdk 위치에 동일한 jdk-11이 깔려있어야 에러가 안나는 건지 궁금하긴한데 강의내용상 자동으로 컨테이너에 jdk가 깔리기때문에 따로 해줄 게 없다고 들었는데 위와 같은 에러가 왜 발생하는지 궁금하네요... 이 부분이 해결되어야 강의진행이 가능할 것 같은데 조언을 부탁드립니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
class ProductPage extends StatelessWidget { const ProductPage({super.key}); @override Widget build(BuildContext context) { return PaginationListView<ProductModel>( provider: productProvider, itemBuilder: <ProductModel>(_, index, ProductModel model) => GestureDetector( onTap: () => context.goNamed( RestaurantDetailPage.routeName, pathParameters: { 'rid': model.restaurant.id, }, ), child: ProductCard.fromProductModel( model: model, ), ), ); } } 여기서 이상한 에러가 뜹니다. 먼저 'rid': model.restaurant.id 이 부분에서는 아래와 같은 에러가 뜹니다. The property 'restaurant' can't be unconditionally accessed because the receiver can be 'null'. Try making the access conditional (using '?.') or adding a null check to the target ('!').dart unchecked_use_of_nullable_value 그리고 두 번째로, ProductCard.fromProductModel(model: model) 에서는 이런 에러가 뜹니다. The argument type 'ProductModel' can't be assigned to the parameter type 'ProductModel'.dart argument_type_not_assignable 두 에러 모두 이해되지 않습니다. ProductModel 타입을 ProductModel 타입으로 Assign할 수 없다니요? 같은 타입인데 이런 에러가 뜹니다. 또한 첫 번째 에러의 경우에도, 분명히 nullable 타입이 존재하지 않는데 nullable 체크를 하라고 하고 있습니다. 당황스럽습니다. 한편, 강의는 이런 식으로 되어 있습니다. itemBuilder: <ProductModel>(_, index, model) 즉 model 의 타입을 따로 지정해주지 않았습니다. 이렇게 했을경우 model의 타입은 dynamic 이 되며, 자동 완성 기능은 수행할 수 없지만, 결론적으로 잘 작동은 합니다. 그런데 왜 저런 이상한 에러가 발생하는 지 모르겠습니다. 여기 이와 관련된 코드를 덧붙입니다. 그러나 대부분 강의와 동일합니다. @JsonSerializable() class ProductModel implements IModelWithId { @override final String id; /// 상품 이름 final String name; /// 상품 상세 정보 final String detail; /// 상품 이미지 URL @JsonKey(fromJson: DataUtils.pathToUrl) final String imgUrl; /// 상품 가격 final int price; /// 레스토랑 정보 final RestaurantModel restaurant; ProductModel({ required this.id, required this.name, required this.detail, required this.imgUrl, required this.price, required this.restaurant, }); factory ProductModel.fromJson(Map<String, dynamic> json) => _$ProductModelFromJson(json); } typedef PaginationWidgetBuilder<T extends IModelWithId> = Widget Function( BuildContext context, int index, T model, ); 문제가 발생하고 있는 스크린샷:
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Token 발급 과정에서 username:password 값을 base64 로 인코딩 후 authorization 헤더에 Basic $token 형태로 전송하는 것이 정석이라고 말씀해주셨습니다. 질문1. Basic $token 형태는 인증정보가 그대로 base64 형태로 인코딩해줍니다. 그러면 누군가가 이 패킷을 까보기만 하면 데이터를 알 수 있는 것이 아닌가요..? 이 부분이 이해가 잘 안되네요. 설명부탁드립니다.. 질문2. 추가로 챗gpt 에게 질문했을 때, 로그인할 때 content type 을 application/x-www-form-urlencoded 형태로 보내라고 하는데, 대부분은 json 형태로 전송하더라구요.. 설명부탁드립니다...