RoR 생태계 서열정리 안하냐 – 2023 rails7

RubyOnRails를 쓴다면 이유는?

  • 그냥 프로젝트에 한번 써볼라고
  • ERB 서버사이드 렌더링과 모듈별 리프레시장점을 쓰려고
  • active record + active admin 자동 생성되는거 쓰려고
  • 대충 편하게 되는게 많아서

RoR 생태계 서열문제

리소스 관리기능이 이것저것 너무 난립 해 있고 메이저가 없어서
프로젝트 처음 생성할 때 너무 혼란스럽다.

css는 sprockets로 하고 js는 webpacker로 하라고?
아닌가 js는 importmap으로 하라고?

sprokets, importmap, webpacker, … 또 많이 있는데…

rails7에서 rails/webpacker가 retirement??
하지만 커뮤니티에서 유지되는 shakacode/shakapacker??

SSIBAL
디렉토리 구조는 왜 이런걸까

sprockets는 (js, css)
app/assets/stylesheets
app/assets/javascripts
package.json

webpacker는 (js)
app/javascript
package.json

importmap은 (js)
pin

커뮤니티는 별 수 없지만 rails 재단에서는 한쪽만 밀어야하는거 아닌가
rails7에서  공식으로 뭘 쓸지(프로젝트 생성할 때 포함될것들)

최종(이면 좋겠다)

rails/cssbundling-rails
rails/jsbundling-rails

후기

이번에 시작한건 계속 이걸로 가겠지만(?) 간단한 프로젝트를 새로 할거면 node계열로 하는게 낫겠다.

[도서] RabbitMQ 따라잡기: AMQP 기반의 오픈소스 메시지 브로커

예전에 본 책들 너무 쌓여서 정리중인데
이 책도 정리 대상으로 확정 되었다.
앞으로 다신 볼 것 같지도 않고 직원이나 동료나 후임이나 .. 등등 추천 해 줄 것 같지 않아서

문제점

요즘 책은 개념적인 부분만 나오고 실용적인 부분은 예제만 제공 해 주면 된다.
어차피 세부적인 코드나 설명은 다 기억도 못 하고 요즘엔 책을 레퍼런스로 보지 않으니까
예제를 실행이 되게 만들어 놓는다면 긴 설명도 필요 없다.

이 책은 개념 설명이 짧고 코드가 길다.

  • Spring, Django, RoR, WPF, … 스타트 할 때 사용할만한 기술이면 코드가 필요할 수 있는데
    특정 상황에서만 사용하는 RabbitMQ, Kafka, ElasticSearch 등등은 필요없다.
  • 요즘은 책을 다시 찾아보지 않고 인터넷에서 레퍼런스나 Stackoverflow 등을 검색한다.

책 내용

첫번째 장에서 짧게 RabbitMQ 구조와 개념 설명을 하고 뒤에서부터는 자바코드와 함께 개념을 조금씩 설명하는데…
개념이 겨우 이해가 안갈정도만 설명이 되어 있다.(이해가 안간다고. 다시 인터넷 찾아봄)
지식의 밀도가 낮다 보니 더 기억에 안 남는 것 같다.

맥 스튜디오 울트라 사용후기

하나도 좋은지 모르겠음

m1때문에 못 쓰는 몇 가지 빼고는 불편한 것도 없음

  • Virtualbox
  • docker m1 지원 안되는 image
  • 모니터 기본 연결이 한개밖에 없는데 추가usb연결 꽂으면 부팅할 때 마다 운에따라 모니터 순서가 바뀜

돈 신경 안 쓰면 최고의 선택 아닐까

  • 소음 없고
  • 필요한거 다 켜놔도 안느려지고
  • 빌드속도 빠름

가성비같은거 신경 안쓰면 최고의 선택 아닐까

[도서] 개발 함정을 탈출하라

소프트웨어 회사들이 흔히 하는 실수를 다 써 놨다.
이 업계에서 일하는 누가 읽어도 이거 우리회사 얘긴데.. 싶을거다.
(진짜 잘되는 회사 제외)

프로덕트 매니저의 업무 프레임워크

프레임워크라는 것은 베이스가 부족한 경우에도 필요하고
능숙하더라도 간혹 실수를 방지 해 주는 장치로 작용한다.

프로덕트 매니저로써 능숙하게 일을 하는 사람도
지금 프로덕트 매니저로 취업하거나
프로덕트 매니저 업무를 떠맡게 된 누구에게나 도움이 되지 않을까

인상깊은 내용

  • 프로덕트 매니저란?
    • 번뜩이는 아이디어, 최첨단 기술이 아닌 프로덕트를 통해 해결해야 하는 문제에 주목
  • 아무도 쓰지 않는 쓰레기를 만드는 것 = 개발함정
  • 성과물 vs 산출물
    • 기능의 실제 가치를 확인하지 않고 개발하는것은 산출물… 뭔가가 나왔다
    • 성과물은 핵심 목표를 달성할 수 있는 것
  • 이해관계자별 다른 목표(동상이몽) [목표]-[이유]
    • CEO 매년 30% 성장을 해야돼 – 그래야 다음라운드 투자를 받아
    • CTO 모바일 전략이 중요해 – 그래야 성과급을 받지
    • COO 비지니스 회원을 늘려야 해 – 그러면 수입이 늘어날거야
    • 그런데 이런식으로 각자 목표를 세우는게 문제라면… 이 문제의 해결책은 OKR이 아닐까

OKR과 마찬가지로 읽으면서 씁쓸하다
이건 상당히 센스의 영역이다.
읽고나서도 여기서 뭔가 느끼고 바꿀 수 있는 경영진이 얼마나 되려나

그리고 이 책이 프로덕트매니저의 시각에서 자기중심적으로 쓰여져서 그렇긴한데…
그 직무를 맡은 사람이 없어도 모든 구성원이 이렇게 사고해야한다.
우리나라 보통 IT회사에서는 개발팀장, 기획자, 디자이너, 그냥PM등 다양한 사람이 사실상 이 책에서의 프로덕트 매니저 포지션이기도 하고
프로젝트에 따라 누구나 프로덕트 매니저가 되기도 하니까

빗썸 API를 보면 형기증이 나…

어지럽다.. 아니 형기증은 어지러운게 아니지

이거보고 이상한게 안 느껴지는 사람은 API싸개에 적합하지 않으니
진로를 바꾸기 바랍니다

  • https://api.bithumb.com/public/ticker/all_btc
  • https://api.bithumb.com/public/assetsstatus/BTC

나머지는 취향차이로 둘 수 있는데
참을 수 없는게 딱 2가지 있다

오브젝트objects, 코드로 이해하는 객체지향 설계

내용이 너무 자바처럼 verbose하다

짧은 내용을 너무 길게 설명해서 지겨워서 볼 수가 없다.

ex) ch07. 객체분해 p216~217 2페이지는 대략 이정도로 표현할 수 있다

일반적으로 작업기억은 7개의 chunk를 가지고 있다. 즉, 한번에 기억할 수 있는 숫자는 7개까지로 아래 11개의 연속된 숫자를 한번에 기억할 수 있는 사람은 드물다

29689928269

하지만 아래처럼 변환하면?

2968-992-8269

한번에 인식 가능하고 외울수도 있다.
11자리 숫자를 한번에 기억했다면 아마도 무의식중에 숫자를 나눴을 가능성이 높다

이런식으로 큰 문제를 작은 문제로 분해decomposite하면 문제를 이해하기 쉽고 더 좋은 해결이 가능하다.

이거 볼 시간에 DDD, JPA를 보자.
그래도 시간이 남으면 매트릭스와 에일리언을 보자

[도서] 소프트웨어 장인

그냥 개발수필에 가깝다
코딩호러의 어쩌고 했던책이 더 재밌었던듯

이 책에서 뭔가 내용이 많이 나오긴 하는데
맞는말이긴 한데 그냥 맞는말뿐이라서 별로 뭔소린지 기억에 남지 않는다

마틴파울러나 GoF같은 유명한 책은 많이 읽은 사람인 것 같다
개발방법론이나 조직에 대해 많이 생각해봤던
10~20년쯤 소프트웨어 개발을 했던 프로그래머
대부분 그정도 근방의 이력을 가진 사람이면 해 봤을법한 생각들

아예 초년생이라면
감명받을 수도 있겠고
뭔소린가 싶을수도 있겠는데
한번 훑어보는게 도움이 되려나

이 책의 태그를 자기계발서로 넣은건…
기술서적이 아니기 때문.

네이버 클라우드 사용후기

네이버 클라우드는
중소 벤처기업에 요금지원을 1~2년씩 해주면서
사용자를 모으고 있는 것 같다

IaC

먼저… 사용하기 매우 싫었다

왜냐면 코드화가 불가능한 인프라라서
https://github.com/NaverCloudPlatform/terraform-provider-ncloud
7개월 째 업데이트가 안 되고 있다
API지원이 미약하거나 테라폼의 중요성을 모르거나 둘 중 하나겠지…
API를 이용해서 직접 코드화를 할까도 생각 해 봤지만…
AWS, GCP, Azure, DOcean, Heroku …. 선택지가 이렇게 많은데 그렇게까지???

비용

그리고 가격만 생각할 것 같으면 통큰아이 서버 쓰는게 낫지 않을까
IDC에 렉 하나 임대해서 서버 들여놓던가

AWS에서 비용 최적화 해서 사용하면 가격이 비슷할 것 같기도 하다
AWS는 BestPractice도 많고 Terraform코드화가 쉬워서

코드화가 가능하면 안쓰는 인프라를 그 때 그 때 껐다가 다시 켜고 재설정이 가능해서

설치편의성

ElasticSearch를 설치했는데
ManagerNode가 두개인데
별개로 접할수가 없어서 찾다보니
LoadBalancer를 설치해야한다고??? 18000원이라고????

가입 편의성

금융클라우드는 Console에 VPN없이 접속이 안된다. 경고는 따로 없고 타임아웃

VPN을 통해야 접속이 가능한데 동시접속이 안된다

VPN을 만들려면 SubAccount가 필요하다
2차인증이 필수라길래 구글 OTP를 등록했더니
VPN을 등록하려면 이메일 인증을 해야한다고 한다
이메일 안오는데?????
스팸인가?? 네이버 메일로만 전송을 해주나???
SubAccount를 다시 생성해볼까??
네이버 서버 병신이네!!! 라고 생각하다가 문득
아니!!
구글OTP를 등록하고 나면 이메일 인증을 할 수 없다.
설마했지만 맞았다.
병신은 서버가 아니라 소프트웨어였다
클라우드도 기획자가 있나? 기획자가 보내준거 리뷰 후에 변경안하고 바로 개발 해 버나?
개발자가 이따위로 했을리가…
이따위로 할 수는 있긴한데 그대로 놔뒀을리가…
구글OTP를 안되는거 지웠으면 지웠지…

~

쓰고 나니까 좋은 소리가 하나도 없네
잘좀 하시라구요

  • 점점 나아지겠지만 아직은 아니다
  • 네이버클라우드 직원들 고생좀 하겠다

[도서] 도메인 주도 설계로 시작하는 마이크로서비스 개발, 핵심 개념과 패턴, 설계, 구현으로 배우는 DDD와 MSA

깊은 지식을 얻는다기보다는 그냥 관련기술을 훑어보기 좋다

DDD 이론서 보고 어떻게 할지 모르겠는 사람들을 위한 책이라고 봐야하려나

기존에 좀 하고 있던 사람들에게는 별로 얻을건 없고

다른 사람도 같은 고민을 하고 있었구나 하는걸 알 수 있다

주요내용

아키텍처

  • 레이어드 아키텍처
  • 헥사고날 아키텍처
  • 클린 아키텍처

https://engineering-skcc.github.io/microservice%20inner%20achitecture/inner-architecture-2/

이벤트 스토밍

도메인 이벤트Orange발생한 사건 pp로 표현
커맨드Blue도메인 이벤트 트리거
외부시스템Pink도메인 이벤트가 호출하거나 관계가 있는 레거시 또는 외부 시스템
액터Yellow개인 또는 조직의 역할
애그리거트Yellow도메인 이ㄴ트와 커맨드가 처리하는 데이터
상태가 변경되는 데이터
정책Lilac이벤트 조건에 따라 진행되는 결정
when, then
읽기모델Green도메인 이벤트 엑터에게 제공되는 데이터
사용자 인터페이스White스케치 형태의 화면 레이아웃
핫스팟Purple의문, 질문, 미결정 사항

jhipster

추천도서

아키텍처

  • 마이크로 서비스 패턴
  • 클린 아키텍처
  • 엔터프라이즈 애플리케이션 아키텍처 패턴

개발 프로세스

  • 소프트웨어 장인

설계

  • UML 패턴의 적용
  • 도메인 주도 설계, 위키북스 2011
  • 도메인 주도 설계 핵심 이론, 에이콘 2017
  • 도메인 주도 설계 철저 입문, 위키북스 2020
  • Introducing Event Storming, Leanpub 2019

개발영역

  • 자바 ORM 표준 JPA 프로그래밍, 에이콘 2015