1. 리액티브 프로그래밍 데이터 또는 이벤트의 변경이 발생하면 이에 반응해 처리하는 프로그래밍 기법이다. 비동기 프로그래밍을 처리하는 새로운 접근 방식 데이터의 통지, 완료, 에러에 대한 처리를 옵저버 패턴에 영감을 받아 설계되었고 데이터의 손쉬운 비동기 처리를 위해 함수형 언어의 접근 방식을 사용 1-1. 리액티브 프로그래밍 이전의 비동기 프로그래밍 대부분 콜백 기반의 비동기 처리 방식을 사용했다. fetch("/api/users/me") { user -> fetch("/api/users/${user.id}/followers") { followers -> fetch("/api/users/${user.id}/likes") { likes -> fetch("/api/uesrs/${user.id}/contac..
1. 동기와 비동기 프로그래밍 1-1. 동기 프로그래밍 (Synchronous Programming) 동기 방식의 프로그램에서 작업의 실행 흐름은 순차적으로 동작한다. 순차적으로 동작하기 때문에 코드를 파악하기 쉽고 디버깅이 쉽다. 특정 작업을 실행하는 동안에 다른 작업을 할 수 없다. fun main() { // 실시간 주식 정보를 가져온다. val stock: StockDto = getRealtimeStockData("APPLE") println("주식 심볼 : $(stock.symbol}") println("시가 : $(stock.price.open}") println("종가 : $(stock.price.close}") println("시가총액 : $(stock.price.marketCap}") }..
프로그래밍 패러다임(Programming Paradigm)이란? 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론이다. 예를 들어 객체지향 프로그래밍은 프로그래머들이 상호 작용하는 객체들의 집합으로 볼 수 있게 하는 반면에, 함수형 프로그래밍은 상태 값을 지니지 않는 함수 값들의 연속으로 생각할 수 있게 해준다. 여러 패러다임을 지원하는 언어로는 C++, 파이썬, 자바스크립트가 있으며 자바의 경우 jdk 1.8 이전은 객체지향 프로그래밍을 지원하고 이후부터 함수형 프로그래밍 패러다임을 지원하기 위해 람다식, 생성자 레퍼런스, 메서드 레퍼런스를 도입했고 선언형 프로그래밍을 위해 스트림(Stream)과 같은 표준 API 등도 추가됐다. 프로그래밍 패러다임은 크게 선언형, 명령형으로 나누..
객체지향 프로그래밍(OOP, Object-Oriented Programming)이란? 객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식을 말한다. 설계에 많은 시간이 소요되며 처리 속도가 다른 프로그래밍 패러다임에 비해 상대적으로 느리다. 객체지향 프로그래밍의 특징 추상화 복잡한 시스템으로부터 핵심적인 개념 또는 기능을 간추려내는 것을 의미한다. 캡슐화 객체의 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉하는 것을 의미한다. 상속성 상위 클래스의 특성을 하위 클래스가 이어받아 재사용하거나 추가, 확장하는 것을 의미한다. 다형성 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것을 의미한다. 오버로딩과 오버라이딩 오버로딩 (Ov..
선언형 프로그래밍(Declarative Programming)이란? 무엇을 풀어내는가에 집중하는 패러다임이며, "프로그램은 함수로 이루어진 것이다."라는 명제가 담겨 있는 패러다임이다. 함수형 프로그래밍(Functional Programming)이란? 선언형 패러다임의 일종으로 '순수 함수'들을 블록 처럼 쌓아 로직을 구현하고, '고차 함수'를 통해 재사용성을 높인 프로그래밍 패러다임이다. 자바스크립트는 객체지향 프로그래밍보다 함수형 프로그래밍 방식이 선호된다. 순수 함수 출력이 입력에만 의존하는 것을 의미한다. const pure = (a, b) => { return a + b } pure 함수는 들어오는 매개변수 a, b에만 영향을 받는다. 만약 a, b가 아닌 다른 전역 변수 등이 출력에 영향을 준..
- Total
- Today
- Yesterday
- 자바
- 프로그래밍
- 직접매핑
- 중첩루프조인
- 스프링 R2DBC
- 함수형 프로그래밍
- Design Pattern
- 캐시매핑
- 디자인 패턴
- 직접연관매핑
- java
- 정렬병합조인
- 연관매핑
- 메모리 계층
- 불연속할당
- 대수확장성
- 스레드
- 네트워크
- 스프링 WebFlux
- 프로세스와 스레드
- 코틀린
- 세컨더리인덱스
- 인덱스최적화
- 프로세스 컴파일
- 네트워크 기초
- 선언형 프로그래밍
- 클러스터형인덱스
- 보이스코드정규형
- 프로그래밍 패러다임
- 프로세스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |