inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

어떻게 자동으로 home으로 넘어가지나요?

미해결

스프링부트 시큐리티 & JWT 강의

로그인후 어떻게 바로 home주소로 넘어가나요? 저는 로그인후 home을 직접쳐야 넘어가지던데

  • spring
  • spring-security
  • jwt
코딩코딩코딩코 댓글 1 좋아요 0 조회수 491

회원서비스테스트 강의에서 fail();이 동작안합니다

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

요런 에러가 뜹니다 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { //MemberService memberService = new MemberService(); //MemoryMemberRepository memberRepository = new MemoryMemberRepository(); MemberService memberService; MemoryMemberRepository memberRepository; // 동작하기 전에 MemberService에 넣어줌 @BeforeEach public void beforeEach(){ // DI memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @AfterEach public void afterEach() { memberRepository.clearStore(); } @Test void 회원가입() { // given Member member = new Member(); member.setName("hello"); //member.setName("spring"); // when Long saveId = memberService.join(member); // then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test void 중복_회원_예외() { // given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); // when //try-catch 방법 try { memberService.join(member2); fail(); } catch (IllegalStateException e){ assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } /*memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다.");*/ } @Test void findOne() { } } 해당 소스 입니다.

  • java
  • spring
  • mvc
  • spring-boot
dasom kwon 댓글 1 좋아요 0 조회수 694

상속관계 매핑 관련 질문 드립니다.

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 먼저 항상 좋은 강의를 내주셔서 정말 감사합니다 제가 요번에 실무에서 처음 JPA를 경험을 하게 되었고, 운이 좋게 특정 도메인의 테이블 설계도 진행을 하게 되었습니다. 고민을 하던 중, 이전 JPA 강의에서 상속 관계 매핑을 본적이 있어서 해당 부분을 적용을 하여 먼저 테스트를 해보는 중 정말 어떻게 풀어가야 할지 모르는 부분이 있어서 질문을 드리게 되었습니다. 상단 캡쳐 화면 처럼 테이블 생성 후, 각각 서브 타입의 Repository 를 만들어서 클라이언트에 넘어온 DTYPE을 통한 분기를 통해서 필요한 서브타입의 Repository 를 이용하여 조회 및 저장을 하는 방식으로 하였습니다. 그런데 해당 테이블이 다른 업무에도 많이 사용이 될 테이블이라 코드가 복잡해질 걱정이 되었습니다. 해당 부분을 어떤 방식으로 풀어나가야 할지를 모르겠습니다. 해당 부분을 실무에 적용을 하게 될 때 복잡하게 될 거 같으며 이 부분을 어떻게 실무에서 녹여야 할지를 모르겠습니다. 영한님의 경우 상속 관계 매핑을 실무에서 어떻게 사용을 하시는지 궁금합니다. 연관된 테이블들 중 공통적인 부분이 있고, 서로 다른 컬럼이 있을 때, Inheritance 를 통한 상속 관계 매핑 말고 다른 쉬운 방법으로 풀 수 있는 방법이 있는지 궁금하여 질문 드립니다. 두서 없는 글 읽어주셔서 감사합니다. 항상 영한님의 강의를 통해서 정말 많은 도움을 받고 있습니다. 감사합니다 좋은 하루 보내세요!!

  • java
  • jpa
박찬석 댓글 1 좋아요 1 조회수 527

도와주세요 ㅠㅠ!!

미해결

따라하며 배우는 NestJS

안녕하세요. 현재 typeorm 버전을 0.2로 낮춰서 진행하려고 했지만, 아래 오류가 발생하여 진도를 나가지 못하고 있습니다! 왜 자꾸 파이프를 못 찾는다고 나오는지 검색해도 안되서 글 등록합니다 ㅠㅠ 도와주세요! [Nest] 19044 - 2023. 05. 25. 오후 10:31:03 ERROR [ExceptionHandler] Cannot read properties of undefined (reading '__pipes__') TypeError: Cannot read properties of undefined (reading '__pipes__') at C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:147:152 at Array.forEach (<anonymous>) at C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:147:39 at Array.forEach (<anonymous>) at DependenciesScanner.reflectInjectables (C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:146:27) at DependenciesScanner.reflectDynamicMetadata (C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:124:14) at C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:114:18 at Array.forEach (<anonymous>) at DependenciesScanner.reflectControllers (C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:112:21) at DependenciesScanner.scanModulesForDependencies (C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:84:18)

  • postgresql
  • jwt
  • nestjs
  • typeorm
하리 댓글 2 좋아요 0 조회수 1132

kapt 추가 이후 오류 발생.

미해결

홍드로이드의 To-Do 리스트 앱 만들기

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이러한 오류가 발생하는데 이를 해결하기 위해서는 어떻게 해야하나요?

  • android
  • kotlin
sohn_tm 댓글 1 좋아요 0 조회수 697

Td와 Tr 컴포넌트에 memo를 씌우지 않아도 되나요?

미해결

웹 게임을 만들며 배우는 React

timer 때문에 Table 전체가 리렌더링되는 문제를 해결하기위해 강의에서는 Table과 하위컴포넌트 Tr, Td 모두에 memo를 씌우셨고 하위컴포넌트가 다 memo가 돼있어야지 상위컴포넌트도 memo를 적용할 수 있게 된다고 말씀하셨는데요 제가 Tr Td에 memo를 없애고 Table에만 적용해봤더니 그래도 리렌더링되지 않길래 이렇게 해도 되는지 궁금해서 질문드립니다 import React, { useReducer, createContext, useMemo, useEffect } from 'react'; import Table from './Table'; import Form from './Form'; // 중략 const MineSearch = () => { const [state, dispatch] = useReducer(reducer, initalState); const { tableData, halted, timer, result } = state; const value = useMemo(() => ({ tableData: tableData, halted: halted, dispatch }) , [tableData, halted]); useEffect(() => { if (!halted) { const timer = setInterval(() => { dispatch({ type: INCREMENT_TIMER }); }, 1000); return () => { clearInterval(timer); } } }, [halted]); return ( <TableContext.Provider value={value}> <Form /> <div>{timer}</div> <Table /> <div>{result}</div> </TableContext.Provider> ); }; export default MineSearch; import React, { useContext, memo } from 'react'; import Tr from './Tr'; import { TableContext } from './MineSearch'; const Table = memo(() => { const { tableData } = useContext(TableContext); return ( <table> {Array(tableData.length).fill().map((tr, i) => <Tr key={i} rowIndex={i} />)} </table> ); }); export default Table; import React, { useContext, memo } from 'react'; import Td from './Td'; import { TableContext } from './MineSearch'; const Tr = ({ rowIndex }) => { const { tableData } = useContext(TableContext); return ( <tr> {tableData[0] && Array(tableData[0].length).fill().map((v, i) => <Td key={i} rowIndex={rowIndex} cellIndex={i} />)} </tr> ); }; export default Tr; import React, { useContext, useCallback, memo, useMemo } from 'react'; import { TableContext, CODE, OPEN_CELL, CLICK_MINE, FLAG_CELL, QUESTION_CELL, NORMALIZE_CELL } from './MineSearch'; // 중략 const Td = ({ rowIndex, cellIndex }) => { const { tableData, dispatch, halted } = useContext(TableContext); const onClickTd = useCallback(() => { if (halted) { return; } switch (tableData[rowIndex][cellIndex]) { case CODE.OPENED: case CODE.FLAG: case CODE.QUESTION: case CODE.FLAG_MINE: case CODE.QUESTION_MINE: return; case CODE.NORMAL: dispatch({ type: OPEN_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.MINE: dispatch({ type: CLICK_MINE, row: rowIndex, cell: cellIndex }); return; default: return; } }, [tableData[rowIndex][cellIndex], halted]); const onRightClickTd = useCallback((e) => { e.preventDefault(); if (halted) { return; } switch (tableData[rowIndex][cellIndex]) { case CODE.NORMAL: case CODE.MINE: dispatch({ type: FLAG_CELL, row: rowIndex, cell: cellIndex }); return case CODE.FLAG: case CODE.FLAG_MINE: dispatch({ type: QUESTION_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.QUESTION: case CODE.QUESTION_MINE: dispatch({ type: NORMALIZE_CELL, row: rowIndex, cell: cellIndex }); return; default: return; } }, [tableData[rowIndex][cellIndex], halted]); return ( <RealTd onClickTd={onClickTd} onRightClickTd={onRightClickTd} data={tableData[rowIndex][cellIndex]} /> ) }; const RealTd = memo(({ onClickTd, onRightClickTd, data }) => { console.log('RealTd rendered'); return ( <td onClick={onClickTd} onContextMenu={onRightClickTd} style={getTdStyle(data)} > {getTdText(data)}</td> ); }); export default Td;

  • react
박규석 댓글 1 좋아요 0 조회수 398

네이티브 쿼리로 특정 값만 가져오기

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 네이티브 SQL 소개란에 String sql="select ID,AGE,TEAM_ID,NAME FROM MEMBER WHERE NAME='kim'"; List<Member> resultList=em.createNativeQuery(sql,... 으로 되어있는데 저희가 JPQL에서는 SELECT m.username,m.age 를 DTO로 활용해서 그 결과를 얻었지 않습니까? 혹시 native query라서 되는지 확인해보았는데 Member member=new Member(); member.setUsername("lee"); member.setAge(25); Member member1=new Member(); member1.setUsername("kim"); member1.setAge(30); em.persist(member);em.persist(member1); List<Member> members=em.createNativeQuery("select USERNAME,AGE from MEMBER",Member.class).getResultList(); for (Member member2 : members) { System.out.println(member2.getAge()+member2.getUsername()); } Native QUery에 대한 예제가 잘 못된건가요??

  • java
  • jpa
dionisos198 댓글 1 좋아요 0 조회수 688

isEqualTo()질문

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

isEqualTo() 가 대상의 내용자체를 비교한다라고 알고 있었는데 수업시간에 isEqualTo() 내부에 equals()를 포함한다고 배웠습니다. 그럼 만약 Object.equals()라면 isEqualTo()가 객체의 주소를 비교하고 , String.equals()라면 isEqualTo()가 객체의 값을 비교 하나요 ??

  • spring
코딩먹는하마 댓글 1 좋아요 0 조회수 352

배운내용 정리 질문

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

안녕하세요 코드팩토리님 배웠던 내용들이 너무 많아 강의를 돌려보면서 보기가 조금 어려운데 출처를 밝히고 블로그에 내용을 기록해도 될까요

  • flutter
  • 하이브리드-앱
dlckdals9467 댓글 1 좋아요 0 조회수 306

Item 추상화 질문 드립니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요. 도메인에 있는 Item 엔티티에서 궁금한 점이 있습니다. Moive, Book, Album 클래스가 Item 클래스를 상속받고 있는데요. 그렇다면, Item에 있는 id, name, price, stockQuantity 객체를 Movie, Book, Album 클래스에서도 인스턴스 변수로 활용할 수 있는건가요? 항상 감사합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
­정원재 댓글 1 좋아요 0 조회수 316

질문있습니다.

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

라벨 인코더 실행할 때나, 스케일러 실행할 때, X_train 에서는 fit_transform 함수를 사용하고 X_test 에서는 transform 함수를 사용하는데, 무슨 차이가 있는지 궁금합니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
daeho4.kim 댓글 2 좋아요 0 조회수 341

busrefresh 요청 시 rabbitmq 큐 처리

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요 테스트를 하면서 찾아봐도 해당 부분에 대한 의문이 해결되지 않아서 문의 드립니다. 예를 들어 3대의 서버에 spring event bus를 구성한 후 1번 서버에서 busrefresh를 요청하면 3대 서버에서 refresh가 정상적으로 처리가 되는건 확인했는데 rabbitmq에서 큐를 확인해보면 busrefresh를 요청한 1번 큐에는 메시지가 없고 2번, 3번 서버에서는 큐 메시지가 들어오는데.. 1번에서는 busrefresh 요청을 받기 때문에 큐 메시지 없이 처리가 가능하기 때문에 큐에서 제외되는건가요? 제가 확인한 내용이 맞다면 rabbmit exchange에서 topic으로 패턴 매칭되서 모든 큐에 메시지를 넣을 거 같은데..어떻게 자신의 큐만 제외시키는지 궁금합니다.

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
jhlim 댓글 2 좋아요 0 조회수 653

08-05 강의에서 DB 접근이 안되는 현상이 발생합니다.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

위와 같은 연결 오류가 발생하고 이때 host는 ' localhost ' 로 입력을 한 상태입니다. app.module.ts 파일 내의 host를 127.0.0.1 로 변경하면 또 정상 작동 합니다. 인터넷을 보니까 socketPath: '/tmp/mysql.sock' 를 마지막에 넣어주면 또 정상 작동 하는 것 같습니다. 도서관과 같은 특수한 네트워크 환경에서 진행해서 그런걸까요? https://cloer.tistory.com/56 자료를 참고했습니다.

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
박상준 댓글 1 좋아요 0 조회수 429

섹션 7 10번 미로탐색 반복 깊이 초과 에러

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

#my sol def DFS(x,y): global cnt if x>7 or y>7: return if x==7 and y==7: cnt+=1 else: for i in range(4): nx=x+dx[i] ny=y+dy[i] if maze[nx][ny]==0: maze[nx][nx]=1 DFS(nx,ny) maze[nx][nx]=0 if __name__=='__main__': maze = [list(map(int, input().split())) for _ in range(7)] maze.insert(0,[1]*7) maze.append([1]*7) for row in maze: row.insert(0,1) row.append(1) cnt=0 dx=[-1,0,1,0] dy=[0,1,0,-1] maze[1][1]=1 DFS(1,1) print(cnt) #solution dx=[-1,0,1,0] dy=[0,1,0,-1] def DFS(x,y): global cnt if x==6 and y==6: cnt+=1 else: for i in range(4): nx=x+dx[i] ny=y+dy[i] if 0<=nx<=6 and 0<=ny<=6 and maze[nx][ny]==0: maze[nx][nx]=1 DFS(nx,ny) maze[nx][nx]=0 if __name__=='__main__': maze = [list(map(int, input().split())) for _ in range(7)] cnt=0 maze[0][0]=1 DFS(0,0) print(cnt) 위의 코드는 강의 듣기 전에 혼자 작성한 코드이고, 아래는 강의에서 알려주신 코드입니다. 두 코드가 접근 방식이 같은 것은 알고 있습니다. 그런데 제 컴퓨터에서 두 코드 모두 채점 프로그램을 돌렸을 때 결과 계산을 하지 못 합니다.(5초짜리로 해도 같고, 코드에 setrecursionlimit 추가해도 같음) import sys sys.setrecursionlimit(10**6) 그리고 pdf 예제조차도 RecursionError: maximum recursion depth exceeded in comparison 에러가 납니다.(예제는 setrecursionlimit 추가 시 파이썬이 응답을 멈춰서 강제 종료됨) 혹시 제가 발견하지 못 한 코드 상의 문제가 있는 것인지、 제 컴퓨터 사양 때문인지 궁금합니다。

  • python
  • 코딩-테스트
꼬모 댓글 1 좋아요 0 조회수 221

cpu 예측 문제점 15:30 질문

해결됨

곰책으로 쉽게 배우는 최소한의 운영체제론

cpu 예측 문제점 15:30 내용이 이해가 안되서 질문입니다. 기존 웹서버가 1~5번까지 동작하는건 이해했습니다. 근데 15:30에서 하는 말씀을 모르겠습니다. 게스트가 요청을 하던 안하던 웹서버의 자주쓰는 내용은 L3에 캐시될거고 그게 게스트가 요청 많이하면 웹서버를 해킹하는것이랑 어떻게 이어지는 것인가요?

  • 운영체제
콩팥팥죽 댓글 1 좋아요 0 조회수 422

패킷이 라우터를 통해 인터넷 세계로 나온 다음 remote host로 전달되는 과정

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

패킷이 인터넷 세계로 나온 다음 remote host로 전달되기 까지 정말 수 많은 라우터들을 만나게 될텐데, 거미줄처럼 엮여있는 수많은 라우터를 헤치고 어떻게 remote 까지 도착하게 될까요?? 라우터는 L3이고 그 다음 라우터로 도착할때까지 오직 IP 주소만으로 식별하여 해당 라우터에 패킷을 보낼 수 있는 건가요?? 이 라우터들은 서로 물리적으로 연결되어 있지 않을 텐데 그렇다면 어떻게 상대방의 라우터의 위치를 식별할 수 있는 것인가요?? L2 수준에서 ARP를 사용해 mac 주소를 파악했던것과 같은 이치일까요??

  • 네트워크
  • 프로토콜
강낭콩 댓글 1 좋아요 0 조회수 587

패킷이 라우터를 통해 인터넷으로 나간 후에 다른 라우터로 스위칭되는 과정을 모르겠습니다.

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

지금까지 제가 이해한 네트워크 흐름은 이렇습니다. 로컬 프로세스에서 Socket에 IO를 통해 Stream data 생성 (브라우저라면 HTTP Request를 Stream으로 TCP에 전달하겠군요) OS 수준인 TCP에서 일련의 Stream data를 Segment들로 분할하며, 이때 TCP 헤더에 Remote Endpoint의 Port 번호가 추가 TCP에서 받은 Segment를 Packet에 캡슐화. 이때 Source IP와 Remote IP가 Packet 헤더에 추가 L4에서 Packet을 Frame으로 캡슐화. 이때 자신이 속한 사설망의 L2 Switch의 mac 주소가 Frame 헤더에 추가 Frame이 pc의 NIC를 출발하여 L2 access에 도착 L2 access에서 L2 Distribution으로 Frame 전달 (없을 수도 있겠네요) L2 Distribution에서는 Frame을 디캡슐화하여 패킷을 확인하고 해당 패킷의 Source IP를 자신의 public IP로 변환 후 인터넷 세계로 패킷을 전송 ... 8번 과정부터 머릿속에 잘 그려지지 않는데, 인터넷 세계에서 해당 패킷이 가고자 하는 remote host로 가기 위해서는 어떤 과정을 거치게 되나요??? 이 세상에는 ipv4 갯수만큼 엄청나게 많은 라우터들이 존재할텐데 말입니다... ARP가 그러했듯 라우터들끼리 미리미리 주변 라우터가 어디에 있는지 broadcast로 파악을 해두고 있는 것일까요?? 그리고 인터넷에서는 remote host가 속한 사설망에 패킷이 도착할때 까지는 L3 끼리만 스위칭을 하게될까요?? 각 라우터들도 자신만의 사설망에 속해 있을 것이고 그렇다면 자신이 관리하는 L2 스위치도 있을 것인데, 패킷이 remote host로 전달되느 ㄴ과정에서 L2, L3, L2, L3 로 번갈아가면서 전달되지 않을까라는 생각이 듭니다.

  • 네트워크
  • 프로토콜
강낭콩 댓글 1 좋아요 1 조회수 447

redirect: authStateProvider._redirectLogic 빨간줄

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

아래와 같은 코드인데 redirect부분에서 빨간줄이 나는데 뭐가 문제일까요 import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:gorouter_practice/model/user_model.dart'; import 'package:gorouter_practice/screen/login_screen.dart'; import 'package:riverpod/riverpod.dart'; import '../screen/1_screen.dart'; import '../screen/2_screen.dart'; import '../screen/3_screen.dart'; import '../screen/error_screen.dart'; import '../screen/home_screen.dart'; final routerProvider = Provider<GoRouter>((ref){ final authStateProvider = AuthNotifier( ref: ref ); return GoRouter( initialLocation: '/', errorBuilder: (context,state){ return ErrorScreen( error: state.error.toString()); }, // redirect 주소가 잘못됐을때 올바른 주소로 연결 redirect: authStateProvider._redirectLogic, // refresh 새로고침, 상태가 변경할 때마다 redirect실행 refreshListenable: authStateProvider, routes: authStateProvider._routes ); }); class AuthNotifier extends ChangeNotifier{ final Ref ref; AuthNotifier({ required this.ref, }){ ref.listen<UserModel?>( userProvider, (previous, next) { if(previous!=next){ notifyListeners(); } } ); } String? _redirectLogic(GoRouterState state){ //UserModel의 인스턴스 or null final user = ref.read(userProvider); //로그인을 하려는 상태인지(location은 현재 위치를 가져옴) final logginIn = state.location == '/login'; //유저 정보가 없다 - 로그인한 상태가 아니다 // //유저 정보가 없고 //로그인하려는 중이 아니라면 //로그인 페이지로 이동한다. if(user == null){ //로그인을 시도하려는 상태면 null 반환 로그인페이지 위에 로그인페이지가 쌓이는걸 방지하기 위해 return logginIn ? null : '/login'; } //유저 정보가 있는데 //로그인 페이지라면 //홈으로 이동 if(logginIn){ return '/'; } //가려는 페이지로 보내줌 위의 로직은 일종의 필터 역할 return null; } List<GoRoute> get _routes => [ GoRoute( path: '/', builder: (_,state) => HomeScreen(), routes: [ GoRoute( //라우트안에 라우트를 넣으면 슬래시를 안넣어도됨 path: 'one', builder:(_,state) => OneScreen(), routes: [ GoRoute( //http://....../one/two 위의 페이지들이 다 깔림 //라우트안에 라우트를 넣으면 슬래시를 안넣어도됨 path: 'two', builder:(_,state) => TwoScreen(), routes: [ GoRoute( //http://....../one/two/three 위의 페이지들이 다 깔림 //라우트안에 라우트를 넣으면 슬래시를 안넣어도됨 //name으로 이름으로 이동 가능 중복x name: ThreeScreen.routename, path: 'three', builder:(_,state) => ThreeScreen(), ) ] ) ] ), GoRoute(path: '/login',builder: (_,state)=>LoginScreen()) ] ), //http://...../three -> 깔리지 않고 독립적으로 존재 GoRoute( path: '/three', builder:(_,state) => ThreeScreen(), ) ]; } final userProvider = StateNotifierProvider<UserStateNotifier,UserModel?>( (ref) => UserStateNotifier() ); //로그인한 상태면 UserModel 인스턴스 상태로 넣어주기 //로그아웃 상태면 null 상태로 넣어주기 class UserStateNotifier extends StateNotifier<UserModel?>{ UserStateNotifier(): super(null); login({ required String name }){ state = UserModel(name: name); } logout(){ state = null; } }

  • flutter
  • 하이브리드-앱
dlckdals9467 댓글 1 좋아요 -1 조회수 526

게임 업계에서 C++20을 많이 쓰나요?

미해결

C++20 훑어보기

성능 상의 이유로 일부러 과거의 표준만 사용하는 곳도 많다고 어디서 봤는데 게임업계에서는 어떤가요

  • c++
lalala 댓글 1 좋아요 0 조회수 596

인기 태그

인프런 TOP Writers

주간 인기글