2025/01 5

[운영체제] 자바의 스레드와 멀티스레드 기본 개념

01 서론운영체제에 대해 공부하며 CPU 성능과 자원 활용에 관심을 가지게 되었습니다.특히, 기술의 발전으로 코어가 여러 개인 프로세서 환경에서 CPU의 활용에 따라 프로그램 성능이 달라질 수 있다는 점에 주목했습니다.자바에서 스레드와 멀티스레드는 프로그램의 성능을 향상시키고, 효율적인 작업 처리를 가능하게 하는 중요한 개념입니다.이 글에서는 자바의 스레드와 멀티스레드의 기본 개념을 정리하고 실제로 이를 어떻게 활용하는지 예시 코드를 작성해보았습니다.02 스레드와 멀티스레드의 기본 개념1. 프로세스란 무엇인가?먼저, 프로세스란 CPU에 의해 메모리에 올려져 실행중인 프로그램을 의미하고 독립적인 실행 환경을 가진다는 특징이 있습니다.자바 JVM은 하나의 프로세스로 실행이 되지만, 여러 작업을 동시에 처리..

[Project / Collabit] 우리 프로젝트에 Redis를 적용해야 하는 이유

작년에 토스 면접을 준비하며 Redis를 처음 접했습니다.프로젝트에 적용해보고 싶었지만 소규모인데다 시간이 부족해 적용하지 못했던 Redis를 이번 프로젝트에 적용해보게 되었습니다.어떤 기술을 프로젝트에 사용할 때는 그 기술을 사용하는 당위성이 필요하다고 생각합니다.왜 많은 기술 중 Redis를 고르게 되었는지, 왜 프로젝트에 이 기술을 적용해야 하는지 정리해보려 합니다.01 Redis란?Redis(Remote Dictionary Server)는 고성능 키-값 저장소로, 오픈 소스 기반의 NoSQL 데이터베이스입니다.데이터의 빠른 처리를 위해 메모리에 데이터를 저장하고, 필요에 따라 디스크에 데이터를 지속적으로 저장하여 데이터 손실을 방지합니다.다양한 데이터 타입을 지원하며, 캐싱, 세션 관리, 메시지 ..

Programming/Project 2025.01.19

[컴퓨터구조] 자바는 컴파일 언어일까 인터프리터 언어일까?

프로그래밍 언어는 컴파일 언어와 인터프리터 언어로 분류할 수 있습니다.현재 백엔드 개발을 위해 사용하고 있는 자바는 둘 중 어디에 해당하는지 궁금해졌습니다.이 글에서는 컴파일 언어와 인터프리터 언어의 차이를 살펴보고, 자바를 이 관점에서 어떻게 이해할 수 있는지 정리해보았습니다.01 프로그래밍 언어의 분류1. 컴파일 언어란?컴파일 언어는 소스 코드를 기계어로 변환하는 컴파일러를 사용하여 프로그램을 실행합니다.컴파일 언어의 특징은 다음과 같습니다.컴파일 과정: 전체 소스 코드를 한 번에 번역하여 실행 가능한 파일을 생성합니다.빠른 실행 속도: 기계어로 변환된 실행 파일을 사용하기 때문에 실행 속도가 빠릅니다.플랫폼 의존성: 컴파일된 파일은 특정 운영 체제와 하드웨어에서만 실행됩니다.대표적인 컴파일 언어로는..

[네트워크] 로드밸런싱의 정의와 알고리즘

네트워크 스터디를 진행하며 마지막 챕터인 네트워크 심화를 주제로 공부를 하며로드밸런싱의 정의와 필요성, 관련 알고리즘에 대해 정리해보았습니다.1. 로드밸런싱이란로드밸런싱은 여러 서버를 두고 트래픽을 고르게 분산시켜 시스템의 성능과 안정성을 높이는 기술입니다.하나의 서버에 요청이 몰리지 않도록 하여 서버 과부하를 막습니다.2. 로드 밸런싱의 필요성과거에는 한 대의 서버만으로도 클라이언트 요청을 처리하는데 문제가 없었습니다.하지만 현대의 애플리케이션에서는 사용자 요구가 증가하고 비즈니스가 복잡해져 서버 부하가 증가했습니다.동시에 많은 사용자들이 요청을 보내는 대용량 트래픽 상황에서 서버의 부하를 줄이기 위한 분산 처리 시스템 구현을 위해 로드 밸런싱을 채택할 수 있습니다.로드 밸런싱을 통해 서버 과부하를 방..

[React] React + Tailwind CSS 시작하기

이전에 리액트 프로젝트를 진행할 때는 주로 SCSS를 사용해왔습니다.SCSS는 CSS를 확장한 기능으로 가독성이 좋고 재사용 가능한 스타일링에 유용했지만이제는 프로젝트에서 많이 사용하는 Tailwind를 도입해보기로 했습니다.1. SCSS vs Tailwind CSS1) SCSSSCSS는 가독성 높은 코드와 변수, 믹스인, 중첩 규칙으로 유연한 스타일링이 가능합니다.하지만 큰 프로젝트에서는 스타일이 충돌할 수 있고 관리가 어렵습니다.2) Tailwind CSS테일윈드는 클래스를 통해 스타일을 빠르게 작성할 수 있습니다.하지만 초기 학습이 필요하고 클래스 네이밍이 길어질 수 있습니다.이러한 SCSS 대신 Tailwind를 사용하여 생산성을 높이고 유지보수를 간편히 할 수 있을 것이라 생각해 이번 프로젝트에..

FrontEnd/React 2025.01.05