Execution Context 자바스크립트는 싱글 스레드 인터프리터 언어로, 각 브라우저는 자체 자바스크립트 엔진을 사용하여 코드를 스캔하고 해석합니다. 이 과정에서 중요한 역할을 하는 것이 바로 실행 컨텍스트(Execution Context) 입니다. 실행 컨텍스트는 코드의 변환과
대용량 JSON 대용량 JSON 이번 프로젝트를 진행하면서 대용량 JSON 을 어떻게 처리했는지 간략하게 정리해보려고 합니다. 데이터 처리 방식 Request : JSON 을 받아서 Attribute 별로 Parsing 하여 DB 에 저장 Response : Attribute 별로
JPA 배치 인서트 vs JDBC배치 인서트 들어가며 저번 게시글 대용량 데이터 등록에서는 JPA(Java Persistence API) 배치 인서트(Batch Insert)를 사용해서 대용량의 데이터를 등록했습니다. 하지만 프로젝트가 진행되면서 추가할 데이터의 수가 점점 더 많아져 홍수가 되었고
GraphQL 1. GraphQL란? 공식 홈페이지에 따르면 GraphQL은 API를 위한 쿼리 언어(Query Language, QL)입니다. SQL이 데이터베이스 시스템에서 데이터를 처리하는 역할을 한다면, GraphQL은 클라이언트와 서버 사이에서 데이터를 처리하는 용도로 사용됩니다. 2.
React Hook Form 프로젝트에서 useForm을 사용하면서 느꼈던 이점과 간단한 사용법, 그 외 React Hook Form의 기본 기능에 대해 공유해 보고자 한다. useForm이란? * 기존사용법 * useForm 사용해보기 Controller * Controller Component * useController 그 외 기능들 * useFieldArray
쿠버네티스(Kubernetes) 들어가며… 현대 사회에서 웹 애플리케이션은 우리 일상에서 빠질 수 없는 중요한 서비스로 자리 잡았습니다. 소셜 미디어, 온라인 쇼핑, 금융 거래 등 우리가 사용하는 수많은 온라인 서비스들이 웹 애플리케이션을 기반으로 동작하고
리액트 상태관리 트렌드의 변화 챗GPT에게 까지 소문난 리액트 상태관리의 악명.. 들어가며 리액트를 사용해 프론트엔드 개발을 하다보면 상태관리에 대한 이야기를 수도 없이 듣게 됩니다. 이는 상태관리가 중요하기뿐만 아니라 그만큼 어렵고 정해진 가이드라인도 없기 때문입니다. 수많은
메모리 누수의 개념과 방지 방법 들어가며 이번 글에서는 메모리 누수의 개념과 메모리 누수를 방지할 수 있는 방법에 대해 살펴봅니다. 메모리 관리에 관심을 가지게 된 것은 최근 업무 도중 경험한 오류 때문이었습니다. 현재 넥스트리는 고객사 시스템의
대용량 데이터 등록 들어가며 현재 진행하는 프로젝트는 monolithic에 sql mapping으로 구성되어 있습니다. 그래서 .xml에 있는 sql을 파싱(Parsing)하고 메타데이터(MetaData)로 만들어서 저장하는 기능이 필요했습니다. 하지만 문제가 있었습니다. mysql에 물리적으로 입력되는 메타데이터의
JavaParser 목차 1. 들어가며 2. Parser 3. JavaParser 기능 4. 라이브러리를 사용하며 겪은 문제 및 해결 들어가며 Modular Monolithic 아키텍처 프로젝트에서 메소드 호출 관계를 추출하는 업무를 맡으며 JavaParser를 처음 사용하게 되었습니다.
MongoDB와 Transaction 환경 * Java 11 * Spring boot (v.2.7.10) * MongoDB (v.6.0.5) * Docker 트랜잭션(Transaction)이란? 트랜잭션은 데이터베이스 작업의 논리적인 단위로, 단일 작업들의 그룹을 의미한다. 단일 작업은 쉽게
클린 코드의 기초 들어가며 좋은 코드란 무엇일까요? 이제 막 개발자로써 첫발을 내딛은 초심자부터 오랫동안 몸담아온 베테랑까지, 좋은 코드를 향한 열망과 고민은 개발자로 존재하는 이상 결코 멈출 수 없는 숙명이 아닐까 합니다. 세상 만사가
상태 관리 라이브러리 Zustand Zustand는 상태 관리 라이브러리 중 하나로, 작은 패키지 크기와 직관적인 사용법 덕분에 Redux와 Mobx와 더불어 많은 개발자들로부터 선택받고 있습니다. Zustand는 일반적으로 위의 예시 코드처럼 사용합니다. 개발자가 할 일은 State의 타입을
AWS로 서버 구성 시 고려해 볼 만한 것들 목차 1. 개요 2. 도메인/SSL 3. Elastic Load Balancer 4. Auto Scaling Grouop 5. EC2 Template 6. S3 7. CI/CD 8. 기타 * CORS * 리눅스 세팅 * 테스트 서버 개요
React Query 1. React Query란 React Query는 데이터 Fetching, Caching, 동기화, 서버 데이터 업데이트 등을 쉽게 만들어 주는 라이브러리입니다. React에서 상태를 관리하기 위해 MobX, Redux 등 여러 라이브러리가 존재하지만, 현재 진행중인 프로젝트에서
리액트 퍼블리셔 가이드 3-1편 - CSS 소개 들어가는글 안녕하세요. 이 글은 퍼블리셔 초심자 분들을 위한 가이드입니다. 해당 글이 도움이 되길 바랍니다. 이번 글은 CSS를 주제로 CSS에 대한 내용만 집중적으로 이야기하려고 합니다. 더불어 이전 내용을 읽어보지 않은 초심자라면
Spring Event 먼저 응집도와 결합도가 무엇인가에 대한 이해가 필요합니다. 해당 내용을 먼저 알아보는 이유는 위의 내용을 이해하기 전에 본문을 읽을 경우 "굳이 왜 사용을 해야하나?"와 같은 의문이 생길 수
자바스크립트 엔진 자바스크립트는 웹 브라우저에서 가장 많이 사용되는 프로그래밍 언어입니다. 자바스크립트 코드를 실행하여 웹 페이지의 동적인 기능을 제공하는 인터프리터가 바로 자바스크립트 엔진입니다. 자바스크립트 엔진에는 크롬의 V8, 사파리의 Webkit, 파이어폭스의 Spider Monkey 등이
리액트 퍼블리셔 가이드 2편 - HTML 들어가는 글 안녕하세요. 이 글은 퍼블리셔 초심자 분들을 위한 가이드입니다. 해당 글이 도움이 되길 바랍니다. 이번 글은 HTML을 주제로 HTML에 대한 내용만 집중적으로 이야기하려고 합니다. 더불어 이전 내용을 읽어보지 않은
MonoRepo & Yarn Berry 0. 개요 * 최근 들어 프론트엔드 프로젝트 형상관리에서 고전적 소프트웨어 개발 방식인 모놀리식 애플리케이션(Monolithic)의 한계점이 나오면서 다른 방식들이 많이 나오고 있다. * 해당 글은, 소스 형상 관리 시스템 상에서 소스
Git basic Git 이란 무엇일까? 도서관에서 책을 대여하기 위해선 어떻게 해야하는가? 도서관을 이용해본 적이 없더라도 조금만 고민을 해본다면 쉽게 대답할 수 있을 것이다. 여기 넥스트리 도서관이 있다. 넥스트리 도서관에는 방대한 양의 책들이
Code Splitting 1. 개요 코드 스플리팅은 왜 적용해야 할까요? 리액트와 같은 SPA로 개발된 프로젝트를 빌드해 보면 하나의 JS파일로 번들링되는 것을 볼 수 있습니다. 이렇게 하나의 파일로 번들링된 결과물로 배포된 웹페이지에 진입하면 사용자는
리액트 퍼블리셔 가이드 1편 - 웹 퍼블리셔란? 리액트 퍼블리셔 로드맵 시작 안녕하세요. 이 글은 퍼블리셔 초심자 분들을 위한 가이드입니다. 해당 글은 로드맵에 관련된 글로 전체 맥락을 파악하기 위해 자세하거나 세세한 글은 어느정도 생략이 되었습니다. 리액트 퍼블리셔는 어떤 과정을 통해 될
리액트 렌더링 및 최적화 요약 이 글을 요약하면 다음과 같다. 1. props의 변화로 인해 렌더링이 이루어지는 것이 아니라, 렌더링이 이루어진 후 props의 변화를 가지고 화면을 그린다. 따라서 렌더링 추적 및 최적화는 철저히 state기반으로 이루어져야
Mockito를 활용하여 테스트 코드 작성하기 Mockito 란? Mockito란 Java 오픈소스 테스트 프레임워크입니다. Mockito를 사용하면 실제 객체를 모방한 가짜 객체, Mock 객체 생성이 가능해집니다. 개발자는 이 Mock 객체를 통해 테스트를 보다 간단하고 통일성있게 구현할 수 있습니다.
React 디자인 패턴 디자인 패턴이란 프로그램을 개발하는 과정에서 사용되는 설계 패턴들을 정의한 것입니다. 과거의 웹사이트와 비교했을 때 현재는 화면 작업이 훨씬 복잡해졌고 React, Vue와 같은 개발 프레임워크를 활용하여 컴포넌트 단위로 웹 페이지를 개발하고
Module Federation 작년 초에 Module Federation을 적용한 작은 서비스를 개발했습니다. 이 글은 그때의 경험을 바탕으로 Module Federation를 사용하는 이유, 단점, 사용하며 느낀 점 등을 다룹니다. 1. Micro-Frontend and MSA Micro-Frontend MSA(Microservice
스프링 대용량 트래픽 처리 #0. 대용량 트래픽 처리의 필요성 * 웹 서비스를 다루는데 있어 트래픽을 처리하는 구조를 설계하고 적용하는 것은 개발자의 필수 역량이다. 특히 서비스의 규모가 커질 수록 개발자가 의도한 대로 프로그램이 작동하지 않는 경우가
Front-end 에서의 Testing I. 신입 개발자의 일상 시작하기에 앞서 아직 프론트가 낯선 입사 1년이 막 지난 한 사원의 프론트엔드 개발 흐름을 살펴보자. 1. figma 등을 통해 본인이 맡은 페이지의 모습을 확인한다. 2. 퍼블리셔
TypeScript 알차게 활용하기 TypeScript 알차게 활용하기 들어가며 최근 통합 테스트 과정을 거치면서 TypeScript를 잘 활용할수록 에러 발생률을 줄일 수 있음을 체감하였다. 그래서 TypeScript 활용 팁을 정리해보았는데, 이번 글에서는 Utility Types와 Enums의 활용 방법을
2023 웹디자인 트렌드 시작 안녕하세요 2023년이 된지 일주일이 조금 지난 지금, 디자인계의 트렌드는 계속 발전되고 변화되고 있습니다. 어느 분야든 마찬가지겠지만, 트렌드를 알고 시장을 이해하는 것이 중요합니다. 2023년의 웹디자인은 어떤 트렌드가 자리잡고 있을까요? 목차
Typescript compile process 목차 * 개요 * Typescript 특징 * Typescript Compile Process * Typescript를 선택하는 이유 개요 타입스크립트가 등장하기 전 많은 프로젝트에 자바스크립트를 사용했습니다. 자바스크립트의 동적 타이핑은 자바와 다르게 개발자가 아주 유연한 코딩을 할 수 있도록
Generic 이해하기 주제 선정 이유 개발을 하다보면 이미 작성된 코드를 분석해야할 상황에 자주 놓이게 됩니다. 가장 쉽게 이런 상황에 놓이는 경우는 보통 라이브러리를 사용해야 할 때 일 것입니다. 라이브러리에서 원하는 기능의 API를
Cloud Native 앱 개발 역량 (이 글은 클라우드 네이티브 앱을 개발하고 운영하는 팀을 대상으로 하되, [개발 역량]에 초점을 두고 작성하였습니다. 따라서, 클라우드 인프라, DevOps 영역에 대한 내용은 없습니다. 참고하시고 읽어주시면 고맙겠습니다.) 클라우드 환경은 지원하는
JavaScript 에서 TypeScript 로 이 글은 SI(System Integration) 프로젝트에서 기업형 애플리케이션(Enterprise Application)을 목표 시스템으로 프로젝트를 진행하는 프로젝트 팀 개발자를 독자로 가정하고 작성하였습니다. 서비스 개발 회사의 경우, 기술 선택의 폭이 넓고 다양하여
React Router SPA(SinglePageApplication) 프레임워크 중 하나인 React로 개발을 진행하려다 보니 문뜩 궁금한 것이 하나 생겼습니다. React는 하나의 화면에서 변화를 감지할때마다 VirtualDOM에 업데이트를 하고 변화가 일어난 부분만 Rendering을 하는데, "그럼 모든
React State 1. State란 무엇인가? 우선 State를 설명하기전, Props(Properties)를 간단하게 살펴 보겠습니다. 일반적으로 React에서는 모든 데이터 전달 방향은 부모 컴포넌트에서 자식컴포넌트로 향해 있습니다. 그래서 자식컴포넌트에서 필요한 데이터는 부모컴포넌트에서 자식컴포넌트의 props에
React Props props React 에서의 데이터 흐름은 단방향으로 부모(상위) 컴포넌트에서 자식(하위) 컴포넌트로 전달되는 구조입니다. 이러한 흐름에서 부모 컴포넌트에서 자식 컴포넌트로 전달되는 데이터는 props 라는 객체로 전달되며 properties 의 줄임말 입니다.
React Component & Lifecycle ReactElement는 Virtual DOM(이하 VDOM)이라는 콘셉트의 구현체입니다. VDOM은 in-memory에 존재하는 자바스크립트 객체이며 React.createElement 함수로 생성할 수 있습니다. 이를 통해 생성된 엘리먼트는 일반적인 자바스크립트 객체입니다. 이를 아주 단순하게 표현하면
GitHub 시작하기 1. 환경 세팅 1-1. JAVA : 1.7 1-2. Eclipse : Kepler - Eclipse EGit 플러그인 설치 : EGit 플러그인은 이클립스와 Git을 연동시켜줍니다. 이클립스에 EGit플러그인을 설치하는 방법에는 두 가지 방법이 있는데 첫 번째
OAuth 2를 이용한 SSO 환경 구축 (2/2) 이전 글에서 OAuth 2의 개념과 구현 시 고려 사항들에 대해 살펴봤습니다. 이번 글에서는 SSO 환경을 구성하기 위해 어떻게 OAuth 2를 확장하는 지와 스프링부트 및 스프링 시큐리티 OAuth로 SSO 환경을 구축하는
OAuth 2를 이용한 SSO 환경 구축 (1/2) 한 회사에서 여러 시스템을 운영 중이고, 각 시스템마다 계정을 별도로 관리하여 서비스하는 경우가 있습니다. 시스템들을 이용하는 사용자는 자신이 사용하는 시스템들의 계정을 모두 기억해야 하고, 시스템들을 사용하기 위해서 각 시스템에 별도로
HTML5 / CSS3 수평, 수직 정렬 이 글은 HTML과 CSS를 사용하여 문장, 문단, 문단을 담고 있는 박스 등을 사용자가 보기 좋게 정렬할 수 있는 방법에 대해 다루고 있습니다. 수평, 수직축 중앙 정렬을 다룬 두 가지의 방법에
React Material-UI 적용 React는 오픈소스로 구성된 자바스크립트 라이브러리의 하나로서 사용자 인터페이스를 만들기 위해 사용합니다. 사용자 인터페이스를 아름답게 만들수 있게 도와주는 다양한 리액트 기반의 UI 라이브러리가 있습니다. 대표적으로 Material-UI, Semantic-UI-React, Ant-Design, React-Bootstrap, Grommet 등이
React Fragment 1. React Component Element Rendering class CorrectComponent extends React.Component { // React Component is rendering only single element. render() { return ( <h4> Hello React </h4> ) } } class WrongComponent extends
React Testing 단위 테스트란? 단위테스트는 어플리케이션을 테스트 함에 있어 가장 작은 단위로 분리하여 테스팅을 진행하는것을 말합니다. 가장 작은 단위(함수 또는 메소드..)로 수행하는 단위테스트를 통해 프로그램의 잘못된 수행과 예기치 못한 버그를
Hooks React에는 2가지 종류의 component가 있습니다. 1. Class Component - Component를 만들 때 class를 이용하여 만드는 방법입니다. 보통 React를 사용할 때 기본적으로 사용하는 방법입니다. Class Component를 사용하는 이유는 state와 lifecycle를 이용할
React Context 이 글을 통해 React의 Context 개념과 사용에 대해 간단히 알아보고, 실제로 context를 사용하여 간단한 컴포넌트를 제작해보겠습니다. 1. Context란? 처음 React로 개발을 진행할 때, 컴포넌트 간에 데이터를 전달하는 데 있어 불편함을
JSX문법과 선택적 렌더링 조건부 렌더링(Conditional Rendering) React Component는 스스로 State를 통해서 화면을 나타내며, 이러한 React Component를 조합하여 복잡한 UI를 생성할 수 있습니다. 복잡한 UI를 생성하기 위해서는 React Component는 로직을 사용할 수 있어야
React Handling Event React에서 Event를 다루는 방식과 HTML에서 Event를 다루는 방식에는 약간의 차이점이 있습니다. 1. Event 사용 방법 * HTML에서는 event를 정의 할 때 모든 event를 소문자로 정의합니다. React에서는 camelcase를 이용하여 event 정의를 합니다.