[TIL] 231101 회고

서정한·2023년 11월 1일
0

내일배움캠프 7기

목록 보기
63/66

Intro

  • 최종프로젝트 중 게시판을 Refectoring해야할 상황이 생겼다. 일단 돌아가게만 만들어놨더니 디버깅도 추적도 어렵고 중복코드도 많아 코드량이 많아지는 부작용을 경험하였다.
  • 리펙토링을하며 Rxkotlin도 맛만보긴했지만 코루틴으로 콜백을 받아 처리하고자한다. 검색을 좀 해보니 콜백을 받아 다른곳에서 내가 원하는작업을 콜백받은 데이터를 사용해 하고자할때 Reactive Programming 컨셉을 많이들 사용하는것같아 이번에 좀 정리해보고자한다.

Reactive Programming?!?

  • 반응형 프로그래밍이란 하나의 패러다임이다. 이는 지금 내가 사용하고있는 객체지향 프로그래밍과같은 패러다임을 뜻한다. 내가 프로그램을 만들때 어떻게 설계할 것인가? 어떤 컨셉을 가지고 갈 것인가? 정도로 이해했다.
  • 반응형 프로그래밍이란 데이터의 흐름과 변경사항의 전파에 중점을 둔 선언적 프로그래밍 패러다임이라고 검색해보니 나왔다.. 이게 뭔말일까...?

명령형 프로그래밍 vs 선언적 프로그래밍

명령형 프로그래밍

명령형 프로그래밍이란 내가 명령을 내리고싶은 일의 알고리듬을 시간순서대로 써놓고 프로그램 실행시 순서대로 실행되는것입니다.

선언형 프로그래밍

선언형 프로그래밍이란 내가 하고싶은 일을 선언한 후 언제 어떻게 동작할지는 내부에서 처리하는 방식의 프로그래밍 기법이다.

데이터 처리방식

  • 기존의 선언형 프로그래밍은 필요한 값이 있을 때 그 시점에서 해당 값을 불러서 사용했었다. 반면 선언형 프로그래밍은 값이 변화할때마다 그때그때 데이터를 전달해준다. 그러면 미리 선언해둔 코드에서 약속된 동작을 수행하는 것이다.

선언적 프로그래밍 패러다임을 어디에쓰지?

  • 비동기 프로그래밍을 잘하기위해서 사용합니다! 비동기 작업의경우 응답순서나 시간등을 예측할 수 없는 경우가 많기에 선언적 프로그래밍으로 구현하게된다면 가독성좋고 유지보수좋은 프로그램이 될 것이다!

Outro

  • 사실 오늘질문은 튜터님의 한마디에서 시작되었다. "코루틴을 공부한다고 하시면서 Flow를 모른다...?" 그 순간 이 말뜻이 이해되지않아 내가 코루틴을 사용하고 적용하는 방법에대해 돌아보게되었다.
  • 나는 코루틴을 명령형으로 사용하고있었다. 비동기작업을 시간순으로 작성해서 사용하려고했다. 굳이 그렇게할 이유가 없음에도 말이다. 그래서 다음시간에는 Flow와 코루틴에대해 다뤄보고자한다.
profile
잘부탁드립니다!

0개의 댓글