일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 공부
- DDD
- Kafka
- JPA공부
- 기술공부
- JPA 공부
- nestjs스터디
- 플러터 공부
- JPA스터디
- 알고리즘공부
- 코테준비
- 코테공부
- JPA
- nestjs공부
- 카프카
- 스프링공부
- Flutter
- 스프링
- Axon framework
- 자바공부
- 자료구조공부
- K8S
- 기술면접공부
- nestjs
- 스프링부트
- querydsl
- 스프링부트공부
- 프로그래머스
- 플러터 개발
- JPA예제
- Today
- Total
목록분류 전체보기 (715)
DevBoi
https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net
자바 8에서 추가된 Optional과 Stream에 대해서 공부를 해보자 공부 관련 실습해보기 전에 간단하게 특징 및 장단점을 정리해보자 -특징 Java를 이용해 함수형 프로그래밍할 수있게 API를 제공해준다. 장점 원본의 데이터에 변경없이 가공할 수있다. 메서드체이닝을 통해 가공이 가능, 코드량을 줄이고 간결하게 표현이 가능하다. 병렬처리가 가능하다, 쓰레드를 이용해 많은 요소를 빠르게처리 가능 단점 함수형 프로그래밍이 너무 많아지면, 다수의 개발자가 운영 및 관리에 어려움이 따를수 있음(함수형 프로그래밍은 자바 표준 개발 방식이 아니라 익숙하지 않은 개발자들이 존재할수 있음) 생성하기 배열 / 컬렉션 / 빈 스트림 Stream.builder() / Stream.generate() / Stream.it..
https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net
https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net
WebClient는 RestTamplate과 차이가있다. 공통점은 둘다 HttpClient의 모듈이다 차이점은 RestTemplate과 달리, WebClient는 Non-blocking방식이다. 해당 방식이 필요한 이유는 네트워킹의 병목현상을 줄이고 성능을 향상 시키기 위해서이다. Core당 1개의 쓰레드를 이용합니다. 각 요청은 이벤트 루프 내 job으로 등록이됩니다. 이벤트 루프는 각 Job을 제공자에게 요청하고, 결과를 기다리지 않고 다른 Job을 처리한다. 제공자로부터 이벤트 루프로 콜백으로 응답이 오면, 결과를 요청자에게 제공한다. WebClient는 이벤트에 반응형으로 동작하도록 설계 되었다. 동시 접속자가 많으면, RestTemplate보다 뛰어난 성능을 가지며 Spring 커뮤니티에서는 R..
옵저버 패턴은 간단하게 얘기하면, 어떤 객체의 상태가 변할 때 그와 연관된 객체 들에게 알림을 보내는 디자인 패턴이다. 쉽게 얘기하면, Badi의 상태가 변할때 마다 notifyCrew를 호출, 해당 크루는 객체에서 가지고 있는 Crew원의 리스트를 업데이트 해준다. 메인에서는 배디를 크루원들이 구독하여, 구독자와 발행자의 관게를 맺게 된다. 주로 분산/이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하고 발행자의 상태가 변경되면 구독자들에게 해당 값을 전파하는 방식이다. 옵저버 패턴은 한 객체의 상태가 바뀌면, 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의한다. 단, 설계는 느슨한 결합으로 하는 것이 좋다. 두 객체..
팩토리 패턴 : 간접적으로 객체를 생성해준 후에 반환해주는 역할이다. * 장점 생성할 클래스를 미리 알지 못해도 팩토리 클래스가 객체 생성 담당한다. 객체의 자료형이 하위클래스에 의해서 결정 -> 확장 용이성 동일한 형태로 프로그래밍 가능 확장성 있는 전체 프로젝트 구성가능 * 단점 객체가 늘어날때 마다 하위클래스 재정의로 인한 불필요한 많은 클래스 생성 가능 쉽게 말하면 하나의 인터페이스를 여러 클래스가 상속 받는 다고 가정하자 shape interface를 여러 객체가 상속을 받는다면 해당 클래스로 하게되면 하나의 호출로, 여러개의 객체 호출을 할수 있다. 관련 클래스 다이어 그램이다. 하나의 인터페이스를 여러개의 클래스에서 받아서 객체생성은 팩토리에서 전담 하는 것이다. 마무리 장점 * 객체 생성하..
롬복의 동작원리는 간단히, 컴파일 시점에 바이트 코드를 변환하여 원하는 부분을 주입해주는 방식이다. 과정으로 자세히는 1. 자바 컴파일러는 소스파일을 파싱하여 AST트리를 만든다. 2. Lombok은 AnnotationProcessor에 따라 AST 트리를 동적으로 수정, 새노드를 추가하고 마지막으로 바이트 코드를 분석 및 생성한다. 3. 최종적으로 자바 컴파일러는 Lombok Annotation Processor에 의해 수정된 AST를 기반으로 Byte Code를 생성한다. Annotation Processor Lombok의 의존성을 추가할때 해당 키워드란, 자바 플러그 인의 일종으로, 어노테이션에 대한 코드베이스를 검사, 수정 생성하는 훅이다. 컴파일 에러나, 경고를 내기도하고 소스코드와 바이트코드를..
RestTemplate이란? Spring 3.0에서부터 지원하는 RestTemplate은 Http 통신에 유용하게 쓸 수 있는 템플릿이다. Rest 서비스를 호출하도록 설계되어 HTTP 프로토콜 메서드에 맞게 여러 메서드를 제공한다. 특징 -통신을 단순화 하고 RestFul 원칙을 지킨다. -멀티쓰레드 방식을 사용한다. -블라킹 방식을 사용한다. RestTemplate의 구동방식 쓰레드 풀은은 요청자 어플리케이션 구동시에 만들어진다. Request 는 먼저 큐에 쌓이게 되고 가용한 쓰레드가 있으면, 스레드에 할당되어 처리된다. 1 요청당 1스레드가 할당 된다. 스레드에서는 블로킹 방식으로 처리되어, 응답이 올때까지 해당 스레드는 다른 요청에 할당 될 수 없다. 정확한 동작 방식 1. 어플리케이션이 Res..
Enum이란? 기존 상수를 표현할때는 해당 클래스 내부에 final static String, final static int 와 같이 정의했으나 가독성의 문제로 인해 Enum이 등장하였다. Enum은 Enumeration으로 열거형이라고 불리고, 연관된 상수들의 집합을의미한다. Enum클래스는 컴파일 시점에 모든 값에 대해 알아야하고, 고정된 상수들의 집합이여야 한다. 또한 다른 패키지나 클래스에서 해당 타입에 접근해서 동적으로 어떤 값을 정해줄 수 없다. 또한 클래스로 정의를 하기 때문에 정해진 값에 대한 신뢰있는 메소드를 사용하여, 값을 재조정 및 얻어서 사용할 수 있다. ex. MyEnum.toString() -> 별도 오버라이딩 등등