[카테고리:] Tech

  • React의 렌더링 프로세스

    React는 현대적인 웹 애플리케이션 개발에서 가장 널리 사용되는 라이브러리 중 하나입니다. 그 핵심은 효율적인 렌더링 프로세스에 있습니다. 이번 포스트에서는 React의 렌더링 프로세스가 어떻게 동작하는지, 그리고 이를 이해함으로써 성능을 최적화할 수 있는 방법을 정리해보겠습니다. React 렌더링 프로세스의 기본 개념 React의 렌더링 프로세스는 UI를 효율적으로 업데이트하기 위해 두 가지 주요 단계로 나뉩니다: **Render Phase(렌더 단계)**와 Commit Phase(커밋 단계). […]

    jeewoo jung 아바타
  • React의 핵심 개념 이해하기: Virtual DOM

    React는 UI를 효율적으로 업데이트하고 관리하기 위해 Virtual DOM이라는 개념을 도입했습니다. Virtual DOM은 React의 성능과 선언형 프로그래밍 방식을 가능하게 하는 핵심 기술 중 하나입니다. 이번 포스트에서는 Virtual DOM이 무엇인지, 어떻게 작동하는지, 그리고 왜 중요한지에 대해 자세히 알아보겠습니다. 1. Virtual DOM이란 무엇인가? Virtual DOM은 React에서 사용하는 가상 DOM 트리로, 실제 DOM(Document Object Model)의 가벼운 사본입니다. Virtual DOM은 메모리 내에서 […]

    jeewoo jung 아바타
  • React의 핵심 개념 이해하기: React Element

    React는 효율적이고 선언적인 UI 개발을 가능하게 하는 라이브러리입니다. React의 강력한 성능과 유연성은 두 가지 핵심 개념, React Element와 Virtual DOM에 기반하고 있습니다. 이번 포스트에서는 이 두 가지 개념이 무엇인지, 그리고 React가 어떻게 이를 활용해 UI를 효율적으로 업데이트하는지 알아보겠습니다. React Element란 무엇인가? React Element는 React에서 UI를 표현하는 가장 기본적인 단위로, 컴포넌트를 통해 UI를 구성하지만 실제로 화면에 렌더링되는 것은 […]

    jeewoo jung 아바타
  • React를 공부해야 하는 이유

    들어가며 현대 웹 개발에서 React는 가장 널리 사용되는 프론트엔드 기술 스택 중 하나이다. 프론트엔드(FE) 개발자뿐만 아니라 백엔드(BE) 개발자에게도 React를 배우는 것은 점점 더 중요해지고 있다. 이번 포스트에서는 FE 개발자가 React를 배워야 하는 이유와 BE 개발자가 React를 배워야 하는 이유를 각각 살펴보며, React를 학습해야 하는 필요성을 알아보자. FE 개발자가 React를 배워야 하는 이유 1. 현재 가장 […]

    jeewoo jung 아바타
  • 웹 브라우저의 작동 원리

    들어가며 프론트엔드 개발을 시작하는 많은 개발자들이 React, Vue, Angular와 같은 현대적인 프레임워크를 바로 배우려고 합니다. 하지만 이러한 프레임워크들의 핵심 개념과 최적화 전략을 제대로 이해하기 위해서는, 그 기반이 되는 웹 브라우저의 동작 원리를 먼저 이해하는 것이 중요합니다. 특히 React의 Virtual DOM이나 상태 관리 시스템이 왜 필요한지, 그리고 이것이 어떻게 성능 향상에 도움이 되는지를 이해하려면, 브라우저의 렌더링 […]

    jeewoo jung 아바타
  • 공통코드, 정말 좋은 선택일까?

    개발을 하다 보면 “공통코드”라는 단어를 자주 듣게 됩니다. “이 기능은 여러 곳에서 쓰이니까 공통코드로 빼자!”라는 말은 개발자라면 한 번쯤 들어봤을 겁니다. 얼핏 들으면 공통코드는 코드 재사용성을 높이고, 중복을 줄이며, 유지보수를 쉽게 만들어줄 것 같은 느낌을 줍니다. 하지만, 공통코드가 항상 좋은 선택은 아닙니다. 오히려 잘못된 공통코드는 프로젝트를 복잡하게 만들고, 객체 지향 설계 원칙을 위배하며, 유지보수성을 떨어뜨리는 […]

    jeewoo jung 아바타
  • 객체 지향 설계란

    소프트웨어 개발을 하다 보면 “객체 지향 설계(Object-Oriented Design)”라는 말을 자주 듣게 됩니다. 그러나 객체 지향 설계는 단순히 “객체를 나눠서 코딩하는 거야”를 넘어서 그 이상의 철학과 원칙을 담고 있습니다. 쉽게 말해, 객체 지향 설계는 “객체”라는 독립적인 단위들이 서로 협력해서 하나의 목표를 이루도록 만드는 설계 방식입니다. 객체란? 먼저, 객체(Object)는 단순히 데이터와 기능을 묶어놓은 덩어리가 아닌 책임과 역할을 […]

    jeewoo jung 아바타
  • Java Record: 간결하고 깔끔한 데이터 모델링의 새로운 클래스

    Java 14에서 등장한 record는 데이터를 다루는 방식을 한 단계 업그레이드해주는 멋진 기능입니다. 데이터를 표현하기 위해 매번 반복적으로 작성하던 코드들(생성자, getter, toString(), equals() 등)을 자동으로 처리해주기 때문에, 개발자는 데이터의 본질에만 집중할 수 있게 해줍니다. 하지만 record가 모든 상황에서 완벽한 해결책은 아닙니다. Redis 캐싱과 같은 특정 상황에서는 문제가 발생할 수 있고, 상속을 지원하지 않는다는 점도 알아두어야 합니다. […]

    jeewoo jung 아바타
  • Spring Boot 프로젝트에서 JPA 이해하기

    JPA(Java Persistence API)는 객체와 관계형 데이터베이스 간의 매핑을 자동화하는 Java 표준 ORM 기술로, Spring Boot 프로젝트에서 가장 널리 사용되는 데이터 접근 방식입니다. JPA는 생산성을 높이고 객체 지향 설계와 자연스럽게 통합되며, Spring Data JPA를 통해 간편하게 활용할 수 있습니다. 하지만 JPA는 복잡한 동적 쿼리 작성과 타입 안전성 부족 같은 단점이 있습니다. 이를 보완하기 위해 QueryDSL을 사용하면 동적 쿼리를 타입 안전하고 가독성 높게 작성할 수 있어 JPA의 한계를 극복할 수 있습니다. 국내에서도 JPA는 이미 주요 트렌드로 자리 잡았으며, 전 세계적으로도 가장 널리 사용되는 데이터 접근 기술로 인정받고 있습니다. Spring Boot와 JPA, 그리고 QueryDSL의 조합은 CRUD 중심 애플리케이션 개발에서 가장 효율적이고 강력한 선택지입니다.

    jeewoo jung 아바타
  • Slack Innovation Day 참석 후기

    Slack Innovation Day 참석 후기

    감각적인 봄날, 수요일 오후 느긋하게 차창 밖으로 꽃가루가 흩날리는 도시의 모습을 감상하며 역삼동 마루180으로 향했다. 대단한 혁신보다는 업계의 최신 트렌드와 영감을 얻고자하는 마음으로 설렘과 기대를 안고 컨퍼런스 룸으로 들어섰다. 계단을 내려가자, 경품추첨을 위한 3개의 바구니가 있었고 각각 협업툴에 대한 내용이 있었다. 개발자라 그런걸까 항상 관심이 있었던 업무 자동화에 대한 곳에 명함을 넣었고, 역시 그곳에 가장 […]

    ilsu lee 아바타