원래 계획은 리액티브 스트림에 이어서 모노, 플럭스까지 정리하는 거였지만, 하나도 모르는 내가 한 번에 몰아 정리하기는 불가능하다는 판단이 들어 글을 나누었다. 읽고, 실습해도 이상하게 개념이 잡히지 않는 웹플럭스, 쪼개서 알아보자. Reactive Streams 리액티브 스트림은 비동기/논블로킹 처리를 위한 스트림 기반의 프로그래밍 모델이다. 또한 데이터 생산자와 소비자 사이에서 백프레셔를 지원해 데이터의 흐름을 제어할 수 있으며, 이는 리액티브 선언문에 쓰여있는 대로 병목현상이나 예기치 못한 소프트웨어의 정지를 방지한다. 리액티브 스트림의 탄생 이전에는 라이브러리마다 다른 방식으로 같은 목적의 프로그램을 구현해야 했으며, 2013년 넷플릭스와 레드햇을 위시한 기업들이 공동으로 개발하며 표준화 작업을 ..
오늘 아침까지만 해도 그게 그거라고 생각하고 내키는 대로 사용해 왔는데, 문득 굳이 같은 기능을 두 개나 만들었을 리가 없다는 생각이 들어 알아보게 되었다. 사전지식이 필요하다면 한없이 많이 필요하고 아니라면 아니라서, 일단 딱 둘의 공통점과 차이점에 대해서만 정리하고 넘어간다. CascadeType.Remove orphanRemoval = true 공통점 부모 엔티티 삭제시 자식 엔티티도 함께 삭제 차이점 연관관계를 끊어도 자식 엔티티 유지 연관관계가 끊기면 자식 엔티티 삭제
목차 인증이 끝난 사용자를 애너테이션으로 분류하는 구현을 하다가 몇 가지 애너테이션을 만나게 되었다. 우선 (CP로)구현은 끝났는데 뭔지는 알고 넘어가야 할 것 같아서. 하나씩 알아보자. @Documented @AuthenticationPrincipal @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.PARAMETER, ElementType.TYPE}) public @interface SignInUser { } @Documented 해당 애너테이션이 메타 애너테이션으로 설정된 애너테이션을 JavaDoc에 포함시킨다. JavaDoc은 기본적으론 애너테이션에 대해선 문서화를 해주지 않는다고 한다. @AuthenticationPrincipal 인증이 끝난 ..
캐시에 대해서는 두 번이나 정리한 적이 있으므로, 오늘은 바로 본론으로 들어간다. 2022.12.11 - [Development/Technical Interview] - [면접 준비 - Java?]Primary Memory [면접 준비 - Java?]Primary Memory 어제오늘 JVM의 메모리 구조를 공부하다가 속도와 용량, 일처리 속도의 최적화에 대해 조금 더 알고 싶어서 찾아보게 되었다. 당연하게도 관련 자료가 매우 많고 논문까지 쌓여있는(...) 수준이라 gnidinger.tistory.com 2023.01.14 - [Development/Database] - [Redis]캐시(Cache), 그리고 레디스(Redis) [Redis]캐시(Cache), 그리고 레디스(Redis) Cache 전에..
목차 [면접 준비 - Network]CORS에 대하여 - 2 CORS 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여 웹 애플리케이션이 다른 출처의 선택한 리소스에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 메커니즘이다. 여기서 다른 출처란 프로토콜, 도메인, 포트가 다른 곳을 가리킨다. 계속해서 CORS 정책을 지킨 요청이란 대상 리소스에서 올바른 CORS 헤더가 담긴 응답을 받는 요청이라 할 수 있다. 참고로 교차 출처 요청이 발생할 시 브라우저는 요청 헤더에 Origin을 담아서 보낸다. 또한 올바른 CORS 헤더란 보통 아래와 같은 "Access-Control-Allow-Origin:" 헤더를 말하며 HTTP/1...
면접 답변용으로 간결하게 정리. Java를 사용하는 이유 객체지향 진영의 대표적인 언어이다. 캡슐화(데이터를 클래스로 묶어 사용, 제한자를 통한 정보 은닉), 상속(재사용성 증가, 단일 상속만 가능- 죽음의 다이아몬드) 추상화(쉽게 말해 상속의 반대, 공통사항을 추출 - 중복 코드 제거), 다형성(오버라이딩@Override, 오버로딩) JVM을 이용해 운영체제에 독립적으로 구현 및 실행할 수 있다. 역시 운영체제에 독립적인, 자바API를 사용한 멀티스레드 구현 GC를 통한 자동 메모리 관리 -> 개발속도의 증가 -> 비용 감소 자바, 리눅스, MySQL등이 기본적으로 무료이기 때문에 비용이 적게 든다. 수많은 레퍼런스에서 보장받는 안전성 및 JVM의 직접적인 메모리 관리에 따른 높은 보안 Spring을 ..
목차 Spring Boot 스프링 부트는 복잡한 세팅과 구성을 개발자 대신 간결하게 처리하는 스프링 프로젝트 중 하나다. 구체적으로는 복잡한 .xml 파일에서 .yml 파일로의 전환 build.gradle을 통한 의존 라이브러리 버전 자동 관리 starter 모듈 의존 라이브러리를 통한 앱 및 앱을 띄울 서블릿 컨테이너 자동 구성 .jar 파일로의 빌드를 통해 바로 실행 가능한 파일 생성 내장 WAS(Web Application Server, 혹은 서블릿 컨테이너)를 통한 손쉬운 배포 가 그 특징이라고 할 수 있다. +) 서블릿 컨테이너 - 클라이언트의 요청을 처리하고 반환하는 서블릿의 실행 및 생명주기를 관리하는 역할 Spring AOP AOP(Aspect Oriented Programming)는 직역..
섹션 4가 끝났다. 이상하리만치 빨리 끝나버린 섹션 4 기간 동안 머리와 수염이 자랐고 손 끝이 여러 번 베였고 카누 라이트 로스팅을 알게 되었으며 지식은 좀처럼 늘지 않았다. 요약 어제 동기 중 한 분 덕분에 알게 된 경과 날짜 총 119일의 요약은 아래와 같다. 다행스럽게도 공부하다가 지치는 밤이면 위와 같은 짤을 만들며 보내서인지 그리 외롭진 않았던 것 같다. 하지만 해결되지 않는 에러로 가득 찬 인텔리제이 화면이나 풀지 못해 쌓여버린 데일리 코딩이나 가끔은 아이패드로 열리지 않는 유어 클래스 컨텐츠와 다가올 프로젝트 팀원들에 대한 미안함이 겹치는 날이면 나도 모르게 하차 생각을 하기도 했다. 가끔 반 정도는 세상에 대한 반항심으로 가득해 응~ 하차하면 그만이야~ 를 되뇌며 새벽까지 맥북을 잡고 씨..
프로젝트 리액터(Project Reactor), 혹은 리액터는 리액티브 스트림즈의 구현체다. 로고와 이름부터 원자로, 아이언맨을 떠오르게 만드는 리액터는 2014년에 태어난 현대적인 기술로 2022년 현재 3.4.24 버전까지 릴리즈 되어있다. 스프링 MVC와 비교했을 때 가장 큰 차이점은 논 블로킹 통신을 지원한다는 점이며, 명령형이 아닌 선언형 프로그래밍으로 이루어졌다는 것 역시 큰 차이점이다. 지난 글에서 리액터를 사용한 리액티브 프로그래밍의 기초와 용어에 대해 보았으니, 2022.10.13 - [Development/Spring] - [Spring]리액티브 프로그래밍 시작하기, 용어 정리 [Spring]리액티브 프로그래밍 시작하기, 용어 정리 지난 글에서 리액티브 프로그래밍과 리액티브 스트림즈, ..
- Total
- Today
- Yesterday
- 중남미
- 자바
- Algorithm
- 칼이사
- 알고리즘
- Python
- 리스트
- spring
- 여행
- 스트림
- 야경
- java
- BOJ
- 세계일주
- 기술면접
- Backjoon
- 세계여행
- 유럽여행
- 남미
- 세모
- 스프링
- 백준
- 유럽
- 지지
- a6000
- 면접 준비
- 동적계획법
- 파이썬
- 맛집
- RX100M5
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |