AG-Grid 란?한마디로 데이터 그리드를 제공해 주는 친구입니다.서버사이드 랜더링, 엑셀 추출, Master-Detail 구조, Tree, Pivot 등을 지원하며, 무료 버전과 유료 버전으로 나뉘어있지만 무료 버전만으로도 많은 기능을 제공하고 있습니다. AG-Grid를 사용한다면JS 스크립트 기반으로 어떤 플랫폼에서도 사용이 가능합니다. 복잡한 그리드를 Ag-grid를 통해 손쉽게 그릴 수 있으며 수많은 데이터를 한눈에 정리가 되는 장점이 있습니다.출처 - https://www.ag-grid.com/ 개발환경 : React 18, ag-grid-community 26, ag-grid-react 26AG-Grid 세팅하기npm i ag-grid-community ag-grid-react --saven..
프로그래밍을 하다 보면 동기와 비동기, 블로킹과 논블로킹이라는 개념을 자주 접하게 됩니다. 이 용어들은 서로 비슷해 보이지만, 실제로는 중요한 차이점을 가지고 있어서 혼란을 겪곤 합니다. 이러한 이유로 이번 글에서는 동기와 비동기, 블로킹과 논블로킹의 개념을 명확히 정리하고 그 차이점을 살펴보려 합니다. 1. 동기, 비동기, 블로킹, 논블로킹 개념[ 동기 ]동기 작업은 하나의 작업이 완료될 때까지 다른 작업을 대기하는 방식입니다. 즉, 현재 작업이 끝나야만 다음 작업이 시작됩니다. 작업이 순차적으로 실행되며, 작업 간에 의존성이 있는 경우에 주로 사용됩니다. 데이터베이스 트랜잭션, 파일 읽기/쓰기 작업, 연속적인 계산 작업 등등에 사용합니다. 예시 코드public class Example { ..
내가 작성한 프로그래밍 언어의 코드가 실제로 컴퓨터에서 어떻게 동작하는지에 대한 궁금증이 커져갔습니다. 이러한 호기심을 해결하기 위해 운영체제 책을 읽고 있는데, "Hello, World" 프로그램을 고수준 언어에서 시작하여 점차 저수준 언어로 내려가는 과정을 탐구해보기로 했습니다. 1. 고수준 언어에서 저수준 언어로 내려가보기[ 고수준 언어 ]고수준 언어는 사람의 읽기와 쓰기가 쉽도록 설계된 언어C/C++, Python, Java 등. 추상화 수준이 높고, 메모리 관리와 하드웨어 제어를 자동으로 처리예시) C++ 언어로 간단한 Hello, World 출력되는 코드#include int main() { printf("Hello, World"); return 0;} [ 저수준 언어 ]저수준 ..
API 접근 기록을 저장하는 기능을 맡으면서 Path, QueryString, Referrer, Body 값을 DB에 저장을 한다. HTTP의 주요 값을 갖고 있는 HttpServletRequest 클래스를 통해서 Path, QueryString, Referrer 조회하면 정상적으로 조회가 되지만, Body 조회를 하면 값이 없다고 나온다. 그 이유를 찾아보니 네트워크로부터 들어오는 데이터여서 한 번만 읽을 수 있도록 제한되어 있다고 한다. 개발환경 : Java 11, SpringBoot 2.7.71. 문제 사례public class TestController { @PostMapping("/test") public void test(@RequestBody String body, HttpSer..