분류 전체보기 (93) 썸네일형 리스트형 함수객체와 모나드 컨텍스트(컨테이너) - 컨텐츠를 담고 있는 무언가 함수 객체 - 고차함수인 map을 적용할 수 있는 컨텍스트 타입 모나드 - 값이 있을 수도 있고, 없을 수도 있는 함수 객체 - flatMap을 적용할 수 있음 [참조]https://oaksong.github.io/2018/01/22/monad/https://zeddios.tistory.com/449 Spring Bean Scope Bean Scope1. singleton - spring container 가 생성 될 때 한번 생성 됨, container가 소멸 될 때 bean도 소멸 됨 - 생성 된 하나의 인스턴스는 single bean cache에 저장 되고, 해당 bean의 참조가 있으면 cache에서 객체를 반환 함 - default 값2. prototype - 모든 요청에서 새로운 인스턴스를 생성해서 반환 - 사용이 끝나면 정상적인 방식으로 Garbage Collector에 의해 제거 됨3. request - 하나의 HTTP request에 하나의 bean이 생성 됨 - web-aware spring application context 안에서 유효함4. session - 하나의 HTTP session에 하나의 bean이 생.. Spring AOP AOP (Aspect Oriented Programming) - 비즈니스 로직과 공통 로직을 분리 하여 비즈니스 로직에 영향을 미치지 않고 공통 로직을 앞 뒤로 끼워넣는(?) 방법 - ex) logging, transaction 처리, 사용자 인증 등 AOP 구성요소1. Target : Aspect 부여 대상2. JoinPoint : Aspect가 적용 될 시점(위치) - Before, After, AfterReturning, AfterThrowing, Around3. Advice : 각 JoinPoint에 삽입되어 동작할 모듈4. PointCut : Advice를 적용할 JoinPoint를 선별하는 기능을 정의하는 모듈5. Introduction : Target Class에 코드 변경 없이 메소드나 필.. Reactive Programming Reactive Programming용도 - 비동기(asyncronous), 이벤트 기반(event-driven), 논블럭킹(non-blocking) 어플리케이션 - 수직적 확장(scale up) 보다는 수평적 확장(scale out)에 적합 - 배압(backpressure) 컨셉 : producers가 consumers를 넘어서지 못하게 하는 것 - MSA가 지향하는 방향2가지 개발방식 지원 - 기존의 MVC 방식(@Controller, @RequestMapping), - 새로운 함수형 모델(RouterFunction, HandleFunction)새로운 요청 응답 모델 - 서블릿 스택과 API에서 탈피(서블릿 API는 리액티브 함수형 모델에 적합하지 않음 - HttpServletRequest, Http.. 객체 지향 프로그래밍 vs 함수형 프로그래밍 객체지향 프로그래밍 - 일급 객체는 클래스 - 해당 클래스의 데이터 기반으로 메소드가 동작(멤버 함수 라고도 함) - 상호 작용하는 객체들의 집합 함수형 프로그래밍 - 일급 객체는 함수 - 전달 받은 파라미터 기반으로 함수가 동작(전달 받은 파라미터는 변경을 하지 않고 계산한 결과만 리턴 함) - 상태 값을 지니지 않는 함수 값들의 연속 * 일급 객체 - 다른 객체들에 적용 가능한 연산을 모두 지원하는 객체 - 변수나 데이터 구조(자료 구조)에 담을 수 있음 - 파라미터, 리턴 값으로 사용 가능 - 할당에 사용한 이름에 관계 없이 고유한 식별이 가능함 [참조]https://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98%ED%98%95_%ED%94%84%EB%A1%9C%EA%B7.. Spring Transaction Isolation1. READ_UNCOMMITED - 트랜잭션 처리 중인(커밋 되지 않은) 데이터를 다른 트랜잭션에서 읽을 수 있음 - dirty read 발생2. READ_COMMITED - 트랜잭션이 종료(커밋)된 데이터만 읽을 수 있음 - unrepeatable read 발생3. REPEATABLE_READ - 트랜잭션이 완료될 때 까지 읽는(select) 데이터에 shared lock 이 걸림 - phantom read 발생4. SERIALIZABLE - MVCC를 사용하지 않고 완벽한 읽기 일관성 제공 Propagation1. REQUIRED - 부모 트랜잭션이 존재하면 그 안에서 실행, 없으면 새로운 트랜잭션을 만들어서 수행2. REQUIRES_NEW - 부모 트랜잭션이 존재하던 아니던 무조건.. GOF 디자인 패턴 생성 패턴(Creational Pattern) : 객체가 생성 되는 과정의 유연성을 높이고 코드의 유지를 쉽게 함 - 팩토리 메서드 패턴(Factory Method Pattren) : 자식 클래스에서 어떤 객체를 생성할지 결정 - 추상 팩토리 패턴(Abstract Factory Pattren) : 구성 요소별로 객체의 집합을 생성 - 빌더 패턴(Builder Pattren) : 객체의 생성 과정과 표현 과정을 분리 - 프로토타입 패턴(Prototype Pattren) : 이미 만들어진 객체를 복제해서 생성 - 싱글톤 패턴(Singleton Pattren) : 생성자를 여러번 호출 해도 최초 생성 된 객체를 리턴해서 사용 구조 패턴(Structural Pattern) : 자료구조나 인터페이스 같이 프로그램.. Redis Introduction 데이터 저장소로 디스크가 아닌 메모리를 사용데이터의 안전한 보관과 백업을 위해 다른 서버의 메모리에 실시간으로 복제할 수 있고, 디스크에 저장하는 방법을 제공초당 약 10만회의 명령을 처리하는 성능기본적으로는 key:value 구조 이지만, Lists, Sets, Sorted Sets, Hashes, Streams 같은 다양한 저장 방식 제공Redis Server Instance는 하나의 프로세스로 수행됨(CPU 1 core만 사용) - 서버 머신 or VM 하나에 여러 개의 Redis Server를 사용할 수 있음 [참조] - http://redisgate.kr/redis/introduction/redis_intro.php 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음