일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C programming
- 윤성우 열혈자료구조
- coding test
- s
- buffer
- 이것이 자바다
- 메모리구조
- datastructure
- list 컬렉션
- C 언어 코딩 도장
- 알기쉬운 알고리즘
- 혼자 공부하는 C언어
- 윤성우의 열혈 자료구조
- Graph
- R
- Stack
- Serialization
- JSON
- insertion sort
- Selection Sorting
- Algorithm
- stream
- 이스케이프 문자
- Today
- Total
목록SW Engineering (6)
Engineering Note

case1 client 입장에서 server로 비동기 통신 보내면서 비동기 통신 익히기 case2 server to server API 통신으로 비동기 통신 익히기 case 2-1 보내는 server case 2-2 받는 serverCASE1 client 입장에서 server로 비동기 통신 보내면서 비동기 통신 익히기 먼저 동기 통신으로 서버에 요청을 보내고 브레이크 포인트를 걸면서 동기 통신 동작과정을 브라우저에서 확인해보았다. 1.먼저 요청을 받을 endpoint를 만들어 준다.package com.staging.excercise.controller;import org.springframework.web.bind.annotation.*;@RestController@RequestMapping("/..
동기 vs 비동기, 커피 주문으로 이해하기 + 콜백함수동기(Synchronous): 요청한 작업이 끝날 때까지 기다렸다가 다음 일을 진행하는 방식비동기(Asynchronous): 요청한 작업을 기다리지 않고, 다음 일을 먼저 진행하고 결과는 나중에 받는 방식커피 주문 상황으로 이해해보기손님과 바리스타가 있다고 해보자.손님이 커피를 주문했는데, 바리스타가 원두가 떨어진 걸 발견하고 원두를 외부에 주문한다.이때 **"원두 주문"**을 작업 요청이라고 보면,동기 처리는:바리스타가 원두가 도착할 때까지 가만히 기다리며,다른 손님의 주문은 받지 않는 상황이다.비동기 처리는:바리스타가 원두를 주문해두고, 도착하기를 기다리는 동안다른 손님의 주문을 받고 커피를 만드는 작업을 계속하는 것이다.비동기에서 콜백 함수란?비..
외부와 연동하는 프로젝트를 하다보면 다양한 형태의 JSON 구조를 만나게 돼서 이를 Java 객체와 매핑하는 역직렬화 과정을 거치게 되는데 이를 위한 연습을 했다. 1.JSON이 가질 수 있는 다양한 구조 - 기본형(단순 객체)- 배열 안에 객체- 객체 안에 배열- 배열 안에 중첩된 배열- 최상위 배열- 키 없는 구조 등 2 JSON 객체 매핑2.1 기본형 단순 객체{ "name" : "Tom", "age" : 2,} public class User { private String name; private int age;} 2.2 배열 포함 : 객체 안에 배열 { "name" : "Tom", "skills" : ["Java", "Spring, "JWT"]}public class User { ..
정적타입 언어로 프로그래밍을 시작했고, 위치기반으로 정보를 감각적으로 파악하는 사람에게는 JSON이 타입을 명시하지 않기도 하고 타입을 파악하기 위해서는 value가 있는 오른쪽으로 가서 표기의 형태를 파악해서 읽기가 어렵다.(따옴표가 있는지, 따옴표 없이 숫자로 적혀있는지 , {}로 되어 있는지, []로 되어있는지 등) 심지어 JSON이 프로그래밍 언어 내부에서 문자열형태로 표시되고 있을 때는 이스케이프 문자와 겹쳐서 더더욱 파악하기 어렵다.하지만 JSON을 잘 파악하는 능력은 API를 설계해야하는 백엔드 개발자에게는 필수 능력이다. 그래서 이번기회에 있어서 JSON의 개념과 사용 이유, JSON을 쉽게 읽는 방법을 정리하려고 한다. 1. JSON이란?- JavaScript Object Nataion..
Serialization(직렬화)는 외부와 통신이 많은 웹 개발자라면 자주 마주 치는 개념이다. 한 번 정리 할 필요가 있어서 공부하면서 관련 개념을 같이 정리했다. Serialization란?→ 메모리 내부 데이터(객체 등)를 외부 저장/전송 가능한 연속된 데이터(byte[])로 변환하는 것.Stream이란?→ 시간적으로 순차적이고, 공간적으로 연속된 데이터를 처리하기 위한 추상적 통로이자 바이트 기반 구현체Buffer란?→ 데이터를 임시로 담아두는 공간 (RAM 일부), 실제 메모리위에 바이트 배열.Stream과 Serialization의 관계는?→ 직렬화된 데이터가 흐르는 곳이 바로 Stream이고, 그 Stream은 결국 바이트 배열 기반으로 구현된다.왜 byte 배열(byte[])은 쓰는가?→..

Redis와 Kafka는 각각 캐싱과 비동기 처리를 위한 강력한 도구입니다. Redis는 빠른 읽기/쓰기를 지원하는 인메모리 데이터베이스로 주로 캐시 시스템에 사용되며, Kafka는 분산 스트리밍 플랫폼으로 대규모 데이터 처리 및 실시간 이벤트 스트리밍에 적합합니다. 이 두 기술을 활용하여 Spring Boot 프로젝트의 성능을 최적화하고 비동기 처리를 효율적으로 구현할 수 있습니다.Docker를 사용하여 Redis와 Kafka를 설치하고 Spring Boot 프로젝트와 연결하는 과정을 단계별로 안내해드리겠습니다.1. Docker Compose 파일 생성Spring Boot 프로젝트 루트 디렉토리에 docker-compose.yml 파일을 생성합니다:version: '3'services: # Redis..