이직과 새로운 경험

recordsbeat·2020년 9월 11일
0
post-thumbnail

글을 굉장히 오랜만에 올리게 되었다.
그 이유는 7월부로 모 이커머스 회사에 입사하게 되어
적응 기간을 거치느라 잠깐 뜸해졌다.

이렇다 할 개발 경험 없던 내가 이 회사에서 업무를 시작하게 된지
약 2개월, 내가 새로 경험하게 된 것은 다음과 같다.

1. 맥북 사용

  • 한영키 바꾸는 법만 알고 제대로 써본 적이 없었다. 맥북에서 쓰는 intellij는 카오스 그 자체였다. 특히 자동완성, 추천 단축키를 몰라 한동안 애먹었다.
    개인 컴퓨터는 모두 윈도우여서 한/영 전환과 commend , ctrl 단축키 실수를 엄청나게 하는 중이다.

2. git 사용법

  • 제대로 co-work 해본적 없었다. 그래서 git도 그냥 클라우드 저장소로만 사용하고 간단한 ci/cd 구축의 일환으로 사용했다. (이전에 github + travisCI + codeDepoly 를 사용했던..)
    입사 후 git flow에 입각한 당사의 git 전략을 습득하게 되었고 기능에 따른 이력 / 형상 관리를 자연스럽게 이해하게 되었다. (rebase, squash, cherrypick 등등)
    또 하나 . CI 툴이 branch의 명을 따라 hook하고 해당 브랜치들은 각각의 역할에 맞는 서버에 배포되는 등 branch 네이밍에 따른 역할도 알게 됨

3. 이슈관리 툴 (jira)

  • 이건 2번과도 연관된 이야기다. 맨날 셀프로 개발 계획 세우고 문제점 발견해서 그냥저냥 소스 뭉등그려 커밋한 경우가 많았다.
    때문에 내가 무슨작업을 했는지도 모르고 기능의 목적이 불분명해지는 경우가 많았다.
    jira를 사용하면서 기획자 및 프론트 담당분들과 co-work을 진행하였고 문서를 토대로 개발을 진행하였다.
    또한 jira에서 나오는 이슈 유형에 따라 branch 명칭 전략 - ex) feature, bugfix, hotfix 을 세울 수 있어, branch의 상황을 통해 해당 이슈의 진행사항을 파악할 수 있었다.

4. master/slave 구조와 다중 트랜잭션

  • 소규모의 서비스를 진행하다보면 데이터베이스는 무조건 하나.
    때문에 트랜잭션도 하나의 RDB를 보고 진행이 된다.
    그러나 내가 속한 팀에서 사용되는(혹은 당사의 모든) RDB는 master/slave구조로 이루어져 있으며 기본적으로 master에는 CUD / slave에는 read 행위가 이루어진다. 위 행위는 AOP 등을 사용하여 datasource Routing과 같은 행위를 통해 목적에 맞는 데이터베이스 소스로 리다이렉트 시켜준다.

  • MSA환경 특성상 하나의 DB에 모든 데이터를 저장할 수 없다. 데이터 카테고리에 따라 각기 다른 스토리지에 적재되어있고 서로 다른 데이터베이스에 있는 값들을 따로 read 하여 was에서 조합하는 경우와 각각의 데이터베이스에 데이터를 CUD하는 경우가 종종 있었다.
    두 개의 데이터베이스에 트랜잭션이 발생하기 때문에 이를 was에서 하나로 취급해줘야하는 일이 발생했다. 아직 정확히 아는 주제가 아니기 때문에 키워드만 적고 넘어간다. Atomikos, XA, JTA, Chaind ...

이것 외에도 성능측정(Jmeter), RxJava(WebFlux), JVM 과 JMX 등 여러가지 주제가 떠오르는데 시간 관계상 일단 여기까지만 정리해본다.

공부합시다.. ㅜㅜ!

profile
Beyond the same routine

0개의 댓글