DDD + Hexagonal Architecture(WITH 글로벌 프로젝트)

Intro 이번에 글로벌 프로젝트를 하면서 안정적이고 튼튼하면서도 유연한 애플리케이션을 만들고 싶어 설계에 대해 공부를 많이 하게되었습니다. 그 중에 제가 알게된 ** 육각형 설계(Hexagonal Architecture) **에 대해 설명하는 글을 작성하도록 하겠습니다. 이 글의 가장 중요한 내용은 “육각형 아키텍처가 Silver-bullet 패턴이다"라는 것을 말하기 위함이 아닙니다. [출처: 헥사고날(Hexagonal) 아키텍처 in 메쉬코리아] 그림을 통해 간단히 살펴보면 고수준의 비지니스 로직을 표현하는 내부 영역과 인터페이스 처리를 담당하는 저수준의 외부 영역으로 나눠집니다. ...

2022-02-11 09:18 · 10 분 · 1929 단어 · 신승혁

안드로이드 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 단어 · 이상익

유지보수 개선 프로젝트 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 단어 · 남나현

판매처 API 추가 프로젝트 리뷰

윤혁 처음 프로젝트를 시작했을때는 걱정 반 기대 반이였습니다. 과연 둘이서 2개의 판매처를 추가할 수 있을지의 걱정과 처음해보는 판매처 추가여서 기대되는 그럼 느낌이였습니다. 최초 기획은 신세계와 CJ 두 개의 판매처를 추가할 예정이였지만 CJ의 문제로 인해서 11번가로 대체되었습니다. 프로젝트가 시작하고 처음엔 기존에 작성된 코드들이 있어서 구현하는 부분은 크게 문제가 되지 않았지만, 각 판매처마다 특성도 다르고 기존 코드도 구현한 사람마다 구조가 달라서 저희는 최대한 객체지향적으로 설계를 하고 코드도 최대한 간결하고 보기 좋게 작성을 하려고 노력했습니다. 하지만 코드를 구현하면 구현할수록 각 판매처마다 예외적인 상황이 많아지고 시간도 촉박해서 점점 코드는 처음 의도와는 다르게 작성되기 시작했습니다. 프로젝트의 끝으로 가면 갈수록 일단 기능이 동작되는게 우선이 되는 상황도 벌어졌습니다. 시간이 좀만 더 충분했다면 코드도 기능도 더 완벽하게 구현할 수 있었는데 그 부분은 좀 아쉽습니다. 그래도 프로젝트를 진행하면서 승혁님과 어떻게 하면 코드를 더 잘 짤수 있는지 어떻게하면 더 객체지향적으로 설계를 할 수 있는지 논의를 하면서 개발적 실력은 한층 높아진것 같습니다. 또한 프로젝트를 진행하면서 객체지향적 설계가 왜 중요한지 다시 한번 깨닫게 되는 시간이였습니다. 승혁님께는 저도 판매처 추가가 처음이라서 많이 알려드리지 못해서 죄송하고, 그래도 프로젝트가 잘 진행될 수 있게 최선을 다해주셔서 감사합니다. 다음에도 프로젝트를 같이 진행하게 된다면 더 잘해봐요. 2주동안 수고많으셨습니다~! ...

2021-10-18 17:34 · 2 분 · 300 단어 · 서윤혁, 신승혁

바코드 설정 프로젝트 리뷰

기존에 사용하던 바코드 환경설정 V2에서 상세 요소조작이 어려웠다. 요소를 미세하게 움직이기 위해서는 정밀한 마우스의 움직임이 필요했다. 이것을 해결하기위해 확대, 축소 기능을 추가하여 요소들이 마우스의 정밀한 움직임이 없더라도 쉽게 맞출 수 있게 추가 하였다. 또한, 바코드를 출력하였을 때, 상품명, 옵션명을 보고 찾기에는 한계가 있었다. 이로 인해 바코드에 상품이미지를 추가하여 보다 쉽게 상품을 찾을 수 있도록 하였다. 템플릿을 관리화면을 분리하여 새로운 화면을 구성하였다. 또한 새로운 기능인 복제기능을 추가하여 기존 템플릿을 복사할 수 있는 기능을 추가하였다. ...

2021-10-18 15:36 · 2 분 · 405 단어 · 이상익