셀메이트 개발그룹의 기술블로그 입니다.

개발그룹 구성원 누구나 자유롭게 작성 가능합니다.

속주로가자~ deep 한 Dart 성능 비교

개발자라면 피할 수 없는 성능 고민 개발을 할때 가끔 성능에 대해 고민할때가 가끔 있습니다. 예를 들면 미묘한 차이지만 for~in 을 쓸지, index를 이용하여 loop를 할지.. 가끔 이런 고민에 빠집니다. 아니면 LinkedHashSet을 쓰는게 좋을지, HashSet을 쓰는게 좋을지도 있겠네요. 결과적으로는 제공하는 메서드들은 비슷할텐데 말이죠.? 목표 오늘은 다트에서 제공하는 성능 프로파일러를 사용해서 각 유사 반복문들을 비교하며 성능측정을 해보려고 해요. 또한 어떤 컬렉션이 좀더 성능에 기여할 수 있는 컬렉션인지 찾아보려고 해요. ...

2024-08-29 14:41 · 8 분 · 1523 단어 · 이상익

RestAPI

셀메이트의 API 대부분은 REST 를 기반으로 설계되고 만들어지고 있습니다. 그렇다면 REST 가 무엇이고 REST API 또는 RESTful API 라고 부를수 있는 설계 원칙과 특징에 대하여 이번 컨퍼런스를 통하여 발표를 진행 하였습니다. REST? REST는 REpresentational State Transfer 의 약자로, 분산 하이퍼미디어 시스템(ex. web)을 위한 소프트웨어 프로그래밍 아키텍처 스타일입니다. REST라는 개념은 Roy T.Fielding이 자신의 박사학위 논문에서 처음 소개하였으며, 기본적으로 HTTP 프로토콜을 더욱 잘 활용할 수 있도록 만들어진 아키텍처 스타일입니다. REST의 일반적인 오해 REST API 에 대하여 정의를 검색해보면 많은 자료들에서 REST를 아래와 같이 정의하고 있습니다. ...

2024-07-30 08:19 · 4 분 · 778 단어 · 조성배

Init 테스트코드

본 내용은 셀메이트 개발자 컨퍼런스 D² 에서 발표된 내용을 조금 각색하여 구성하였습니다. 안녕하세요. 셀메이트 상품개발팀에서 벡엔드 직무를 맡고 있는 최성욱입니다. 상품개발팀은 많고 다양한 판매처에서 주문을 수집하고 정제하여 저장합니다. 수십개의 많은 판매처를 다루는 만큼 에외처리가 복잡하고 다양한데요. 때문에 로직을 수정할 경우 높은 집중력이 요구됩니다. 하지만 신중히 작업을 진행하더라도 사람인 만큼 작업 중 실수가 나오는 경우가 종종 있습니다. 주문수집은 고객의 업무와 직결되는 만큼 작은 실수가 치명적일 수 있는데요. 이에 작업자의 실수가 일어났을 경우 미리 파악하고 방어할 수 있는 시스템이 필요합니다. ...

2024-07-21 12:38 · 15 분 · 3165 단어 · 최성욱

Refactoring

이번 컨퍼런스에서 Refactoring 이란 주제를 통해 설계와 소프트웨어의 가치에 대해 이야기 해 보는 세션을 진행했습니다. 사실 제가 해당 세션을 통해 전달하고자 한 것은 리팩토링 자체 보다는 이 주제를 매개로 소프트웨어와 개발에 대한 이야기를 하고 싶었습니다. 본 포스트를 통해서 해당 내용을 다시한번 정리 해 보도록 하겠습니다. 리팩토링(Refactoring) 이란? 개발 직무를 수행하는 분 중에 리팩토링이라는 용어를 처음 접하는 분은 아마도 찾기 힘들정도로 보편적으로 알려진 개념중에 하나일 것입니다. 하지만 세션 중 질문을 통해 볼 수 있었듯이 여러분 각자가 생각하는 리팩토링의 정의나 리팩토링이라는 용어가 주는 무게감이 다를 수 있을거라 생각합니다. 마틴 파울러Martin Fowler가 이와 관련 된 주제를 Refactoring 이라는 제목의 책으로 출간하기 전 까지는 리팩토링에 대한 시도와 연구가 활발히 이루어지던 스몰토크Smaltalk 커뮤니티에서도 이해의 차이가 많이 있었습니다. ...

2024-07-20 06:00 · 7 분 · 1413 단어 · 박은준

SPA와 SSR 그리고 브라우저의 동작원리

📖 개요 SPA와 SSR, 그리고 브라우저 동작 원리에 대해 알아보겠습니다. 이전 사내 개발자 컨퍼런스에서, SPA와 SSR, 그리고 브라우저 동작 원리에 대한 내용을 주제로 발표를 하게 되었는데 아무래도 다른 분야에서는 크게 중요하지 않은 내용이지만 결국엔 우리가 개발하는 모든 과정이 서로 긴밀하게 연결되어 있고 그 과정에서 다른 직군의 기술이나 정보를 얻게 되면 각자의 역할을 이해하며 더 좋은 결과를 만들어낼 수 있다고 생각합니다 앞으로도 이런 기초적인 원리들을 잘 이해하고, 최신 기술들을 적극적으로 도입하여 더 나은 제품을 만들기 위해 노력하면 좋겠습니다. ...

2024-07-19 15:56 · 6 분 · 1130 단어 · 정태환

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을 호출 하여 렌더링 하고 하드웨어 서비스에 접근 하는것을 볼 수 있습니다 ...

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 제공 ...

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