Programming 7

Java 21 JVM & GC Improvements #RoadTo21 정리

Java 21 JVM & GC Improvements #RoadTo21위 유튜브 영상을 기반으로 정리한 내용이다. Java 21의 JVM 및 GC 개선 사항Java 21은 JVM과 가비지 컬렉션 성능을 크게 향상시키는 중요한 업데이트를 포함하고 있다.1. JVM 성능 최적화의 변화Java 17에서 21로 넘어가면서 다양한 성능 최적화가 이루어졌다. 이 최적화는 메모리 관리와 스레드 작업뿐만 아니라, 스택과 힙 간의 전환 속도를 개선하여 Java 애플리케이션의 전반적인 효율을 높였다. 여기서 중요한 세 가지 성능 지표는 다음과 같다.처리량(Throughtput): 단위 시간당 처리할 수 있는 작업의 양지연 시간(Latency): 작업 요청과 응답 간의 지연 시간메모리 사용량(Memory Footprint)..

Programming 2024.11.10

Will AI replace programmers? | Cursor Team and Lex Fridman 정리

Will AI replace programmers? | Cursor Team and Lex Fridman위 유튜브 영상을 기반으로 정리한 내용이다. AI가 프로그래머를 대체할까?프로그래밍의 미래에 대한 질문이 점점 중요해지고 있다. AI가 발전하면서 프로그래머의 역할은 어떻게 변할까?1. 프로그래밍의 변화하는 역할Cursor 팀은 프로그래머의 통제력과 속도를 더욱 강화하는 미래를 그리고 있다. AI가 모든 소프트웨어를 생성하는 것이 아니라, 프로그래머가 중심이 되어 AI를 활용해 효율성을 높이는 방식에 중점을 둔다. 마치 AI가 협업하는 엔지니어링 부서와 같은 역할을 수행하게 된다고 볼 수 있다. 이 접근 방식은 단순히 AI에 명령을 내리는 것이 아니라, 중요한 결정을 내리는 과정에서 프로그래머가 구체적..

Programming 2024.11.06

Java 21 new feature: Virtual Threads #RoadTo21 정리

Java 21 new feature: Virtual Threads #RoadTo21위 유튜브 영상을 기반으로 정리한 내용이다. Java 21의 새로운 기능: 가상 스레드 (Virtual Threads)Java 21에서 도입된 가상 스레드는 고성능 멀티스레딩 환경을 구현하기 위한 획기적인 기능이다. 가상 스레드는 전통적인 커널 기반 스레드와 달리 가볍고, 대규모 병렬 작업을 효과적으로 지원한다. 이 글에서는 가상 스레드가 필요한 이유, 기본 동작 방식, 성능 상의 장점과 한계를 설명한다. 1. 왜 가상 스레드가 필요한가?기존의 스레드 모델에서는 플랫폼 스레드가 사용되었으며, 이러한 스레드는 커널 스레드를 기반으로 동작한다. 플랫폼 스레드의 문제는 메모리 사용과 생성 비용이 높다는 것이다. 스레드 하나가 2..

Programming 2024.11.06

Reactive, Reactor, Webflux와 Coroutine

1. 리액티브 프로그래밍리액티브 프로그래밍이란?리액티브 프로그래밍은 비동기 데이터 흐름을 처리하는 방식으로, 시간에 따라 연속적으로 데이터를 제공하는 데이터 스트림을 중심으로 동작한다. 데이터가 스트림을 통해 들어올 때마다, 그 데이터를 비동기적으로 처리하며 시스템의 자원을 보다 효율적으로 사용할 수 있다. 이는 특히 대규모의 데이터 처리와 실시간 애플리케이션에서 중요하게 사용된다. 데이터 스트림: 연속적으로 발생하는 데이터를 시간에 따라 처리.비동기 처리: 데이터가 준비될 때까지 대기하지 않고, 다른 작업을 병렬적으로 처리.자동 반응: 데이터 변경 사항을 자동으로 감지하고 처리.리액티브 시스템의 특성리액티브 시스템은 확장성과 회복성이 뛰어난 시스템을 구축하는 것을 목표로 하며, 다음 네 가지 주요 특..

Programming 2024.09.29

Cookies And Sessions

들어가며웹 개발에서 상태를 유지하는 것은 인터렉티브 하고 사용자 친화적인 애플리케이션을 만드는 데 매우 중요하다. 상태관리는 웹 애플리케이션이 서로 다른 페이지나 유저 인터렉션 사이에서도 정보를 기억하는 능력을 말한다. 이 목적에 맞는 두 개의 기본 기술이 쿠키와 세션이다. 웹 개발자는 이 기술들이 어떻게 구현되어 있고 관리되는지 이해하고 있어야 한다. 이 포스팅은 쿠키와 세션의 차이점, 동작방식, best practice를 설명한다.쿠키란 무엇인가?쿠키는 웹서버에 의해 브라우저에 저장되는 작은 데이터 조각이다. 쿠키는 유저의 로그인 정보다 설정값등을 기억하고 있다. 이러한 정보들을 통해 유저는 웹 애플리케이션을 이용하며 개인화된 경험을 할 수 있다.쿠키의 목적유저의 세션 추적유저의 설정정보 저장개인화된..

Programming 2024.07.24

도커로 MySQL Master Slave Replication 만들기

들어가며MySQL는 내부 설정을 통해 Replication을 설정할 수 있습니다. 도커를 이용해 더 편하게 설정하도록 합니다. 더 자세한 데이터베이스 복제 과정은 해당 포스팅을 통해 확인할 수 있습니다.설치 및 실행1. Git Clonegithub으로 이동하여 레포지토리를 클론 합니다.2. 쉘 파일 실행권한 부여chmod 755 build.sh3. 쉘 파일 실행./build.sh위 결과나 나와야 합니다.실제 Replication 확인터미널 1# 컨테이너 진입docker exec -it mysql_master /bin/bash# MySQL 접속 (Master)mysql -u mydb_user -pEnter password: mydb_pwd# 데이터베이스 선택 & Table 생성 & 데이터 삽입use myd..

Programming 2024.06.03

객체지향 5원칙 SOLID 코드로 이해하기

들어가며객체지향 5원칙을 실제 예시를 통해 알아봅니다.S: 단일 책임 원칙 (Single Responsibility Principle, SRP)O: 개방-폐쇄 원칙 (Open-Closed Principle, OCP)L: 리스코프 치환 원칙 (Liskov Substitution Principle, LSP)I: 인터페이스 분리 원칙 (Interface Segregatio Principle, ISP)D: 의존관계 역전 원칙 (Dependency Inversio Principle, DIP)단일 책임 원칙 (Single Responsibility Principle, SRP)요점하나의 객체가 하나의 책임만 가져야 한다.클래스는 단 한 가지 목표만 가지고 작성해야 한다.애플리케이션 모듈 전반에서 높은 유지보수성과 가..

Programming 2024.05.20