728x90

전체 글 166

웹뷰 안랩 결제에러 관련

플러터로 머니트리 pg사 거져서 우리은행가고 네이버 페이로 결제하려는 중에우리은행에서 네이버 페이로 갈때 안랩이 개입하는 문제가 있었다. 그게 현재 플러터에서 코틀린 통로 연결해서 가고 있었는데,플러터 통해가면서 url이 인코딩은 제대로 되었는데 디코딩할때 깨지는 문제가 발생했다. 하나씩 자바스크립트 폼 주입해서 해결하긴 했는데, 이렇게 모두 할 수 없는게카드 결제사가 60가지 정도 된다. 그래서 해결 방안 하나로1.플러터에서 웹뷰 띄우고 관련 로직 모두를 코틀린으로 돌렸으나 여전히 해결되지 않았다.왜냐하면 결국 웹뷰로 플러터 띄우니 지나가면서 url 깨진것이다. 2.결국 아에 코틀린으로 웹뷰를 띄우기로 했다.하단바나 누를때 데이터 코틀린으로 넘기고 코틀린에서 웹뷰 자체를 띄웠다.결국 해결되었다. 코틀..

코딩/비쨔 2025.04.15

플러터에서 엔진?

플러터 에서 엔진이란... 뭔소린지 모르겠다. 나중에 알게 되겠지 뭐일단은 플러터 자체 엔진에서 Skia를 그래픽 라이브러리로 활용 이정도만 알자 ㅡㅡㅡㅡㅡㅡㅡ "플러터 엔진은 플러터 프레임워크의 핵심 기반이 되는 C/C++로 작성된 고성능 렌더링 시스템입니다. 이 엔진은 Dart 코드와 네이티브 플랫폼 사이의 중간 역할을 하며, Skia 그래픽 라이브러리를 활용해 모든 플랫폼에서 일관된 고품질 UI 렌더링을 가능하게 합니다.플러터는 기본적으로 하나의 통합된 엔진 아키텍처를 사용하지만, 이 엔진은 각 플랫폼(iOS, Android, 웹, 데스크톱)에 맞게 최적화된 구현체를 가집니다. 따라서 개발자 관점에서는 단일 코드베이스로 개발하지만, 실제로는 각 플랫폼별 특성을 최대한 활용할 수 있는 최적화된 엔진 ..

코딩/개념 2025.04.12

컴파일이란? 컴파일 과정

다트에서 컴파일은 Dart VM에서 JIT 컴파일 사용하여 Dart 언어로 작성된 소스 코드를 컴퓨터가 실행할 수 있는 형태로 변환하는 과정  이 과정에는 코드의 어휘 및 구문 분석, 의미 검증, 중간 표현 생성, 코드 최적화, 그리고 최종 실행 코드 생성이 포함 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ컴파일은 프로그래밍 언어로 작성된 코드(소스 코드)를 컴퓨터가 실행할 수 있는 형태로 변환하는 과정입니다.컴파일의 핵심 개념:변환 과정: 사람이 읽을 수 있는 코드 → 기계가 실행할 수 있는 코드컴파일러의 역할:소스 코드 구문 분석오류 검사최적화기계어 또는 중간 코드로 변환컴파일 유형:JIT(Just-In-Time): 프로그램 실행 중에 필요한 부분만 컴파일 (개발 모드에서 주로 사용)AOT(Ahead-Of-Time): 실행..

코딩/개념 2025.04.12

핫리로드,핫리스타트,일반 빌드의 차이점

일반빌드는 앱을 다시 까는거고핫 리스타트는 앱을 껐다 켜는거고핫 리로드는 ui만 변경하는거다. 일반빌드는 네이티브 코드, 다트코드 까지 빌드핫 리스타트는 다트코드만 다시 빌드핫 리로드는 ui, 위젯트리만 변경 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ핫리로드(Hot Reload):코드 변경 시 앱을 다시 시작하지 않고 변경사항을 즉시 반영합니다앱의 상태를 유지하면서 UI만 업데이트됩니다위젯 트리만 다시 빌드하므로 매우 빠릅니다모든 변경사항이 적용되지는 않습니다 (상태 관련 변경은 적용되지 않을 수 있음)핫리스타트(Hot Restart):앱을 다시 시작하지만 빌드 과정은 건너뜁니다앱의 상태는 초기화되지만 컴파일된 코드를 재사용합니다핫리로드보다 느리지만 일반 빌드보다 빠릅니다모든 코드 변경사항이 적용됩니다일반 빌드(Co..

코딩/개념 2025.04.12

앱의 생명주기

생명주기는 객체와 위젯의 싸이클이고, 이를 사용하는 이유는 메모리 관리와,초기화로 수행할 시점 알기, 불필요한 작업 중지,가 있다는거다+상태보존 이유도 있다. 앱에서 폼작성하다 전화와서 받고 백그라운드에 있다가 다시 오면폼 작성한거 다 없어질 수 있다. 그런 상태를 보존하기 위해 앱의 생명주기에서 메서드 저장하고 호출하도록 한다는데 정확히는 모르겠다.https://ayoung0073.tistory.com/entry/flutter-app-lifecycle   ㅡㅡㅡㅡㅡ 생명주기(lifecycle)는 객체와 위젯의 탄생부터 소멸까지의 전체 사이클을 의미하며, 주요 사용 이유는 다음과 같습니다:메모리/자원 관리:더 이상 필요하지 않은 자원(메모리, 파일 핸들, 데이터베이스 연결 등)을 적절히 해제메모리 누수 ..

코딩/개념 2025.04.12

아키텍처란?- mvc,mvvm,클린아키텍쳐

ui,model,등의 폴더를 어떻게 나눌지 등으로 짜는 전체적인 계획ㅡㅡㅡㅡ 아키텍처 패턴 쉽게 이해하기아키텍처 패턴은 집을 짓는 설계도와 비슷합니다. 집을 지을 때 어떤 방식으로 지을지 결정하는 큰 그림이라고 생각하면 됩니다.아키텍처 패턴이란?아키텍처 패턴은 앱을 만들 때 코드를 어떻게 구성할지에 대한 전체적인 계획입니다. 쉽게 말해:앱의 주요 부분들을 어떻게 나눌지각 부분이 어떤 역할을 할지부분들이 어떻게 서로 소통할지를 정하는 규칙과 같습니다. 주요 아키텍처 패턴 비교1. MVC (Model-View-Controller)가장 기본적인 패턴으로, 3가지 역할로 나눕니다:모델(Model): 데이터와 비즈니스 규칙 (레스토랑의 요리법과 재료)뷰(View): 화면에 보이는 부분 (손님이 보는 메뉴판과 음식..

코딩/개념 2025.04.12

블럭에서 스트림기반, 단방향처리에 관해서

블럭이 단방향처리를 하고 그걸 구현하는 도구가 스트림이라는거다 단방향처리는 아키텍처 패턴이고 데이터 전달할때 스트림이라는 통로를 쓴다. ㅡㅡㅡㅡㅡㅡBLoC이 스트림 기반이라는 것의 의미를 간단히 설명하겠습니다.스트림 기반의 의미스트림은 데이터가 시간에 따라 연속적으로 흘러가는 통로입니다. 마치 물이 파이프를 통해 흐르는 것처럼 데이터가 한쪽에서 다른 쪽으로 흐릅니다.BLoC이 스트림 기반이라는 것은:데이터 전달 방식: BLoC은 데이터를 전달할 때 스트림이라는 통로를 사용합니다UI에서 발생한 이벤트(버튼 클릭 등)가 하나의 스트림을 통해 BLoC으로 들어감BLoC이 처리한 결과(새 상태)가 또 다른 스트림을 통해 UI로 나감흐름 추적 용이성: 물이 파이프를 통해 흐르는 것처럼, 데이터 흐름을 명확하게 볼..

코딩/개념 2025.04.12

프로바이더 보다 블럭을 쓰는 이유

1.비즈니스 로직과 UI를 엄격하게 분리한다 . 프로바이더 쓸때는 닉네임 변화 할때 닉네임 글자 변경하면서  변화하는 로직도 던져주니가끔 순서때문에 이름에 널값뜨거나 그랬는데, (타이밍 이슈)블럭 쓰면 ui 변화 따로 시키고 로직도 따로 변화 시켜주니 널 값 뜰 확률이 줄어든다 (순차적으로 처리)그리고 어디가 문제인지 정확히 짚어서 수정할 수 있다. 2. 단방향 통신프로바이더 쓸때는 닉네임 변화 시킬때 ChangeNotifier에서 직접 상태 변경 메서드를 호출해서서로 호출하다 무한 루프가 걸릴 때가 있었다.(ChangeNotifier를 통해 어디서든 상태를 변경할 수 있어 순환 의존성이 발생할 리스크가 있다.)하지만 블럭 쓸때는 UI에서 이벤트 발생 → BLoC이 이벤트 수신 → BLoC이 상태 변경 ..

코딩/개념 2025.04.12
728x90