안드로이드 RFID 프로젝트 적용기

셀메이트 안드로이드?? 셀메이트에서 안드로이드가 있다는걸 아시지만, 코드나 기술스택에 대해 잘 모르시는 분들이 많을거 같습니다. 우리 셀메이트 안드로이드는요. Kotlin으로된 네이티브 앱입니다! 디자인 패턴은 MVP패턴으로 작성이되어있습니다. 대부분의 구성된 패턴이나 라이브러리들은 OkHttp3 기반 Retrofit RestfulAPI를 사용을 하고, Dagger2를 사용하여 의존성 주입을, RxKotlin을 사용하여 함수형으로 작성되어 있습니다 Kotlin(언어) + MVP(Architecture) + Retrofit Restful(API) + RxKotlin(함수형) + Dagger2(의존성 관리) RFID…? RFID는 대학교 졸업작품으로도 썻던 부품이라 매우 친근하게 사용할 수 있었지만 그때 당시엔,, 하드웨어가 주라서 C로 작성을 했었습니다.. ...

2022-01-21 17:05 · 2 분 · 284 단어 · 이상익

CI/CD 무중단 배포 POS Projcect 적용기

Inspiration 신승혁님께서 무중단 배포 관련하여 리서치한 내용에서 영감을 받아 실제 포스 웹 프로젝트에 적용해본 작업을 정리해보았습니다. 승혁님 감사합니다. 역시 내 멘티 승혁님의 원글은 아래 링크에서 확인가능합니다. CI/CD 무중단 배포 (with jenkins,docker,nginx) 오타 / 의견 환영합니다! 댓글이나 DM으로 알려주세요! docker-compose 로 blue/green 구성하기 현재의 POS 프로젝트 서버는 Nginx + Php-fpm 도커 컨테이너 구성으로 되어 있습니다. Blue/Green 배포 전략을 위해서는 Blue/Green 역할의 Php-fpm 컨테이너가 필요했습니다. /docker/docker-compose.production.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 services: pos-php: image: gitlab.corp.sellmate.co.kr:5005/sellmate-pos/web-v2/web container_name: pos-php build: context: . dockerfile: docker/php.Dockerfile env_file: - .env working_dir: /var/www # volumes: 생략 pos-nginx: container_name: pos-nginx image: gitlab.corp.sellmate.co.kr:5005/sellmate-pos/web-v2/nginx # volumes: 생략 # ports: 생략 volumes: #생략 기존의 production 구성입니다. 실제로는 docker-compose.yml + docker-compose.production.yml의 조합으로 이루어지지만 설명을 위해 필요한 부분만 남겼습니다. 이 구성은 아래와 같이 변경되었습니다. ...

2022-01-20 09:10 · 8 분 · 1503 단어 · 박대웅

CI/CD 무중단 배포 (with jenkins,docker,nginx)

우클릭 후 새 탭에서 이미지 열기 클릭하면 큰 이미지로 볼수 있습니다. 도입 기존의 서버는 살려두면서 Blue/Green 배포전략을 사용해 무중단 배포를 구현했습니다. 원래 쿠버네티스를 통해 구현할까 했었는데 관리형 쿠버네티스를 사용하는게 아닌 이상 신경써야 할게 너무도 많은 쿠버네티스의 압도적인 러닝커브에 일단은 추후로 미루어 두었습니다. 현재는 DB는 연결하지 않았지만 다음 글에서는 RDS를 연결하는 것까지 해볼 예정입니다. 간략한 흐름은 다음과 같습니다. main 브랜치에 변동이 있으면 github가 webhook을 통해 젠킨스를 호출 호출된 젠킨스는 main 브랜치를 가져와 빌드 ...

2022-01-10 09:32 · 9 분 · 1726 단어 · 신승혁

유투브 채널 추천

블로그가 개설되어 포스팅을 한번 해볼 겸해서 평소 도움이 되었던 유투브 채널을 추천합니다. 구독자 39만명으로 개발자 채널치고 구독자수가 많아서 이미 알고 계시는 분들도 있으시겠지만 최근 이슈들을 다루기도 하고 딱딱해 보이는 내용을 나름 재미있게 설명해주는 채널이라서 한번쯤 보시면 좋을것 같습니다. 노마드코더 채널바로가기

2022-01-06 09:18 · 1 분 · 40 단어 · 박대웅

유지보수 개선 프로젝트 2차

김우영 이번 셀메이트 유지보수 개선 일감 프로젝트는 대부분 셀메이트 레거시 프로젝트를 개선하는 것으로 다른 프로젝트와는 다르게 Classic Asp를 중심으로 개발을 하였습니다. Classic Asp 특성상 지원이 부족한 점이 많지만 현재 작성된 코드에도 문제가 되는 부분이 많이 발견되었습니다. 우선 모든 것을 한번에 다 수정할 수 없는 상황이므로 이번 유지 보수 프로젝트에 포함된 개선 일감에 대해서는 작업을 하면서 불필요 코드 제거, 구조 변경 등을 진행하여 전체적인 레거시 코드를 봤을 때는 영향이 가진 않겠지만 사소한 부분이라도 개선을 하였습니다. ...

2022-01-06 08:54 · 2 분 · 218 단어 · 김우영, 서윤혁

글로벌 3차 프로젝트 리뷰

셀메이트 글로벌 프로젝트는 셀메이트에서 신규로 진행하는 해외 쇼핑몰 솔루션입니다. 처음에는 해외 쪽에 대한 지식은 해외특송으로만 학습한 지식이 전부였고 해외 쪽에 대한 지식이 별로 없는 상태로 오르지 새로운 프레임워크와 새로운 구조로 개발을 진행하고 있는 프로젝트여서 선택을 하였습니다. 현재 글로벌 프로젝트는 3차까지 진행이 완료되었고 1차, 2차에는 기본 구조 및 마켓 자동연동이 개발되었고 3차에는 수동 주문입력 개발이 완료되었습니다. 수동 주문입력 개발을 하면서 기본 구조에 맞지 않은 설계를 하여 다시 처음부터 구조를 잡는 등 많은 시행착오를 겪었고 이로 인해 앞으로는 구조 설계에 대해서 많은 공부와 고민이 필요하다는 생각을 했습니다. ...

2021-12-20 09:32 · 1 분 · 103 단어 · 김우영

다시 돌아온 주문서 열 설정 3차(feat. 엑셀 다운로드 어디까지 해봤니)

셀메이트와 엑셀의 상관관계 셀메이트에서 개발을 하다보면 셀메이트의 ‘셀’이 ‘셀러’를 의미하기도 하지만 ‘엑셀’도 포함하는 게 아닌가 싶을 정도로 엑셀 파일을 자주 접하게 된다. 업체에서 셀메이트에 데이터를 저장, 수정할 때 주로 사용하는 양식이 엑셀 형태이기 때문이다. 이전 프로젝트에서 엑셀 열 설정 개선을 하며 ‘한동안 엑셀이나 열 같은 단어 그만 보고 싶다’고 생각했는데, 어림 없지! 다시 돌아온 주문서 열 설정 3차! 이번 프로젝트에서 내가 맡은 업무 중 하나는 업체가 엑셀 파일을 업로드한 후 제목행을 선택하면 해당 행의 내용을 주문서 항목으로 넣을 수 있도록 구축하는 것이다. 말로 설명하려니 어렵다. 백문이불여일견이라고 밑에서 사진과 함께 보는 편이 낫겠다. ...

2021-12-17 18:42 · 4 분 · 711 단어 · 김지은

주문서열설정 3차 프로젝트

프로젝트에 관하여 주문서 열설정은 내부 개발자나, 내부운영팀 일부에서만 이해하고 설정할 수 있는 부분을 고객이 직접 또는 운영팀이 개발자를 통하지 않고도 편하게 수정 할 수 있도록 개선 하는 프로젝트다. 2차 3차 프로젝트에서는 템플릿의 구분 및 수동, 자동의 파편화된 데이터 정렬, UI개선의 위주로 진행됬다. 이번 3차에서는 2차에 구현되어있던 API를 가지고 프론트엔드 테스트와 데이터 마이그레이션 및 데이터 유효성검사를 진행을 하였다. 판매처리스트 페이지 템플릿 데이터 수정 페이지 JSON 마침표 전쟁 데이터의 특이점 셀메이트의 개발자면 한번정도 보는 포팅열설정의 데이터는 한 칼럼 안에 String 형태의 JSON 으로 저장되어있다. ...

2021-12-17 09:18 · 2 분 · 290 단어 · 이상익

셀메이트 API 개선 프로젝트 리뷰

서윤혁 저는 프로젝트를 선택할 때 최대한 안해봤던거를 선택하는데, 이번에는 제목이 셀메이트 API이여서 우리 회사 자체 API가 있었나 궁금해서 이번 프로젝트를 선택하게 되었습니다. 그런데 알고보니 기존에 사용해왔던 Common API가 셀메이트 API였습니다. 평소에도 코드를 좀 봐왔던지라 크게 프로젝트를 진행하면서 어려웠던 점은 없었고, 무난하게 진행이 되었습니다. 그렇게 프로젝트가 잘 마무리 되는가 싶었는데 코드리뷰를 받고 나니 내가 Common API의 기존 설계를 무시한채 코드를 작성해왔다는 것을 알게되었고, 코드를 고치면서 Common API의 구조와 설계 컨셉에 대해서 알게되었습니다. 그 후 코드를 프로젝트 구조와 설계에 맞게 수정하였습니다. 이번 프로젝트를 통해서 Common API를 더 잘알게 되어서 좋았고, 앞으로 Common API와 관련된 프로젝트를 하게 되면 더 잘할 수 있을거 같습니다. 여러모로 배울점도 많았고, 재밌는 프로젝트였습니다. ...

2021-12-16 07:36 · 2 분 · 366 단어 · 서윤혁, 양선경

멀티로케이션 1차 기능 개선 리뷰

멀티로케이션 프로젝트 선택 전부터 멀티로케이션 개념이 이해하기 쉽지 않으며구현이 어렵게 되어 있다는 이야기를 셀메이트 다니며 많이 들었던지라 프로젝트를 선정하는 과정에서 쉽지 않은 프로젝트가 되겠다는 생각하고 프로젝트 시작을 하였습니다. 프로젝트 킥오프를 들어간 후 작업해야 하는 일감이 많아 기간 안에 끝낼 수 있을까 걱정도 많이 하였지만, 프로젝트 팀원이 적극적으로 나서 문제해결을 위해 자신의 개인적인 시간을 투자하면서까지 기능 개선에 힘써주어 무사히 프로젝트를 잘 마쳤던 거 같습니다. 프로젝트를 진행하면서 들었던 생각은 멀티로케이션이라는 개념 자체를 제가 기존에 너무 어렵게 생각하고 겁을 하고 있었다는 생각이 들었고 일감 하나하나 작업하다 보니 멀티로케이션 개념이 점차 잡혀가며, 개념을 이해하면서 코스트코의 이미지를 많이 떠올리며 작업했던 것이 도움이 많이 되었습니다. 하지만 제가 이해했던 멀티로케이션의 개념과 셀메이트 DB 구조에서 사용하는 멀티로케이션에 차이가 있어 중간중간 개념에 혼동이 오긴 했지만, 개념을 셀메이트 DB에 녹여 사용하기 위해서 어떻게 설계가 됐는지 차츰 이해됐습니다. ...

2021-10-18 17:36 · 2 분 · 291 단어 · 남나현