반응형
반응형
오버로딩과 오버라이딩을 알아봅시다. 프론트엔드를 공부하기 때문에 타입스크립트를 기준으로 글을 적습니다. 우선 오버로딩과 오버라이딩을 알아보기 앞서 Call signature와 다형성(Polymorphism) 이 무엇인지 알아봅시다. 🤔Call signature 함수의 타입을 정의하는 방법 중 하나입니다. type CallSignature = {(a:number, b:number): number}; const add:CallSignature = (a,b) => a+b 🤔다형성 (Polymorphism) 다형성은 객체 지향 프로그래밍(OOP)에서의 개념 중 하나로, 여러 객체나 클래스가 동일한 인터페이스 또는 추상 클래스를 공유하면서 각각의 객체나 클래스가 다르게 동작할 수 있는 능력을 의미합니다. 쉽게 말..
MSA란 무엇인가요? MSA(MicroService Architecture)는 소프트웨어 개발에서 사용되는 아키텍쳐 스타일을 나타냅니다. 애플리케이션을 작은 서비스 단위로 분할하여 개발하고, 이러한 서비스들이 독립적으로 배포, 운영 및 확장될 수 있도록 하는 접근 방식입니다. 기존의 모놀리식 아키텍처는 하나의 애플리케이션으로 구성되어 독립적으로 서비스를 운영할 수 없지만, MSA는 독립적인 기능 단위인 마이크로 서비스,로 분리하여 각각의 독자적인 데이터베이스, 매커니즘을 가지며 독립적으로 동작할 수 있습니다. MSA의 장점? 확장성 : 마이크로 서비스는 독립적으로 배포되고 운영될 수 있어 확장성이 용이합니다. 다양성 : 서로 다른 기술 스택을 이용하여 각각의 서비스를 개발할 수 있습니다. 유지 보수 : ..
Ajax Asynchronous JavaScript and XML의 약어로 비동기적으로 서버와 상호작용하여 데이터를 가져오는 기술입니다. XMLHttpRequest를 통한 상호작용. 비동기적으로 작동하므로 요청과 응답이 완료될 때 까지 기다리지 않고 다른 작업을 수행할 수 있습니다. 왜 Ajax를 사용할까요? HTML Form 요소를 이용하여 원하는 데이터를 가져올 수 있습니다 하지만 위의 방법으로 데이터를 받게되면 자동적으로 브라우저 전체에 새로고침이 일어납니다. 따라서 비동기적으로 데이터를 받아올 수 있는 Ajax를 사용합니다. Ajax 기본 코드 //jQuery를 이용하여 사용합니다. $.ajax({ type: "GET", url: "여기에 URL을 입력", data: {}, success: fun..
🤔메세지 큐가 뭐지? 메세지 큐는 메세지를 비동기적으로 송수신하는 기술로 시스템 간 통신에 사용되는 메시지 지향 미들웨어입니다. 여기서의 메시지는 요청, 응답, 오류 메시지 등의 정보입니다. 🤨메세지 큐의 작동 원리? 메세지 큐에는 다음과 같은 개념이 있습니다. 발신자(Sender) : 메시지 큐에 메시지를 생성하고 큐에 넣습니다. 큐(Queue) : 메시지가 저장되는 버퍼로, 발신자와 수신자 간에 중간 매개체 역할을 합니다. 수신자(Receiver) : 큐에서 메시지를 가져와서 처리합니다. 🤨그렇다면 메세지 큐를 왜 사용하지? 비동기 통신 : 발신자와 수신자간 의존성이 낮아 각각의 시스템이 독립적으로 동작할 수 있습니다. 메세지 유실 방지 : 메시지 큐를 사용하면 메모리를 이용하여 임시적으로 저장하는 ..
자바스크립트를 공부하다 명령적 프로그래밍의 단점에 대해 설명을 듣고, 선언적 프로그래밍의 필요성과 react, vue 등의 라이브러리 등장에 대해서 설명을 들었습니다. 그런데 선언적 프로그래밍이 무엇인지, 명령적 프로그래밍이 무엇인지 정확하게 알지 못해서 이번 시간에는 이 둘이 무엇인지와 차이점을 알아 보려고 합니다! 🤔선언적 프로그래밍? (Declarative Programming) 선언적 프로그래밍 (Declarative Programming)은 프로그램이 어떻게 동작해야 하는지를 명시하기 보다, 원하는 결과, 달성하기를 원하는 것을 설명하는 프로그래밍 형식입니다. 이를테면, 선언적 프로그래밍에서는 데이터와 데이터 사이의 관계, 규칙, 제약 조건등을 선언하여 문제를 해결하려 합니다. 함수형 프로그래밍..
🤔클린 코드가 무엇인가요? 말 그대로 읽기 쉬운 코드가 바로 클린 코드. 저명한 개발자들은 클린 코드를 다음과 같이 정의했습니다. "클린 코드는 단순하고 직접적이며, 최대한 읽기 쉽고 수정하기 쉽습니다. 클린 코드는 의도를 명확하게 표현하며, 작성자의 의도대로 동작합니다. 이는 잘 작성된 소설을 읽는 것처럼 읽기 즐거워야 합니다." -로버트 C. 마틴(Robert C. Martin)의 책 "Clean Code: A Handbook of Agile Software Craftsmanship” "클린 코드는 어떤 사람도 수정하고 싶어하지 않도록 작성하는 코드다." - 워드 커닝햄(Ward Cunningham, 애자일(Agile) 개발 방법론과 익스트림 프로그래밍(Extreme Programming)의 창시자)..