728x90

구글링하다가  getX controller파일에 저장한 함수를 불러오는 부분에서 막혀버렸었다

//notify_home_controller.dart

import 'package:get/get.dart';

class notifyController extends GetxController {
  String whichPage = 'academy';

  void changePage(num) {
    this.whichPage = num;
    print('whichPage값이 ${this.whichPage}로 변경되었습니다.');
    update();
  }
}

위의 코드에서 changePage함수를 사용하고 싶었는데, 메인 코드에서 사용하는 방법을 도저히 찾을 수가 없었다.

그래서 이것저것 시도해보다가 방법을 찾게 되었다.

Widget build(BuildContext context) {
	,,,
    //getX 사용을 위한 컨트롤러 생성
    final usedNotifyController = Get.put(notifyController());
    ,,,,
    onPressed: () {
    	//Get.find<notifyController>().changePage('academy');
        usedNotifyController.changePage('academy');
        }
}

바로 컨트롤러를 불러온 뒤 .을 붙여서 클래스 안에 값들을 가져오면 되는 것이었다.

컨트롤러를 불러오는 방법에는 2가지가 있는데, 하나는 변수로 선언하는 것과 사용할 때마다 Get.find<원하는 컨트롤러 이름>으로 불러오는 것이다.

변수로 저장을 해와도 객체 안에 값이 변경이 될까 싶었는데 계획대로 작동했다.

처음부터 

사실 컨트롤러가 class로 저장된 것만 인지했어도 당연하게 생각을 했을 것인데 그렇지 못하고 시간을 많이 잡아먹었었다.

 

728x90

'Flutter > 짧은 글' 카테고리의 다른 글

[Flutter, zeplin] 버튼 크기 설정하기(dp)  (0) 2022.07.30
728x90

공부를 하는 도중에 js객체를 확인을 해야하는 함수가 생겼다.

검색해보니 instanceof연산자를 사용하면 해당 부분을 해결할 수 있는 듯 했다.

function arr (var1){
var1 instanceof String
// true

var1 instanceof Array
// false
}

함수에서 변수를 받고 해당 변수가 내가 요구하는 객체가 맞는지 확인을 해야했는데,

위의 방식으로 하면 boolean으로 리턴을 해준다는 사실을 알게 되었다.

728x90
728x90

처음으로 막힌 문제는 Zeplin에 나와있는 디자인을 어떻게 그대로 만드는 가였습니다.

Zeplin에서는 크기의 값들은 전부 dp로 나와있었습니다.

이것에 대해 알아본 결과(https://points.tistory.com/66) Android에서 사용하는 픽셀 단위이고, 그 크기는 Flutter에서 사용하는 Logical Pixel 단위와 다르지 않다는 사실을 알게 되었습니다.

그래서 Zeplin에 나와있는 값을 그대로 넣었는데, 똑같은 디자인이 나오지 않았습니다.

알고보니, Zeplin상의 디스플레이 크기와 AVD상의 디스플레이 크기가 달라서 나오는 문제였습니다.

그래서 생각한 방법이 Zeplin상의 비율을 구해서 앱에 적용하는 것이었습니다.

 

사용한 핵심 코드는 width,height를 구하는데 사용한 다음의 코드입니다.

double width = MediaQuery.of(context).size.width;

Zeplin에서 구한 비율을 AVD상의 값에 적용해서 상수로 크기를 정하게 되면 크기가 다른 디바이스에선 또 크기가 깨질 것 같아서 크기를 변수로 선언해서 해당 값을 비율만큼 줄이는 방향으로 진행했습니다.

728x90

'Flutter > 짧은 글' 카테고리의 다른 글

[Flutter, GetX] GetController의 함수를 가져오기  (0) 2022.08.02
728x90

1. 사용 플랫폼 : stackBlitz

- 작성한 코드가 실시간으로 반영되는 장점이 있었음.

- 컴퓨터에서 작성하던 것을 노트북으로 바로 이어서 할 수 있음

- 다만 실제 react파일들이 전부 들어 있지는 않은 것 같았음(package.json, public폴더 등)

 

 

2. React는 사용자 정의 태그를 만드는 기술(react의 본질)

-정리 정돈의 핵심 : 관련 있는 것끼리 그룹핑하는 것

-React에서는 함수의 형태로 태그를 만들 수 있음

    -해당 태그를 사용해서 같은 태그를 쉽게 반복 가능

    -이러한 사용자 정의 태그를 react에선 Component라고 함

위에서 Header컴포넌트를 선언한 뒤 아래에서 사용하는 모습

    -컴포넌트의 사용 장점은 한 번에 해당 태그를 전부 수정할 수 있고, 사용자끼리 해당 태그를 공유하는 것도 가능

-컴포넌트의 함수 안의 html은 

 

3. React의 속성은 prop이다

-prop은 컴포넌트의 매개변수의 형태로 들어간다.

-태그 안에서 prop은 속성들의 값이 객체로 들어가게 된다.

-return값 안에서 속성을 호출하려면 {propt.객체 키}의 형태로 사용한다.

-이렇게 prop이 적용된 컴포넌트는 사용될 때 사용된 속성이 없으면 출력되지 않음

-list 같은 형태의 태그들은 for문을 이용해서 동적으로 태그를 작성 할 수도 있음

 

4. State

-내부 변수에 대응하는 기능

-좀 더 공부 필요

 

 

5. 스터디 결과

- 실패...

- React개념 파악이 생각보다 어려웠음

- 다른 프로젝트와 병행이 어려웠음

- 2주차  스터디 : Flutter getX패키지, FCM공부 및 개발 진행

728x90

'JS' 카테고리의 다른 글

[js] Number.toFixed()  (0) 2022.07.20
728x90

Number.prototype.toFixed()

: 소수점 자리를 원하는 부분까지만 출력하는 함수

728x90

'JS' 카테고리의 다른 글

[스터디 1주차] React 간단 정리  (0) 2022.07.21
728x90
def stringReverse(myString) :
    '''
    문자열 myString을 뒤집어서 반환하는 함수를 작성하세요.
    '''
    if(len(myString) == 1):
        return myString[0]    
    result = myString[len(myString)-1 : len(myString)] + stringReverse(myString[:len(myString)-1])
    
    return result

def main():
    '''
    테스트를 하고싶으면, 아래 부분을 수정합니다.
    '''

    myString = input()
    print(stringReverse(myString))
if __name__ == "__main__":
    main()

처음 문제를 풀었을 때는 매개변수에 count라는 변수를 추가했었다.

재귀가 깊어지는 것을 감지하기 위해서 추가했는데, 기존 함수가 문자열 하나만 받아서 테스트에서 오류가 발생했다.

 

그래서 해당 숫자를 대체할 방법으로 슬라이싱을 생각했습니다.

재귀를 문자열의 마지막 부분만 저장하고 나머지 부분을 담는 형태로 구성한다. 

그리고 만약 문자열의 길이가 1이면 그냥 맨 앞자리를 반환해준다. 

이렇게 구성하게 되면 재귀가 문자열이 뒤집어지게 된다.

728x90

'python > 문제' 카테고리의 다른 글

[엘리스] list.sort()사용할 때 None이 반환되는 경우  (0) 2022.07.01
[백준/2231]분해합  (0) 2021.10.28
[백준,10809]알파벳 찾기  (0) 2021.03.04
[백준,2675]문자열반복  (0) 2021.03.04
[백준, 11654] 아스키코드  (0) 2021.03.04
728x90

1.실행컨텍스트(Execution Context)

1.1 JS는 아무런 코드없이 실행해도 this, VariableObject, Scope chain새게 변수를 만듬

1.2 스코프 : 코드가 현재 싫애되는 환경, 맥락(context)를 의미

1.3 전역 실행 컨텍스트가 먼저 생기고 함수가 생길때마다 함수 실행 컨텍스트 새로 생성, 함수가 완료되면 삭제

1.3.1 글로벌 실행 컨텍스트의 this는 window

1.4 어떤 객체에 속한 메서드에는 this가 해당 객체를 부름

 

2. this

2.1 함수호출의 5가지

2.1.1 함수 호출, 메서드 호출, 생성자 호출, 간접호출(call, apply), 콜백함수

2.2 bind함수를 사용하면 this 변수에 원하는 값(객체든 변수든)을 갖도록 하는것

2.3 bind와 같이 this의 값을 동적으로 세팅하는 것을 dynamic binding이라고 함

2.4 화살표 함수의 this는 dynamic binding이 안되고 해당 함수만 가리킴

2.4.1 화살표 함수의 this : 호출된 함수를 둘러싼 실행 컨텍스트를 가리킴

2.4.2 일반 함수의 this : 새롭게 생성된 실행 컨텍스트를 가리킴 / 

 

3. 함수는 일급 객체(first-class object)

3.1 함수와 함수가 사용하는 변수들이 저장된 공간 = 클로저

 

4. Rest Operator

4.1 함수들의 나머지 값들을 묶어서 지칭

4.2 ...을 사용해서 나머지들을 묶어서 객체로 저장

 

5. Spread Operator

5.1 객체를 펼치는 역할

5.2 iterable한 변수에 대해서 적용이 가능하다(iterable하지 않으면 에러가 발생)

5.3 객체나 배열 필드는 단순히 reference만 복사 (deep copy는 되지 않음)

 

728x90

'특강 복습 > 엘리스' 카테고리의 다른 글

7/13  (0) 2022.07.13
12일차  (0) 2022.07.12
11일차  (0) 2022.07.11
9일차  (0) 2022.07.10
8일차  (0) 2022.07.06
728x90

python으로 문제를 풀면서 배열을 정렬해서 반환해야 하는 경우가 있었다.

처음에 나는 변수A에 array.sort()를 저장해서 A를 반환해주려고 했다.

하지만 A에는 None값이 들어있었다. 

 

구글링을 해보니 sort()는 리스트형의 메소드중에 하나이고, sorted()는 내장 함수라는 사실을 알게 되었다.

기본적으로 메소드는 객체에 안에 포함되어진 함수로, 사용하고자 하는 대상과 .으로 연결되어 있어야 한다.

함수는 그 자체로 정의되어진 것으로, 이름을 통해 호출되면 함수에 따라 매개변수를 입력받는다.

함수는 이름만으로 사용이 가능하지만, 메소드는 대상에 연결되어 있어야만 사용할 수 있다는 점이 가장 큰 차이점이다.

또, 함수는 변수에 값이 들어갈 수 있다는 특징이 있다.

 

sort()와 sorted()로 돌아가면, sort()는 메소드로서 연결된 대상에게 영향을 끼친다고 한다. sorted()는 함수로서 변수에 값을 반환해줄 수 있지만 사용된 매개변수를 정렬시키지는 않는다.

 

 

728x90

'python > 짧은 글' 카테고리의 다른 글

[Python] if ... is (not)  (0) 2022.07.14

+ Recent posts