일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- coding test
- buffer
- 윤성우의 열혈 자료구조
- 윤성우 열혈자료구조
- stream
- 메모리구조
- C 언어 코딩 도장
- Graph
- Algorithm
- 이것이 자바다
- Selection Sorting
- Stack
- R
- datastructure
- list 컬렉션
- 이스케이프 문자
- JSON
- Serialization
- 알기쉬운 알고리즘
- insertion sort
- 혼자 공부하는 C언어
- s
- C programming
- Today
- Total
목록전체 글 (454)
Engineering Note
1. 페이징이란데이터베이스의 레코드를 개수로 나눠 페이지를 구분하는 것ex) 25개의 레코드가 있다면 7개씩, 총 4개의 페이지로 구분하고 그중에서 특정 페이지를 가져오는 것1-1. JPA에서 페이징 처리Page, Pageable 사용//페이징 처리가 가능한 쿼리메서드 예시Page findByName(String name, Pageble pageable);리턴 타입으로 Page 타입을 설정하고 매개변수로 Pageable 타입의 객체를 선언한다. //페이징 쿼리 메서드 호출 방법Page productPage = productRepository.findByName("펜", PageRequest.of(0,2));Pageable 파라미터를 전달하기위해 PageRequest 클래스 사용할 수 있고, PageRe..
LIMIT- SELECT 명령에서 결과값으로 반환되는 행을 제한하는 명령어 사용 예시- 인터넷 쇼핑몰에서 물건을 구매하거나 커뮤니티 사이트의 게시판을 읽다보면, 수많은 상품과 게시물을 전부 하나의 페이지에 표시하는 대신 몇 건씩 나누어 표시할 때 사용 사용 방법SELECT 열명 FROM 테이블명WHERE 조건식 ORDER BY 열명LIMIT 행수SELECT * FROM sampleLIMIT 3; -> sample 데이터에서 최대 3개의 행만 반환. 테이블에 1개의 데이터만 있다면 1개의 데이터만 반환 OFFSET- 데이터를 취득할 위치를 가리키는 것, LIMIT구에 OFFSET으로 지정할 수 있다.- 페이지네이션을 구현할 때, 첫 번째 페이지라면 LIMIT만으로 데이터를 조회할 수 있지만, 두 번째 페..
1. 람다식이란?Lambda expression(람다 표현식, 람다식)- 메서드를 하나의 식(expression)으로 표현한 것.- 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명함수(anonymous fuction)'라고도 한다. 예시//메서드int method() { return (int) (Math.random()*5) + 1;}//람다식int[] arr = new int[5];Arrays.setAll(arr, (i) -> (int)(Math.random()*5) + 1; 람다식의 장점- 모든 메서드가 클래스에 포함되어야 한것과 달리, 람다식은 오직 람다식 자체만으로 메서드의 역할을 대신할 수 있다. 2.람다식 작성하기람다식은 '익명 함수'답게 메서드에서 메서드..
Stream- Java8부터 도입된 컬렉션 및 배열의 요소를 반복처리 하기 위한 기술- for문과 Iterator와 비교해 가독성이 좋고, 재사용성이 좋다.- Stream을 이용하면 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방식으로 다룰 수 있다. Stream은 중간 연산과 최종 연산이 있다.중간 연산은 연산 결과가 스트림인 연산, 스트림에 연속해서 중간 연산을 할 수 있다. 최종 연산은 연산 결과가 스트림이 아닌 연산이다. 스트림의 요소를 소모하므로 단 한번만 사용할 수 있다.중간 연산 예시 : map(), filter()최종 연산 예시 : forEach(), count() 변환 - map()- 스트림의 요소에 저장된 값 중에서 원하는 필드만 뽑아내거나 특정 형태로 변환해야 할 ..
Kafka를 사용하는 이유1. 비동기 처리가 가능한 메세징 플랫폼주문 시스템처럼 여러 단계(주문 접수, 배송, 알림, 결제 등)가 연계된 복잡한 로직을 모두 동기 트랜잭션으로 처리하면, 중간 단계(예: 배송, 알림 등)에서 장애나 지연이 발생할 때 전체 주문 흐름이 느려지고, 클라이언트는 응답을 기다리며 UX도 나빠집니다. Kafka 같은 메시지 브로커를 도입하면 ‘주문 접수’만 빠르게 처리하고 곧바로 클라이언트에 응답을 반환, 나머지(배송, 알림, 결제 등)는 각자의 Consumer가 독립적으로 비동기 처리하게 할 수 있습니다. 이렇게 하면 서비스의 UX와 안정성이 크게 높아지고, 각 단계별 서비스도 확장성과 장애 격리에 유리하게 구축할 수 있습니다. 2. 느슨한 결합으로 확장성 있는 플랫폼Kafka는..
1. docker-compose.yml 파일 만들기2. docker-compose.yml 파일 작성version: '3'services: zookeeper: image: bitnami/zookeeper:latest ports: - "2181:2181" environment: - ALLOW_ANONYMOUS_LOGIN=yes kafka: image: bitnami/kafka:3.4 ports: - "9092:9092" environment: - KAFKA_BROKER_ID=1 - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 - KAFKA_CFG_LISTENERS=PLAINTEXT://:..
Message Queue(메시지 큐)- 분산환경 시스템에서 시스템 간의 데이터를 교환하기 위해 사용하는 기법- 데이터의 생산자와 소비자간의 비동기적 통신이 가능하게 한 시스템 Message Queue(메시지 큐)의 한계- Queue에 쌓인 데이터(메시지)를 한 명의 소비자가 읽는 구조.- Pruducer(Publisher, 생산자)가 발행한 메시지를 큐에 저장하고 Consumer(소비자)가 사용하는 구조인데, 이렇게 한 명의 소비자가 사용한 후에는 다른 Consumer가 재사용할 수 없음. 이러한 Message Queue의 한계를 극복하기 위해 Kafka는 Pub/Sub 모델을 사용 Pub/Sub 모델- Message Queue에서 제한된 메세지 재사용의 한계점을 보완해주는 모델 Pub/Sub 모델 ..
@PathVariable- get 요청을 보낼때, URL 자체에 값을 담아 요청하게 해주는 어노테이션 사용 방법 첫 번째 라인 주석에 있는 요청 예시 URL을 보면 중괄효({})로 표시된 위치에 값을 받아 요청을 하면(실제 요청 시에는 중괄호는 들어가지 않는다.) 그러면 @GetMapping 어노테이션에서 어느위치에서 값을 받을 지정할 수 있고, 지금 예시는 아래처럼 가장 마지막에 값을 받도록 지정했다. 그리고 메서드에서 매개변수와 그 값을 연결하기 위해 3번 줄과 같이 @PathVariable을 명시하며, @GetMappping 어노테이션과 @PathVariable에 지정된 변수의 이름을 동일 하게 맞춰서 메서드로 값을 전달할 수 있다.// http://localhost:8080/api/v1/get-a..