최근에 부쩍 모놀리틱 아키텍쳐에서 MSA 기반의 아키텍쳐로 마이그레이션하는 기업들을 자주 볼 수 있습니다. 이 때, 가장 중요한 것은 RDBMS를 사용하느냐 NoSQL 계열의 DBMS를 사용하느냐에 따라 이런 기준을 크게 구분할 수 있습니다. 그래서 이번 글에서는 MSA로 넘어가기 위해 어떤 과정들을 고민해보고, JPA를 사용하는 입장에서 어떻게 시도해봄직만 한지 구분을 지어보려고 합니다. 제 기준으로 위에서 얘기한 바와 같이 크게 2가지 부류로 나뉩니다. RDBMS(MySQL, Oracle, MSSQL, PostgreSQL 등) NoSQL(Redis, Cassandra, MongoDB 등) 여기서는 개발 환경이나 프레임워크, 언어에 따라 그 종류도 다양해질 수 있습니다. Java or Kotlin 계열..
이번에 소개드릴 글은 인프랩(inflab)이라고 하는 개발자와 IT테크 부분의 강의 플랫폼인 인프런의 연구소에서 올려주신 글입니다. 스타트업 특징 상 서버를 사내에 구축하는 것이 아닌 클라우드 환경에서 사용하는 곳이 정말 많은데요, 이유는 장비가 정말 고가이고 관리하는 것이 어렵기 때문입니다. 장비를 구매하더라도 일일히 세팅을 해주어야 하는 번거로움 및 네트워크를 관리하는데 시간이 엄청나게 소요되는 부분이 있습니다. 그렇기 때문에 대부분 스타트업은 장비를 구매하는 대신 아마존 웹 서비스 (AWS) 클라우드 플랫폼을 많이 사용하곤 하는데요, 여기에도 물론 비용이 발생합니다. 다만 어떻게 사용하느냐에 따라 효율적으로 비용을 관리하고 제어할 수 있게 되는 부분이 있죠. 아래의 글은 제가 지금까지 블로그를 보면..
안녕하세요. 오늘 가져온 글은 회사에 근무하면서 관리하는 본인 스스로의 에너지 관리 방법입니다. 뭔가 생소할 수도 있는데, 이 글을 읽고 나서는 공감이 가는 부분과 앞으로의 행동 요령 또는 마인드셋에서 조금씩 달라지는 것을 느끼는 부분이 있어서 가져와보게 되었습니다. 글을 읽고 계신 분들께서도 독후에 뭔가 다른 영감이나 느낌을 받으셨다면, 이 글은 충분한 가치가 있는 것이 아닐까 합니다. 이 글의 요지는 제가 생각한 바로는 '꾸준한 체력관리와 시간 분배를 의미하는 것이 비결이다.'이지 않을까 합니다. 원활한 체력 분배와 나에게 활력을 주는 시간을 잘 투자하고, 나에게 무리가 되지 않는 선에서 집 또는 학교, 회사에서 행동을 취하는 것이 미래의 내 활동이나 장기적인 요소들에서 긍정적인 부분으로 남는다는 것..
이번에 참고할 글은 Raycast라고 하는 생산성 앱에 관련된 내용입니다. 여기에는 보다 많은 내용과 더 심플하게 작성해주신 내용을 기반으로 제 맥북에서 세팅을 하기 전에 참고가 될만한 것들을 잘 기록해주셨는데, 다운로드 및 설치를 하기 전에 한번 확인해보면 좋겠습니다. https://velog.io/@wisepine/%EC%83%9D%EC%82%B0%EC%84%B1%EC%97%90-%EC%A7%84%EC%8B%AC%EC%9D%B8-%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-Raycast-%EC%84%B8%ED%8C%85-%EC%97%BF%EB%B3%B4%EA%B8%B0-for-macOS 생산성에 진심인 자의 Raycast 세팅 엿보기 (for macOS) Raycast는 키보드 ..
오늘은 읽어보던 아티클 중 이오에서 작성해 준 글을 가져와봤습니다. 글 내용이 너무 좋고 요새 스타트업에서 인재를 채용하는 시즌이기도 하여 저 그리고 다른 회사 인사담당자분들에게도 많은 도움이 되지 않을까 합니다. 글 링크는 하단에 기재해두고 저도 주기적으로 읽어보기 위해 글 본문의 내용을 적어두려 합니다 😄 이번주 마이프차 팀에 새로운 멤버가 합류한다. 아프리카 속담에 ‘한 아이를 키우는데 온 마을이 필요하다.’는 말이 있다. 이 표현을 스타트업에 적용하면 ‘새로 합류한 멤버가 (조직에) 적응하는데 온 회사가 필요하다.’로 바꿀 수 있겠다. 대기업은 신규 입사자를 위한 온보딩 프로그램이 촘촘하게 설계되어 있고, 조직 및 업무 체계가 견고하다. 신규 입사자가 적응하는 과정이 다소 서투르거나 핏이 맞이 않..
오늘은 짧게 리눅스 명령어를 사용하면서 단축어를 만들 수 있는 기능을 설명드리고자 합니다. 쉽게 사용하면 모든 키워드 내용 앞에 alias=를 붙여서 사용하면 됩니다. 간단히 예시를 들어서 설명해보겠습니다. /bin/sh ./deploy.sh 을 shd라는 명령어를 통해서 사용하고자 할 때 ----- $ alias shd="/bin/sh ./deploy.sh" 그런 다음 shd+Enter를 누르면 sh 명령어로 deploy.sh 파일을 실행하는 것을 확인할 수 있습니다. 참고한 링크 : https://www.makeuseof.com/ways-to-shorten-linux-commands/ 4 Ways to Shorten Linux Commands and Save Time Improve your termi..
이번 글은 우아한 테크코스에서 작성한 글 중 JPA Fetch Join에 관한 글입니다. JPA는 기본적으로 제공되는 쿼리에서 한계가 있기 때문에 QueryDSL이라는 의존성을 주입하여 더 상세하고 복잡한 쿼리를 생성해내고, 해당 엔티티의 Repository를 구현한 RepositoryImpl과 같은 형태로 사용하고 있습니다. 그래서 복잡한 파라미터 혹은 조인절이 들어가는 경우 대부분 QueryDSL내에서 로직화 시키고, 파라미터 별 분기 내용과 기존에 사용했던 쿼리를 버전 관리용도로 사용하기도 적합한 우수한 성질을 지녔습니다. 하지만 그럼에도 불구하고 QueryDSL 또는 JPA를 사용하는 와중 Fetch ON 이 되어도 데이터 조회가 이상하게 되거나, 데이터가 오히려 삭제가 되는 문제가 종종 발생하는..
글을 읽어보다가 이해하기 어렵지 않게 글을 작성해주신 우아한테크코스(배달의 민족의 우아한형제들 그룹 내 프로그램)에게 감사의 말을 표시합니다. https://tecoble.techcourse.co.kr/post/2023-11-06-zero-downtime-deployment-2/ 데이터베이스 복제하기(리플리케이션) 2 - 테코와 알아보는 대규모 데이터 관리 테코의 고민 2 - 이벤트에 어떤 내용을 기록해야 해? GTID… tecoble.techcourse.co.kr 여기서는 데이터를 기록하는 시점에서 사용하는 UUID, RAND 와 같은 내용부터 시작하여 SQL 실행, 그리고 데이터가 레플리카로 복제되는 단위동안에 일어나는 액션들과 그 구성들에 대한 구체적인 기술이 되어있어서 MySQL 엔진에 관심이 많..