(+) Data Layer - Network

๊ฐ•์˜์—์„œ๋Š” retrofitarrow-up-right์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, dio ๊ฐ€ ๋” ์ธ๊ธฐ ์žˆ๊ณ  ๋ณดํŽธ์ ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๊ณ  ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ์ค€์œผ๋กœ ์„ค์ •ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•œ๋‹ค.

ํŒจํ‚ค์ง€ ๊ตฌ์„ฑ ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ณธ Network

ํ•˜๋‚˜์˜ ์•ฑ์—์„œ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•  ์ผ์ด ํ”ํ•˜๊ณ , ์ด ๋•Œ ๊ฐ ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์„ ์ฑ…์ž„์ง€๋Š” ํด๋ผ์ด์–ธํŠธ๋„ ๊ตฌ๋ถ„์„ ํ•ด๋‘๋Š” ๊ฒƒ์ด ์ฝ”๋“œ ํ™•์žฅ์„ฑ์ด๋‚˜ ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ์œ ๋ฆฌํ•˜๋‹ค.

๊ทธ๋ ‡์ง€๋งŒ ํ•œํŽธ์œผ๋กœ๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•œ๋‹ค๊ณ  ํ•ด๋„ ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ€์ ธ์•ผํ•  ์—ญํ•  ๋ฐ ํ˜•ํƒœ๊ฐ€ ์žˆ์„ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ๊ณ ๋ คํ•ด์„œ base_http_client ์„ ๋ถ„๋ฆฌํ•ด๋‘์—ˆ๊ณ  ๊ฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด๋ฅผ ์ƒ์†ํ•ด์„œ ๊ตฌํ˜„ํ•˜๋„๋ก ์ฒ˜๋ฆฌํ–ˆ๋‹ค.

interceptor ๋„ ์šฉ๋„๋ณ„๋กœ ์ตœ๋Œ€ํ•œ ๋ถ„๋ฆฌํ•ด์„œ ๋”ฐ๋กœ ๊ตฌํ˜„์„ ํ•˜์—ฌ ํ•„์š”ํ•œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์•Œ์•„์„œ ๊ฐ€์ ธ๊ฐ€์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์ฒ˜๋ฆฌํ–ˆ๋‹ค.

Network ๊ตฌํ˜„

import 'package:dio/dio.dart';

abstract class BaseHttpClient with DioMixin implements Dio {
  final String clientBaseUrl;
  final List<Interceptor> customInterceptors;
  BaseOptions? customOptions;

  BaseHttpClient({
    required this.clientBaseUrl,
    required this.customInterceptors,
    this.customOptions,
  }) {
    if (customOptions != null) {
      options = customOptions!;
    }
    options.baseUrl = clientBaseUrl;
    // options.connectTimeout = Duration(seconds: 5);
    // options.receiveTimeout = Duration(seconds: 3);
    interceptors.add(LogInterceptor(requestBody: true, responseBody: true));
    interceptors.addAll(customInterceptors);
  }
}

์—ฌ๊ธฐ์„œ device ์ •๋ณด์™€ package ์ •๋ณด๋ฅผ ์ฝ๋Š”๋ฐ ์‚ฌ์šฉ๋œ ํŒจํ‚ค์ง€๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

์œ„ ์ฝ”๋“œ์ƒ์— ๊ตฌํ˜„๋œ AccessManager ๋Š” data ๋ ˆ์ด์–ด๋ณด๋‹ค๋Š” application ๋ ˆ์ด์–ด์— ์†ํ•˜๋Š”๊ฒŒ ๋งž๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ผ๋‹จ์€ application layer ์— ๊ตฌํ˜„ํ•ด๋‘์—ˆ๊ณ  ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. shared_preferencesarrow-up-right ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

Last updated