본문 바로가기

개발 상식 시리즈6

백엔드 30일 완성을 읽고 배운 것(60페이지까지) (31p)먼저 단일 스레드 버전의 서버를 만들어본다. 그런 다음 몇 가지 간단한 과정을 통해 스레드 풀을 사용하여 여러 동시 요청을 수용하도록 확장해본다.스레드란?더보기스레드는 컴퓨터 프로그램 내에서 실행되는 가장 작은 단위로, 프로세스 내에서 독립적으로 실행될 수 있는 흐름을 말합니다. 스레드는 프로세스의 자원을 공유하면서 동시에 여러 작업을 수행할 수 있게 합니다.주요 개념프로세스와 스레드의 차이:프로세스: 실행 중인 프로그램의 인스턴스로, 독립적인 메모리 공간을 가지고 운영체제에 의해 관리됩니다.스레드: 프로세스 내에서 실행되는 독립적인 작업 단위로, 프로세스의 자원을 공유합니다. 여러 스레드가 하나의 프로세스 내에서 동시에 실행될 수 있습니다.스레드의 장점:병렬 처리: 여러 스레드를 사용하여 작업.. 2024. 5. 18.
백엔드 30일 완성을 읽고 배운 것(30페이지까지) 나는 책을 통해서만 백엔드를 경험했지 밑바닥부터 내가 뭔갈 만들어 본 경험이 스프링 부트 3 한 번 밖에 없다.프로젝트를 시작하면서 백엔드 진도를 나갈 필요가 있어 작업하면서 공부도 할 겸 '백엔드 30일 완성' 책을 구매했다.앞으로 내가 위와 같은 제목으로 남기는 기록은 책을 읽으면서 내가 몰랐던 내용을 기록하는 것이다.나는 GPT랑 계속 대화하면서 배우고 그를 통해 알게 된 사실을 블로그에 남기는 걸 좋아한다. 이게 나에게 딱 맞다.따라서 본 블로그의 글들은 거의 나만을 위한 것이다. 남들 보기 좋으라고 친절하게 정리한 게 거의 없다.그래도 나의 '관점'이 블로그 방문객들에게 도움이 될 수도 있다고 생각한다.내가 잘 몰랐던 걸 남도 잘 모를 수 있는 거니까. (8p)Java 기반 웹 서버를 생성하고 .. 2024. 5. 17.
주요 아키텍처 패턴 처음에는 API 만드는 스타일만 확인하려 했는데 범용적인 아키텍처 패턴도 알아야 하겠더라.https://youtu.be/f6zXyq4VPP8?feature=shared1. Layered Architecture (계층형 아키텍처)특징:계층별 역할: 애플리케이션을 계층으로 분리하여 각 계층이 특정 역할을 담당합니다.프레젠테이션 계층: 사용자 인터페이스애플리케이션 계층: 비즈니스 로직도메인 계층: 비즈니스 규칙인프라 계층: 데이터베이스 및 외부 시스템과의 통합장점:코드 구조가 명확하여 유지보수가 쉽습니다.각 계층을 독립적으로 개발 및 테스트할 수 있습니다.단점:계층 간의 의존성이 복잡해질 수 있습니다.성능 저하의 원인이 될 수 있습니다.사용 사례:전통적인 엔터프라이즈 애플리케이션CRUD 기반 애플리케이션2. .. 2024. 5. 16.
주요 API 아키텍처 스타일 API 설계를 해야 되는데 해 본 적이 있어야지.모르면 어떻게 한다? 찾는다.https://youtu.be/4vLxWqE94l4?feature=shared1. SOAP (Simple Object Access Protocol)특징:프로토콜 기반: XML 기반의 메시징 프로토콜을 사용합니다.높은 보안: WS-Security와 같은 표준을 통해 높은 보안을 제공합니다.트랜잭션 지원: ACID 트랜잭션을 지원합니다.계약 기반: WSDL(Web Services Description Language)을 사용하여 서비스 계약을 정의합니다.사용 사례:금융 서비스와 같은 높은 보안과 트랜잭션 관리가 필요한 엔터프라이즈 시스템복잡한 비즈니스 프로세스 통합2. RESTful (Representational State Tra.. 2024. 5. 16.
Supabase 배우면서 궁금했던(느끼는) 점 정리 1. PostgreSQL이란? 객체 관계형 데이터베이스 관계시스템이다(ORDBMS). SQL 기반의 데이터베이스인데, 확장성이 높고, 표준을 잘 준수하며, 복잡한 쿼리, 외래 키, 트랜잭션, MVCC(다중 버전 동시성 제어) 등의 고급 기능을 지원한다. MySQL보다 더 엄격히 SQL 표준을 준수하는데 복잡한 쿼리를 더 잘 처리한다. 2. RDB(관계형 데이터베이스)와 ORDB(객체 관계형 데이터베이스) 차이는? 데이터를 구조화하고 접근하는 방식에 있다. RDB는 테이블 형태로 데이터를 저장한다. 테이블 간의 관계를 통해 데이터를 조직화한다. SQL을 사용해 데이터를 관리하고, 데이터의 무결성, 일관성을 유지하기 위해 엄격한 규칙을 따른다. ORDB는 RDB의 기능을 기반으로 하면서 객체 지향 개념을 통.. 2024. 2. 5.
i18n, l10n, 최소한만 알아보자. 그게 뭔지만 대충 알아도 된다. 어차피 개발 시 적용할 때 다시 깊게 생각해야 된다. i18n이란? 국제화를 뜻한다. l10n이란? 지역화를 뜻한다. 국제화 (Internationalization, i18n) 정의: 'i'로 시작해서 'n'으로 끝나는 사이에 18개의 문자가 있어서 i18n이라고 한다. 국제화는 소프트웨어를 설계하고 구현하는 과정에서 다양한 언어와 지역 설정에 맞춰 쉽게 적용될 수 있도록 준비하는 것을 말한다. 목적: 국제화는 코드의 재사용을 극대화하고, 지역별 특화 작업을 최소화하여 다양한 언어와 문화권에서 소프트웨어를 효율적으로 사용할 수 있도록 한다. 개발 시 주의사항: 문자열을 코드에서 분리하여 외부 파일이나 데이터베이스에 저장해야 한다. 날짜, 시간, 통화 등 지역에 따라 다르게.. 2024. 2. 3.