Flutter Multi Platform

Flutter 란? Flutter는 구글에서 2017년도에 발표한 dart 언어를 기반으로 한 오픈소스 크로스 플랫폼 GUI 프레임 워크입니다. 지원 플랫폼은 Android, IOS, Mac OS, Window, Linux, Web이 있습니다. 이번 주제에서는 Flutter가 어떻게 Multi Platform 을 지원하는가 에 대해 알아보겠습니다. 다양한 Multi Platform 지원 방법론 Native App 작성한 코드를 통해 직접적으로 Platform OEM Widget을 호출 하여 렌더링 하고 하드웨어 서비스에 접근 하는것을 볼 수 있습니다 Hybrid App UI렌더링은 Js를 이용해 WebView를 통해서 진행하고 Platform service는 Bridge를 통해 접근 합니다. ...

2024-07-19 10:02 · 4 분 · 797 단어 · 송기수

Sellmate Network Infrastructure

📖 개요 셀메이트의 네트워크는 어떻게 구성이 되어 있을까요? 처음으로 진행한 사내 개발자 컨퍼런스에서, 사내 네트워크 구조 및 특징에 대한 내용을 주제로 발표를 하게 되었습니다. 발표 주제에 관해서, 어떤 내용이 개발자분들에게 도움이 될까를 많이 고민하다가, 사내 네트워크의 특징적인 부분에 대한 개론적인 발표를 진행하였는데, 교육이 끝난 후, 이런 내용이 꼭 필요했었던 거 같고 도움이 많이 되었다는 피드백을 받아서 뿌듯했던 시간이었는데요. 이번 발표 내용을 간단히 정리해보았습니다. 🏷️ IP 통신을 하기위해서는 IP가 필요하겠지요? 출발지와 목적지를 식별할 수 있어야, 데이터도 주고 받고, 요청과 응답도 주고 받을 수 있을 것입니다. IP는 외부 네트워크에서 사용되는 공인IP가 있고, 내부 네트워크에서 사용되는 사설IP가 있습니다. ...

2024-07-16 15:32 · 6 분 · 1105 단어 · 황인우

도커에게 한 발자국 다가가기(for Mobile Team)

본 내용은 셀메미트 상품개발 모바일팀에서 진행한 세미나입니다. Docker에 대해 아주아주! 간단하게 알아보면서 친해지는 시간을 가져보겠습니다. 장황하게 설명하면 머리가 아파서 도망가실 수 있으니 최대한 간단하고 짧게 하겠습니다. 🧐 클라이언트 개발자도 도커를 알아야하는 이유 내가 만든 애플리케이션, 테스트 또는 실사용을 위한 배포를 하려고 하는데 배포 방법을 모른다고요??? 완벽한(?) 애플리케이션을 만들었지만, 세상에 나올 수 없다면 무슨 소용일까요? 따라서 개발자, 클라이언트 개발자라도 배포 전략에 대해 알고 있어야 합니다. 특히 Docker는 배포 전략에서 컨테이너 기술이 주목받으면서 보편적으로 사용하는 오픈 소스 프로젝트입니다. ...

2024-06-27 15:17 · 3 분 · 557 단어 · 장지은

Dependency Injection with “GetIt” .aka DI

Dependency Injection Dependency Injection 이하 DI는 코드 간의 결합도를 낮추고 유연성을 높이는 디자인 패턴 중 하나이다. DI는 외부에서 객체간의 의존성을 결정해준다. 즉, 객체를 직접 생성하는것이 아닌 외부에서 생성 후 주입시켜주는 방식이다. 장점/단점 장점 Unit Test 가 용이해진다. 코드의 재사용성 증가 객체간 의존성을 줄이거나 제거할 수 있음 단점 주입된 객체들의 코드 추적이 어려움. 러닝커브가 높음. 책임이 분리되는것을 지향하므로, 클래스수, 복잡성이 증가함. DI 방법 Construct Injecton (생성자 주입) ← 많이쓰이고 권장되는 방법 Field Injection (필드 주입) Setter Injection (세터 주입) 많이 쓰이는 방법은 생성자 주입 방법이고, 우리는 이 방법을 통하여 DI를 간단하게 알아보려한다. ...

2024-03-28 08:21 · 4 분 · 841 단어 · 이상익

API-First Approach with Protocol Buffers

API-First Approach with Protocol Buffers API 우선 방법이란 서버와 클라이언트 서비스를 개발하기 전에 API를 먼저 구상하는 방법이다. API-First Approach에 대해 (정말 정말 정말)간단하게 소개하려고 한다. 더 자세하게 알고 싶은 분들은 하단에 참조 문서들을 확인하면 좋을 것 같다. 장점 개발 속도 향상 서버와 클라이언트를 개발하는 팀이 각각 병렬적으로 일을 진행할 수 있다. 설정된 API 정의를 기반으로 구현하기 때문에 API가 업데이트, 릴리즈될 때까지 기다릴 필요가 없다. 안정적인 API 제공 API-First는 일관(강력한 종속성)되게 각 서비스에 제공함으로서 개발자 이슈로 인한 에러 발생이 줄어들 수 있다. 더 다양한 장점의 설명은 여기에 ...

2024-02-08 16:29 · 2 분 · 293 단어 · 장지은

Circuit Breaker 셀메이트 모바일 POS 적용기

Circuit Breaker 회로 차단기 회로 차단기는 전기 회로에서 과부하가 걸리거나 단락으로 인한 피해를 막기 위해 자동으로 회로를 정지시키는 장치이다. 과부하 차단기와 누전 차단기로 나뉜다. 퓨즈와 다른 점은, 차단기는 어느 정도 시간이 지난 뒤에는, 원래의 기능이 동작하도록 복귀된다. 회로 차단.. 아니 코드 차단기 Circuit Breaker는 거의 처음접하는분이 많을겁니다. Circuit Breaker의 주목적은 기능 모듈에서 장애가 나면 다른 모듈로 장애가 전파되는것을 막기위해서 사용합니다. 보통의 Circuit Breaker는 MSA 아키텍쳐에서 사용되는것으로 알고 있습니다. 셀메이트 모바일 포스에서는 외부 통신 API를 제어하기위해서 채택하여 적용해보았습니다. ...

2023-05-11 16:52 · 3 분 · 506 단어 · 이상익

FLUTTER BLOCK? BLOC!

BLOC 패턴 Bloc 패턴은 UI사이에서 이벤트 및 데이터를 수신하고 전달하는 비즈니스 로직 패턴입니다. 기본적으로 Reactive Programming을 기본으로 사용하여 이벤트 및 데이터의 흐름을 처리합니다. 이전에 포스팅했었던 RxKotlin 과 비슷한 RxDart를 사용합니다. Bloc은 UI객체들이 Bloc을 구독하고 있고 Bloc의 상태가 변경이되면 구독중인 UI객체들도 즉시 변경이됩니다. 위의 즉시변경을 위한 BLoC패턴의 중점인 데이터의 흐름은 Sinks와 Stream의 중심으로 구성이 되어있습니다. Widget들은 event를 Sinks를 통하여 BLoC에 송신. Widget들은 BLoC의 stream으로 알림을 받음. Let’s BLoC BloC을 구현하는 방법은 여러가지 방법이 있었습니다. ...

2022-07-14 09:10 · 3 분 · 548 단어 · 이상익

메모리 관리 in Python

출처 : https://realpython.com/python-memory-management/ Python이 뒤에서 데이터를 어떻게 처리하는지 궁금해 본 적이 있나요? 변수는 어떻게 메모리에 저장되나요? 언제 삭제되나요? 이 글에서는 Python이 메모리 관리를 어떻게 처리하는지 이해하기 위해 Python의 내부에 대해 자세히 알아보겠다. 이 글를 통해 다음과 같은 내용을 얻을 수 있다. 메모리와 관련된 로우 레벨 컴퓨팅에 대해 자세히 알아보기 Python이 하위 수준의 운영을 추상화하는 방법 이해 Python의 내부 메모리 관리 알고리즘에 대해 알아보기 또한 Python의 내부 정보를 이해하면 Python의 일부 동작에 대한 더 나은 통찰력을 얻을 수 있다. 파이썬에 대한 새로운 느낌을 얻길 바란다. 우리의 프로그램이 우리가 기대하는 대로 작동하도록 보장하기 위해 많은 연산이 뒤에서 일어나고 있다. 메모리는 빈 책이다 우리는 컴퓨터의 메모리를 단편 소설을 위한 빈 책으로 생각하는 것으로 시작할 수 있다. 아직 페이지에는 아무것도 쓰여 있지 않는다. 작가들이 글을 쓰기 시작 할 것이고 각 작가는 그들의 이야기를 쓸 수 있는 공간을 원한다. ...

2022-05-26 17:40 · 10 분 · 1992 단어 · 신승혁

파이썬에서 GIL이란 무엇일까?

파이썬 Global Interperter Lock(GIL)은 간단히 말해서 하나의 스레드만 파이썬 인터프리터의 제어를 유지할 수 있도록 하는 뮤텍스(또는 락)이다. 즉, 한 시점에 하나의 스레드만 실행 상태에 있을 수 있다. GIL의 영향은 단일 스레드 프로그램을 실행하는 개발자에게 보이지 않지만 CPU 바인딩 및 다중 스레드 코드에서 성능 병목 현상이 발생할 수 있다. GIL은 두 개 이상의 CPU 코어가 있는 멀티 스레드 아키텍처에서도 한 번에 하나의 스레드만 실행할 수 있기 때문에 파이썬의 인기 없는 기능으로 유명해졌다 ...

2022-05-26 15:05 · 7 분 · 1474 단어 · 신승혁

알쓸개잡 4탄 (NoSql)

SQL Sql(Structured Query Language)라는 단어는 자주 접하는 단어이지만 생각해보면 업무용어로는 생각보다 자주 써본 기억은 없는것 같습니다. MSSQL, MySQL등 특정 RDBMS의 이름을 부를때 외에는 말이죠. 의미상으로 ‘RDBMS에서 사용하는 언어’이므로 쿼리를 작성할때에 변수의 이름으로 자주 사용하기도 합니다. NoSQL? 그렇다면 NoSQL이라는건 뭘까요? 용어의 가장 강조되는 의미는 ‘SQL이 아닌것(Not only SQL)‘이라고 합니다. 다시말해 RDBMS가 아닌것은 모두 NoSQL입니다. 그래서 NoSQL이라고 통칭하는 DBMS들은 그들 내에서도 상이한 모습을 하고 있는데요 공통적인 특징으로는 유연한 설계 / 높은 수평 확장성이 있습니다. 이번에는 MongoDB를 훑어보면서 NoSQL이 어떻게 활용 될 수 있을지 알아보겠습니다. ...

2022-04-13 12:51 · 4 분 · 699 단어 · 박대웅