비
비브로스
April 16, 20241회
ROP Pattern

간단 소개
ROP 패턴은 성공/실패 흐름을 분리하여 에러 핸들링을 개선하고, 사이드 이펙트를 줄여 개발 생산성을 높이는 프로그래밍 방식입니다.
AI Summary
- ROP (Railways Oriented Programming) 패턴 소개
- 성공과 실패 두 갈래 분기 흐름을 가지는 프로그래밍 방식이며, 에러를 던지지 않고 에러 상태를 다음 프로세스로 전달합니다.
- 함수형 프로그래밍의 Functor 개념에 기반하며, 값의 처리 여부에 따라 분기합니다.
- map, flatMap 등의 함수를 활용하여 값을 처리하고, Monad 개념을 통해 중첩된 상자를 방지합니다.
- Result 클래스의 활용
- 성공 또는 실패 결과를 캡슐화하는 모나딕 유형으로, 예외 처리에 의존하지 않고 오류를 처리합니다.
- Kotlin, Rust, Haskell, Scala, Swift 등 다양한 언어에서 지원하며, 실패 타입과 성공 타입을 명시합니다.
- Promise와 달리 에러 처리를 명시해야 값을 얻을 수 있으며, 에러 타입을 명확히 알 수 있다는 장점이 있습니다.
- ROP 패턴 적용 후기 및 고려 사항
- 사이드 이펙트를 줄이고, 예상 가능한 에러 처리에 용이하며, 코드 가독성을 향상시킵니다.
- 흐름의 연속성을 높여주지만, 모든 Promise를 마이그레이션할 필요는 없으며, 단순한 경우에는 Promise 패턴이 더 적합할 수 있습니다.
- Result Type을 적절히 활용하면 개발 경험을 향상시킬 수 있습니다.
Next Feeds
ChatGPT 프롬프트 팁 시리즈 - (3) Persona
ChatGPT 프롬프트 팁 시리즈 (3): 페르소나를 활용하여 LLM의 출력을 제어하고 원하는 답변을 얻는 방법에 대한 설명.
ChatGPT프롬프트페르소나LLM프롬프트 엔지니어링
2024. 4. 15.
빅웨이브에이아이

Data Parallelism in Machine Learning Training
생성형 AI 모델 학습을 위한 데이터 병렬 처리 기술과 동기/비동기 업데이트 방식, Ring-AllReduce 알고리즘을 설명합니다.
데이터 병렬 처리분산 훈련GPU동기 업데이트Ring-AllReduce
2024. 4. 15.
메가존클라우드

Argo Events 도입기
Argo Events를 도입하여 이벤트 기반 인프라 스케일링 자동화를 구축하고, 수동 작업으로 인한 번거로움을 해소한 경험을 공유합니다.
Argo Events자동화kubernetesEvent-DrivenHelm chart
2024. 4. 15.
비브로스

올리브영 QA는 Datadog을 어떻게 활용하고 있을까?
올리브영 QA팀은 Datadog을 활용하여 서비스 품질을 관리하고 있습니다. APM 로그, RUM, UI/UX 자동화 테스트를 통해 오류를 감지하고 성능을 개선합니다.
DatadogQAAPMRUM로그 분석
2024. 4. 11.
올리브영

그리드서치로 랜덤포레스트 튜닝하기
그리드서치를 이용해 랜덤 포레스트 모델을 튜닝하고, 항공권 예약 데이터 예측 성능을 개선하는 과정을 분석합니다.
랜덤 포레스트그리드 서치하이퍼파라미터 튜닝오버샘플링특성 중요도
2024. 4. 10.
메가존클라우드
통합된 개발과 배포 : Monorepo와 GitOps의 매력적인 조합
Monorepo와 GitOps를 결합하여 개발 및 배포 환경을 통합하고 자동화한 FE 개발팀의 경험을 공유합니다.
MonorepoGitOpsCI/CDDockerArgoCD
2024. 4. 8.
사람인