분류 전체보기 53

디자인 패턴

목차싱글톤 패턴팩토리 패턴전략 패턴옵저버 패턴프록시 패턴이터레이터 패턴노출 모듈 패턴MVC 패턴MVP 패턴MVVM 패턴1. 싱글톤 패턴 (Singleton Pattern)특징싱글톤 패턴은 하나의 클래스에 하나의 인스턴스만 존재하도록 보장하는 패턴입니다. 주로 전역적으로 접근 가능한 자원이 필요한 경우에 유용합니다. 장점과 단점 • 장점: 메모리 절약과 인스턴스 생성 비용을 줄일 수 있습니다. • 단점: 의도치 않게 멀티스레드 환경에서 문제를 일으킬 수 있습니다. 사용 사례로깅, 설정 관리, 데이터베이스 연결 등에서 많이 사용합니다. Java 예제 코드public class Singleton { private static Singleton instance; private Singleton() {..

CS 2024.10.28

IP 주소

목차ARP홉바이홉 통신라우팅 테이블게이트웨이IP 주소 체계클래스 기반 할당DHCPNAT1. ARPARP(Addreess Resolution Protocol)는 주로 하드웨어 통신에서 사용됩니다.IP 주소를 물리적 네트워크 주소(MAC 주소)로 변환해 주는 역할을 수행하며, 동일 네트워크 내에서 IP 패킷을 전송할 때 사용됩니다.IP 주소는 소프트웨어 계층에서, MAC 주소는 하드웨어 계층에서 사용되므로 ARP는 물리적 네트워크에서 중요한 역할을 합니다. ARP는 로컬 네트워크 내에서만 사용되며, 라우팅과 같은 상위 계층 통신에서는 사용되지 않습니다. ARP 통신 순서 1. 요청(ARP Request) : 송신자는 IP 주소를 기반으로 MAC 주소를 알아내기 위해 네트워크에 ARP 요청을 브로드캐스트로 보..

CS 2024.10.13

메모리 구조 (Stack, Heap)

- 목차 -1. 메모리 구조의 개요2. 스택 (Stack) 영역3. 힙 (Heap) 영역4. 스택과 힙의 차이5. 스택과 힙 메모리 관련 오류1. 메모리 구조 / 스택(Stack)과 힙(Heap) 영역프로그램이 실행될 때, 프로그램이 사용하는 메모리는 크게 스택(Stack)과 힙(Heap) 두 가지 영역으로 나눌 수 있습니다.이 두 영역은 메모리를 관리하는 방식이 다르며, 각각의 역할과 특성이 다릅니다. 이를 이해하는 것은 프로그램의 성능, 메모리 관리, 그리고 오류 방지를 위해 매우 중요합니다.1.1 메모리 구조의 개요프로그램이 실행될 때 사용하는 메모리 공간은 일반적으로 다음과 같이 나뉩니다  1. 코드(Code) 영역 : 실행할 프로그램의 코드(명령어)가 저장되는 영역입니다. 컴파일된 바이너리 코드..

CS 2024.09.29

메모리

- 목차 -1. 메모리 계층2. 메모리 관리3. 메모리 할당1. 메모리 계층  • 레지스터 : CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠르며 기억 용량이 가장 적다.• 캐시 : L1, L2 캐시를 지칭하며 휘발성, 속도 빠름, 기억 용량이 적다. • 주기억장치 : RAM을 가리키며, 휘발성, 속도 보통, 기억 용량도 보통이다.• 보조기억장치 : HDD, SSD를 일컬으며 비휘발성, 속도 낮음, 기억용량이 많다.1.1 캐시(cache)데이터를 미리 복사해 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리이다. 지역성의 원리캐시 계층을 두는 것 말고 캐시를 직접 설정할 때는 자주 사용하는 데이터를 기반으로 설정해야 하는데 그 근거가 되는 것이 바로 ..

CS 2024.09.29

운영체제 (System Call, Modebit, Trap, Interrupt, DMA Controller)

- 목차 -1. 운영체제의 역할과 구조2. System Call3. Modebit4. Trap5. Interrupt6. DMA Controller1. 운영체제의 역할과 구조2. System Call운영체제가 Kernel에 접근하기 위한 인터페이스Kernel 함수를 호출할 때 사용유저 프로그램에서 수행하는 작업이 Kernel에서 동작해야 하는지 판단 (하드웨어 자원에 접근하는 작업)2.1 System Call 동작방식유저 프로그램에서 시스템 호출 요청 : 유저 프로그램은 라이브러리 함수(예: C의 printf, open, read 등)를 통해 시스템 호출을 요청합니다.시스템 호출 트랩(Trap) : 유저 모드에서 커널 모드로 전환하는 방식은 트랩(Trap) 명령어를 사용하여 이루어집니다. 트랩은 특별한 종..

CS 2024.09.29

<Backend> Spring / Spring Security

1. Spring Security란?Spring Security는 Java 애플리케이션에 보안 기능을 추가하는 강력한 프레임워크입니다. 이를 통해 인증(Authentication)과 권한 부여(Authorization) 기능을 손쉽게 구현할 수 있습니다.2. Spring Security의 목적Spring Security는 웹 애플리케이션의 보안을 강화하기 위해 설계된 프레임워크입니다.  2.1 주요목적인증(Authentication) 사용자가 누구인지 확인하는 과정권한 부여(Authorization) 인증된 사용자가 특정 리소스에 접근할 수 있는지 여부를 결정하는 과정보안 정책 구현 세밀한 보안 규칙을 정의하여 애플리케이션의 다양한 부분에서 보안을 적용2.2 인증(Authentication) 인증은 사용..

Backend 2024.07.11

<Backend> Spring / Batch

목차1. Spring Batch란?2. Spring Batch의 목적      2.1 Spring Batch 주요 기능           2.1.1 Job           2.1.2 Step           2.1.3 Chunk3. 구성요소 및 동작방식      3.1 구성요소      3.2 동작방식4. 실습1. Spring Batch란?Spring Batch는 대용량 데이터의 일괄 처리(batch processing)를 지원하는 스프링 기반 프레임워크입니다.Spring Batch를 통해 복잡한 Batch 작업을 손쉽게 구성하고 실행할 수 있습니다.또한, 데이터베이스, 파일 시스템 또는 기타 데이터 소스로부터 데이터를 읽고, 처리하고, 다른 데이터베이스나 파일 시스템으로 쓰는 등의 작업을 자동화할 ..

Backend 2024.07.10

<Backend> Spring / QueryDSL

1. QueryDSL이란?SQL 형식의 쿼리를 Type-Safe 하게 생성할 수 있도록 하는 DSL을 제공하는 라이브러리2. QueryDSL의 목적ORM(Object-Relationla-Mapping) 프레임워크의 가장 어려운 설계 선택 중 하나는 정확하고 유형 안전한 쿼리를 구축하기 위한 API입니다.가장 널리 사용되는 자바 ORM 프레임워크 중 하나인 하이버네이트(JPA 표준)는 SQL과 매우 유사한 문자열 기반 쿼리 언어 HQL(JPQL)을 제안합니다. 이 접근 방식의 단점은 타입 안전성의 부족과 정적 쿼리 검사의 부재입니다. 또한 더 복잡한 경우(예를 들어, 일부 조건에 따라 쿼리를 런타임에 구성해야 하는 경우) HQL 쿼리를 구축하려면 일반적으로 매우 안전하지 않고 오류가 발생하기 쉬운 문자열의..

Backend 2024.07.09

<Web> 네트워킹 (for AWS)

AWS를 사용하기 위해서는 VPC 네트워크를 생성하는 것부터 시작해야 합니다.모든 AWS의 시작이 VPC 설정이며, 서브넷을 만들고 네트워크를 구성하는 것입니다.CIDRCIDR은 BaseIP + Subnet Mask로 구성되어 있습니다.또한 "가용 네트워크 IP 대역"을 정의하는 데 사용되는 표기법입니다.사전 지식 : 네트워크 주소 구성 = 4개의 옥텟(1바이트 = 8비트) = 총 4바이트 (32비트) Base IP : 사용 가능한 첫 IPSubnet Mask : 위 Base IP에서 불변 영역연습 문제 : 아래 각각의 CIDR에 대한 IP 범위와 IP 개수는?192.168.0.0/24192.168.0.0/16134.56.78.123/320.0.0.0/0더보기 192.168.0.0/24 • IP 범위: ..

Web 2024.06.12

<Web> RestAPI & GraphQL

RestAPIREST API(Representational State Transfer API)는 웹 서비스의 아키텍처 스타일 중 하나로, HTTP 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 수행합니다. REST는 리소스를 중심으로 설계되며, 각 리소스는 고유한 URI(Uniform Resource Identifier)로 식별됩니다. 클라이언트는 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 서버에서 리소스를 조회하거나 조작할 수 있습니다. 동작 원리클라이언트 요청: 클라이언트는 특정 리소스에 대해 HTTP 요청을 보냅니다. 예를 들어, GET 메서드를 사용하여 리소스를 조회할 수 있습니다.서버 처리: 서버는 요청을 받아 해당 리소스를 처리하고 적절한 응답을 생성합니다.응..

Web 2024.05.28