본문 바로가기

Programming5

프론트엔드 개발을 위한 서비스 구조 (Typescript, React, Styled-components, React-query, MobX, React-intl) 공부한 내용을 정리한 글입니다 내용에 오류가 있거나 더 좋은 의견이 있다면 댓글로 남겨주세요. 배움에 큰 도움이 됩니다. 🖋 프론트엔드 개발을 위한 서비스 구조 회사에서 서비스 리뉴얼에 들어가며 레거시 리팩토링도 함께 진행한다고 해서 서비스 구조를 어떻게 가져가면 좋을지 생각해 보았다. 결국 리뉴얼만 하고 리팩토링은 무기한으로 미루어졌지만, 생각한 내용을 한 번 정리해두는 게 좋을 것 같아 글을 남기게 되었다. 📦src ┣ 📂assets ┃ ┣ 📂fonts ┃ ┗ 📂images ┣ 📂domain ┃ ┣ 📂dashboard ┃ ┗ 📂user ┣ 📂infrastructure ┃ ┣ 📜http.ts ┃ ┗ 📜storage.ts ┣ 📂repositories ┃ ┣ 📜DashboardRepository.ts ┃ .. 2023. 8. 15.
[Programming] Observer Design Pattern Observer Design Pattern - 게시, 구독 패턴이라고도 불린다. - 한 객체(Subject)의 상태게 바뀌면 그 객체가 의존하는 다른 객체들(Observers)한테 연락이 가 자동으로 내용이 갱신되는 방식. - 일대다(1 : 多) 의존성 관계 구조 다이어그램 +------------------+ | Subject | +------------------+ | Attach(Observer) | | Detach(Observer) | +----------------------+ | Notify() -----------| for o in observers { | +------------------+ | o -> Update() | | } | +----------------------+ // - S.. 2020. 7. 11.
[Programming] Non blocking / Blocking Non blocking / Blocking Blocking - 동기적 - 자신의 수행결과가 끝날 때까지 제어권을 가지고 있다. - 단점: 앞의 명령이 처리되지 않으면 계속 뒤의 명령의 처리가 지연되어 병목현상 발생 ( multi-thread(명령 하나에 thread 하나를 배정하여 동시에 여러 개의 명령을 처리하는 방식)로 해결 할 수 있는 것처럼 보이지만 명령 하나당 thread 하나가 배정되므로, 명령의 수가 엄청 많아진다면 서버가 가진 자원은 한정되어 있으므로 서버를 업그레이드하거나 여러 개의 서버로 분산처리 해야 한다. Non-Blocking - 비동기적 - 자신이 호출되었을 때 제어권을 바로 자신을 호출한 쪽으로 넘기며, 자신을 호출한 쪽에서 다른 일을 할 수 있도록 한다. - 장점: 앞의 명령.. 2020. 7. 9.
[Programming] Programming_2 (Functional Programming) Functional Programming (함수형 프로그래밍) Functional Programming (함수형 프로그래밍)은, ▶변경 가능한 상태를 불변상태(Immutab)로 만들어 SideEffect를 없앤다. - f(x) = y. 함수f()에 x 를 입력하면 항상 y라는 결과값이 나온다. - 함수 안에서 상태를 관리하고 상태에 따라서 결과값이 달라지면 안된다. - 변수 보다는 상수를 사용해 SideEffect를 차단한다. ▶ 모든 것은 Object(객체)이다. - 함수형 언어에서는 class외에 함수 또한 객체이다. = value(값)처럼 쓰일 수 있다. 변수나 데이타에 할당 할 수 있다. 객체의 인자로 넘길 수 있다. 객체의 리턴값으로 리턴 할수 있다. = 함수형 프로그래밍 언어에서는 함수가 1급.. 2020. 7. 6.
[Programming] Programming_1 (Object Oriented / Procedural Programming) Programming은 크게 다음과 같이 분류된다. Declarative(선언형)과 Imperative(명령형)을 간단하게 비교하면 이러하다. 선언형: 무엇인가를 작업하기 위해 어떻게 진행할 것인지를 나열한다. (컵라면을 끓인다.) 명령형: 무엇인가를 작업하기 위한 방법을 정의한다. (뚜껑을 연다 -> 물을 붓는다 -> 면이 익을 때까지 기다린다.) 명령형은 다시 Procedural(절차지향)과 Object Oriented(객체지향)으로 나뉘는데, 출처: https://m.blog.naver.com/PostView.nhn?blogId=atalanta16&logNo=220249264429&proxyReferer=https:%2F%2Fwww.google.com%2F Procedural Programming(.. 2020. 7. 6.